[clang] [clang][doc] Add documentation for the ASTs used to represent C++ templates (PR #66436)

Scott McPeak via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 14 14:15:48 PDT 2023


https://github.com/smcpeak created https://github.com/llvm/llvm-project/pull/66436:

This PR adds proposed documentation for the ASTs used to represent templates.  There's a lot of material here to review; I understand that could take some time.  Suggestions for improvements are welcome.

>From 9326c316c33fcd83e8803c372b007e80bb0cd4f8 Mon Sep 17 00:00:00 2001
From: Scott McPeak <scott.g.mcpeak at gmail.com>
Date: Wed, 13 Sep 2023 23:12:32 -0700
Subject: [PATCH] [clang][doc] Add documentation for the ASTs used to represent
 C++ templates.

---
 clang/docs/ASTsForTemplates.rst               | 3172 +++++++++++++++++
 .../ct-cont-ct-cspspec.ded                    | 2489 +++++++++++++
 .../ct-cont-ct-cspspec.ded.png                |  Bin 0 -> 37240 bytes
 .../ct-cont-ct-csspec.ded                     | 2256 ++++++++++++
 .../ct-cont-ct-csspec.ded.png                 |  Bin 0 -> 32690 bytes
 .../ct-cont-ct-emspec-of-cspspec.ded          | 2598 ++++++++++++++
 .../ct-cont-ct-emspec-of-cspspec.ded.png      |  Bin 0 -> 42155 bytes
 .../ct-cont-ct-emspec.ded                     | 2203 ++++++++++++
 .../ct-cont-ct-emspec.ded.png                 |  Bin 0 -> 34295 bytes
 .../ct-cont-ct-espec.ded                      | 1678 +++++++++
 .../ct-cont-ct-espec.ded.png                  |  Bin 0 -> 37910 bytes
 .../ct-cont-ct-inst.ded                       | 2329 ++++++++++++
 .../ct-cont-ct-inst.ded.png                   |  Bin 0 -> 41117 bytes
 .../ct-cont-ct-pmspec.ded                     | 2247 ++++++++++++
 .../ct-cont-ct-pmspec.ded.png                 |  Bin 0 -> 34570 bytes
 .../ct-cont-ct-pspec.ded                      | 2471 +++++++++++++
 .../ct-cont-ct-pspec.ded.png                  |  Bin 0 -> 36749 bytes
 .../ct-cont-friend-ft-spec-inst.ded           | 2649 ++++++++++++++
 .../ct-cont-friend-ft-spec-inst.ded.png       |  Bin 0 -> 34511 bytes
 .../ct-cont-ft-csspec.ded                     | 2330 ++++++++++++
 .../ct-cont-ft-csspec.ded.png                 |  Bin 0 -> 33035 bytes
 .../ct-cont-ft-defn.ded                       | 1026 ++++++
 .../ct-cont-ft-defn.ded.png                   |  Bin 0 -> 23223 bytes
 .../ct-cont-ft-emspec.ded                     | 2234 ++++++++++++
 .../ct-cont-ft-emspec.ded.png                 |  Bin 0 -> 30387 bytes
 .../ct-cont-ft-espec.ded                      | 1794 ++++++++++
 .../ct-cont-ft-espec.ded.png                  |  Bin 0 -> 29347 bytes
 .../ct-cont-ft-inst.ded                       | 2028 +++++++++++
 .../ct-cont-ft-inst.ded.png                   |  Bin 0 -> 36329 bytes
 .../ct-cont-oc-emspec.ded                     | 1073 ++++++
 .../ct-cont-oc-emspec.ded.png                 |  Bin 0 -> 18238 bytes
 .../ct-cont-oc-inst.ded                       | 1588 +++++++++
 .../ct-cont-oc-inst.ded.png                   |  Bin 0 -> 21816 bytes
 .../ct-cont-of-defn.ded                       |  858 +++++
 .../ct-cont-of-defn.ded.png                   |  Bin 0 -> 18778 bytes
 .../ct-cont-of-espec.ded                      | 1255 +++++++
 .../ct-cont-of-espec.ded.png                  |  Bin 0 -> 26555 bytes
 .../ct-cont-of-inst.ded                       | 1439 ++++++++
 .../ct-cont-of-inst.ded.png                   |  Bin 0 -> 25415 bytes
 .../ASTsForTemplatesImages/ct-defn-types.ded  | 1034 ++++++
 .../ct-defn-types.ded.png                     |  Bin 0 -> 26296 bytes
 clang/docs/ASTsForTemplatesImages/ct-defn.ded |  791 ++++
 .../ASTsForTemplatesImages/ct-defn.ded.png    |  Bin 0 -> 25370 bytes
 .../docs/ASTsForTemplatesImages/ct-espec.ded  | 1124 ++++++
 .../ASTsForTemplatesImages/ct-espec.ded.png   |  Bin 0 -> 29230 bytes
 .../ASTsForTemplatesImages/ct-inst-types.ded  | 1627 +++++++++
 .../ct-inst-types.ded.png                     |  Bin 0 -> 23806 bytes
 clang/docs/ASTsForTemplatesImages/ct-inst.ded | 1479 ++++++++
 .../ASTsForTemplatesImages/ct-inst.ded.png    |  Bin 0 -> 24568 bytes
 .../docs/ASTsForTemplatesImages/ct-pspec.ded  | 1868 ++++++++++
 .../ASTsForTemplatesImages/ct-pspec.ded.png   |  Bin 0 -> 33720 bytes
 .../ft-cont-oc-inst.ded                       | 2775 ++++++++++++++
 .../ft-cont-oc-inst.ded.png                   |  Bin 0 -> 43342 bytes
 clang/docs/ASTsForTemplatesImages/ft-defn.ded |  560 +++
 .../ASTsForTemplatesImages/ft-defn.ded.png    |  Bin 0 -> 14838 bytes
 .../docs/ASTsForTemplatesImages/ft-espec.ded  |  829 +++++
 .../ASTsForTemplatesImages/ft-espec.ded.png   |  Bin 0 -> 17826 bytes
 clang/docs/ASTsForTemplatesImages/ft-inst.ded |  851 +++++
 .../ASTsForTemplatesImages/ft-inst.ded.png    |  Bin 0 -> 16340 bytes
 .../oc-cont-ft-defn.ded                       |  729 ++++
 .../oc-cont-ft-defn.ded.png                   |  Bin 0 -> 23009 bytes
 clang/docs/index.rst                          |    1 +
 62 files changed, 53385 insertions(+)
 create mode 100644 clang/docs/ASTsForTemplates.rst
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-defn-types.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-defn-types.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-defn.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-defn.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-espec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-espec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-inst-types.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-inst-types.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-pspec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ct-pspec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-defn.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-defn.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-espec.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-espec.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-inst.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/ft-inst.ded.png
 create mode 100644 clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded
 create mode 100644 clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded.png

diff --git a/clang/docs/ASTsForTemplates.rst b/clang/docs/ASTsForTemplates.rst
new file mode 100644
index 000000000000000..68510f32f0992fe
--- /dev/null
+++ b/clang/docs/ASTsForTemplates.rst
@@ -0,0 +1,3172 @@
+==========================
+    ASTs for Templates
+==========================
+
+.. contents::
+   :local:
+
+.. role:: raw-html(raw)
+    :format: html
+
+.. comment: The *.ded diagrams used in this document can be edited with
+            https://github.com/smcpeak/ded
+            Note that diagram width should be kept under 1000 pixels,
+            since otherwise there is a risk it will be demagnified by
+            the browser, making it blurry.
+
+.. comment: The graph data inside the diagrams can be regenerated with
+            https://github.com/smcpeak/print-clang-ast
+
+
+Preliminaries
+=============
+
+
+Document scope
+--------------
+
+This document assumes a general familiarity with at least the concept of
+an abstract syntax tree (AST), and moderate familiarity with C++
+templates.  Some familiarity with the Clang AST is helpful but not
+necessary; but see :doc:`IntroductionToTheClangAST` and
+:doc:`InternalsManual` (section "The AST Library") if you want some more
+background before diving in.
+
+The document's main focus is on how the language feature of templates is
+represented in the Clang AST, especially in the form it takes after
+parsing and semantic analysis is complete.  It also discusses
+non-template-related AST features that the template infrastructure
+relies upon, where the latter could not reasonably be understood without
+the former.  But AST elements that are orthogonal to templates and not
+conceptually foundational to them are described only briefly, or omitted
+entirely.
+
+This document currently omits discussion of some topics:
+
+* Detailed discussion of the way templates affect the ``Expr``
+  hierarchy.  Instead, this document is focused on the ``Decl``
+  hierarchy.
+
+* Template non-type parameters and template template parameters.
+
+* Variable templates.
+
+* Type alias templates.
+
+* Variadic templates (and therefore parameter packs).
+
+* Lambdas.
+
+* Declaration nesting beyond two levels.  For example, it does not
+  examine the case of a function template that contains an ordinary
+  class, one of whose members is a template, as that is three levels of
+  nesting.
+
+* Template ``requires`` constraints.
+
+* Concepts.
+
+There is some overlap between material here and the comments in the
+source code.  This document is meant to provide a complimentary overview
+of the most important structures, while source code comments go into
+greater detail, especially on more ancillary topics.
+
+
+Documentation strategy
+----------------------
+
+The overall approach taken here is to focus on documenting the private
+data members of the relevant AST classes, with only secondary importance
+given to the public APIs.  This contrasts with the Doxygen-generated API
+documentation, which only shows the APIs and omits private data
+entirely.  The reason for the focus on the data is that it provides the
+"ground truth" and conceptual framework needed to truly understand the
+design.  On top of that foundation, the APIs can easily be learned
+individually as needed.
+
+We also document some physical memory allocation patterns, such as
+trailing objects and "owner" pointers.  The reason is that, although an
+AST consumer generally does not care where things are in memory, they
+*do* care whether a piece of data is potentially shared with other AST
+nodes, since that affects both how it is interpreted and what
+modifications might be possible (for those trying to do source-to-source
+using Clang at the AST level).  Trailing objects and owner pointers are
+specifically *not* shared, and documenting them as such conveys the
+non-shared nature.
+
+
+Definitions of terms
+--------------------
+
+The terms used within the Clang AST generally align with those used in
+the C++ standard.  Some key terms are listed below; the annotation
+"(Clang)" means the term is specific to the Clang implementation:
+
+* A *declaration* is, typically, a piece of syntax that introduces an
+  entity such as a function or class into the program.  It also usually
+  associates a name with that entity.  When dealing with the
+  representation of templates, we're primarily dealing with
+  declarations.  A declaration is a *syntactic* notion, and consequently
+  has an associated location in the source code.
+
+* A *definition* is a declaration that provides the operational details
+  of the declared entity, such as the body of a function or the members
+  of a class.  Every definition is also a declaration.
+
+* (Clang) A *canonical declaration* is one particular declaration
+  (usually the first in the translation unit) chosen to represent the
+  entire set of declarations that all pertain to the same *semantic*
+  entity.  The canonical declaration can thus be thought of as
+  representing that semantic entity (as well as being one particular
+  syntactic declaration of it).
+
+* A *type* is a semantic property of an expression or declared entity.
+  A non-dependent type constrains the set of allowable operations on the
+  expression or entity.  Object types (as opposed to function types)
+  also specify how many bytes of storage objects of that type occupy and
+  how those bytes are interpreted as mathematical objects.  Because a
+  type is a semantic notion, it (unlike a declaration) is not inherently
+  tied to any particular source location.  However, in the Clang AST, a
+  type that was defined using a declaration (such as a ``class`` or a
+  ``typedef``) provides a way to navigate back to that declaration, and
+  some AST nodes contain ``TypeLoc`` objects that augment a type with
+  source location information for a particular syntactic description of
+  a type.
+
+* A *dependent type* is a type that depends in some way on template
+  parameters for which an argument has not been supplied.  Generally,
+  dependent types have fewer constraints on the set of allowable
+  operations and less information about size and interpretation of their
+  representation than do non-dependent types.
+
+* (Clang) A *canonical type* is one constructed in such a way that two
+  canonical types are semantically equivalent if and only if they are
+  structurally identical.  For example, after ``typedef int MyInt;``,
+  ``MyInt`` is semantically equivalent to ``int`` but (in the Clang AST)
+  is not structurally identical because ``MyInt`` knows its user-defined
+  name and declaration location, so it is not canonical.  Given an
+  arbitrary type, the Clang API has methods (such as
+  ``QualType::getCanonicalType()``) to get the corresponding canonical
+  type.
+
+* A *template* is a kind of declaration, represented as an object that
+  is (in most cases) a subtype of ``TemplateDecl``.  It corresponds to
+  the ``template <class T> ...`` syntax.  Its effect is to define a
+  family of classes, functions, or a few other kinds of things, related
+  by the parameterization in the template declaration.  We say (e.g.)
+  "class template", not "template class", to emphasize that we are
+  referring to the template.
+
+* Immediately inside a template declaration is the *templated* entity;
+  notice the final "d" in "templated".  Metaphorically, you start with
+  (say) an ordinary class declaration, and then wrap ``template <...>``
+  around it, hence the past tense "-ed" ending.  The templated entity is
+  generic in the sense that it refers to the parameters introduced by
+  the template declaration, but for which arguments have not been
+  supplied.  We say "templated class" to emphasize that we are referring
+  to the class inside the template declaration.
+
+  * (Clang) The standard term "templated" applies to anything inside the
+    template declaration, but in Clang AST terminology it refers to the
+    one declaration immediately inside.
+
+* (Clang) A *pattern* is another name for a templated declaration.  This
+  term is used to emphasize the role it plays as the basis of
+  instantiation.
+
+* An *instantiation* of a template is a declaration synthesized, by the
+  compiler, by substituting template arguments for corresponding
+  template parameters within a templated entity.  Instantiation can be
+  *explicit*, meaning it was requested by the programmer using dedicated
+  syntax, or *implicit*, meaning it was a consequence of how the
+  template was used.  An instantiation is the output of an *algorithm*.
+
+* A *specialization* of a template is a declaration that is associated
+  with that template and with a particular sequence of template
+  arguments.  A specialization can be *explicit*, meaning it was
+  directly provided by the programmer, or *implicit*, meaning it was the
+  result of instantiation.  A specialization is the *name* of an entity.
+
+The relationship between those last two is potentially confusing due to
+all the similar terminology.  It can be summarized with this concept
+hierarchy:
+
+* A specialization, e.g., ``C<int>``, is one of:
+
+  * Explicit specialization, which is written by the programmer, for
+    example: :raw-html:`<br/>`
+    ``template <> class C<int> {...};``
+
+  * Implicit specialization, a synonym for instantiation, which is one
+    of:
+
+    * Explicit instantiation, which is directly requested by the
+      programmer, for example: :raw-html:`<br/>`
+      ``template class C<int>;``
+
+    * Implicit instantiation, which is induced by usage:
+      :raw-html:`<br/>`
+      ``C<int> someVariable;``
+
+Continuing the terminology:
+
+* A *member specialization* is a specialization of an element of a
+  template that arises because the template is instantiated.  The
+  element could be a member of a class or it could be a declaration
+  inside a function template, although the terminology is based on the
+  former case.  The member itself may or may not be a template, and the
+  member specialization may be implicit or explicit.  If the member is a
+  template, specialization as a member is distinct from specialization
+  of the member template itself.  For example, explicit member
+  specialization effectively replaces the entire member within its
+  containing class, whereas explicit (template) specialization provides
+  a definition of that member for a particular template argument
+  sequence.  Consequently, logically, member specialization happens
+  before template specialization.  Another way to think about it is to
+  regard member specialization as specialization with respect to the
+  template parameters of the containing the template, while template
+  specialization operates with respect to the parameters of the template
+  itself (if it is one).
+
+  * (Clang) The standard does not use the term "member specialization"
+    directly, but it's a modest extrapolation from
+    `temp.expl.spec <https://wg21.link/temp.expl.spec>`_.  However,
+    that extrapolation does not include elements inside a function
+    template, whereas the Clang term does.
+
+* (Clang) A *class scope specialization* is an explicit specialization
+  declaration that appears inside the body of a (possibly templated)
+  class definition.  When the enclosing class is templated, the
+  semantics are different from an explicit specialization outside the
+  class body because the class scope specialization is then subject to
+  instantiation.
+
+
+External AST sources
+--------------------
+
+ASTs can be created either by parsing source code or by loading them
+from an "external source" such as a serialized AST file.  In a number of
+places, the AST has a "lazy" pointer to an AST node, meaning it can be
+an ordinary pointer, or it can contain a numeric ID used to locate the
+node in an external source.  When a node is loaded from an external
+source, the ID in a lazy pointer is replaced by an ordinary pointer, and
+subsequent accesses follow the pointer normally.
+
+In this document, we will ignore the possibility of loading from an
+external source, and assume the AST was created by parsing source code.
+Consequently, we document "lazy" pointers as if they were always
+ordinary pointers.
+
+
+Function templates
+==================
+
+We'll start by looking at how function templates and their related
+entities are represented, since they are significantly simpler than
+class templates, which will be discussed later.  Consider this
+translation unit:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T t)
+    {
+      return t;
+    }
+
+If we call this file ``test.cc`` and dump its AST like so:
+
+.. code-block:: console
+
+    $ clang -Xclang -ast-dump -fsyntax-only test.cc
+
+we get output like this::
+
+    TranslationUnitDecl 0x563d45cd1ac8 <<invalid sloc>> <invalid sloc>
+    | [...]
+    `-FunctionTemplateDecl 0x563d45d18d60 <test.cc:1:1, line:5:1> line:2:3 identity
+      |-TemplateTypeParmDecl 0x563d45d18af0 <line:1:11, col:17> col:17 referenced class depth 0 index 0 T
+      `-FunctionDecl 0x563d45d18cb8 <line:2:1, line:5:1> line:2:3 identity 'T (T)'
+        |-ParmVarDecl 0x563d45d18bc0 <col:12, col:14> col:14 referenced t 'T'
+        `-CompoundStmt 0x563d45d18eb0 <line:3:1, line:5:1>
+          `-ReturnStmt 0x563d45d18ea0 <line:4:3, col:10>
+            `-DeclRefExpr 0x563d45d18e80 <col:10> 'T' lvalue ParmVar 0x563d45d18bc0 't' 'T'
+
+The primary objects of interest are ``FunctionTemplateDecl``,
+``TemplateTypeParmDecl``, ``FunctionDecl``, and ``ParmVarDecl``.  We'll
+look at each in turn.
+
+
+``FunctionTemplateDecl``
+------------------------
+
+At a high level, ``FunctionTemplateDecl`` has three key pieces of data:
+
+* A sequence of template parameters.
+
+* A pointer to the templated function declaration.
+
+* The set of specializations, both implicit and explicit.
+
+That's probably enough to know on a first reading of this document, so
+you may want to skip the remainder of this section and come back later
+to study these foundational details.  This pattern is repeated
+throughout this document: for each type of object, there is a brief,
+high-level description, followed by details that are skippable on a
+first read.  The details always begin with the inheritance hierarchy,
+so that's the natural choice point regarding what to read when.
+
+Let's dig into ``FunctionTemplateDecl``.  Its inheritance structure is::
+
+    Class Name                                  Header
+    ------------------------------------------  --------------
+    FunctionTemplateDecl                        DeclTemplate.h
+      RedeclarableTemplateDecl                  DeclTemplate.h
+        TemplateDecl                            DeclTemplate.h
+          NamedDecl                             Decl.h
+            Decl                                DeclBase.h
+        Redeclarable<RedeclarableTemplateDecl>  Redeclarable.h
+
+The Doxygen-generated documentation focuses on the public methods, but
+it is hard to tell how things really work by looking at that.  Instead,
+we need to look at the private data structure definitions.  The fields
+of ``FunctionTemplateDecl``, simplified a little by giving names to
+fields stored in the low bits of pointers, are:
+
+* From base class ``Decl``:
+
+  * ``Decl *NextInContext`` and
+    ``PointerUnion<DeclContext*, MultipleDC*> DeclCtx``: Parent
+    and sibling links to form the ``DeclContext`` tree.  ``DeclCtx`` can
+    be either one or two parent pointers, the latter for the case of an
+    entity defined outside its semantically containing class or
+    namespace.
+
+  * ``SourceLocation Loc``: Source code location.
+
+  * Various flags, including ``unsigned DeclKind : 7``, an indicator of
+    what kind of object this is (the Clang AST does not use C++ RTTI for
+    performance and flexibility reasons).
+
+* From base class ``NamedDecl``:
+
+  * ``DeclarationName Name``: The name of the template, which is the
+    same as the name of the templated declaration.
+
+* From base class ``TemplateDecl``:
+
+  * ``NamedDecl *TemplatedDecl``: The templated declaration, which for
+    ``FunctionTemplateDecl`` will be a ``FunctionDecl``.
+
+  * ``TemplateParameterList *TemplateParams``: The template parameters.
+    (This is only the "inner" list of parameters directly associated
+    with the declared entity; see ``DeclaratorDecl`` for the "outer"
+    lists associated with qualifiers in the name.) This list is
+    physically part of the ``TemplateDecl`` object, using the "trailing
+    objects" technique (see ``llvm::TrailingObjects``).  The parameter
+    list contains:
+
+    * ``SourceLocation TemplateLoc, LAngleLoc, RAngleLoc``: Locations of
+      key bits of syntax.
+
+    * ``unsigned NumParams``: The number of parameters.
+
+    * A few flags indicating which optional elements of a parameter
+      list, such as a parameter pack, are present.
+
+    * The parameters themselves, as an array of ``NamedDecl *``.  A
+      template parameter must be a
+      ``TemplateTypeParmDecl``,
+      ``NonTypeTemplateParmDecl``, or
+      ``TemplateTemplateParmDecl``; ``NamedDecl`` is the most specific
+      type that encompasses all three.
+
+    * An optional ``requires`` clause, as an ``Expr *``.
+
+* From base class ``Redeclarable<RedeclarableTemplateDecl>``, which uses
+  the name ``decl_type`` to refer to its template parameter:
+
+  * ``decl_type *First`` and ``decl_type *Previous``: Pointers to the
+    first and previous elements in a circular list of declarations of
+    the same template.  Beware: The terminology within ``Redeclarable``
+    is confusing, as the "*previous* declaration"
+    (``Redeclarable::getPreviousDecl()``) is the same thing as the
+    "*next* **RE**\ declaration"
+    (``Redeclarable::getNextRedeclaration()``).
+
+* From base class ``RedeclarableTemplateDecl``:
+
+  * ``CommonBase *Common``: A pointer to data that is shared with other
+    redeclarations of the same template.
+    ``RedeclarableTemplateDecl::CommonBase`` contains:
+
+    * ``PointerIntPair<RedeclarableTemplateDecl*, 1, bool> InstantiatedFromMember``:
+      Two elements:
+
+      * ``RedeclarableTemplateDecl*``:
+        If this template is a member specialization of a member template
+        of a class template, this points to the member template from
+        which it was instantiated.  An example is shown in
+        `Diagram: Class template contains function template: Instantiation`_.
+        Otherwise, it is ``nullptr``.
+
+      * ``bool explicitMemberSpec``:
+        The member specialization can be explicit, and when it is, this
+        flag is set.  See
+        `Diagram: Class template contains function template: Explicit member specialization`_
+        for an example.
+        Beware: The value of this flag is readable via the public method
+        ``RedeclarableTemplateDecl::isMemberSpecialization()``, but that
+        name is misleading because it is only true if the member
+        specialization is *explicit*.
+
+    * ``uint32_t *LazySpecializations``: A pointer to an array of IDs
+      that can be used to load specializations of this template from an
+      external source.  It is ``nullptr`` for ASTs created by parsing
+      rather than loading.
+
+    * ``TemplateArgument *InjectedArgs``: An array of "injected"
+      template arguments.  For each template parameter, its injected
+      argument is a template argument that simply uses that parameter as
+      the argument.  This allows substituting a parameter for itself,
+      which is useful when we want to substitute arguments for
+      parameters at one level while leaving those at another level
+      unaffected.  This pointer is only non-``nullptr`` if
+      ``RedeclarableTemplateDecl::getInjectedTemplateArgs()`` has been
+      called.
+
+  * When the ``RedeclarableTemplateDecl`` is a
+    ``FunctionTemplateDecl``, then the ``Common`` pointer points to an
+    instance of ``FunctionTemplateDecl::Common``, which in addition to
+    the fields of ``CommonBase``, contains:
+
+    * ``FoldingSetVector<FunctionTemplateSpecializationInfo>
+      Specializations``: Set of specializations (both explicit and
+      implicit) of this function template.  When a specialization has
+      multiple declarations, only one of them appears in this list.
+
+For the example fragment above, the most important relations are:
+
+* ``TemplatedDecl`` points at the ``FunctionDecl`` inside it.
+
+* ``TemplateParams`` points at the ``TemplateTypeParmDecl``.
+
+* ``Redeclarable::Previous`` points to itself, meaning there are no
+  other redeclarations.
+
+* ``RedeclarableTemplateDecl::Common->Specializations`` is empty because
+  there are no specializations.
+
+
+``TemplateTypeParmDecl``
+------------------------
+
+At a high level, ``TemplateTypeParmDecl`` declares a new dependent type,
+for use within the scope of the template, whose concrete details are
+known only when a template argument is supplied.  The type is
+represented by a ``TemplateTypeParmType`` object whose most important
+piece of data is simply a pointer back to the corresponding
+``TemplateTypeParmDecl``.
+
+The class hierarchy for ``TemplateTypeParmDecl`` is::
+
+    Class Name                              Header             Novel?
+    --------------------------------------  -----------------  ------------
+    TemplateTypeParmDecl                    DeclTemplate.h     yes
+      TypeDecl                              Decl.h             yes
+        NamedDecl                           Decl.h             no
+          Decl                              DeclBase.h         contextually
+      TrailingObjects<..., TypeConstraint>  TrailingObjects.h  yes
+        TypeConstraint                      ASTConcept.h       yes
+
+In this table, "Novel?" indicates whether the class is novel in the
+sense of not having already been discussed previously in this document.
+"Contextually" means the class was discussed, but something about it is
+different in this context.
+
+Technically, ``TrailingObjects<TemplateTypeParmDecl, TypeConstraint>``
+does not inherit ``TypeConstraint``, but it arranges for a
+``TypeConstraint`` object to be contiguously allocated after the
+``TemplateTypeParmDecl`` if one is needed.  Consequently, it acts like
+an optional field.
+
+The fields of ``TemplateTypeParmDecl`` are:
+
+* Those from bases ``NamedDecl`` and ``Decl``, discussed above.
+  However:
+
+  * As explained above, ``Decl`` has a pointer to its containing
+    ``DeclContext``.  But for a template parameter, its ``DeclContext``
+    is *not* the (outer) template declaration, but is instead the
+    (inner) template\ **d** declaration.  That is because none of the
+    ``TemplateDecl`` classes are ``DeclContext``\ s.  But the template
+    parameter is not added to the list of child declarations of its (or
+    any) ``DeclContext``, presumably because it is very different from
+    the normal declaration children of a function (namely, parameters)
+    or class (namely, class members).
+
+* From ``TypeDecl``:
+
+  * ``Type *TypeForDecl``: The ``Type`` object this declaration
+    introduces.  In this case it is a ``TemplateTypeParmType``, and that
+    points back to the ``TemplateTypeParmDecl``.
+    ``TemplateTypeParmType`` can be a "canonical" type, lacking a
+    pointer to the declaration; this is discussed below, at
+    `Canonical TemplateTypeParmType`_.
+
+  * ``SourceLocation LocStart``: Location of the start of the type
+    declaration.  In ``template <class T> ...``, the start of the
+    template type parameter declaration is the "c" in ``class``.
+
+* From ``TypeConstraint`` (when present):
+
+  * Imposes a constraint on any template argument for this parameter.
+    The details are, for now, beyond the scope of this document.
+
+* In ``TemplateTypeParmDecl`` itself:
+
+  * ``bool Typename``: True if ``typename`` was used to declare the
+    parameter, false if ``class`` was.
+
+  * ``bool HasTypeConstraint``: True if there is a type constraint,
+    which means there is an associated ``TypeConstraint`` member.
+
+  * ``bool TypeConstraintInitialized``:
+    If false, which can be due to a syntax error, the type constraint is
+    effectively ignored.
+
+  * ``bool ExpandedParameterPack``:
+    True if this parameter is an expanded parameter pack.  Parameter
+    packs are, for now, outside the scope of this document.
+
+  * ``unsigned NumExpanded``: The number of type parameters in an
+    expanded parameter pack.
+
+It is also worth noting that ``TemplateTypeParmDecl`` does not have a
+direct pointer to its ``TemplateDecl``.  Instead, to navigate to the
+``TemplateDecl``, one must use ``DeclCtx`` to get to the templated
+entity, then figure out which kind of thing that is (function, class,
+etc.), then use its pointer to the template (in the case of a function,
+that is the ``TemplateOrSpecialization`` field).
+
+
+``FunctionDecl``
+----------------
+
+A ``FunctionDecl`` declares, and optionally defines, a function.  There
+are three main kinds of template-associated ``FunctionDecl`` nodes:
+
+* The templated function in a ``FunctionTemplateDecl``, which provides
+  the pattern from which instantiation can proceed.
+
+* A specialization of a function template, resulting either from
+  instantiation or explicit specialization of a template declaration.
+  This is discussed further under `FunctionTemplateSpecializationInfo`_.
+
+* A specialization of a member (method) of a class template, where the
+  method itself may or may not also be a template.  This is discussed
+  further under `MemberSpecializationInfo`_.
+
+In all three cases, the ``FunctionDecl`` has a pointer to the structure
+that describes its template-ness.
+
+Additionally, the parameters and body of a template-associated
+``FunctionDecl`` can refer to ``TemplateTypeParmType`` objects, as they
+mark the places that will be substituted during instantiation.  (They
+can also refer to non-type and template template parameters, but those
+are currently out of the scope of this document).
+
+The class hierarchy for ``FunctionDecl`` is::
+
+    Class Name                     Header          Novel?
+    -----------------------------  --------------  ------------
+    FunctionDecl                   Decl.h          yes
+      DeclaratorDecl               Decl.h          yes
+        ValueDecl                  Decl.h          yes
+          NamedDecl                Decl.h          no
+            Decl                   DeclBase.h      contextually
+      DeclContext                  DeclBase.h      yes
+      Redeclarable<FunctionDecl>   Redeclarable.h  no
+
+The fields of ``FunctionDecl`` are:
+
+* Those from bases ``NamedDecl``, ``Decl``, and ``Redeclarable``,
+  already discussed above, except:
+
+  * ``Decl::DeclCtx`` for the templated declaration is the same as for
+    its template declaration (whereas one might naively expect the
+    templated declaration to use the template declaration as its
+    context).  In the example above, that is the
+    ``TranslationUnitDecl``.
+
+* From ``ValueDecl``:
+
+  * ``QualType DeclType``: The type of the declared entity.  For a
+    ``FunctionDecl``, the type will be a ``FunctionType``.  This type
+    may refer to ``TemplateTypeParmType`` types, indicating where in the
+    type substitution will occur when the template is instantiated, and
+    providing a way to navigate back to the ``TemplateTypeParmDecl``.
+
+* From ``DeclaratorDecl``:
+
+  * ``TypeSourceInfo *TInfo``: Augments the ``DeclType`` with source
+    location information, indicating where in the source code this
+    particular declaration denotes the type.  It can be ``nullptr``, for
+    example for the destructor of a lambda.
+
+  * Optional ``ExtInfo *``: A structure with extra information needed
+    when a function is defined outside its class body, or has a trailing
+    ``requires`` clause.  It has these data members:
+
+    * From base ``QualifierInfo``, which describes the namespace and
+      class scope qualifiers appearing in front of the declared name:
+
+      * ``NestedNameSpecifierLoc QualifierLoc``: The scope qualifier
+        and its source location information.  This will be empty in the
+        case where the ``ExtInfo`` was necessitated by having a
+        ``requires`` clause but the name was not qualified.
+
+      * ``unsigned NumTemplParamLists``:
+        The number of "outer" or "qualifier-associated" template
+        parameter lists, i.e., those not directly associated with the
+        declared entity.  The count includes all of the template
+        parameter lists that were matched against the template-ids
+        occurring in the ``NestedNameSpecifier`` of a qualified name,
+        plus possibly (in the case of an explicit specialization) a
+        final ``template <>``.
+
+      * ``TemplateParameterList** TemplParamLists``: Pointer to an
+        array of ``NumTemplParamLists`` parameter list objects.  The
+        array is owned by the ``QualifierInfo`` object.
+
+    * ``Expr *TrailingRequiresClause``: Optional ``requires`` clause, or
+      ``nullptr`` if there is none.
+
+  * ``SourceLocation InnerLocStart``: The start of the source range for
+    this declaration, ignoring outer template declarations.
+
+* From ``DeclContext``:
+
+  * ``DeclContextBits``: Contains several flags that are not important
+    to the implementation of templates.  However, for the purpose of
+    understanding core AST mechanics, it is worth noting that
+    ``DeclContextBits`` also stores the ``DeclKind`` in order to allow
+    ``dyn_cast`` from ``DeclContext`` to ``Decl``, since that requires
+    knowing the most-derived type, and ``DeclContext`` is independently
+    inherited by many ``Decl`` subclasses.  It should, of course, agree
+    with ``Decl::DeclKind``.
+
+  * ``StoredDeclsMap *LookupPtr``:
+    Nullable pointer to a map of the context's members for efficient
+    lookup.
+
+  * ``Decl *FirstDecl, *LastDecl``: List of ``Decl`` objects directly
+    contained by this ``DeclContext``.  For a ``FunctionDecl``, these
+    are the function parameters.  (Local variables are contained by
+    a ``CompoundStmt`` or similar inside the function body.)
+
+* In ``FunctionDecl`` itself:
+
+  * ``FunctionDeclBits``: When a ``DeclContext`` is a
+    ``FunctionDecl``, the ``DeclContextBits`` bitfield is extended to
+    contain additional bits specific to function declarations.  Most of
+    the flags are not related to templates, but two are:
+
+    * ``IsLateTemplateParsed``: True if the body has been tokenized but
+      not parsed.  It will be parsed when the end of the translation
+      unit is reached.  This can only happen if the
+      ``LangOptions::DelayedTemplateParsing`` flag is set, which happens
+      when the ``-fdelayed-template-parsing`` command line option is
+      present.  (Beware: The Doxygen documentation does not include the
+      ``LangOptions`` flags; see ``clang/Basic/LangOptions.def``
+      instead.)
+
+    * ``InstantiationIsPending``: True if this is an instantiation
+      (created due to implicit or explicit demand), but the body has not
+      yet been seen.  If the definition is never seen, then the flag
+      remains set at the end of parsing.
+
+  * ``ParmVarDecl **ParamInfo``: Owned array of pointers to the formal
+    parameters of this function.
+
+  * Anonymous union discriminated by
+    ``FunctionDeclBits.HasDefaultedFunctionInfo``:
+
+    * ``LazyDeclStmtPtr Body`` (``Has...==0``): A pointer to the body
+      of the function, or ``nullptr`` if the declaration does not have
+      a body.
+
+    * ``DefaultedFunctionInfo *DefaultedInfo`` (``Has...==1``): Pointer
+      to information about the ``= default`` definition of this
+      function.  Since the semantics of default definitions is
+      orthongonal to that of templates, this document will not spend
+      time on ``DefaultedFunctionInfo``, other than to note that the
+      object is physically shared between a function and its
+      instantiation when the required contents for both are the same.
+
+  * ``unsigned ODRHash``: A hash of the AST structure, used to detect
+    when definitions differ between translation units (i.e., violations
+    of the "One Definition Rule" (ODR)).
+
+  * ``SourceLocation EndRangeLoc``: The location of the end of the
+    (conceptual) declaration.  If a function body is present, then this
+    is the location of the close-brace.  Otherwise, it is the location
+    of the last character of the token preceding the semicolon or comma
+    that terminates the declarator.
+
+  * ``SourceLocation DefaultKWLoc``: The location of the ``default``
+    keyword in a defaulted definition; otherwise, invalid.
+
+  * ``PointerUnion<...> TemplateOrSpecialization``:
+    Pointer union with, effectively, six cases, corresponding to the
+    elements of the ``FunctionDecl::TemplatedKind`` enumeration:
+
+    * ``nullptr`` (corresponding to ``TK_NonTemplate``): None of the
+      cases below apply.
+
+    * ``NamedDecl *`` that is a ``FunctionDecl *``
+      (``TK_DependentNonTemplate``): This non-templated function is declared
+      directly inside the body of a function template.  The pointer
+      points to the enclosing templated function.
+
+    * ``NamedDecl *`` that is a ``FunctionTemplateDecl *``
+      (``TK_FunctionTemplate``): This is a templated function, and the
+      pointer points to the enclosing function template.
+
+    * ``MemberSpecializationInfo *`` (``TK_MemberSpecialization``):
+      This is a non-templated member function of a class template.  The
+      pointer points to additional information that describes the
+      relationship between this member function and its containing class
+      template.
+
+    * ``FunctionTemplateSpecializationInfo *``
+      (``TK_FunctionTemplateSpecialization``): This is a specialization
+      of a function template.  The pointer has additional information
+      about the specialization, including the template arguments.
+
+    * ``DependentFunctionTemplateSpecializationInfo *``
+      (``TK_DependentFunctionTemplateSpecialization``): This can only
+      appear as the target of a ``friend`` declaration, and represents a
+      set of candidate templates and a sequence of dependent template
+      arguments.  Resolution of both, to a particular concrete
+      specialization, is delayed until the enclosing class template is
+      instantiated.  See
+      `Diagram: Class template contains friend function template specialization`_
+      for an example.
+
+  * ``DeclarationNameLoc DNLoc``: Additional location and type
+    information for the ``NamedDecl::Name`` field.  For example, if this
+    function is a conversion operator like ``operator int** ()``, then
+    ``DNLoc`` has details about where and how ``int**`` was described,
+    although interpreting those details requires the name itself; see
+    the ``getNameInfo()`` method.
+
+
+``ParmVarDecl``
+---------------
+
+A ``ParmVarDecl`` is a declaration of a function parameter.  For the
+purpose of this document, the most important thing is its
+``ValueDecl::DeclType`` can be or refer to a ``TemplateTypeParmType``.
+
+``ParmVarDecl`` has this inheritance diagram::
+
+    Class Name                 Header          Novel?
+    -------------------------  --------------  ------------
+    ParmVarDecl                Decl.h          yes
+      VarDecl                  Decl.h          yes
+        DeclaratorDecl         Decl.h          no
+          ValueDecl            Decl.h          contextually
+            NamedDecl          Decl.h          no
+              Decl             DeclBase.h      no
+        Redeclarable<VarDecl>  Redeclarable.h  no
+
+Its fields are:
+
+* Those from ``DeclaratorDecl``, ``ValueDecl``, ``NamedDecl``,
+  ``Decl``, and ``Redeclarable``, discussed above.  With respect to
+  templates, the main notable thing is that ``ValueDecl::DeclType`` is a
+  ``TemplateTypeParmType`` in the ``identity`` function template example
+  under consideration.
+
+* From ``VarDecl``:
+
+  * ``PointerUnion<Stmt *, EvaluatedStmt *> Init``: Pointer to
+    the initializer or default argument.  The details are orthogonal to
+    templates, so omitted here.
+
+  * ``VarDeclBits``: Describes storage class and initialization syntax,
+    neither of which is particularly relevant for templates.
+
+  * ``ParmVarDeclBitFields``: Most of the values are not related to
+    templates, but one is:
+
+    * ``unsigned DefaultArgKind : 2``: A value of an enumeration, also
+      called ``DefaultArgKind``.  One of the possibilities is
+      ``DAK_Uninstantiated``, which signifies a default argument whose
+      instantiation has been delayed.  This is used for tricky cases
+      like a lambda with a default argument that is itself a lambda with
+      dependent type, all inside a template.  Since it involves lambda,
+      further details are outside the current scope of this document.
+
+* From ``ParmVarDecl``:
+
+  * ``ParmVarDeclBits``: A set of flags and small fields, none of which
+    is directly relevant to templates.
+
+.. comment: Sema::SubstParmVarDecl() has an example of DAK_Uninstantiated.
+
+
+Diagram: Function template: Definition
+--------------------------------------
+
+The following diagram shows the AST objects involved in representing a
+single function template:
+
+.. image:: ASTsForTemplatesImages/ft-defn.ded.png
+
+In this diagram, and all that follow, the peach-colored node is the most
+important, "focus" node.  Here, it is the ``FunctionTemplateDecl 14``
+node corresponding to the template declaration.  (The numbers in the box
+titles are arbitrary, being artifacts of the process by which the
+diagram was created.)
+
+Observations:
+
+* The ``TypedefDecl`` shown at the top is first of several implicitly
+  defined typedefs that appear at the start of every translation unit.
+  Their ``NextInContext`` chain ends with ``FunctionTemplateDecl 14``.
+
+* ``FunctionTemplateDecl 14`` and ``FunctionDecl 17`` point to each
+  other.
+
+* ``FunctionDecl 17`` has a pointer to the ``Body`` that gives the
+  definition of the behavior of the function, which in this case is a
+  templated "pattern" to instantiate.  In this and subsequent diagrams,
+  nodes in the ``Stmt`` hierarchy (which includes ``Expr``) are colored
+  purple to visually distinguish them from the gray used for ``Decl``
+  nodes (and decl-associated nodes like ``Common``).
+
+* There are no specializations in ``FunctionTemplateDecl::Common 25``.
+
+* ``TemplateTypeParmDecl 15`` uses the template\ **d** function as its
+  ``DeclContext``.
+
+
+Function template instantiation
+-------------------------------
+
+Let's now add a use of the ``identity`` template that will induce it to
+be instantiated:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T t)
+    {
+      return t;
+    }
+
+    int caller(int x)
+    {
+      return identity(x);
+    }
+
+Now dumping its AST:
+
+.. code-block:: text
+
+    $ clang -Xclang -ast-dump -fsyntax-only test.cc
+    TranslationUnitDecl 0x560469a80ba8 <<invalid sloc>> <invalid sloc>
+    | [...]
+    |-FunctionTemplateDecl 0x560469ac7cb0 <test.cc:1:1, line:5:1> line:2:3 identity
+    | |-TemplateTypeParmDecl 0x560469ac7a40 <line:1:11, col:17> col:17 referenced class depth 0 index 0 T
+    | |-FunctionDecl 0x560469ac7c08 <line:2:1, line:5:1> line:2:3 identity 'T (T)'
+    | | |-ParmVarDecl 0x560469ac7b10 <col:12, col:14> col:14 referenced t 'T'
+    | | `-CompoundStmt 0x560469ac7e00 <line:3:1, line:5:1>
+    | |   `-ReturnStmt 0x560469ac7df0 <line:4:3, col:10>
+    | |     `-DeclRefExpr 0x560469ac7dd0 <col:10> 'T' lvalue ParmVar 0x560469ac7b10 't' 'T'
+    | `-FunctionDecl 0x560469ac8178 <line:2:1, line:5:1> line:2:3 used identity 'int (int)'
+    |   |-TemplateArgument type 'int'
+    |   | `-BuiltinType 0x560469a80cb0 'int'
+    |   |-ParmVarDecl 0x560469ac80b8 <col:12, col:14> col:14 used t 'int':'int'
+    |   `-CompoundStmt 0x560469ac83d0 <line:3:1, line:5:1>
+    |     `-ReturnStmt 0x560469ac83c0 <line:4:3, col:10>
+    |       `-ImplicitCastExpr 0x560469ac83a8 <col:10> 'int':'int' <LValueToRValue>
+    |         `-DeclRefExpr 0x560469ac8388 <col:10> 'int':'int' lvalue ParmVar 0x560469ac80b8 't' 'int':'int'
+    `-FunctionDecl 0x560469ac7f00 <line:7:1, line:10:1> line:7:5 caller 'int (int)'
+      |-ParmVarDecl 0x560469ac7e30 <col:12, col:16> col:16 used x 'int'
+      `-CompoundStmt 0x560469ac8370 <line:8:1, line:10:1>
+        `-ReturnStmt 0x560469ac8360 <line:9:3, col:20>
+          `-CallExpr 0x560469ac8320 <col:10, col:20> 'int':'int'
+            |-ImplicitCastExpr 0x560469ac8308 <col:10> 'int (*)(int)' <FunctionToPointerDecay>
+            | `-DeclRefExpr 0x560469ac8280 <col:10> 'int (int)' lvalue Function 0x560469ac8178 'identity' 'int (int)' (FunctionTemplate 0x560469ac7cb0 'identity')
+            `-ImplicitCastExpr 0x560469ac8348 <col:19> 'int' <LValueToRValue>
+              `-DeclRefExpr 0x560469ac7ff8 <col:19> 'int' lvalue ParmVar 0x560469ac7e30 'x' 'int'
+
+The ``FunctionTemplateDecl`` has the same structure as before, except
+that it has a second ``FunctionDecl`` child with type ``int (int)``.
+We also have a ``FunctionDecl`` for ``caller``.
+
+
+``DeclRefExpr`` pointing at an instantiation
+--------------------------------------------
+
+A ``DeclRefExpr`` is an expression that refers to a declaration,
+typically a variable or function parameter.  Within ``caller``, there is
+a ``DeclRefExpr`` representing the ``identity`` expression of the
+``identity(x)`` call site.  In this case, there are two notable fields
+relevant to templates:
+
+* ``ValueDecl *DeclRefExpr::D``: The primary declaration that this node
+  references, ``D`` points at the *instantiated* ``FunctionDecl``.
+
+* ``NamedDecl *DeclRefExpr::FoundDecl``, physically part of a
+  ``TrailingObjects`` base class: The declaration found during name
+  lookup, when different from ``D``.  Its presence is indicated by
+  ``DeclRefExprBits.HasFoundDecl`` being true.  Here, ``FoundDecl``
+  points at the ``FunctionTemplateDecl``.
+
+Aside from this node, the rest of ``caller`` is not affected by the use
+of templates.
+
+
+``FunctionTemplateSpecializationInfo``
+--------------------------------------
+
+Although it is not shown in the AST dump, the there is an important node
+sitting between the ``FunctionTemplateDecl`` and the instantiation
+``FunctionDecl``, namely the ``FunctionTemplateSpecializationInfo``
+(FTSI).  It is an element of the
+``RedeclarableTemplateDecl::Specializations`` set, which itself is
+stored in the ``Common`` node shared by all redeclarations of the
+template.
+
+The FTSI acts as a parent node of a ``FunctionDecl`` that is a
+specialization of a template; there is one FTSI record for each
+specialization of a given function template in the translation unit.  It
+contains these fields:
+
+* ``void *FoldingSetNode::NextInFoldingSetBucket``:
+  The pointer that allows this FTSI to be stored in the
+  ``Specializations`` data structure.  The fact that this pointer is
+  stored in the FTSI means a given FTSI can only be in one such
+  container, and thus FTSI can be logically regarded as a child node of
+  ``Common``.  (But note that a specialization ``FunctionDecl`` also
+  points at its associated FTSI, so it is not entirely encapsulated.)
+
+* ``PointerIntPair<FunctionDecl *, 1, bool> Function``:
+  A pointer to the specialization, along with a ``bool`` that is true
+  if this is a "member specialization", meaning the optional
+  ``MemberSpecializationInfo*`` trailing object is present.
+
+* ``PointerIntPair<FunctionTemplateDecl *, 2> Template``:
+  A pointer to the template, along with the
+  ``TemplateSpecializationKind``, which distinguishes explicit from
+  implicit specializations, and among the latter, whether the
+  instantiation was implicit, explicit as a declaration (meaning no
+  definition is synthesized for this TU), or explicit as a definition.
+
+* ``const TemplateArgumentList *TemplateArguments``: Pointer to the
+  template arguments, which act as the name of this specialization in
+  the context of its template.
+
+* ``const ASTTemplateArgumentListInfo *TemplateArgumentsAsWritten``:
+  Optional pointer to template argument syntax.
+
+* ``SourceLocation PointOfInstantiation``:
+  The point at which this function template specialization was
+  first instantiated.
+
+* Optional trailing object ``MemberSpecializationInfo *``:
+  When present in an FTSI, this is an explicit specialization that arose
+  via member specialization, and the ``MemberSpecializationInfo`` record
+  has the details of the member specialization. See
+  `Diagram: Class template contains function template: Class scope specialization`_
+  for an example.
+
+
+The instantiation ``FunctionDecl``
+----------------------------------
+
+In most respects, the instantiated ``FunctionDecl`` looks just like an
+ordinary, directly written function definition.  However, its
+``FunctionDecl::TemplateOrSpecialization`` field (which, recall, is a
+pointer union) contains a ``FunctionTemplateSpecializationInfo*`` that
+points at the FTSI describing this specialization.
+
+Thus, the procedure for finding this specialization is to first find its
+``FunctionTemplateDecl``, then look up the template argument list
+``<int>`` among its ``Common->Specializations`` to get the FTSI, and
+finally follow the FTSI's ``Function`` pointer.
+
+To reverse the procedure, one follows the FTSI pointer stored in
+``FunctionDecl``, then the ``Template`` pointer of FTSI.
+
+
+Diagram: Function template: Instantiation
+-----------------------------------------
+
+The following diagram shows the major objects involved in representing a
+function that has been implicitly instantiated:
+
+.. image:: ASTsForTemplatesImages/ft-inst.ded.png
+
+In this diagram, all of the pointers related to scoping and lookup have
+been removed in order to focus on the template relationships.
+
+The essence of this diagram is the three objects in the middle:
+``Common``, FTSI, and ``FunctionDecl``.  ``Common`` has the list of all
+specializations, and the FTSI/``FunctionDecl`` pair represent one such
+specialization.
+
+The ``DeclRefExpr`` that caused the instantiation is shown, with its two
+pointers, one to the found template definition and the other to the
+resulting instantiated definition.
+
+
+Diagram: Ordinary class contains function template: Definition
+--------------------------------------------------------------
+
+A method of a non-templated class can be templated:
+
+.. code-block:: c++
+
+    struct S {
+      template <class T>
+      T identity(T t)
+      {
+        return t;
+      }
+    };
+
+The object interaction diagram is similar to the case for a global
+function template:
+
+.. image:: ASTsForTemplatesImages/oc-cont-ft-defn.ded.png
+
+The changes from the function template case are:
+
+* A ``CXXRecordDecl`` now plays the role of the declaration context for
+  the template and its templated declaration, instead of the
+  ``TranslationUnitDecl``.  The declaration child list, implemented with
+  ``FirstDecl``, ``NextInContext``, and ``LastDecl``, contains the class
+  members.  The role of ``CXXRecordDecl::TemplateOrInstantiation`` will
+  be discussed below, but here it is simply ``nullptr`` because this
+  class is neither templated nor a specialization.
+
+* The ``CXXRecordDecl`` has an associated ``DefinitionData`` structure.
+  All redeclarations of a given class share the same ``DefinitionData``
+  instance (or are all ``nullptr`` if there is no definition), and
+  ``DefinitionData::Definition`` points back to a particular
+  ``CXXRecordDecl``.  However, ``DefinitionData`` doesn't have anything
+  relevant to templates except for the relatively obscure
+  ``LambdaDefinitionData::DependencyKind``, so we will mostly ignore the
+  contents of ``DefinitionData`` in this document.
+
+* The first member is another ``CXXRecordDecl``.  This represents the
+  "injected class name".  For class templates, this is plays an
+  important role because it is the reason one can write ``C`` instead of
+  ``C<T>`` to name the templated class type while within its scope.
+  However, for a class that merely contains a method template, the
+  injected class name works the same as for a class without any
+  templates.
+
+* The templated entity is now a ``CXXMethodDecl`` instead of a
+  ``FunctionDecl``.  However, ``CXXMethodDecl`` does not add any new
+  data, and the bits of ``FunctionDeclBitfields`` that pertain
+  exclusively to methods (such as ``IsVirtualAsWritten``) are orthogonal
+  to template concerns.  Method templates use the same data structures
+  as function templates.
+
+Thus, we can safely understand this case as being essentially the same
+as the function template case, just in a different scope.  Even when the
+method template is instantiated, there are no new features.
+
+
+Class templates
+===============
+
+We'll start with a simple example of a class template by itself, with
+no methods:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      T data;
+      S *ptr1;
+      S<T> *ptr2;
+    };
+
+The AST dump looks like::
+
+    TranslationUnitDecl 0x55980437cc78 <<invalid sloc>> <invalid sloc>
+    | [...]
+    `-ClassTemplateDecl 0x5598043c9298 <tmp.cc:7:1, line:12:1> line:8:8 S
+      |-TemplateTypeParmDecl 0x5598043c9120 <line:7:11, col:17> col:17 referenced class depth 0 index 0 T
+      `-CXXRecordDecl 0x5598043c91e8 <line:8:1, line:12:1> line:8:8 struct S definition
+        |-DefinitionData aggregate standard_layout trivially_copyable trivial
+        | |-DefaultConstructor exists trivial needs_implicit
+        | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
+        | |-MoveConstructor exists simple trivial needs_implicit
+        | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
+        | |-MoveAssignment exists simple trivial needs_implicit
+        | `-Destructor simple irrelevant trivial constexpr needs_implicit
+        |-CXXRecordDecl 0x5598043c9508 <col:1, col:8> col:8 implicit referenced struct S
+        |-FieldDecl 0x5598043c95c8 <line:9:3, col:5> col:5 data 'T'
+        |-FieldDecl 0x5598043c96c8 <line:10:3, col:6> col:6 ptr1 'S<T> *'
+        `-FieldDecl 0x5598043c9818 <line:11:3, col:9> col:9 ptr2 'S<T> *'
+
+We have a ``ClassTemplateDecl`` on the outside and a templated
+``CXXRecordDecl`` on the inside, similar to the ``FunctionTemplateDecl``
+and ``FunctionDecl`` pair.  Additionally, we have some ``FieldDecl``\ s
+with interesting types.
+
+
+``ClassTemplateDecl``
+---------------------
+
+At a high level, ``ClassTemplateDecl`` has four key pieces of data:
+
+* A template parameter list.
+* A pointer to the templated ``CXXRecordDecl``.
+* A set of (full) specializations.
+* A set of partial specializations, a feature that function templates
+  lack.
+
+``ClassTemplateDecl`` has the following inheritance hierarchy::
+
+    Class Name                                  Header          Novel?
+    ------------------------------------------  --------------  ------------
+    ClassTemplateDecl                           DeclTemplate.h  yes
+      RedeclarableTemplateDecl                  DeclTemplate.h  contextually
+        TemplateDecl                            DeclTemplate.h  contextually
+          NamedDecl                             Decl.h          no
+            Decl                                DeclBase.h      no
+        Redeclarable<RedeclarableTemplateDecl>  Redeclarable.h  no
+
+All of the base classes have been described above, and the descriptions
+apply here too, except:
+
+* ``NamedDecl *TemplateDecl::TemplatedDecl`` points to a
+  ``CXXRecordDecl`` (instead of a ``FunctionDecl``).
+
+* ``CommonBase *RedeclarableTemplateDecl::Common`` points to a
+  ``ClassTemplateDecl::Common`` (instead of a
+  ``FunctionTemplateDecl::Common``).
+
+``ClassTemplateDecl`` does not directly add any data fields.
+However, it declares ``ClassTemplateDecl::Common`` as an extension of
+``RedeclarableTemplateDecl::CommonBase``, adding these fields:
+
+* ``FoldingSetVector<ClassTemplateSpecializationDecl> Specializations``:
+  Set of full specializations, both implicit and explicit.
+
+* ``FoldingSetVector<ClassTemplatePartialSpecializationDecl> PartialSpecializations``:
+  Set of partial specializations (which are always explicit).
+
+* ``QualType InjectedClassNameType``:
+  The type of the
+  `injected-class-name <https://wg21.link/class.pre#2>`_
+  for this class template.
+
+The ``Common::Specializations`` field is approximately analogous to the
+``Specializations`` field in ``FunctionTemplateDecl::Common``.  However,
+while the latter points to an intermediate
+``FunctionTemplateSpecializationInfo`` (FTSI) node that in turn points
+at the specialization ``FunctionDecl``, for classes, the
+``Specializations`` set directly contains the
+``ClassTemplateSpecializationDecl`` nodes.
+
+* Design rationale: The reason for this difference is that
+  ``FunctionDecl`` has a subclass hierarchy for various kinds of methods
+  that is orthogonal to template-ness, so we cannot subclass it to
+  represent template specializations (without creating an "inheritance
+  diamond problem"), and therefore use a separate auxiliary structure
+  (the FTSI) to store the data related to specialization.  But, in a
+  universe without templates, ``CXXRecordDecl`` does not have any
+  subclasses, so we can represent specializations by subclassing.
+
+``Common::InjectedClassNameType`` is a ``TemplateSpecializationType``
+whose ``Template`` member refers to the canonical ``ClassTemplateDecl``.
+Note the difference between ``InjectedClassNameType`` (ICNT) and
+``TemplateSpecializationType`` (TST): An ICNT is syntactically denoted
+``C``, while a TST is denoted ``C<T>``.  The ICNT is specifically a
+short alias for a TST, usable only within the scope of the template,
+somewhat like writing ``typedef C<T> C;`` as a member declaration (if
+that was legal).
+
+Furthermore, the templated ``CXXRecordDecl`` has as its
+``Type *TypeDecl::TypeForDecl`` an ``InjectedClassNameType`` whose
+``InjectedType`` is the same as ``Common::InjectedClassNameType``.
+
+
+``CXXRecordDecl``
+-----------------
+
+A ``CXXRecordDecl`` declares or defines a C++ ``class`` or ``struct`` or
+``union``.  With respect to templates, ``CXXRecordDecl`` plays the same
+three basic roles that ``FunctionDecl`` did:
+
+* The templated class of a class template declaration.
+
+* A specialization, whether implicit, explicit, or partial.  In these
+  cases, the ``CXXRecordDecl`` object is a base class subobject of
+  a ``ClassTemplateSpecializationDecl`` or
+  ``ClassTemplatePartialSpecializationDecl``.
+
+* A member specialization, as a member of an instantiation of an outer
+  class template.
+
+``CXXRecordDecl`` is also used to represent the injected-class-name
+inside the class, although that mechanism is mostly orthogonal to
+templates.
+
+``CXXRecordDecl`` has the following inheritance hierarchy::
+
+    Class Name                   Header          Novel?
+    ---------------------------  --------------  ------------
+    CXXRecordDecl                DeclCXX.h       yes
+      RecordDecl                 Decl.h          yes
+        TagDecl                  Decl.h          yes
+          TypeDecl               Decl.h          contextually
+            NamedDecl            Decl.h          no
+              Decl               DeclBase.h      no
+          DeclContext            DeclBase.h      contextually
+          Redeclarable<TagDecl>  Redeclarable.h  no
+
+Whenever we have a defined (possibly templated) class, there are always
+two ``CXXRecordDecl`` objects at hand.  One is the real definition,
+recognizable as having ``TagDecl::TagDeclBits.IsCompleteDefinition``,
+and the other is the injected-class-name, recognizable as *not* having
+``IsCompleteDefinition``, and instead having ``Decl::Implicit``.
+(``RecordDecl::isInjectedClassName()`` checks a few other things, but
+those are the key bits.)  The descriptions below apply to both of these
+objects except where indicated.
+
+Be aware that even though it has the same ``TypeForDecl`` (as explained
+below), the injected-class-name is *not* considered a redeclaration of
+the definition ``CXXRecordDecl``.  Again, it's more like a ``typedef``
+that aliases the class, rather than a redeclaration of it.  Since there
+is no syntax to do so, the injected-class-name never has any
+redeclarations (other than itself).
+
+The novel fields (and novel meanings of fields for this context) of
+``CXXRecordDecl`` are:
+
+* From ``TypeDecl``:
+
+  * ``Type *TypeForDecl``: For a non-templated class, ``TypeForDecl`` is
+    a ``RecordType`` pointing back at that class.  But for a templated
+    class, on both the definition object and the injected-name-object,
+    ``TypeForDecl`` is an ``InjectedClassNameType`` with fields
+    that name the templated class, its enclosing template, and template
+    arguments for all parameters:
+
+    * ``CXXRecordDecl *Decl``: Pointer to the templated
+      ``CXXRecordDecl``.
+
+    * ``QualType InjectedType``: A ``TemplateSpecializationType``
+      with fields:
+
+      * ``TemplateName Template``: A name with kind ``Template`` that
+        points at the enclosing ``ClassTemplateDecl``.
+
+      * Trailing ``TemplateArguments`` objects formed by converting each
+        template parameter into a template argument naming that
+        parameter.
+
+  * ``SourceLocation LocStart``: The location of the keyword that
+    introduced the type, such as ``class`` or ``struct``.
+
+* From ``DeclContext``:
+
+  * ``StoredDeclsMap *LookupPtr``:
+    Map for looking up structure members by name.  The definition
+    ``CXXRecordDecl`` always has at least the injected-class-name in the
+    map (and member list).  The injected-class-name object has
+    ``nullptr``.
+
+  * ``Decl *FirstDecl``, ``Decl *LastDecl``:
+    For a ``RecordDecl``, these point to the first and last members of
+    the structure.  The members' ``Decl::NextInContext`` pointers form a
+    linked list containing all of the members.
+
+* From ``TagDecl``:
+
+  * ``TagDeclBitfields TagDeclBits``:
+
+    * ``TagTypeKind TagDeclKind``: The keyword that introduced the type,
+      such as ``struct`` or ``union``.
+
+    * ``bool IsCompleteDefinition``: True for the declaration that also
+      is a definition.  False for the injected-class-name.
+
+    * Several other flags that are orthogonal to templates.
+
+  * ``SourceRange BraceRange``: If this is a definition, this range
+    goes from the opening brace to the closing brace.  Otherwise it is
+    invalid.
+
+  * ``PointerUnion<TypedefNameDecl *, ExtInfo *> TypedefNameDeclOrQualifier``:
+    Cases:
+
+    * ``TypedefNameDecl *``: Used for name mangling of a
+      ``CXXRecordDecl`` when the class is anonymous.  This is case not
+      relevant to templates because templates cannot be anonymous.
+
+    * ``ExtInfo *``, where ``ExtInfo`` is an alias for ``QualifierInfo``:
+      Used for definitions of class members (that are themselves
+      classes) appearing outside their parent class body.  The details
+      are discussed above, under `FunctionDecl`_.
+
+    * ``nullptr``: Used in the common case where neither of the
+      preceding apply.  The injected-class-name always has ``nullptr``.
+
+* From ``RecordDecl``:
+
+  * ``RecordDeclBitfields RecordDeclBits``:
+    Several flags, all of which are orthogonal to templates.
+
+* From ``CXXRecordDecl``:
+
+  * ``struct DefinitionData *DefinitionData``: Pointer to data that
+    describes the definition, or ``nullptr`` if there is no definition
+    (and for the injected-class-name).  All redeclarations of the same
+    class share a single ``DefinitionData``.  It has these data members:
+
+    * A large number of flags declared in
+      ``CXXRecordDeclDefinitionBits.def``, all of which are orthogonal
+      to templates.  These flags generally indicate which optional
+      features are present in the class, like private fields or a
+      user-defined destructor.
+
+    * The sets of base classes and conversion functions, which are also
+      orthogonal to templates, except that we must be mindful of the
+      possibility that they contain dependent types.
+
+    * A few other miscellaneous bits, like ``ODRHash`` and
+      ``FirstFriend``, that are orthogonal to templates.
+
+    * ``CXXRecordDecl *Definition``:
+      Pointer to the definition syntax among the set of redeclarations
+      of this (possibly templated) class.
+      ``Definition->TagDeclBits.IsCompleteDefinition`` is ``true``.
+
+  * In the case that this class represents a lambda, the
+    ``DefinitionData`` is actually the ``LambdaDefinitionData``
+    subclass.  This subclass has:
+
+    * ``LambdaDependencyKind DependencyKind``:
+      From among {always, never, unknown}, this indicates whether the
+      lambda is dependent despite appearing in a non-dependent
+      context.  See the documentation for
+      ``CXXRecordDecl::isDependentLambda()`` for more information.  The
+      case where this matters is fairly obscure, so won't be further
+      considered in this document.
+
+    * ``bool IsGenericLambda``:
+      When true, the class is a generic lambda (C++20 7.5.5p5).  The
+      class itself is not templated, but its ``operator()`` is.
+
+    * Other fields that are orthogonal to templates, with the caveat
+      that where types appear, they could be dependent (for example, in
+      ``TypeSourceInfo *MethodTyInfo``).
+
+  * ``PointerUnion<...> TemplateOrInstantiation``:
+    This is the most important template-related field in
+    ``CXXRecordDecl``.  It has these cases:
+
+    * ``ClassTemplateDecl *``: This is a templated class, and the
+      pointer refers to the enclosing template declaration.  The
+      injected-class-name *also* points to the enclosing template
+      declaration.
+
+    * ``MemberSpecializationInfo *``:
+      For a member specialization of a member of a template class, the
+      corresponding `MemberSpecializationInfo`_ details.
+
+    * ``nullptr``: Neither of the above apply.
+
+
+``FieldDecl``
+-------------
+
+In a template context, what is interesting about a ``FieldDecl`` is its
+``ValueDecl::DeclType`` field, which specifies the type, potentially in
+terms of ``TemplateTypeParmType`` and ``InjectedClassNameType`` nodes.
+
+The inheritance hierarchy for ``FieldDecl`` is::
+
+    Class Name              Header          Novel?
+    ----------------------  -------         ------------
+    FieldDecl               Decl.h          yes
+      DeclaratorDecl        Decl.h          no
+        ValueDecl           Decl.h          contextually
+          NamedDecl         Decl.h          no
+            Decl            DeclBase.h      no
+      Mergeable<FieldDecl>  Redeclarable.h  yes
+
+The novel fields and interpretations in the context of a ``FieldDecl``
+inside a class template are:
+
+* From ``ValueDecl``:
+
+  * ``QualType DeclType``:
+    The field type.  In our example, we have three cases:
+
+    * Type written ``T``, as for ``data``:
+      This is a ``TemplateTypeParmType`` whose ``TTPDecl`` field points
+      at the ``TemplateTypeParmDecl`` in the template parameter list.
+
+    * Type written ``S``, as for ``ptr1``:
+      This is an ``ElaboratedType`` that points at an
+      ``InjectedClassNameType`` that points at a
+      ``TemplateSpecializationType``.  The ``InjectedClassNameType::Decl``
+      field points at the definition (outer) ``CXXRecordDecl``, while
+      the ``TemplateSpecializationType::Template`` field points at
+      the ``ClassTemplateDecl``.  The ``TemplateSpecializationType``
+      is the most general way of naming the type, while the
+      ``InjectedClassNameType`` is the convenience alias for use within
+      the class.
+
+    * Type written ``S<T>``, as for ``ptr2``:
+      This is again an ``ElaboratedType``, but now it points directly to
+      the ``TemplateSpecializationType`` because the convenience alias
+      has been bypassed.
+
+* From ``Mergeable``:
+
+  * This is just a marker interface class without any data.
+
+* From ``FieldDecl``:
+
+  * Everything in ``FieldDecl`` itself is orthogonal to templates, and
+    not interesting to examine in that context, so omitted here.
+
+The key idea here, applicable to all class members (not just
+``FieldDecl``, which is merely representative), is that, within a class
+template, the template parameters are in scope as types, as is the class
+itself, which can be named in two different (but semantically
+equivalent) ways.
+
+
+Canonical ``TemplateTypeParmType``
+----------------------------------
+
+As explained above, the type of the ``data`` field within the template
+is a ``TemplateTypeParmType`` whose ``TTPDecl`` field points at the
+``TemplateTypeParmDecl`` node at the top of the template declaration.
+But this type node is not *canonical*, because semantically the
+same type can be introduced again, potentially with a different name.
+
+Consider this example:
+
+.. code-block:: c++
+
+    template <class T1, class U1>
+    struct S {
+      int f(T1 t1, U1 u1);             // Overload #1
+      int f(U1 u1, T1 t1);             // Overload #2
+    };
+
+    template <class T2, class U2>
+    int S<T2,U2>::f(T2 t2, U2 u2)      // Overload #1
+    {
+      return (int)sizeof(t2) - (int)sizeof(u2);
+    }
+
+    template <class T3, class U3>
+    int S<T3,U3>::f(U3 u3, T3 t3)      // Overload #2
+    {
+      return (int)sizeof(u3) - (int)sizeof(t3);
+    }
+
+The compiler has to be able to associate each definition with its
+corresponding declaration despite none of the parameter names matching.
+This motivates the introduction of a second variant of
+``TemplateTypeParmType``, one that is by construction canonical, known
+by the abbreviation ``CanTTPT``.
+
+Rather than refer to a particular syntactic declaration of
+a template parameter, a ``CanTTPT`` uses a (depth, index) numbering
+scheme, where the depth indicates how many templates the parameter of
+interest is nested inside, and the index is the parameter's index within
+the parameter list at the desired depth.
+
+In the above example, ``T1``, ``T2``, and ``T3`` all use
+``CanTTPT(0,0)`` as their canonical type (which
+``QualType::getAsString()`` renders as ``type-parameter-0-0``), while
+``U1``, ``U2``, and ``U3`` all use ``CanTTPT(0,1)``.
+
+
+Diagram: Class template: Definition
+-----------------------------------
+
+Let's now diagram the AST relationships for the example with a single
+class template, first focusing on the ``Decl`` objects:
+
+.. image:: ASTsForTemplatesImages/ct-defn.ded.png
+
+The most essential observations are:
+
+* We have both a ``ClassTemplateDecl`` and a (definition)
+  ``CXXRecordDecl`` that point at each other.
+
+* The template declaration has a ``Common`` object that, in this
+  example, has no ``Specializations``.
+
+* This class template is represented in the type system as either a
+  ``TemplateSpecializationType`` or as its alias,
+  ``InjectedClassNameType`` (which points at the TST).
+
+This diagram focuses on the relationships among the ``Type`` objects:
+
+.. image:: ASTsForTemplatesImages/ct-defn-types.ded.png
+
+The green boxes are ``Type`` nodes.  Lighter green means the ``Type`` is
+canonical.
+
+The main thing to observe is the parallel structure between the
+non-canonical types, which use user-defined names for template
+parameters, and canonical types, which exclusively use the depth/index
+scheme for template parameters.
+
+
+Class template instantiation
+----------------------------
+
+Now let's look at an instantiation of a class template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      T data;
+      S *ptr1;
+      S<T> *ptr2;
+    };
+
+    S<int> s;       // Implicit instantiation of S.
+
+The AST key parts of the dump are::
+
+    TranslationUnitDecl 0x55b01971ac78 <<invalid sloc>> <invalid sloc>
+    | [...]
+    |-ClassTemplateDecl 0x55b0197671c8 <tmp.cc:1:1, line:6:1> line:2:8 S
+    | |-TemplateTypeParmDecl 0x55b019767050 <line:1:11, col:17> col:17 referenced class depth 0 index 0 T
+    | |-CXXRecordDecl 0x55b019767118 <line:2:1, line:6:1> line:2:8 struct S definition
+    | | |-DefinitionData aggregate standard_layout trivially_copyable trivial
+    | | | `-[...]
+    | | |-CXXRecordDecl 0x55b019767438 <col:1, col:8> col:8 implicit referenced struct S
+    | | |-FieldDecl 0x55b0197674f8 <line:3:3, col:5> col:5 data 'T'
+    | | |-FieldDecl 0x55b0197675f8 <line:4:3, col:6> col:6 ptr1 'S<T> *'
+    | | `-FieldDecl 0x55b019767748 <line:5:3, col:9> col:9 ptr2 'S<T> *'
+    | `-ClassTemplateSpecializationDecl 0x55b0197677d0 <line:1:1, line:6:1> line:2:8 struct S definition
+    |   |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor
+    |   | `-[...]
+    |   |-TemplateArgument type 'int'
+    |   | `-BuiltinType 0x55b01971ad80 'int'
+    |   |-CXXRecordDecl 0x55b019767ad0 <col:1, col:8> col:8 implicit struct S
+    |   |-FieldDecl 0x55b019767bc0 <line:3:3, col:5> col:5 data 'int':'int'
+    |   |-FieldDecl 0x55b019767cb8 <line:4:3, col:6> col:6 ptr1 'S<int> *'
+    |   |-FieldDecl 0x55b019767de8 <line:5:3, col:9> col:9 ptr2 'S<int> *'
+    |   |-CXXConstructorDecl 0x55b019786698 <line:2:8> col:8 implicit used constexpr S 'void () noexcept' inline default trivial
+    |   | `-CompoundStmt 0x55b019786bf8 <col:8>
+    |   |-CXXConstructorDecl 0x55b019786810 <col:8> col:8 implicit constexpr S 'void (const S<int> &)' inline default trivial noexcept-unevaluated 0x55b019786810
+    |   | `-ParmVarDecl 0x55b019786930 <col:8> col:8 'const S<int> &'
+    |   `-CXXConstructorDecl 0x55b019786a10 <col:8> col:8 implicit constexpr S 'void (S<int> &&)' inline default trivial noexcept-unevaluated 0x55b019786a10
+    |     `-ParmVarDecl 0x55b019786b30 <col:8> col:8 'S<int> &&'
+    `-VarDecl 0x55b0197679a8 <line:8:1, col:8> col:8 s 'S<int>':'S<int>' callinit
+      `-CXXConstructExpr 0x55b019786d10 <col:8> 'S<int>':'S<int>' 'void () noexcept'
+
+The original ``ClassTemplateDecl`` is still there, but now it has a
+``ClassTemplateSpecializationDecl`` child, which is the instantiation.
+The instantiation has the same constituents as the templated
+``CXXRecordDecl``, plus three implicitly-defined ``CXXConstructorDecl``
+nodes.  Finally there is the ``VarDecl`` that caused the instantiation.
+
+We'll look at each of these in turn.
+
+
+``ClassTemplateSpecializationDecl``
+-----------------------------------
+
+A ``ClassTemplateSpecializationDecl`` has four main pieces:
+
+* A class declaration, as an embedded ``CXXRecordDecl`` subobject.
+
+* A pointer to the primary class template it specializes.
+
+* The template arguments that identify the specialization in the context
+  of the primary.
+
+* For the case of an instantiation of a partial specialization, a
+  pointer to the partial and the arguments that apply to that partial.
+
+The inheritance hierarchy for ``ClassTemplateSpecializationDecl`` is::
+
+    Class Name                       Header          Novel?
+    -------------------------------  --------------  ------------
+    ClassTemplateSpecializationDecl  DeclTemplate.h  yes
+      CXXRecordDecl                  DeclCXX.h       contextually
+        RecordDecl                   Decl.h          no
+          TagDecl                    Decl.h          no
+            TypeDecl                 Decl.h          contextually
+              NamedDecl              Decl.h          no
+                Decl                 DeclBase.h      no
+            DeclContext              DeclBase.h      no
+            Redeclarable<TagDecl>    Redeclarable.h  no
+      FoldingSetNode                 FoldingSet.h    yes
+
+``ClassTemplateSpecializationDecl`` represents (as the name suggests) a
+specialization of a class template, either explicit or implicit.  It
+inherits ``CXXRecordDecl``, so can be treated like a class in its own
+right.  It has these novel fields or interpretations:
+
+* From base ``CXXRecordDecl``:
+
+  * ``PointerUnion<...> TemplateOrInstantiation``:
+    Three cases:
+
+    * ``ClassTemplateDecl *``:
+      This is a templated class, and the pointer points to the template
+      declaration.  If this is *also* a member specialization, then the
+      ``ClassTemplateDecl`` has information about the original member.
+
+    * ``MemberSpecializationInfo *``:
+      This is a non-templated class that is a member of an instantiation
+      of a class template (that is, it is a member specialization).  The
+      MSI record points at the member of the class template that was
+      instantiated or the subject of explicit member specialization,
+      and indicates which of those it was.
+
+    * ``nullptr``:
+      None of the above applies; that is, this is not a templated class,
+      nor a member specialization of a class template member.
+
+* From base ``TypeDecl``:
+
+  * ``Type *TypeForDecl``:
+    The ``Type`` of a class template specialization, when seen "from the
+    inside" via this field, is simply a ``RecordType`` whose
+    ``TagDecl *TagType::decl`` field points at the
+    ``ClassTemplateSpecializationDecl``.  That is, from the type
+    system perspective, it's just a class.
+
+* From base ``llvm::FoldingSetNode``, which is an alias for
+  ``llvm::FoldingSetBase::Node``:
+
+  * ``void *NextInFoldingSetBucket``:
+    Analogous to
+    ``FunctionTemplateSpecializationInfo::NextInFoldingSetBucket``,
+    this pointer allows the ``ClassTemplateSpecializationDecl`` to be
+    linked into the ``ClassTemplateDecl::Common::Specializations`` set
+    carried by the template declaration.
+
+* In ``ClassTemplateSpecializationDecl`` itself:
+
+  * ``PointerUnion<...> SpecializedTemplate``:
+    Two cases:
+
+    * ``ClassTemplateDecl *``:
+      For a specialization of a primary class template, this points to
+      that primary template.
+
+    * ``SpecializedPartialSpecialization *``:
+      For an instantiation of a class template partial specialization
+      (note that explicit specialization of a partial specialization is
+      not possible; an attempt at such a thing would simply be treated
+      as an explicit specialization of the primary template), this field
+      points to a ``SpecializedPartialSpecialization`` structure that
+      has:
+
+      * ``ClassTemplatePartialSpecializationDecl *PartialSpecialization``:
+        The partial specialization that was instantiated.
+
+      * ``const TemplateArgumentList *TemplateArgs``:
+        The template arguments, corresponding to the parameters of the
+        partial specialization (not the primary), with which the partial
+        was instantiated.  There is an example below, in
+        `Diagram: Class template: Partial specialization`_.
+
+    * ``nullptr`` is *not* a possibility here.
+
+  * ``ExplicitSpecializationInfo *ExplicitInfo``:
+    For an implicit instantiation, such as in the example we are
+    currently studying, this is ``nullptr``.  For an explicit
+    specialization (including a partial specialization), or an explicit
+    instantiation, this points to an ``ExplicitSpecializationInfo``
+    structure, which contains:
+
+    * ``TypeSourceInfo *TypeAsWritten``:
+      The specialization type as written in the source code, along with
+      location information for various syntactic elements of that type
+      description.  Usually this is a ``TemplateSpecializationType``.
+
+    * ``SourceLocation ExternLoc``:
+      If this is an
+      `explicit instantiation declaration <https://wg21.link/temp.explicit#2>`_,
+      this is set to the location of the ``extern`` keyword; otherwise
+      it is invalid.
+
+    * ``SourceLocation TemplateKeywordLoc``:
+      The location of the ``template`` keyword that introduced this
+      explicit specialization or instantiation.
+
+  * ``const TemplateArgumentList *TemplateArgs``:
+    Template arguments, corresponding to the parameters of the primary
+    template, that identify this specialization in the context of that
+    primary template.
+
+  * ``SourceLocation PointOfInstantiation``:
+    The point where this template was instantiated.
+
+  * ``TemplateSpecializationKind SpecializationKind``:
+    Distinguishes explicit specialization and the various kinds of
+    instantiation.
+
+The first member of the ``ClassTemplateSpecializationDecl`` is the
+``CXXRecordDecl`` for its injected-class-name.  Like the
+``ClassTemplateSpecializationDecl``, the injected-class-name has
+``TypeDecl::TypeForDecl`` that is a ``RecordType`` pointing at the
+``ClassTemplateSpecializationDecl``.
+
+The main takeaways here are:
+
+* Within the type system, ``ClassTemplateSpecializationDecl`` is like a
+  class, and referred to using a ``RecordType`` by declarations inside
+  the class.
+
+* It is *named* by combining the name of the primary template and a
+  sequence of template arguments.  Navigating to the primary template is
+  usually direct, but goes through an auxillary structure for the case
+  of an instantiation of a partial specialization.
+
+* It is *created* either through explicit specialization or by
+  instantiation from a template (which could be the primary, or could be
+  a partial specialization).
+
+
+``FieldDecl``
+-------------
+
+Let's now revisit ``FieldDecl`` within the instantiation.  The main
+field of interest is ``QualType ValueDecl::DeclType``:
+
+* For the ``data`` member, ``DeclType`` is a
+  ``SubstTemplateTypeParmType``, which records that a particular type
+  was the result of substituting a template argument, and has several
+  fields of interest:
+
+  * ``SubstTemplateTypeParmTypeBitfields SubstTemplateTypeParmTypeBits``:
+
+    * ``bool HasNonCanonicalUnderlyingType``:
+      If true, the replacement type is non-canonical, and stored as a
+      trailing object.  Otherwise, the replacement is simply the
+      canonical type, which is stored in the
+      ``ExtQualsTypeCommonBase::CanonicalType`` field.
+
+    * ``unsigned Index``:
+      The index, within the instantiated template, of the template
+      parameter that was substituted.
+
+    * ``unsigned PackIndex``:
+      Identifies the substituted element within a parameter pack, if
+      any.  The details are, for now, outside the scope of this
+      document.
+
+  * ``Decl *AssociatedDecl``:
+    Typically, this is the instantiation created by substituting the
+    template argument for its parameter in the specialized template.
+    In this case, it points at the ``ClassTemplateSpecializationDecl``,
+    from which it is possible to navigate to the template.
+
+  * The substituted ``QualType``, stored either as a trailing object or
+    in ``ExtQualsTypeCommonBase::CanonicalType``, and available from the
+    ``getReplacementType()`` method.  The ``SubstTemplateTypeParmType``
+    is semantically an alias for the replacement type.  For our ``data``
+    member, that substituted type is the ``BuiltinType`` representing
+    ``int``.
+
+* For the ``ptr1`` member, ``DeclType`` is a ``PointerType`` whose
+  pointee is an ``ElaboratedType``, whose ``NamedType`` is a
+  ``RecordType`` pointing at the ``ClassTemplateSpecializationDecl``.
+  That is, it looks basically like an ordinary pointer to class type,
+  using the instantiation's "internal" type, albeit with the intervening
+  ``ElaboratedType`` object.
+
+* For the ``ptr2`` member, ``DeclType`` is again a ``PointerType``
+  pointing at an ``ElaboratedType``, but this time the ``NamedType``
+  points at a ``TemplateSpecializationType`` whose ``Template`` member
+  refers to the ``ClassTemplateDecl`` and has the ``<int>`` template
+  arguments.  That is, it's like the previous case, but now using the
+  "external" name.
+
+
+Diagram: Class template: Instantiation
+--------------------------------------
+
+Here is a diagram showing the key ``Decl`` objects for the class
+template instantiation example:
+
+.. image:: ASTsForTemplatesImages/ct-inst.ded.png
+
+Observations:
+
+* Instantiation put an entry into the
+  ``ClassTemplateDecl::Common::Specializations`` set associated with the
+  primary template.
+
+* The ``ClassTemplateSpecializationDecl`` object has the
+  ``TemplateArgs`` that uniquely identify it within its template.
+  It also has a pointer back to that template.
+
+* The structure of the members of the instantiation largely mirrors that
+  of the templated class.  The types of those members make use of the
+  ``SubstTemplateTypeParmType`` object, discussed above.
+
+* There is no direct link from an instantiated ``FieldDecl`` back to
+  the corresponding declaration in the templated class.  Navigating in
+  that way would require going through the
+  ``ClassTemplateSpecializationDecl`` to get to the templated class,
+  then looking up the member by its name.
+
+* The instantiation contains three implicitly generated constructors (of
+  which only one is shown in the diagram).  Because there is no
+  user-written counterpart in the template, these methods are not
+  considered instantiations of anything; instead, they are considered to
+  be ordinary, implicitly-generated members of a class that, itself,
+  happens to arise from instantiation.
+
+Here is a diagram showing the ``Type`` objects used to represent the
+types of the instantiated data members:
+
+.. image:: ASTsForTemplatesImages/ct-inst-types.ded.png
+
+This diagram omits discussion of the types of the implicitly
+generated constructors because methods will be discussed more generally
+in the next section.
+
+Observations:
+
+* Both the ``ClassTemplateSpecialization`` and the injected-class-name
+  ``CXXRecordDecl`` have a ``TypeForDecl`` that is a ``RecordType``
+  which refers back to the ``ClassTemplateSpecialization``.
+
+* The ``FieldDecl`` for ``data`` has a ``SubstTemplateTypeParmType``,
+  whose ``AssociatedDecl`` is the ``ClassTemplateSpecializationDecl``,
+  whose ``Index`` is the index of the ``T`` parameter, and whose
+  ``CanonicalType`` is the ``BuiltinType`` representing ``int``.  This
+  allows one to see that the type arose by substituting ``int`` for
+  ``T``.
+
+* The ``FieldDecl`` for ``ptr1`` makes use of an ``ElaboratedType``
+  that refers to the ``RecordType`` tied to the
+  ``ClassTemplateSpecializationDecl``.
+
+* The ``FieldDecl`` for ``ptr2`` also has an ``ElaboratedType``, but
+  that one refers to a ``TemplateSpecializationType`` representing the
+  name of the specialization from the "outside" perspective.  However,
+  it canonicalizes to the same ``RecordType`` as in the preceding case.
+
+
+Diagram: Class template contains ordinary function: Definition
+--------------------------------------------------------------
+
+Now let's look at an example of a class template with a method:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      T identity(T t)
+      {
+        return t;
+      }
+    };
+
+Here is a diagram of some of the relevant AST objects:
+
+.. image:: ASTsForTemplatesImages/ct-cont-of-defn.ded.png
+
+The main thing to note in the diagram is that its structure is very much
+like a non-template class and method, just with ``TemplateTypeParmType``
+in the place of what would otherwise be a concrete type.
+
+
+``MemberSpecializationInfo``
+----------------------------
+
+Let's consider instantiation of a member:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      T identity(T t)
+      {
+        return t;
+      }
+    };
+
+    int call(S<int> &s, int x)
+    {
+      return s.identity(x);
+    }
+
+The parameter type ``S<int>`` causes the class template data to be
+instantiated, then the call to ``identity`` causes its ``identity``
+method to also be instantiated as a *member specialization* (see the
+`Definitions of terms`_ section).
+
+When a class or function member of a class template is member
+specialized (implicitly or explicitly), the AST records the relationship
+between the specialization and the original member in a
+``MemberSpecializationInfo`` structure (declared in ``DeclTemplate.h``).
+Its fields are:
+
+* ``PointerIntPair<NamedDecl *, 2> MemberAndTSK``:
+  Two values:
+
+  * ``NamedDecl *Member``:
+    The member of the template that was specialized; never ``nullptr``.
+    The example above features an implicit specialization, but this also
+    applies to explicit member specialization, an example of which
+    is shown in
+    `Diagram: Class template contains ordinary function: Explicit member specialization`_.
+
+  * ``TemplateSpecializationKind TSK``:
+    Implicit versus explicit specialization, etc.
+
+* ``SourceLocation PointOfInstantiation``:
+  The point at which this member was first instantiated.
+  For an explicit specialization, this is invalid.
+
+A ``MemberSpecializationInfo`` can appear in these places:
+
+* Pointed to by ``FunctionDecl::TemplateOrSpecialization``:
+  For a non-templated member function of a class template instantiation,
+  it points at the corresponding original member of the class template.
+
+* As a trailing object on a ``FunctionTemplateSpecializationInfo``:
+  For a templated member function of a class template instantiation, it
+  points at the original member template.
+
+* Pointed to by ``CXXRecordDecl::TemplateOrInstantiation``:
+  For a non-templated member class of a class template instantiation,
+  this points at the corresponding original member.
+
+* Plus a couple more cases that are currently outside the scope of this
+  document.
+
+Finally, for a templated member class, the member specialization
+relationship is directly recorded in the
+``ClassTemplateDecl::InstantiatedFromMember`` field, without using any
+``MemberSpecializationInfo`` structure.
+
+
+Diagram: Class template contains ordinary function: Instantiation
+-----------------------------------------------------------------
+
+For the method instantiation example above, part of the resulting AST
+looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-of-inst.ded.png
+
+Observations:
+
+* The ``ClassTemplateDecl::Common::Specializations`` list, which before
+  was empty, now contains the ``ClassTemplateSpecializationDecl`` that
+  resulted from instantiation.
+
+* The ``ClassTemplateSpecializationDecl`` has three key elements:
+
+  * A pointer to the ``ClassTemplateDecl`` from which it was
+    instantiated.
+
+  * The template arguments used to do so.
+
+  * The fact that the specialization is implicit (i.e., this is an
+    instantiation).
+
+* The instantiated ``CXXMethodDecl`` has a pointer to a
+  ``MemberSpecializationInfo`` structure, which itself points at the
+  particular ``CXXMethodDecl`` from which the former was instantiated.
+  (Recall that, for a non-static data member, this origin information is
+  not recorded.)
+
+* An ``ImplicitCastExpr`` node is present in the instantiation that was
+  absent in the template member.  That is because, in general, implicit
+  conversions depend on the specific template argument types, so they
+  typically do not appear in dependent contexts.
+
+
+Diagram: Class template contains ordinary class: Instantiation
+--------------------------------------------------------------
+
+A class template can contain an ordinary class as a member:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      struct Inner {
+        T t;
+        float u;
+      };
+    };
+
+    Outer<int>::Inner i;
+
+The resulting object graph is:
+
+.. image:: ASTsForTemplatesImages/ct-cont-oc-inst.ded.png
+
+The main observation is that the instantiation, ``CXXRecordDecl 26``,
+has its ``MemberSpecializationInfo 57`` pointing back at the member
+class, ``CXXRecordDecl 19`` (the focus node).
+
+
+Diagram: Class template contains ordinary class: Explicit member specialization
+-------------------------------------------------------------------------------
+
+It is possible to provide an explicit member specialization for an
+ordinary class member of a class template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      struct Inner;
+    };
+
+    template <>
+    struct Outer<int>::Inner {
+      int t;
+      float u;
+    };
+
+The resulting object graph is:
+
+.. image:: ASTsForTemplatesImages/ct-cont-oc-emspec.ded.png
+
+Simply mentioning ``Outer<int>`` induces the creation of
+``CXXRecordDecl 22``.  Then, our focus node, ``CXXRecordDecl 23``,
+overrides the former's definition.
+
+
+``DependentFunctionTemplateSpecializationInfo``
+-----------------------------------------------
+
+It is possible to befriend a function template specialization where the
+argument list is dependent:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T t);
+
+    template <class T>
+    class A {
+      friend T identity<T>(T t);
+    };      // ^^^^^^^^^^^ DependentFunctionTemplateSpecializationInfo
+
+In the C++ syntax, the template arguments can be fully explicit, as in
+this example, or partially or completely deduced from the signature, but
+in all cases, at least a pair of angle brackets must be present, since
+otherwise the befriended declaration is an ordinary function.
+
+This is represented in the AST as a
+``DependentFunctionTemplateSpecializationInfo``, which at a high level,
+stores a sequence of template arguments and a set of overloaded
+candidate templates to which the arguments could apply.  The arguments
+stored are only those syntactically present, since deduction only
+happens when the surrounding class template is instantiated.
+
+The inheritance hierarchy of
+``DependentFunctionTemplateSpecializationInfo`` is::
+
+    Class Name                                   Header             Novel?
+    -------------------------------------------  ----------------   ------------
+    DependentFunctionTemplateSpecializationInfo  DeclTemplate.h     yes
+      TrailingObjects<...>                       TrailingObjects.h  no
+        TemplateArgumentLoc                      TemplateBase.h     yes
+        FunctionTemplateDecl*                    (built-in pointer)
+
+Its fields are:
+
+* ``unsigned NumTemplates``:
+  The number of overloaded candidate templates.
+
+* Trailing object sequence of ``FunctionTemplateDecl*``:
+  Pointers to the ``NumTemplates`` candidates.
+
+* ``unsigned NumArgs``:
+  The number of template arguments.
+
+* Trailing object sequence of ``TemplateArgumentLoc``\ s, giving the
+  template arguments.  Each ``TemplateArgumentLoc`` has these fields:
+
+  * ``TemplateArgument Argument``:
+    The argument itself.
+
+  * ``TemplateArgumentLocInfo LocInfo``:
+    Source location information for the argument, represented as a
+    discriminated union of pointers based on the kind of template
+    parameter.  For type parameters, it is a ``TypeSourceInfo*``, which
+    has location information for layer of declarator structure within
+    the type description.  Other kinds of parameters are currently
+    outside the scope of this document.
+
+* ``SourceRange AngleLocs``:
+  The locations of the left and right angle brackets.
+
+
+Diagram: Class template contains friend function template specialization
+------------------------------------------------------------------------
+
+This example declares and instantiates a class template that befriends
+a function template specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T t);
+
+    template <class T>
+    class A {
+      friend T identity<T>(T t);
+      T m_t;
+    };
+
+    template <class T>
+    T identity(T t)
+    {
+      A<T> a;
+      a.m_t = t;
+      return a.m_t;
+    }
+
+    int caller(int x)
+    {
+      return identity(x);
+    }
+
+The resulting object graph is:
+
+.. image:: ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded.png
+
+The focus node, ``DependentFunctionTemplateSpecializationInfo 107``,
+has the template argument list ``<T>`` and a pointer to the (in this
+case only) candidate, ``FunctionTemplateDecl 14``.
+
+In the instantation of ``A<int>``, the ``friend`` declaration refers to
+``FunctionDecl 20``, a redeclaration of the definition instantiation
+``identity<int>`` at ``FunctionDecl 26``.
+
+Like in the case of a member specialization of a non-static data member,
+member specialization of a friend declaration does not have a pointer
+back to the originating declaration.
+
+
+Explicit specialization
+=======================
+
+
+.. _explicit specialization of a function template:
+
+Diagram: Function template: Explicit specialization
+---------------------------------------------------
+
+A function template can be explicitly specialized:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T t);
+
+    template <>
+    int identity(int t)
+    {
+      return t;
+    }
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ft-espec.ded.png
+
+Interestingly, the specialization creates *two* ``FunctionDecl`` nodes,
+not one.  One of them (#34) is merely a declaration without a body.  Its
+type uses ``SubstTemplateTypeParmType`` to represent ``int``, reflecting
+the fact that it arose due to the process of matching the
+specialization's signature against the available templates to find the
+one it specializes.  The other (#20) comes from parsing the source
+as-is, and consequently has a body, an empty template parameter list,
+and uses ``BuiltinType`` to represent ``int``.  The two declarations are
+linked together by the ``Redeclarable`` links, with the non-definition
+considered "first".
+
+The diagram above includes ``redecls_size()`` for ``Redeclarable``
+nodes.  There is no actual method by that name; it is computed as
+``std::distance(decl->redecls_begin(), decl->redecls_end())``, meaning
+it counts the total number of declarations in the ``redecls()`` list,
+which is always at least one because it includes the ``decl`` node
+itself.
+
+The ``FunctionTemplateDecl::Common::Specializations`` list only contains
+one of the declarations.  However, both of them have their own
+``FunctionTemplateSpecializationInfo`` structure that indicates they are
+explicit specializations, of which template, and with which template
+arguments.
+
+
+Diagram: Class template: Explicit specialization
+------------------------------------------------
+
+A class template can be explicitly specialized:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S;
+
+    template <>
+    struct S<int>
+    {
+      int data;
+      S *ptr1;
+      S<int> *ptr2;
+    };
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-espec.ded.png
+
+The focus of the diagram is ``ClassTemplateSpecializationDecl 18``,
+which records the associated template, the specialized template
+arguments, and the fact that it is an explicit specialization.  This
+object is in the ``ClassTemplateDecl::Common::Specializations`` list, so
+can be found when needed.
+
+As with class template instantiation, there are two ways to name the
+class from within a specialization, either with or without using the
+injected-class-name.  Those lead to different ``Type`` structures, but
+with the same canonical forms.
+
+It is somewhat notable that, unlike for functions, there is no "hidden"
+declaration that uses ``SubstTemplateTypeParmType`` here.  That is
+because overload resolution is not required to find the primary template
+for a class template specialization.
+
+
+``ClassTemplatePartialSpecializationDecl``
+------------------------------------------
+
+A class template partial specialization is simultaneously a template,
+from which concrete specializations can be instantiated, and an explicit
+specialization of a primary template.  It is represented by the
+``ClassTemplatePartialSpecializationDecl`` class, which principally adds
+a sequence of template parameters to a
+``ClassTemplateSpecializationDecl``.
+
+It has this inheritance hierarchy::
+
+    Class Name                              Header          Novel?
+    --------------------------------------  --------------  ------------
+    ClassTemplatePartialSpecializationDecl  DeclTemplate.h  yes
+      ClassTemplateSpecializationDecl       DeclTemplate.h  contextually
+        CXXRecordDecl                       DeclCXX.h       contextually
+          RecordDecl                        Decl.h          no
+            TagDecl                         Decl.h          no
+              TypeDecl                      Decl.h          contextually
+                NamedDecl                   Decl.h          no
+                  Decl                      DeclBase.h      no
+              DeclContext                   DeclBase.h      no
+              Redeclarable<TagDecl>         Redeclarable.h  no
+        FoldingSetNode                      FoldingSet.h    contextually
+
+It has these novel fields and interpretations:
+
+* From base ``FoldingSetNode``:
+
+  * ``void *NextInFoldingSetBucket``:
+    Pointer that allows a ``ClassTemplatePartialSpecializationDecl`` to
+    be stored in the ``ClassTemplateDecl::Common::PartialSpecializations``
+    set.  This is the same pointer that would allow a
+    ``ClassTemplateSpecializationDecl`` object (that isn't also a CTPSD)
+    to be stored in ``ClassTemplateDecl::Common::Specializations``; a
+    given CTSD/CTPSD object can only be in one of them, and for CTPSD,
+    it's in the list of partials.
+
+* Base ``CXXRecordDecl``:
+  In this context, the ``CXXRecordDecl`` is the templated declaration,
+  analogous to the ``CXXRecordDecl`` inside a ``ClassTemplateDecl``.
+  In contrast, the ``CXXRecordDecl`` inside a non-partial
+  ``ClassTemplateSpecializationDecl`` is a concrete declaration.
+
+* From base ``TypeDecl``:
+
+  * ``Type *TypeForDecl``:
+    Like with a templated ``CXXRecordDecl``, the ``TypeForDecl`` is an
+    ``InjectedClassNameType`` whose ``InjectedType`` field is a
+    ``TemplateSpecializationType``.
+
+* From base ``ClassTemplateSpecializationDecl``:
+
+  * ``const TemplateArgumentList *TemplateArgs``:
+    The template arguments, forming a pattern against which future
+    instantiations' arguments will be matched to see if this
+    explicit specialization applies.  The pattern uses canonical
+    ``TemplateTypeParmType`` nodes, for example,
+    ``<type-parameter-0-0 *>``.
+
+* In ``ClassTemplatePartialSpecializationDecl`` itself:
+
+  * ``TemplateParameterList* TemplateParams``:
+    The parameters for this partial specialization, when seen as a
+    template in its own right.
+
+  * ``const ASTTemplateArgumentListInfo *ArgsAsWritten``:
+    Source location information for the template arguments pattern
+    (``ClassTemplateSpecializationDecl::TemplateArgs``).  As noted in a
+    comment in the source code, this is potentially redundant with
+    ``ClassTemplateSpecializationDecl::ExplicitSpecializationInfo::TypeAsWritten``.
+
+  * ``PointerIntPair<...> InstantiatedFromMember``:
+    Tuple of two elements:
+
+    * ``ClassTemplatePartialSpecializationDecl *``:
+      If this partial specialization declaration was created by
+      instantiating a class scope partial specialization of a member
+      class template, this points at the instantiated member.  Otherwise
+      it is ``nullptr``.
+
+    * ``bool specdThisLevel``:
+      This flag, which is anonymous in the code but given a name in this
+      document for convenience, is set when the preceding pointer is not
+      ``nullptr``, but the definition of the partial specialization was
+      provided by an explicit member specialization.  See
+      `Diagram: Class template contains class template: Explicit member specialization of class scope partial specialization`_
+      for an example of this scenario.  Beware: This flag is queried via
+      the public
+      ``ClassTemplatePartialSpecializationDecl::isMemberSpecialization()``
+      method, but that name is slightly misleading because the flag is
+      only ``true`` when the specialization is *explicit*.  Furthermore,
+      in that case, there are two
+      ``ClassTemplatePartialSpecializationDecl`` objects (which are
+      redeclarations of each other), and the flag is only set on the one
+      that was *not* explicitly present in the source code.
+
+It is notable that ``ClassTemplatePartialSpecializationDecl`` does *not*
+contain a list of specializations.  Instead, instantiations of the
+partial go into the list of specializations of the primary, and it is
+not possible to explicitly specialize a partial specialization (ignoring
+member specialization, which effectively overrides the entire partial
+rather than specialize it as a template).
+
+
+Diagram: Class template: Partial specialization
+-----------------------------------------------
+
+For the following translation unit:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S;
+
+    template <class U>
+    struct S<U*>
+    {
+      U *data;
+      S *ptr1;
+      S<U*> *ptr2;
+    };
+
+    S<int*> s;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-pspec.ded.png
+
+The peach-colored node is the ``ClassTemplatePartialSpecializationDecl``
+we are focusing on.  It has a pointer to the primary template, and is
+pointed to by the primary's ``Common`` structure, among its
+``PartialSpecializations`` (in this case it is the only one).  Its
+members are very similar to those of a primary class template, with the
+main difference being the use of canonical rather than non-canonical
+``TemplateTypeParmDecl`` nodes.
+
+It's also notable that the partial's ``TemplateTypeParmDecl`` (node #41)
+uses the partial itself as its ``DeclContext``.  This is another way
+that the partial is playing the role of a templated ``CXXRecordDecl``.
+
+When instantiated, the resulting ``ClassTemplateSpecializationDecl``
+(node #18) is in most respects like an instantiation of a primary class
+template, with the key difference that its ``SpecializedTemplate`` field
+now points at a ``SpecializedPartialSpecialization`` (SPS) instead of
+directly at the primary ``ClassTemplateDecl``.  As explained above,
+under `ClassTemplateSpecializationDecl`_, the SPS points at the
+``ClassTemplatePartialSpecializationDecl`` and has the
+``TemplateArgumentList`` that applies to it.
+
+To emphasize:
+
+* ``ClassTemplateSpecializationDecl::TemplateArgs`` has the arguments
+  the apply to the *primary*.  These arguments are the *name* of this
+  specialization within the context of the primary.  For a CTPSD, the
+  name is a pattern that includes template parameters.
+
+* ``ClassTemplateSpecializationDecl::SpecializedTemplate.SPS->TemplateArgs``
+  has the arguments that apply to the *partial*.  These arguments are
+  part of the instantiation *process* that creates the declaration's
+  contents.
+
+
+Diagram: Class template contains ordinary function: Explicit member specialization
+----------------------------------------------------------------------------------
+
+A non-templated member function of a class template can have an explicit
+member specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      T identity(T t);
+    };
+
+    template <>
+    int S<int>::identity(int t)
+    {
+      return t;
+    }
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-of-espec.ded.png
+
+The peach-colored node is the ``CXXMethodDecl`` directly associated with
+the syntactic declaration starting with ``template <>``.  It is
+lexically contained in the ``TranslationUnitDecl`` but semantically
+contained by the ``S<int>`` instantiation.
+
+Similar to the case of `explicit specialization of a function template`_,
+there is a second ``CXXMethodDecl`` (node #24) that
+arises due to using overload resolution to match the syntactic
+declaration (node #29) with the members of the class template (node
+#19).  These two are redeclarations of each other.
+
+Each of the explicit specialization declarations has an associated
+``MemberSpecializationInfo`` that indicates they are explicit member
+specializations, and points at the member of the templated class that
+was specialized.
+
+
+Function template contains ordinary class
+=========================================
+
+.. comment: This slightly awkward section exists to contain the
+            following diagram and present it at a point in the document
+            where the reader is prepared for its complexity.  In
+            contrast, putting it at the end of "Function templates"
+            would be too abrupt.
+
+Diagram: Function template contains ordinary class: Instantiation
+-----------------------------------------------------------------
+
+A function template can define and use an ordinary class in its body:
+
+.. code-block:: c++
+
+    template <class T>
+    T identity(T x)
+    {
+      struct S {
+        T m_t;
+
+        S(T t)
+          : m_t(t)
+        {}
+      };
+
+      S s(x);
+      return s.m_t;
+    }
+
+    int caller(int y)
+    {
+      return identity(y);
+    }
+
+The resulting object diagram is:
+
+.. image:: ASTsForTemplatesImages/ft-cont-oc-inst.ded.png
+
+The focus node, ``CXXRecordDecl 49``, is the instantiation of ``S``
+inside ``identity<int>``.  It is a member specialization of the
+original, ``CXXRecordDecl 22``.  Additionally, its member function
+``CXXConstructorDecl 53`` is a member specialization of the
+corresponding original, ``CXXConstructorDecl 25``.
+
+The diagram also includes ``CXXDependentScopeMemberExpr 39``, used to
+represent ``s.m_t`` in the template, where the type of ``m_t`` is
+dependent on the template parameter.  However, this document's scope
+currently excludes a detailed examination of how templates affect
+classes in the ``Expr`` hierarchy, so for now we just note this feature
+in passing.
+
+Finally, note that the body of ``CXXConstructorDecl 53``,
+``CompoundStmt 31``, is physically shared with the member from which it
+was instantiated, ``CXXConstructorDecl 22``, since that part of the
+template is not dependent on the template parameters (as it is
+completely empty in this example).
+
+
+Class template contains function template
+=========================================
+
+
+Diagram: Class template contains function template: Definition
+--------------------------------------------------------------
+
+A class template can contain a member function template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      unsigned sum(T t, U u)
+      {
+        return t + u;
+      }
+    };
+
+The resulting object graph, without any instantiations, looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ft-defn.ded.png
+
+The peach-colored node is the member function template.  It contains the
+templated function, and is contained by the templated class.  Its
+template parameter, ``U``, has as its canonical form
+``type-parameter-1-0`` because it is nested one level deep.
+
+
+Diagram: Class template contains function template: Instantiation
+-----------------------------------------------------------------
+
+We now add code that will cause instantiation:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      unsigned sum(T t, U u)
+      {
+        return t + u;
+      }
+    };
+
+    unsigned caller(S<int> &s)
+    {
+      return s.sum<float>(1, 2.0f);
+    }
+
+The parameter type ``S<int>`` causes instantiation of that class
+specialization, and the call to ``sum`` causes instantiation of the
+method.  For clarity, ``sum`` is invoked with the explicit template
+argument list ``<float>``, but the result would be the same if the
+template argument list was removed (it would be deduced from the types
+of the argument expressions).
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ft-inst.ded.png
+
+The peach-colored node is the instantiation of the method template.
+This is a two-step process: first the class is instantiated with
+``<int>``, generating ``CXXMethodDecl 37`` (which does not have a body
+in the AST), then the method is instantiated with ``<float>``.
+
+If we had a pointer to ``CXXMethodDecl 43``, how would we navigate back
+to the original definition at ``CXXMethodDecl 22``?  One might suspect
+we could call ``FunctionDecl::getInstantiatedFromMemberFunction()``, but
+that returns ``nullptr`` here because that is for the case of an
+instantiation of a *non-templated* member function.  (It is also
+``nullptr`` for ``CXXMethodDecl 37``.)
+
+Instead, starting from ``CXXMethodDecl 43``, we must:
+
+* Follow ``FunctionDecl::TemplateOrSpecialization``, which has as one
+  of its union elements a ``FunctionTemplateSpecializationInfo*``, to
+  reach ``FunctionTemplateSpecializationInfo 46``.
+
+* Follow ``FunctionTemplateSpecializationInfo::Template`` to reach
+  ``FunctionTemplateDecl 34``.  (These last two steps can be
+  accomplished by calling ``getPrimaryTemplate()``.)  But this
+  template was itself the result of instantiation, so we keep going.
+
+* Follow the ``RedeclarableTemplateDecl::Common`` pointer to reach
+  ``FunctionTemplateDecl::Common 84``.
+
+* Follow ``RedeclarableTemplateDecl::CommonBase::InstantiatedFromMember``
+  to reach ``FunctionTemplateDecl 19``, which (unlike #34) corresponds
+  directly to syntax in the source code.
+
+* Follow ``TemplateDecl::TemplatedDecl`` to, finally, reach
+  ``CXXMethodDecl 22``.
+
+This complete sequence can be accomplished by calling
+``FunctionDecl::getTemplateInstantiationPattern()``.
+
+
+Diagram: Class template contains function template: Explicit specialization
+---------------------------------------------------------------------------
+
+Alternatively, we can explicitly specialize the method template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      unsigned sum(T t, U u);
+    };
+
+    template <>
+    template <>
+    unsigned S<int>::sum(int t, float u)
+    {
+      return t + u;
+    }
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ft-espec.ded.png
+
+As with earlier examples of specializing a function template, the
+process produces two AST nodes that are redeclarations of each other.
+
+The main semantic difference here is the
+``FunctionTemplateSpecializationInfo`` nodes (now there are two) have
+their specialization kind as ``TSK_ExplicitSpecialization`` instead of
+``TSK_ImplicitInstantiation``.
+
+The same navigation path back to ``CXXMethodDecl 22`` is available,
+but as this is no longer the origin of the body of the specialization,
+we must pass ``false`` as the ``ForDefinition`` parameter of
+``getTemplateInstantiationPattern()`` to use that method.
+
+
+Diagram: Class template contains function template: Explicit member specialization
+----------------------------------------------------------------------------------
+
+It is possible for a member specialization of a member template to be
+explicit:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      unsigned sum(T t, U u);
+    };
+
+    template <>
+    template <class U>
+    unsigned S<int>::sum(int t, U u)
+    {
+      return t + u;
+    }
+
+    int caller(S<int> &s, int i, float f)
+    {
+      return s.sum(i, f);
+    }
+
+To think about this, first imagine that the middle declaration was
+absent.  Writing ``S<int>`` would cause the ``S<T>::sum<U>`` member
+template to be instantiated, yielding ``S<int>::sum<U>`` (a member
+specialization), which would then itself be instantiated to create
+``S<int>::sum<float>``.  But the presence of the explicit member
+specialization overrides the definition of ``S<int>::sum<U>``, and
+*that* is then instantiated to make ``S<int>::sum<float>``.
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ft-emspec.ded.png
+
+The focus node, ``FunctionTemplateDecl 55``, is the user-written
+explicit member specialization.  Its ``Common`` (#96) structure points
+at the member that it specializes, and has ``explicitMemberSpec`` set to
+``true``.  This is the first example we've looked at that has that flag
+set.  (Recall that ``explicitMemberSpec`` is the name we've chosen to
+give to the otherwise anonymous ``bool`` value stored in
+``RedeclarableTemplateDecl::CommonBase::InstantiatedFromMember``.)
+
+
+``ClassScopeFunctionSpecializationDecl``
+----------------------------------------
+
+A ``ClassScopeFunctionSpecializationDecl`` represents an explicit
+specialization of a member function template within the body of a class
+template, for example:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      int add(T t, U u);
+
+      template <>              // ClassScopeFunctionSpecializationDecl
+      int add(T t, float u)
+      {
+        return t + u;
+      }
+    };
+
+This is sort of the opposite of the previous case, as it specializes the
+member template's parameter rather than the containing class template's
+parameter.
+
+The inheritance hierarchy of ``ClassScopeFunctionSpecializationDecl``
+is::
+
+    Class Name                            Header          Novel?
+    ------------------------------------  --------------  ------------
+    ClassScopeFunctionSpecializationDecl  DeclTemplate.h  yes
+      Decl                                DeclBase.h      no
+
+``ClassScopeFunctionSpecializationDecl`` (CSFSD) has two fields (other
+than those it inherits):
+
+* ``CXXMethodDecl *Specialization``:
+  The pointer to the ``CXXMethodDecl`` that has the specialization
+  signature and (possibly) definition.
+
+* ``const ASTTemplateArgumentListInfo *TemplateArgs``:
+  A nullable pointer to template arguments.  For example, in the above
+  example, ``add`` could have been written ``add<float>``; providing
+  template arguments is needed if they cannot be deduced from the
+  signature.
+
+Note that CSFSD is only used when the specialization is inside a class
+template.  Inside an ordinary class, the equivalent case is represented
+with just a ``CXXMethodDecl``.
+
+
+Diagram: Class template contains function template: Class scope specialization
+------------------------------------------------------------------------------
+
+Here is an example that demonstrates
+``ClassScopeFunctionSpecializationDecl``:
+
+.. code-block:: c++
+
+    template <class T>
+    struct S {
+      template <class U>
+      int add(T t, U u);
+
+      template <>              // ClassScopeFunctionSpecializationDecl
+      int add(T t, float u)
+      {
+        return t + u;
+      }
+    };
+
+    int caller(S<int> &s, int i, float f)
+    {
+      return s.add(i, f);
+    }
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ft-csspec.ded.png
+
+``CXXMethodDecl 48`` (representing ``S<int>::add<float>``) is both a
+(template) specialization of ``FunctionTemplateDecl 40`` (representing
+``S<int>::add<U>``) and also a member specialization of
+``ClassScopeFunctionSpecializationDecl 27`` (representing
+``S<T>::add<float>``).  This demonstrates simultaneous template
+specialization and member specialization.
+
+
+Class template contains class template
+======================================
+
+
+Diagram: Class template contains class template: Definition and instantiation
+-----------------------------------------------------------------------------
+
+We can define and instantiate a class template inside a class template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner {
+        T t;
+        U u;
+      };
+    };
+
+    Outer<int>::Inner<float> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-inst.ded.png
+
+The peach-colored node, ``ClassTemplateSpecializationDecl 32`` is the
+result of instantiating ``Outer<int>::Inner<float>``.  It is most
+directly an instantiation of ``ClassTemplateDecl 28``, which represents
+``Outer<int>::Inner<U>``, but that doesn't have a materialized
+definition because it is, in turn, the result of instantating
+``ClassTemplateDecl 19``.
+
+Like with the case of
+`Diagram: Class template contains function template: Instantiation`_,
+we can navigate from ``ClassTemplateSpecializationDecl 32`` back to
+its original definition at ``CXXRecordDecl 22`` by going through the
+intermediate instantiation, or by calling
+``CXXRecordDecl::getTemplateInstantiationPattern()``.
+
+Also, observe that ``TemplateTypeParmType 30`` represents the type ``U``
+in the intermediate instantiated ``ClassTemplateDecl 28``, but
+canonicalizes to ``type-parameter-0-0``, the same thing that the type
+``T`` did in the original template.  That is because the intermediate
+template only has one level of parameterization, so both are at depth 0.
+
+
+Diagram: Class template contains class template: Explicit specialization
+------------------------------------------------------------------------
+
+We can explicitly specialize a class template inside a class template
+specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+    };
+
+    template <>
+    template <>
+    struct Outer<int>::Inner<float> {
+      int t;
+      float u;
+    };
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-espec.ded.png
+
+In many respects, this looks like the previous case, with the major
+difference that the ``ClassTemplateSpecializationDecl`` of interest
+(node #29, peach colored) has a specialization kind of
+``TSK_ExplicitSpecialization`` instead of
+``TSK_ImplicitInstantiation``.
+
+Note that, although we are explicitly specializing ``Inner<float>``,
+its containing class, ``Outer<int>`` is still implicitly specialized.
+
+Unlike for function specializations as shown in
+`Diagram: Class template contains function template: Explicit specialization`_,
+there isn't a method to navigate from ``ClassTemplateSpecializationDecl
+29`` back to the unspecialized declaration ``ClassTemplateDecl 19`` in a
+single step here, since
+``CXXRecordDecl::getTemplateInstantiationPattern()`` does not have a
+``ForDefinition`` parameter the way
+``FunctionDecl::getTemplateInstantiationPattern()`` does.
+
+It is not possible to explicitly (fully) specialize a member class
+template of the unspecialized containing class template using a
+declaration outside the containing class template, for example:
+
+.. code-block:: c++
+
+    template <class T>
+    template <>
+    struct Outer<T>::Inner<float> {
+                  // ^ error: cannot specialize (with 'template<>') a member of an unspecialized template
+      T t;
+      float u;
+    };
+
+It is possible to do so inside the containing class template, however,
+as shown in
+`Diagram: Class template contains class template: Class scope specialization`_.
+
+
+Diagram: Class template contains class template: Partial specialization
+-----------------------------------------------------------------------
+
+We can partially specialize a class template inside a class template:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+    };
+
+    template <class T>
+    template <class V>
+    struct Outer<T>::Inner<V*> {
+      T t;
+      V *u;
+    };
+
+    Outer<int>::Inner<float*> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-pspec.ded.png
+
+This diagram omits the ``TemplateTypeParmDecl`` nodes and their types in
+order to focus on the rest of the structure.
+
+The translation unit first declares the template primaries
+``ClassTemplateDecl 14`` and ``ClassTemplateDecl 19``.
+
+Next, it partially specializes the ``Inner`` contained by the general
+``Outer``; that is ``ClassTemplatePartialSpecializationDecl 48``, the
+peach-colored node.
+
+Finally, it instantiates ``Outer<int>::Inner<float*>``, which involves
+these steps:
+
+* Instantiate ``Outer<int>``.  That creates
+  ``ClassTemplateSpecializationDecl 23`` for ``Outer<int>``, and
+  ``ClassTemplateDecl 25`` for ``Outer<int>::Inner<U>``.
+
+* Because we have a partial specialization for ``Outer<T>::Inner``,
+  that is transferred over to ``Outer<int>``.  The result is
+  ``ClassTemplatePartialSpecializationDecl 78``, representing
+  ``Outer<int>::Inner<V*>``.  But this is not an independent
+  definition, it is instead an instantiation of
+  ``ClassTemplatePartialSpecializationDecl 48``, and recorded as such
+  via the ``InstantiatedFromMember`` field.  Note the parallel
+  ``InstantiatedFromMember`` pointer from ``ClassTemplateDecl::Common 75``
+  to ``ClassTemplateDecl 19``, which records the same relationship but
+  between the two general (rather than specialized) cases of ``Inner``.
+
+* Now, to instantiate ``Outer<int>::Inner<float*>``, we see that
+  ``ClassTemplatePartialSpecializationDecl 78`` applies, observe that it
+  comes from ``ClassTemplatePartialSpecializationDecl 48``, so
+  instantiate that to create
+  ``ClassTemplateSpecializationDecl 29``.  From that node (#29), the
+  query ``getTemplateInstantiationPattern()`` will return node #48.
+
+A key idea here is that, to materialize ``Outer<int>::Inner<float*>``,
+we first fully materialize ``Outer<int>``, including its template for
+``Inner<U>`` (node #25).  *Then*, we instantiate and overlay partial
+specialization ``Outer<int>::Inner<V*>`` on top (node #78).  Finally,
+``Outer<int>::Inner<float*>`` can be instantiated (node #29).
+
+
+Diagram: Class template contains class template: Class scope specialization
+---------------------------------------------------------------------------
+
+We can specialize a class template inside a class template from within
+the scope of the outer template class body:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+
+      template <>
+      struct Inner<float> {
+        T t;
+        float u;
+      };
+    };
+
+    Outer<int>::Inner<float> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-csspec.ded.png
+
+The focus node, ``ClassTemplateSpecializationDecl 35``, is both a
+(template) specialization of ``ClassTemplateDecl 31`` (representing
+``Outer<int>::Inner<U>``) and a member specialization of
+``ClassTemplateSpecializationDecl 23`` (representing
+``Outer<T>::Inner<float>``).
+
+
+Diagram: Class template contains class template: Class scope partial specialization
+-----------------------------------------------------------------------------------
+
+We can partially specialize a class template inside a class template
+from within the scope of the outer template class body:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+
+      template <class V>
+      struct Inner<V*> {
+        T t;
+        V *u;
+      };
+    };
+
+    Outer<int>::Inner<float*> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-cspspec.ded.png
+
+The focus node, ``ClassTemplateSpecializationDecl 36``
+(representing ``Outer<int>::Inner<float*>``), is an
+instantiation of ``ClassTemplatePartialSpecializationDecl 78``
+(representing ``Outer<int>::Inner<V*>``), which
+was instantiated from ``ClassTemplatePartialSpecializationDecl 23``
+(representing ``Outer<T>::Inner<V*>``).
+
+Meanwhile, ``ClassTemplateDecl 32`` (representing
+``Outer<int>::Inner<U>``), which is an instantiation of
+``ClassTemplateDecl 19`` (representing ``Outer<T>::Inner<U>``),
+has both a partial specialization (#78) and a full specialization
+(#36, the focus node).
+
+In this case, there is nothing that is simultaneously a (full, template)
+specialization and a member specialization because the member
+specialization is #78, but that is only a partial specialization.
+
+
+Diagram: Class template contains class template: Explicit member specialization
+-------------------------------------------------------------------------------
+
+A member class template can have an explicit member specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+    };
+
+    template <>
+    template <class U>
+    struct Outer<int>::Inner {
+      int t;
+      U u;
+    };
+
+    Outer<int>::Inner<float> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-emspec.ded.png
+
+Observations:
+
+* We have two ``ClassTemplateDecl``\ s, similar to the case of explicitly
+  specializing a function template.  ``ClassTemplateDecl 25`` is created
+  as soon as we mention ``Outer<int>``, and then
+  ``ClassTemplateDecl 46`` (the user-defined focus node) is added as a
+  redeclaration afterwards.
+
+* ``ClassTemplateDecl::Common 70`` has ``explicitMemberSpec`` as
+  ``true``, like with
+  `Diagram: Class template contains function template: Explicit member specialization`_.
+
+
+Diagram: Class template contains class template: Partial member specialization
+------------------------------------------------------------------------------
+
+A member class template can have an explicit member specialization that
+is a partial specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+    };
+
+    template <>
+    template <class V>
+    struct Outer<int>::Inner<V*> {
+      int t;
+      V *u;
+    };
+
+    Outer<int>::Inner<float*> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-pmspec.ded.png
+
+As above, ``ClassTemplateDecl 25`` (which is no longer an *explicit*
+member specialization) arises just by mentioning ``Outer<int>``, but now
+our focus node, ``ClassTemplatePartialSpecializationDecl 47``, is
+attached to it as a partial specialization rather than a redeclaration.
+
+Beware: This example does not work correctly in Clang-16 or earlier due
+to `Issue #60778 <https://github.com/llvm/llvm-project/issues/60778>`_.
+In the older versions, the type of ``i.u`` (visible in ``FieldDecl 33``)
+is computed as ``int*`` rather than ``float*``.
+
+
+Diagram: Class template contains class template: Explicit member specialization of class scope partial specialization
+---------------------------------------------------------------------------------------------------------------------
+
+A class scope partial specialization of a member class template can have
+an explicit member specialization:
+
+.. code-block:: c++
+
+    template <class T>
+    struct Outer {
+      template <class U>
+      struct Inner;
+
+      // Class scope partial specialization (cspspec).
+      template <class V>
+      struct Inner<V*>;
+    };
+
+    // Explicit member specialization (emspec) of the cspspec.
+    template <>
+    template <class V>
+    struct Outer<int>::Inner<V*> {
+      int t;
+      V *u;
+    };
+
+    // Instantiate the emspec.
+    Outer<int>::Inner<float*> i;
+
+The resulting object graph looks like this:
+
+.. image:: ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded.png
+
+The main feature that is new is that
+``ClassTemplatePartialSpecializationDecl 87`` (of which the focus node
+is treated as a redeclaration) has ``specdThisLevel=1``, thereby
+demonstrating the conditions required to set that flag.
+
+Beware: Like the previous example, this one does not work correctly in
+Clang-16 or earlier due to
+`Issue #60778 <https://github.com/llvm/llvm-project/issues/60778>`_.
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded
new file mode 100644
index 000000000000000..19ede67d71bd4b4
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded
@@ -0,0 +1,2489 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 640,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 55,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 180
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 55,
+        "y": 165
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 315,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 260
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n\n  template <class V>\n  struct Inner<V*> {\n    T t;\n    V *u;\n  };\n};\n\nOuter<int>::Inner<float*> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 770,
+        "y": 20
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 215,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 275,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 67",
+      "size": {
+        "h": 75,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 230,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 63",
+      "size": {
+        "h": 75,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 495,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 30",
+      "size": {
+        "h": 130,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 535,
+        "y": 180
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 32",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 495,
+        "y": 160
+      },
+      "name": "30",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 30",
+      "size": {
+        "h": 365,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 725,
+        "y": 245
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 75",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 535,
+        "y": 260
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 35",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 535,
+        "y": 510
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 36",
+      "size": {
+        "h": 145,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 775,
+        "y": 500
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 38",
+      "size": {
+        "h": 85,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 775,
+        "y": 590
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 41",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 95,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 23",
+      "size": {
+        "h": 145,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 365,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 28",
+      "size": {
+        "h": 85,
+        "w": 95
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 365,
+        "y": 425
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 29",
+      "size": {
+        "h": 85,
+        "w": 95
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 535,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 78",
+      "size": {
+        "h": 145,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 490
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 55",
+      "size": {
+        "h": 45,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 95,
+        "y": 555
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 56",
+      "size": {
+        "h": 45,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 95,
+        "y": 620
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 58",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 330,
+        "y": 605
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 51",
+      "size": {
+        "h": 60,
+        "w": 165
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 40": {"syntax": "\"int\""},
+    "BuiltinType 44": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 91": {"syntax": "\"void\""},
+    "CXXConstructExpr 60": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 56"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 45": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 46"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 79"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 47"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 45"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 45"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 47": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float *> &)",
+        "ptr": "FunctionProtoType 80"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 52"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 48"},
+      "RD::First": {"ptr": "CXXConstructorDecl 47"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 47"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 52": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float *> &&)",
+        "ptr": "FunctionProtoType 82"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 53"},
+      "RD::First": {"ptr": "CXXConstructorDecl 52"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 52"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-cspspec.cc:5:14, line:14:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 66"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 27": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:10:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 28"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 27"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "InjectedClassNameType 70"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 31": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 32"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 31"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 31"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 35": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 32"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 35"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 35"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 32"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 37": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:10:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 38"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 37"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 37"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 61": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 62": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 63"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "VarDecl 55"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-cspspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-cspspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-cspspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 67"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-cspspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-cspspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-cspspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 32": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 75"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 33"},
+      "RD::First": {"ptr": "ClassTemplateDecl 32"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 32"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-cspspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-cspspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-cspspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 35"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 63": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 84"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 67": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 75": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "associated decl": {"ptr": "ClassTemplateDecl 32"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplatePartialSpecializationDecl 23": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-cspspec.cc:10:20, line:13:3>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 71"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-cspspec.cc:9:3",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-cspspec.cc:10:10, col:18>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 27"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "FieldDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:10:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "49673569",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 24"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 19"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-cspspec.cc:9:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-cspspec.cc:9:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-cspspec.cc:9:3",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-1-0 *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 72"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "InjectedClassNameType 70"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 19"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "specdThisLevel": 0
+    },
+    "ClassTemplatePartialSpecializationDecl 78": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "null"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "<invalid loc>",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-cspspec.cc:10:10, col:18>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:10:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "1861593",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 90"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 32"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-cspspec.cc:9:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-cspspec.cc:9:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-cspspec.cc:9:3",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 88"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 32"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 32"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "specdThisLevel": 0
+    },
+    "ClassTemplateSpecializationDecl 30": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-cspspec.cc:5:14, line:14:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 74"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 31"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 32"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-cspspec.cc:16:1",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 36": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-cspspec.cc:10:20, line:13:3>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 77"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 37"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 52"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:10:3",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "20504916",
+      "PointOfInstantiation": "in/src/ct-cont-ct-cspspec.cc:16:27",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.SPS->PartialSpecialization": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "ST.SPS->TemplateArgs": "\"<float>\"",
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 32"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 46": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 66": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 71": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 74": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 77": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 50": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "ElaboratedType 56": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float *>",
+        "ptr": "TemplateSpecializationType 58"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "syntax": "\"Outer<int>::Inner<float *>\""
+    },
+    "FieldDecl 28": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:11:5",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:11:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 29"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ct-cspspec.cc:11:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 29": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "V *",
+        "ptr": "PointerType 26"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:12:5",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:12:8",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"V *\", <in/src/ct-cont-ct-cspspec.cc:12:5, col:7>, TemplateTypeParm(\"V\", <in/src/ct-cont-ct-cspspec.cc:12:5>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 38": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 39"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:11:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:11:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 41"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ct-cspspec.cc:11:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 41": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float *",
+        "ptr": "PointerType 42"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:12:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:12:8",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 45"},
+      "TInfo": "Pointer(\"float *\", <in/src/ct-cont-ct-cspspec.cc:12:5, col:7>, SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-cspspec.cc:12:5>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 79": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 91"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 80": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float *> &)",
+        "ptr": "FunctionProtoType 92"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 91"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 49"
+      },
+      "syntax": "\"void (const Inner<float *> &)\""
+    },
+    "FunctionProtoType 82": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float *> &&)",
+        "ptr": "FunctionProtoType 93"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 91"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 54"
+      },
+      "syntax": "\"void (Inner<float *> &&)\""
+    },
+    "FunctionProtoType 92": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 91"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 81"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float *> &)\""
+    },
+    "FunctionProtoType 93": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 91"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 83"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float *> &&)\""
+    },
+    "InjectedClassNameType 65": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 84"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 69": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 70": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "InjectedClassNameType 76": {
+      "Decl": {"ptr": "CXXRecordDecl 35"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 88": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 98"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "LValueReferenceType 49": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 81"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float *>",
+        "ptr": "ElaboratedType 50"
+      },
+      "syntax": "\"const Inner<float *> &\""
+    },
+    "LValueReferenceType 81": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float *> &\""
+    },
+    "ParmVarDecl 48": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 47"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 49"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LDC": {"ptr": "CXXConstructorDecl 47"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 53": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 52"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 54"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "LDC": {"ptr": "CXXConstructorDecl 52"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:10:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 26": {
+      "Canon": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 72"
+      },
+      "PointeeType": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 25"
+      },
+      "syntax": "\"V *\""
+    },
+    "PointerType 42": {
+      "Canon": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 43"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 59": {
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 72": {
+      "PointeeType": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "syntax": "\"type-parameter-1-0 *\""
+    },
+    "PointerType 89": {
+      "PointeeType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "syntax": "\"type-parameter-0-0 *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 54": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 83"
+      },
+      "PointeeType": {
+        "preview": "Inner<float *>",
+        "ptr": "ElaboratedType 50"
+      },
+      "syntax": "\"Inner<float *> &&\""
+    },
+    "RValueReferenceType 83": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float *> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 62"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 51": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "syntax": "\"struct Outer<int>::Inner<float *>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 61"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 73": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "SubstTemplateTypeParmType 39": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 30"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 43": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 36"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 100": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 32"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 57": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 58": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 32"},
+      "args[0]": "\"float *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 51"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "TemplateSpecializationType 84": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 94"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 94"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 85": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 95"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 95"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 86": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 96"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 72"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 96"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 87": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 97"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 32"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 34"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 97"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 94": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 94"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 95": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 95"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 96": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 72"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 96"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 97": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 32"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 97"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 98": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 32"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 24": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:9:19",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:9:13",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 25"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 33": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 35"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 35"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 34"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 90": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:9:19",
+      "LocStart": "in/src/ct-cont-ct-cspspec.cc:9:13",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 99"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 25": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 24"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 34": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 33"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 64": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 68": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TemplateTypeParmType 99": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 90"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 55"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 55": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 56"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 60"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-cspspec.cc:16:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-cspspec.cc:16:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float *>\", <in/src/ct-cont-ct-cspspec.cc:16:1, col:25>, TemplateSpecialization(\"Inner<float *>\", <in/src/ct-cont-ct-cspspec.cc:16:13, col:25>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "ST.CTD",
+      "PartialSpecializations"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-cspspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "CTD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 120
+      }],
+      "end": {"entityRef": 9},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 8}
+    },
+    {
+      "controlPts": [{
+        "x": 190,
+        "y": 10
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 730,
+        "y": 240
+      }],
+      "end": {"entityRef": 12},
+      "label": "Cmn",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "TdD",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 805,
+          "y": 490
+        },
+        {
+          "x": 740,
+          "y": 500
+        }
+      ],
+      "end": {"entityRef": 14},
+      "label": "Specializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "PartialSpecializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 45,
+          "y": 345
+        },
+        {
+          "x": 80,
+          "y": 230
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "ST.CTD",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 710,
+        "y": 485
+      }],
+      "end": {"entityRef": 20},
+      "label": "ST.SPS->PartialSpecialization",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 310,
+        "y": 535
+      }],
+      "end": {"entityRef": 17},
+      "label": "getTemplateInstantiationPattern()",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [{
+        "x": 325,
+        "y": 325
+      }],
+      "end": {"entityRef": 17},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 485,
+          "y": 350
+        },
+        {
+          "x": 520,
+          "y": 230
+        }
+      ],
+      "end": {"entityRef": 10},
+      "label": "ST.CTD",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DeclType",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "NamedType",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "Canon",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "decl",
+      "start": {"entityRef": 24}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 755,
+          "y": 170
+        },
+        {
+          "x": 485,
+          "y": 155
+        },
+        {
+          "x": 240,
+          "y": 135
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "labelSegmentNumber": 4,
+      "start": {"entityRef": 12}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 678,
+    "w": 938
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-cspspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fade4d3c3e1608b9a72562adbe6a56ffc555803
GIT binary patch
literal 37240
zcmZU(cT|(x6D~~eMbyxnfJ*O0dXQ=Xf+Qdv>AfSpA8ArVq=XtkA%rTSNC}8Y?_xl@
zA_CHabP46YaL(_p`>ij3KvuHfy=TunGxN+$5+Hiov{bBA1Ox=M4|Fu15D*Zf2ndKu
zDae3NH2Q7F2?*F+gP~9T)IHtZ?LGVm2m<rAl&L*uWt$?puZgO>jhQv^9Au+<`=FIn
zH+}9~fBVZuikoKM^@6YO_B*4iFU~ks><q697}VvxwWw`;#IG`fXMY{HY;4ciTDW)|
z6|lSzIKZErWoh;2(^vg4F#|1JhoG7?Ov@@mY(Pf_Kael^Wymw^_GfHHKm3bv at t`Wk
z`NV8fv^upI9#EUA^4TMs#A99ihsjzQenEPz93uDU;t&!rHP9zX7WPYOU+(y@>H_9H
zA$=&8CBSO*w=h3wa{gF>hyY`qxp_Z%c{*-Kz3(jae)}ixjq3AAmm9c8!PiCz%Kv=I
zFW#oL%t+_oDT^$SjLosUcYr97*>+$FAd8PVb0kvOB=vaxxGk4->=Q3koXU<H3ZX^2
zO1?oDlP7mx;3D)f&NoLX)?~T%pRKZ+$81B!o+Tv<;C4FYD39%ZOlX?Lw}&6R<$dRT
zcX{I?=lUZw>kXl}e at grJ<lo)gK2y*n!RcCtQ``{eov06>fh{de(Lbv(uJk{=p7AA^
z{MlM}2e-x`X!H>%LiytN?ceoNx%*$N`t(;Zg_*~_o;x_XITp at yW7Wr2DOzuT!LBt6
z)E`E4`nB%HSc_2=Gmjmsicu7g%G=BwMnckWt=u#1F|27K_Zv*tDG4<iE_D$eHXmMz
zw^xKQCm$B)=JIcvka{;rIlBv1?>=3NNfG|dN{Qj+<NWlV8R~eDyg3{ALpMxr=c0#`
zN$9;wpP?qUymf0~Q8LpIH)6g)Bn0(&lfQT0e(P?jEfdXH)nqj|=e$u%IdVKdc-n!J
zKE_mGm2=t2P`@;Hw_r0Zn`}}DlTbSNHbA3I7p_n`(>z{Fr4=LD+C2VEu=)JMVG%P-
zB+%_)mYQLU^$rDTY!DUAu=%Uw{A(Yb^$FB}1y8Jy1X6hB$Qy?7?gcFM2=J3>t4doS
zxE5aoTGM|`RC4_ at c6{=~kNwaC6j9>6)Bhdk7jqFKYy;^iVq^PD`#$(vSM}GDzi+3U
z-1bK1nbqBQiSxE?NhTZgw;9bR>~nPO_x!(GYDw(a$DVA$8JTiLhGOl;-q)9!|Iofm
z(r}BZK}4gNBZn*VVTcFwi}SCv50}6EuK(uJrlDPIaldehN+|ich`1gXK9S2Z<b7ew
zEv+AC+L9wQ#M+a=Wj9AA7A?1EPIkCh-w^EydX*L4)NpLfTz3jP$ttJ5wvd5xDV;8h
zfTOaFezoL`1Mgbm&QBG#{wPjWwNs^Y<&yrr_q<EK%$GwU_T&z=qy>TCWP?bg+QzIA
zo#H6<;2VOUD1~4`%%8H>g$ipEvil8R+g)e~uH}}8*CjC#rn1Xg#|fgn@{XUuZ{<jA
z<`N%wL6r_1e*G!Bz7(5N0cRSsVS9B~oHy*HduLT&TtME!+t6}m<~1?H4EQm3zx^_2
z!ePZbuD2 at hDc1=y_yV4-N3#lWz4_h176Gx&Gnc_YHkLlo8^YK!U0J*7ig?O04UjLU
z7zYoA?l;(HAMcIj9(*Ra=TbE6zC5ZUlRdYs=@)cxkfk|?7O%xGeCk at EL~&`}suS+b
zw(&gkirxRd)$Ogcr!LnXqn~d0)qx?Tsr`s0>{m_tVR$fQ29xuUzXZWhGqsPd_PvM@
zZ=Xc!L~E_jy{y^SS`EdO`xI~~VvK{2#IwXdS2#V7yY)$ZOH=Np6U)e}+I^ari}OON
zy1~X#irQfU#jIi}nQ|dJc(t{%Z|Q-3Ljq1Fv4%?W3#zeV_z)W51GGJX=f&DJxVJqy
zv{zm7v5`I<0<L<%pg&eUgHj?^#4jj50<-I3gv7K6XOoObLZ9piP|!#73cmd+TJosF
z)_zEWsb9~N{0v{oq_vP$-lSvf7KWxNqkyO1d&oOvGTX@<WV|h at vv{s{jd=P4>1Rh}
zFJqlMmT_o9yQlres;BY^WvcoUtA+%B<xe8&bRwUMl}@B7M5-bweGtYB&;YR;e8 at 10
z@}DF)>gwMdqA>)?g`F7^*A0Z^DTr0~gQw}UIgC|aZ3i$Z)fV3W at bZri11EVu-=Sxe
z#m<dxG8dcTAcUOwDd88UuWCupRT9v#&kj?2Dy!MAWhLY-CoZ^}bj}b#nai#*48C5f
zZT^R&h36qhG_}_%XIguGR-nN3k7P;mNyYku-Tf^S?f0KYcWztnt8h;%ej>aEdO#MO
zQZP$V`SZ;1`+y8gHe2k2+?zASNY~)FNTqqM<XRf&kz?^WWd6o0=LD4P<0s4RhoVT4
zys`JG1Redy1R0P-uHK-WngsEq$ff?9JW8IK3AU3it0r&;2p5f{(b{9l&X1ALXy*yA
zqZ(xE90cD)`#2 at bJeSs1@&kN-cTaOik34v%R8JwIc98z9gOIX1>K?u=mV$+t!i{h<
zUr0`;jdAPM`wEXc$(obav74MlOJ<+HR<f at J-5Ab{3OHrqlW9I=`U)<1!SH5CqrES4
zUz3GjwUKxxwhLZ7g9()$$B&|^My1$K0}JBL_wOVg&3*3&&7*}R8>o!;!*{&rnIC%A
zb#vQh%d=Ci+6^k+#rMlA%ipD3C3%8h&THJrOY|t85p&iL|J^UvaQKMjrtbW!^1;?y
zOKWfEu9crG#}>>%I%$6yKBea5=aY=a^r%G}tr5}RrnLCm_rN+0p>+zQ(IU#dZ*yDd
z>mYl%R!1BS)2aBAG?w|?P3nD>!MyX#0JT%$Jx@(Xo>h%WzK?~H%ZKw{EmE_^a3<f5
zy=VfW-rhr2)|TA}IH&&`<wnEt at R^Bh at UAmW?o%yaX+F at qN(J#2Yt3Hk6s5=T<^0yQ
zu)~Rsf=S|~&ue3Zww8as_(|=d=*eSkbBKRX8CrhPj76Kf!oa^AkCwN(3)qN$=|!%P
z|0tK!t|h(;e|Q7ZBcW@#!cTXzJwchik2zX3|7f8(prf^k6A>2LklKAt<xeU3Css=~
zF9Y8noPW-(QE~n~F^!p9aOqmlCu-ZZUU<NZhX(q+e=bDT_+Lr4bLWb(|E!yNde6^O
z)KN5%F@?!;ljwqE#p%~IpVxgxjK3Sk)_;<@S4x#VFf_b(ll&*B=UVHF*D~g$$&`t#
zX48rV)*ieCnUXImzCqa=8yf<Zl$x&naChlV9Jj7&UMhIt?AadsWX1KVefzT8RJuj5
z`SS-tBG+~Pak4PEt-T=Vev1HqUX_xsEA(q9Mfpo>;XgC6_OxymJp)cl)Ar4iT1F0N
z>-fs`JS;26Y8o5I>NsnDqC1*yD8*~I%!74LoeZ43;yr7Qe{I=3`|aT`pCL0dp>lzI
zBl&l;{C7;Na(>l&>87&cUrf3bijD1ZuNj=0hpAZa)gIp&=2W_q-UAKyyYtwXtLL9T
z`sC+qZdup%xO^4Lm=5!DAFuksdi=&sQwRLsubz4H{2s8D=>Oe#ZugF_3MycHc<vCO
z5jo3RhjVK`g2b*X<`S+iu at CuF;msXi=j~2U+SV!Y<cGY;T#G6VU2=OJVcS-JMiLj7
zz5ILYZcxitKK+P)(%YWA<x}!WSDieH-<+~d$rJYRTTkzJiU587_NeW6GFM>v^VB$V
zS=Yx8A1#i<(^~eh&4P_gRj4epBc7e~H_k(|_r8;Rg~&a7!D}rh?UKL7?fT+eV8#1E
zDSKto at P-(l?_D8han1C?XA;`=9pm-o<^xbIm46r>7V<<^FJ%;i7~KAN2`3;{mPxvX
zoA+sMNyrDC?+)jH)~34Vy*T at pNm)NLmdI)k=2B{b4obd!njqt#MawQ&JyO+*3ws&-
zqTOMw{~)0yZ|kL-$h0s+&Od^RPimIhWPA*s@>D!~UZGp*@#bagX#EfKVztuH^mq0T
zk|)S^Syy#j^9+l;9dljtWS%tWNsq8P$5hLVd at 3?}(c_Fwk4=%$6LY^OhrKtu>GZ6K
zm*Y(?-g9M(b;F_O)`NzL7Y{x~%a<n2q~++l7&i=z>uhOcRyDKM5%TyIRz2VB$!74|
z?zA8-?;kDy;A<cMlT)QJuNjFyvS`0SCRvSETl at pJMnaBX8xqLBc%d+UQ++x&=+oz?
zcMy9{_fHf8%+&-=uwR?xio>0;sKk?%%yO|(Zwn`G2iqHW?zzLQbB}sS%wj2dmbViG
z4qtV>abUHR`O3W{zy~)L&^w)$v|0Cf{`!Fl2mS9u=4b^1x!3vXW7@&a7Io>%vH}mG
z!m5lZ9Nz*(&riPpeRMsGLhl_%W!Rz_Zd;1`)(;|%O(JizYv=4|&2?z?pE*{eA*yPA
zV>s*=GtyxF5`vX-F}!l<cM3A1zOkgTLw?c+^WVv%h~Gt3xfT4)Y9-l;VzLa<=J#7*
zNMtlqkF}j{ah6X!J*CHgN$;bd_*t=(<76Pbv4mCVHN5e8QZ`GePokjh)xbZ)^ctXW
z$?%Xg#f?T4mAgq*qjITL`PDYAj at 0jEB!qMGQlDimly_YqcBD!vZo^x+yTl|HUMXiU
zP4)lz`*JVz)yIuskhryTTs#*}{I&dq;dWM_Cjm^o(9DCq@=aeZM=!KHprGH`sXeGm
zdd?$2_=M_9?DX=CJ{`u4{<AeV7ytCT37swCckX5N^NwC`(%Su%K35&zi!NLrwueWS
znF#(V=}QfYPyX%0{FY7x>*x2EzmH|^(M`LTDPb}$qG%CIE}}Gn?}ij#A5ie!SfFWS
zTA=yo$MD$n{XnT#l%BC&Wjk6t-j&{gXqO<|58B04>Cu3#<xdGB^S2F>J!9-Sm8wRP
z_%TH<1kJYYQ$D!K)JvOhF40M0co%*vbx)5{w?SIBTTGRrEyO?2=9$xmQoHykl=s2X
z^ZDbzIs=~lKPGkd1$@JIPk!BBf9`1B5&wF%#XBbaLpwvW7sIiZC9YQibW38|Bf`A>
z*XDxL#<`J*{XCav)Q9PFk%+EeDyNoPbiK-tH{^Ds5ARskI<z9vDQk9$8)(CpG7l+}
zQVuEWqvXZeu`W19nbvn!^`<A96$w`Cg-L}S%X)8Tw at 1FH3@*@=Mcjxu{KoE{313J?
zzr%Q!!B=7 at hPV`)Iq_ZT at B4Ts`z at QogLv;Xs+zgiubAL^sr6qcwJ+T#>hfT34OqU-
zn#bGUHhce<M1b9Q%t=}vE58*VMY2_MLhoE7we1`cMB1LOHJXV#K+R;FBXyb6IFaSq
z-S){nAYEFHw#@9)Jq<5ePnlAC0DJR~2%c?6_A}%f`^P9~r(R8oedxL>GEmHP4m7x+
z*~D41;1Rtr-AuS;4imZ=CF#(FO(YyhUp at b!V7g!@DZ$-QfbLlJ%us&R_B7Uil~h9U
z=*ETQ&WA5r#O+4|+o7BxzD!p9!Ph^82eJ=&eIqMk8OAH<>}XZ7jnd7xI>DECUQxnC
zGKjyDdvB61h#(<!Ke4dS_BOmz4ej~a<$X2aw(pY9V`3`QxgP)X(zgrABqB~br>d~_
z;?Yiygcs*TxycQLcnvnEJMy?CYWKYxh1-F)IEn5iF8#&vA7KqCL$B!3>#yXPAM|@O
z&u!Twe!NDHS<UOH+Ez@?GPDOpmPU%m(A+EioX^=ya)kT%gjqG`-8H at D!pEOe9eE0(
z<3)1F at F5bkTMb23YVQkZ20A_=ltL+9mkUVVj^yL<Gl?yF@}j}TX7JmO_23haWRBa+
z3}yF^B94FicZxD{Rd>V5j?;dQWYRg`xn=tEu9zn`G$p0yp(v%hkxF!ZXST1HGWA9A
zqc`#SgYw1XD7CE47UmZw0|Romgr5G=j>4rka{1sG)03%H@=0T0?8lOE^!M$&eedtg
zk(Ph@`E7eY$Mo*L-5Hb13%NFnrdpiwo!z$@Q^GQ at E0ay_=u`JrV6o|Q44ygjiC-+w
zZn}Fk?`_hq$6#V4`Y28i(qVxQIp70Y#ygFA{xI#vPi|fBUdt`NuDbqkn5RELh5tr^
zogKI(FUGu;wSagj?ZJ;`YsUv6%S&a-*~iX*se>{l6+gni8BoR46VBgWrmf{`#>vKW
zXgiGlI^pkgQ!m1@!Sxy*I=w(sKXA6ck=ipj$oDHpZ$4<Q&dgEa1+>L8*BM#4<3mYz
zpW<;d`Gj-4Sn-NZQKPOv<xHAfeXmG}|8rmJx~b3BR9xj^W{`mwrAAP`?hmaZITK%`
z%4JhX^=|3VJvnc!pc3o-BGB`3`GwIw4sFRCWL3Jr^KM)W*Y9<n6cZNHCM#VNo;g>9
z%c=iF&Gj7I;piA=L|Zm at G;VCcQPA4?Me(4z?HhI3GXFn6ydHGpe#2imnBE at dL&9`L
z!-SRvJ8KK{z4`4~%^zkkFfjCw%U)YiD1G$m!xOsL(2TUK=eH(LjA}C(${#+b^B4W}
zr1+s1NJW(_(&%<7N_Mv8WyqU{=(GO8hu88IuJy}!*<8!Dl7*Tc$XAezb9#Z at Bm>H0
zFelJZkOCtU$9Nc_4NaB8oi&HJ$F*kS&+fSmlf2HDdPPa>eCM7z%N-i#I~1W at i?068
zPacT(Gz%rJ+8Cc at 7-#Pt at 1CKVv9}6XzJB~N99$y(hoXLSZ<!3PS-73gx8TE=JaLa|
z)h{j17g6Ljr6<78xQOEGr7a&z at QB##@ns#`#udx_Iwr&Uc- at f)?Xj$wK9DSF{!y9!
zN-TiTrD4h?JpI?jqjArlKMyM&B=3VVbb_W2l(jS<3JQwy%Wd+i1zOaeTtufEKaY=h
zN0s0B=5O8dSt#McjSqH@=`#&pi%QK}v3C%z+{p>f`t(RIScl3p7kt>8F}rjNez#d<
z&^;WKiz8)QFy!+SUB%|!GnG*JJlL+uPdiS7K3|KwCO!wXsrt&V2QnHI)a2JK`!c*j
zK9o--((~ujEw?J4c*zM=xhIHMfOBdPLQ}yYLT)1ixjDY7>0{52ipsWZmB{+$B9IfE
zV{$?Ca at yyHsRyH=Mv=YW(`dD%8A#3BXL7fSXyE+u8<tR-=}MbuJLgmHdo|9>MM6hH
z4Q;a|C0}Zvi^vk8U>Nb&s=M>-RmI=mjPZ0qJ$Q={j{dE#-F61|RJ3bQ^rNd`oBM``
zipiBLmci?tuMFvLpX^*0LbZCnDl(X7P=DHXVW|61eKGz`X5<@x6-Qf}N!qc<Jl!+i
zTh84IQ3 at Y7bdHzt<GZn(s+zMkA1JWXw4nhYhw%c*!NHsT^F~Xrc~KzI$|iN*?Qx3a
z6q_e<ic^9=w1jG&<S@)Imbd&cr7nKf)t!mr<8P%@w=)+VB_79%O>Tb1vel-W|N2;W
z!_|v-8^%UXh-O7JJ-7q^VC=E-RM{-f0^QIlup!#;926jD<A27dkvYF;(&%t7`PqR-
z?W0I8OEbu(#Ftv!ng8aK{+C3}YXkv5N+Ac9!wyO}+++JX-93;a%fS|zj*hfJ&yCPV
zMY0FzVJ{|+F{r1Gdz at okh=kFq`Og|Px9bX65lb06XWlQ;(?XRCpJs^)-?=BwH&<*u
zmGdvrq?sc)l5P1dy&IJuTp?M_rmtc*xwAc9=p9_)sKZO%WM9(w{z1CQ3`X0r`*&5r
zt>m_;^sMQ|EN|8zxQJM`(%bHt*j^|5_p<pW0qE1cdg;lnFHi5pf0lh#^LcpI^U&#=
zi>IRz=2 at y%NAJ`>$!RV^yG(lb{WInx3;Q-d#`v_I*LiiZgg?ob(UX576|#fO3;9|2
z^)u#qYQAEdQOg_i=m}O;rnl<nF1ha>Kjp<bf3!kYqfeDv9nT-??wajRz53~iH%#O}
z9b at uH{c`$a4PPbig=Er}+hshjE7}n8E94{eG(763&~F(P=BfW#!|OboYX=D!I=-W>
z>a3K|@yim+s7dvt-2b%{D32X!hx4s!+Pa&b9!euhC0RtTYVuC7cs_iF_(rGRvA4?#
zi at hPKedZm>(62_vPQ(JCBd8q-t{W<`H&s?a$7{t(4RNpJEEcm>8GE!@lZNhnP3bpt
zzD6uz7lr)gZpQufAvgQDK}Ov7O5U;{_*)+?LRRlWq;)<_OUHxm)Ux{qLmnY$JC}~4
z93G%qPrrJ<UwN%IIH7jmu4`Qw?EV-Q`k`jqpENhjqG(2L5-&*R2}1MyT^3^uzlZC#
zT<UK6Rvr!!6%~Cj^DtBY0ZR_AnWn4iW0-qjr?Uf8#w>Bx1h$pv{QB35I*YmIYo!(%
zeQlA^0O=5t%C>K}(>@rq%Tl*Q(DF2D*h8WUB%gwQxURy}6qWvT7W7B*i)@=nyQj+&
zERm^INO3QZ3-ufK$cEm1(au+w_&5yS_r|x5R}u4mWnAx|!MuS<m;lu0PMgzj9-L19
zD`0>{QSxm4ac?&pyR5t)(c1*kaqqE3n}8_MudTbQ at xet$fBAEQS_RfNZ;$cyTPnTf
zqBwY9;KLDCD#w?y;8=ZU&jEgyw}y1-hXBq;KVH~?Q>d;u{l>dv;fKX`f^ZAg?1t{@
z?Q3pCmR%#GcbKazQl(1 at B~u65!A}AYG>^Y|VAFM%m~;^^=~hE3Pd3nk^$!&a-oS at i
z^~!3qr<w&C!-ffOd>`}*7#jq6RB>??2<q!QGtJ#sy=5n4FjeCBG at _?r97fvA!zVk$
zoBr#Wcs5q-_&aW5i820@(qXRZmRf+ at X?ZRsWP8ZZDkx4rq>3cES-Z$fkq9qDCf%Ay
zm at F}^O?teDVG~x8dJ-K%ZaZVV<_@=e``AujzJ<7lz#vq5fC at qPj}X6Uv(9OU!S1am
z)#@nz9b&Sw^ZX1Ic}#7v5`>TVm`blFGpWR0>0sgb+xxb_KT at X&nF5QSF<xR~omK6}
zQl0-KU?LCYgD+s6Q-{SD at 4|xv)-BQkv^t$i?rKwJTwi+YlL4)DZ|h;5$R2Bb;F{sA
zi|ll*qBLcbjNFLsDZTl<c(Uc at _fkZ|aAQyLjNN7t)b+j(AG`O>ytn`S6?YtGN7u}C
z2DtBR*%nS<y8K2P)Y`^lqsO6+V67W8Jyahb^4h#|i?;|Mz8O at oZP_-fd=eHQIj!7s
zFCt8V0sK8)<8j7yToeJJ*<A{!SPEj at 6b@pB(3U(h%31oi8U|QW3OaHPP8!EZLGCxS
z(RK3Iirl^?=m^oFc$Bm3if*}x+TVq`qE~n<vRvI?k~!*X!s^Eomm0x$Xn3x-JbRMH
z{N(l+>Gh($uOF0)Z4_wbTty|X&wyVKfqVwva|qtbm5}~xH%M#7<O}Ny4RXq-b6<}x
z at +C>9G at B`}hunP!HN9bCZ&7j`)sMKF7gYc00maQ)IDx%G=GU(-`&t}*f+=_EE}o3%
z-l181it8TQ$?^Y$x;VMxttQ4JRP#RbwJ;HN at HJ8``A524ZXV=3Rqu6K*``^@r3z3E
z4pcJh9I!Np-;%H6gpx4wIi?>!Uk9boybp?sdeUZHx{2RrcK~Ciq*RlaIL|=AZ^e{9
z9uq7&W;bXR_KF**<y#2x4szZX(0HKmbnJqBiD77MOf|-sfWW`+frc71aAs>>x30dW
zuIl$Z(oAV<=x}pMBro%=J(r#-W9B^kJz=xC=&kQ8g|ueA-SiaE9}i+5RY#oB0~`x@
zjcc7`8G<#gUa2J5h%;B^iImN~ltYg{QFl`D6{|1fFJF;@5K`2?tHKZ`7lebV?ZKNg
z&qpi+4(C)ateQs$4z*@X{}e2&jvR*6U+9EH30`gQPKk1S1tNqO9C51s+6;48%yo7>
zJT4x!AF<bGOSsy)krcb;i@^<ln(0#!TF7<YsI;wFP=Va$0ba$u(d&yvZw+c$UzDeX
zIV|9h!p490wXHU}OMzut!VnMtm75ehw5LCabeJ&>3zd>YDUa!1eO`YXS)EhTVpBMM
zlvDEWQa at hg`HRfH+R3#Lv)SZm<587G^Mj-Hr?4|x%VYAcVmKV`m=hmQ2F|Gd;m{r8
zG&=e^K3-?;77q~$oZ-j(@B0%;B<t%gE7qL1U4Z76=orR{!5KPnQU6=1p+KXd at un@c
zu<FKwq78p*)k4 at c1_sD&B0z&&Epggh6>~<TD%~7BJcx%R(1iH8uGT4N4Z#e9)1AwY
zxHiA?^Jr at 9x8oH6EdUSIynylW1as9A0ssDeVr?=+333~?!6vbYIepi9C+s}-v4#fj
zpC^ciU)!rMa2Kl)68bX#o(OKZK?gg#ji7qVjJ)nnUZJ6}e;V at F$-&poY|`L1Vt at vk
z at X&JzP}mY3A&k3Qj0DSZXS&*rEB6>9=_QU{as)(-T)&9Q?>K)LvbbaW$sKWmi at 0e0
zj0QKL!cLVJX;CV~E132y4RA)}dKhAlFS5c-41miJIAi+gH3jlIB#h$N!d|=vFyF<+
zU;NQ~w6GJOI;(P7+F4%1g at B1Y0)-y^-(n0SG~!1UX`Hrr at S*vrD=(P!#d=?O at C-RL
zN^s*EG0fpo1C&S)l1g3#D`|%!*#9jCeDDHsqWI_UQ8P<^wN%a84y?mtQlh?5=H%22
zj6J{)ZOEOlsL=9{raW6d_B*^7RgQ*(yzo3oqfZuMNG&S9VKQtPD1!*4xuv)P8QxqQ
zB}>3^oSF3cHRkKY9VKuqxrJDCjJAXuH~ttIU0GKcnk(x^QahB~YbQljEolVULA6&W
zjOwS at v8j<R%MIEbl}0 at X@|@sjn}rvtenh-1jU{IqT&@if(i5+TvpMri<f2g<N7GZD
zvU`d?DrR1DGuj)yMJB3V1h7kkM7c0-2d{=2-QP+)B!VGkG9=<p=l8xD#NpR)Qnm4o
zj{E*4t5tGr6i|x}{pRqHk>5jmK?gZ~D#eSfll06A$>0nYBoQ{z|A7?D4?X+4>b^PF
z5*88VvMz(+SlF!X7$5Phw{26`?%16pgiYZ_raVDNql<iwMmADYmVZSM>{tXJtQ2)P
zjwaLPw+Ze at mQ1ir>o5CPB|RR+OTB^`=&U_bkFe-Cvh46A!49SJDJ1*i7^te0%lb at K
zn6+kM78BpAiTtrI<{|~9AYs_C#m%3X7tn3y>+s)RMt&<&2nANY4u$=xgVyttv+GE~
z(t7PsL#Hhc&5>=CUb}Bp_j(9D#GVY5T5-}k$llSn7%=i at qu*~NyX55EFK6?PQA{`*
zObCra-FH0#nZ6w9ujc>A7&MPvOI_F-Z at u84{z?ek1bi^DfwY|eW=yu%x5(Q&abt*=
zWhes{QB|^jGQV}QRsO*YlgfE7xxjY=*-i}wnYNzm?E`y>e#~T%c=GqJgKC^2m9UX6
zB at uvUe>O;%EdxRKHJ6%x5OoxO&b)&LiW@)*)*s at kU9eKt6-&&)s=4smFzqM>7VI(R
zpP&~}sFC)R^JO~keTk{+jjX73w%BvQdf9>(fVh(()x{;|&k3+5r0bEWB*8%>5sc$(
z)GwZQYE8A~FMbBSWq$T)+1K|>5;E_;Rs-DBQCA!NNh<c-$N{QN{Z*ip1PWLhMutkh
zC9NI7g;^1Nv>|0ph64T3Eox|fG5I{NM1jf&4fa2*bw*JAZ*7vxzUL**j6ci0nB09a
zS-k3Lk6kpfUoJp(RDFU?6S)R}p4O)bLhKPI%n<wPoMQ|t6y99T-8H3#ttT+N`7PBJ
zoDp>;@c>eCLmB|-z_$D)>Zq36w6Ru*fyxOAz+qcgl{lcrgl>MSLQ%no?bTW|mo`yy
z=K%g*u7J<`0-0sr-3kms)_q@|v7dDIOSOJJ8YGP5v_BrH3%@wMz`2fE`W~9&+J)*~
zRoNzPRvdW)HzD;QLk+cO)!@t}(L^3Xk|<;DBc{Ia3zeA0zQyUO21LD&72Gy4a-A)X
zu!9vkL0*O)WebQmn`#@4WI?uQi?^<B(xG6rOz!IRNK1PqDU%VM*${52iRXwGN at U7;
zPKL>Zdt5XP#`VLn;Jz1 at v$I^5*T?v-bX{cdzH-%(@uHYuQ^uLc at UhZ!r#L-ch`j?M
z7<TH&h}1fo5WN32x~*Wf`mn)f4aXLF07IC{Y!)|s*f#|G*H?l4BOqs(5gY-QYHaIl
zWS$nKI8PqTSU=^=H${#P8L?o&rfse#P1$pc<;rXg7dynB4<J2gP#Jr~rtk@)-W}mq
z at BMQlMrrC;V;m-Ue$oA`@m8=o*k2iWe#W_PH(wpOab&vI9BVq&zqlHr=D&=`&N$*^
zIREM$hWDZuBLMY92?7Vr#-8VtxTLKARP&ETBW8lPk;Jom=ZQlG4iV!&mm(G|+lrVR
zs?Sr}J^WNfkd>$5FpHnck@;sS+U*x$SQ!IS5>O%uN*NZx8{sIpS%5hjL3J2kt6r~3
za{0}U9pAJsy<sNv*_#YW^)SQ{T2ewF_+1unfh52VY<yV#P`6sW)Jg*NXT1_e6yZ_@
zAw$WH7$iG9HR}>KGpQV3;s?^ak9pfFJ9g5)ff%XvT{@T}#ZDJJb&NVAfaUkF{4stH
zmSO&;OpcU<oE08H&n(jZzzw8Jc}h^Wr<JIV5`yL%NTXy+=H?!=?l-7IV&FLAXp~J9
zIO7s}#Mrp%lHh}v+lfU9QiAD5!;3fGOh&I)juRNah;$e=sA88 at RKUsZVayx25U7cJ
zQYEOT2%D(Q0yH&JvLiUf#c$2-U<_G;D#dUd^g)JD4V)oVqtJ#&UZ$!SZdrgfrpz_9
z<#XN-L(h`Kn;f8LTW4-8NTV1)f}u-?iE_CP<%O5^*+yUQV1VLGefKM-BKN+B{QWAA
zN+e~K_`EHTMJN!v at jm)sS8;08aFqP0hXBh1ISW$?t|hub4C9bq9XZ+^?0$2Tdf&p~
zDDQ5}`t%nup;>B36yUy{lvlxl8Vq|62EL>~HcpBv<30V9zf1-r4I-6iJx9++QV4-X
zh=J&I*DRAVZz7~1BL#F?`7SZakvotiOvHLKteOfMVwL4gP7EvqXTUFo22qosHVdSP
zP%Pl2PiuMzmo+g6h69?qQp*mL&$9@=NcoW<M0~Ir)}Ydxc(C`J1dD2ZHti~-FzR0B
z8dh)NIWnO1ComGlh0dP$-DWw#lR=b)hWK)+piLDgY!*&R)T&_r(J*BWXvK)X?4Cr4
zh at w@5Cm9idT{sK!@aBzRLoNTeh#O|w{xb?FA+W#Qtz9Fvq at j~H%3J*ovLUlyO&6=>
z)Ty99r>3WCI|@c+PR??g$($WTCM%BW+j*yb^D&K%3yM6wrI&Fi3RTnr@>LPKCEIGH
z9uc)}Bp1zs$gvn|vxzzw=V2=878j)Q8A6Ji5E6M3ViS4zl)YH<4P{$WSu(&vHRFlC
z^Jd-tzcA{TPC*P)kBHz>jOnWo{8;7gFl7L!*%OF~z}3jHAYTHZ3gHydWzK0W&r<o;
z&5vvJL>V7XV&zd%HARy_)sf?g8-h{~ZOFz_QwXxda0CGHghvSisz0esaseSzL~9pv
zf4OXxkt&H?TMrVIT=rQRTcoK~xn06qg)j-Dg(dN<&1)Z;rW$DuhpUDhO`9RzyD>in
zG)p4azonXFsOBUY?S|bSj!opML3gtlhl`!<5ME{mY--GU;-+r*r!_1KmJ`xPGFD>`
z6{_<@R~NO`m6pIiv8YD~Rc~b+r4;;~RY(qralv95t`ilSntSa(6|6`Rs$3}`hT=#?
zR;iHTWKby+24Co~K^QA?TUJ{}k=_q0F~oW at 8$ts<z#v!!j;9ohpGg}w`+9e7w$xWe
z+o#!P!-lF3Ow6mQX3c~d08Ba{TCPF0CDY(k??6%VrU$-2lG0gqGQuv3(Vn^c%NBDW
z`Znq^JcTOG8x@*?Fl45g7(6TgrL!;y7dS8nMVL~fGD!PS5uwxNAHEOSxbYS~(v)Z#
z!WSwu&0mF#Fm|LV?o}Zfs at lY|VWbxKt7!#!NaXO#>rj#EpDhAZ1(k40cq5RU79^~s
zS_(4|7#pj!Ux7f*!v1zdtmmA~VSZ8;vOx0F4J_pM18yTz7 at 0Qv!6W=Vha?b8g;!<>
z9YBPE=hycE0|M(muI{`UrACerV-tG=Mvz8~0lCc at bLmp36CxZLwnRq9Y~%HL`{AZc
zmA`HY-lM81M|q^c|5;6<nC4^>uoIABCGnO-*d=*X2B<TDU-X;V?b9vwh>(?<men at Z
zl3-Gwh^WmYoRrhc)BG at t`W(;hcFEqGq}VbeE;5t?o(2jJ6N_>Ih^o=E)=kKdHHG<#
zm(&i499prBDI=6A;2=OjMtI(geb^Z(3T-Vy<O4$lXZ#tWIUBz3BwKPKZA}VnQ at M_N
z{Uaa#%!=1_+R~rdF}znuC^Eu3d%yBW6c`qIW0nQEO^oU&AVrOz<zYPR*4#aFjp)w8
zsDK(KDlcl?2a=CjR9wBUS$9`q0Z<PSY?A4f!LYruBOQ8+V^=ZfD(}Ssd5;LTq8;ht
zm;a^WhY7|N;lPN%O?$d-eb!lRI6Bsfl{uv8dP##Hq)RtXGvQ>hxg;GB`!GWFh+zX6
zZ4f|5PH#alA)Uw5u55?VE-S~T)=ESL%6Qayo|a_K_}*0}Z2x!!ZYW##T*f_qF^@i4
zFgcJTdXv`J5Gz)3LJfs;r5jW|eQxt>mwwtMLs`>Cu)@VCa(&2G(l_20HVa_Eev&DW
z9I4`N at q`Rz79+S9Ur2?5CuYN@$NP$pO7L5xD1$(^PUrn>t-8{*y^Qkq86qRZ2|EPS
zlC>qt-qa+5>HQNM?W=fB at u#7|@bUr()ZY8f;e>(=k^V|6IjNU&Qq*{92uHuLW2%`J
zR at o*iC=bYtyIuWL)FS|+x*~R1<Av<)5!Np`MIEg%F2C5ZCI|(5C~SzhitOva=%dPS
z<WNV at 8A`Nr68}@*wcu|$)rdV+!@)VE_K~+V;=~;|l?o~#&6l%~WiTx4vzU`L-MSM}
zFJ)|U&{P&<Op1cx2aL}0r=vETM<Ul35G|-R<AYQqUd>+xmR{Axw2DmH!~j46 at oyte
z>h$>0pYCikU=b};!jA5^WYX2T-lI1~r`z&4LM+S2*;X<Ez$1chJhoI at S)8ipuCGHv
zDlAB#aDUb#A}n09!-3JLf($!<dA}oeKr&$8`NL9)jraUXS}LiFTUs;s!5Jo%-*`(}
zx|H at Gdl$L9nhoMqh4_z7GeFH;vkK1SS~#6umA@`DJT-I8vBc2Z5yA3P`Q{EjKJ#3u
zZ^)-WMqjbe<LaW0ibz>s8c*SS0Zhnh!IYJPJtc^8^yiX}(Sp`stBvM`u!e#`w{$>+
ze1PuY6CE5bjWp>TN`@Q}K9MP at HMQfw0?`pCdM``hYi52-NPxHWQJ!Or3z<rZxas>E
z7qA0h(m&TA83sUItdP9eqWwYaJrEq+Y0+WVk>{)c&hzOJ4=-;-fC88SJt?-}*+>0;
zq~IjLkW?ZC31JTJi7p9OoAnwl>2D!i9u<2Ir0rm-N+VTSDpZ<0O2zP!RIhP%ZWin%
z7j+n8eQF9iQ0;70C%MC$jj<BM#()goJ{}>H63QV~Vo6%x4=dMe{GtB$0j1CL0(rPy
zV*lvTt6xe4Fy++l9ct05Zx;Pi at 3l4=)Ba8Ns3^8^)0{PC7iwK4fV~<3XWZ!$RNl}g
zU8%`AzuR`&N9Sv(t;PgUF;Wyz!~#H=SvS31tN_87#!0tmx!_m}9XDbRtE*;mIkqkK
zK)^zvz61LkKD}&>0P&CUjb>yOX%!~Iczf05+m2J~Wo-i#{NN0ri$ELc;+o<D%aq8$
zRFU=QESAU#(Ew=+NVkZVTb0)dVZ}$0E~PpQSBC=`6GBR)K|Hm(K29(mRzC?E+4fzL
z;H-)Z^|L%f9&kePWs?4tbO<a1m$5VYz5f@%8n*dc^|Vr<REXQ-OjVg43UJ2l?2=$P
z<l&J0rF+1m*7w09!jN`yXlj9K3|?rbW8ltV`?l~Smgz~HEe7w&!37CZMHUPjU`p0;
zI9asjYaV<;v`fA2$u%JMUc!b9HLo5~qHe<b9ZQ at KpMtqp926|L6JU>`)-7D$Nxtm3
zD&Ap?{HnC5ahe|#NUhm%V$`^s7b(ASj1+LYp(U{^y#cx4Twj-=q~g{G6G*ZfFI5m`
zmX)K$6<}ijEdnIYeMD at xI;&yj+fdk=5~7I at Mp<r$wnw@|NW23ooU~{4=-6|uAIz6}
zW{kL^8LZVU-wc1$E-44ZtXCdtCMGF~v=TsnB3fqIu at vIf>_AA25|p|W6S$3T=cphA
zL)0|n>j=8Zi{%uW&F)8TtB}wk8{-Dg!$t>C9opC+G%O- at rm$QgkL83-UbS8hX({5_
z;2JvX|8y7jZW+|O*c$QQ;Vo`-5I!BvOm=3AowlRqAya?!ECqCt6otk8RoJ}Ogd0Lu
zx2FyhVOt~JC&Mp|e2Fxmf{|%O2KkNHGw#>zWam4YjrSC+1{6%u6o0%4d1nCG;$ZMS
z%vn=-=h#45Y$zE#8Hr)-_MO~jVZoyJ-oV3&pxr>t3M8U-m6Bj=LcD__P at N^p0{-=I
zbydh`q`0O8qb8%kv*I$)gGIs at LLzWCGZ_Po>KmH)m)6>&`2UpyC6Cf%=~t8j>PkxJ
zA~j0G>Mz|80alP8d0|Qj++g!|i~?blclRR|w2%Z<@lp0aM&XDLJfWuo9}ps146%zQ
zzEG(>V<80&kS{b~o1XwyjB{ukO*DgvcEJEdoYj{i?aFGC=+3rY^a~=$D*-fIQH*dK
z4s0vxynu9J2q452m%-s-y%3U91S5S?vZnLgzh^_s_Su~RpkRlb88f+^{;cRdkH-Gr
z at _KY;f*Lk0d#1t^*4DrUkYGVHm=c=MNQUhgWSj>g105pY;6-~dh1cQnf#K)HyN=MB
z$aS$-XXjyL?r9z98do*vUjW(oN{lMurUNj72FsVHj|^Sp7#+y%29&OQdfuK(OH&7U
zn$T*s13^yrqFjs%Xj5}`j2LCiGCDN2s56W1g4Z-2-2_MmID_;d&ufEuhlGYQ5z1Z~
zC|>Pg3Jr993(- at WKdR*>f at B`wQ`|ptTk{k117g5{Fy#8UBm^VXzQt+iX#dFMloaJ#
zS0EKP?eIhNs*cuLEqAE<1Q=P8`i(|C4KyI$Q$N0Zyl8xA$x|8WAc<N*t_Tw3mYiIN
z*oVJNSPMa{$2|o&C>!z+sNPQV%WFdp7ZfYbE!6_aBo`rDOvnLb9r%F;*FR5>v>g5f
z$oxkEfFO?GE7k=lg~HCjt<H=`pNF1$IP|FOtAD;M0xn}3BY(o$9)i_G^?()@Sdr at 7
zT_+=aX|Ss_XCL)CK61T#&vAOP;<20G at Wha5l`+n_3NzDsQP6l$eRtM$FylYG{=1bg
zBA67SJ!(N{y3)M4fojAC>u-dOKi8anqO1Y`Z{_8s_jLeYoup#k>R&pHbdhE=Cmb*~
znHP*CD_g>4f&IyL9HzMEpB?X-`2S23{0u(eMdWZuHn^PYx%R<46}4Z2De8%CGXQZ>
z+q&v5TcFIoEb$xO*_<>G8R`m!CGPA|P!=qG^m+>E-RhOuq<VmX0msrps{W}QuXJYQ
zcceQTCb|Ow0lmmj5iI&bYl_#sDsHBg(bZLVqT<Nj+Q%;huuv?qVFkCkP~V{)xMX&V
zG9~T)O-DRA3OF1?4-LpIVO7q|K$!X`EtMVPW&eMv`lSb2hDI)3Ihk%1z>z<ayUWDC
zW3y&5;5<>}N**^zGIZR+;-Cq{8-hA-wDI&*EUBH#4cj{V0q<VC8~wku{SfTY>B=Z-
z1~{xL4GJ_pIR00zH425;uLK84mnFdqx8Q%K!U}+bp8hOM5P9Ar*J>)$CYMuAisB-{
z8pX<(eg1*s at 195G2xNBRqXii-6<5XP`Uql1iso2=1v?pD0v~-GYpMl8K95;no6AP|
zN-370h>4*I6i7)aNL5}*4%{#&zodoLMhL}_TS5hGeW^P{f=%<yD35glLj7$X#J~`^
zL7^mA_VIyWMc~0H>|ovryXfZ7<kPn`a6341y%%WIb8D0$)b~#{82MCPZS}EMWGD at Q
zY_TAB3pVPBuuL(RJzD*^ut|JG(>U=p5PpDh8tz>!c(m1<5e7a$Aq at 3Ne+<zVV9(;x
z&WuxpQ77i8l(?(-d+AWb*sPfK%`*qYhh6g~!AHc{0HED7W+KyV&xouh>VhF$wk3cl
z#hyQUiEt?hrl{+DbkT8aAAfAXxGO9b)VQ at c#f9;->*&C55 at OLu^(i<vJO-iAQq$+i
zGA#?Sphv+X1NIjvNSY*DF@|0vrN{e~@*xd13kPmBGdF;Gmp#7W-^A&F$YH0N9Z=Ca
zuU>eL-3V5b at eLIb=Oi302!n;{f&EpGjod3VNs@?Q5?we?6jqZ#`_RN-zjik;c;@5(
z-GZ5lEvlu$*N`wj1E_yEFax3~>|Mf;{2)D=Ge8*Qj|z2q#~iPWXoD0*1dP3DP9B5(
z{hZd*78O=sN3BakFoNs`@_FUOuW^;R9tRs*sqc<3=&71{ce-m3_ZX9X8O(HF+Li_3
zD#aThn^ELxr8 at JuvdUY553HJcU#u5(=o4Z4#Fs1X6_R564uK*ABULgp!wD!6EJJ{r
zzU}I8|2v9Xf*7hDbw)`*2|Xgkf=t at rCf~}U)^!}@L*_2qfz^Vg`%p+eX at XGPWprt|
z4y}=_x*RV!?qCE>uhAazZe(ataVIertO*c|x1O&%F~s*tR0{Hpn;OdbrbM}%jV;cr
zHTa~g12+$A*IGdmVKHhA3R10I>{t+v90fk8V1WVN5w%W$bO<l!ILl~iBDin=BLVK~
zUq^VjeV=if=O#9v5Rt=n!dAXCYskLlwuZwU8o|ymE~CPbsu|<PbuoyA;(k*A2ljE&
z#^2VKbx)xbhw%86Q|4S}eb<m_E;j&XGW$U1oO%VBLb8~~-M*gnokQ&)#R{!W{fq#{
z6U>TKA!Gyt-7p}B!?a{}Ha0hlI)v0 at O!ID;-n8*k1qKv}HinlhQiT*+gNnRtm|xMC
zd;%0G6_;l)TpzTb-H{2Dj2ZEE079>J0wF!*wEgRImMZ_|XQ)S at xsS*oTksC5E7v5(
zibbuf)(}<!@Mjz{aEF}@(}6r_<5=P9ilzs0Pi__mIBl%ueW!S1d^63d;eu);WR~#1
zCz~Q&Zhr-mFdvfjPPZrJn at hm}Uk5rR(a at _DKnw%MenT|Srok&NeJLsfPyqZVG{7J)
zeHYLQ at Qz6Se~SSRoPKVaO8hTR1!4`rH-nO+T$KMmyB2Q8-xv>tC=-oRygd)o9mW4g
zu{Cm|QANob09>}hRGlu<FAMTIFtg-Av|RG^t7#rE1!f?`-g-Lh#smOiG)izU_oe)r
zH9)<AK`bETdaqi>T6z8q%>CKQ`(xm?YyAiXqU;XeCs!6U=Dv$)nLkSYTd^Syj51Gv
zfJub1c?c+wYMJCJEL@%@vqqo-D1p at Ha^iX=18MnXF~RUJ=LKW{j3fB!24sE-e`w~n
z0?hozyjDOTpPaRr^p2scu&drHtG>@UQrK<90Ik*t9#dYWTpk4LKSdp>!?6Wehzv2*
zkz<0+{lgx*Ss at mV5Nu}{A8024Dqvt^Lac`4g&^8LllG-bI5yTO_K2$VqP>(<RU4n6
zGU*b53mUXTOTib at _NJqMPO1ogm%_&+9cyXmlfxeMh(kbq38FQ>EvE4Kw7^UPiw_vJ
z)&3Z`f5gJ9Ju7w6GQMZzujg1WS}~<@$RO_s0}BCX&w^pzyqC5#U^QASFyJ6;+^oeK
z1ip-(r$Z?4mY4>q2#pvBy;QN)K?4U}As5s~iEL+vn!U&pj6Jsmjlc<Y)6O(3rv~^B
z+b${)3a;B#z*0|A*cjjv+;?3*t<$*!rGe++AD|a*tK&&_N67jnz(fF`Ndgp_)Tekf
z%Ec4AXt9FSI&b$)ad{g#u~z#%ZD3fR6q^>v14x+*231O4-tSXw%cBs7nvxTIix4;u
z=$7mr_5IlgI8r4J=+ZTnEqNTM1Ou)5k&p_&CxH{Vfmsn)ub%(j)@fKsT|PPEVmyF&
zVr*|yYV*ux{(yiMp9&KLZCp^jBm}FnvL(e^?T8py%Ec27?q1G(QDML|nFX2Xxv5AD
z^(4G3K4JK5fMep`9rv_L`3WJ<rG(i6B>?f at T;!;sHi!27;~pE9`3!?gCkgsp#|c~g
zKGZsd-w2wov~_Y9LjMz=B#72Kn*EuZeb|<rX_83=r~`1ZgI`;&ReN%ZW7V;*S=7QN
zCG4l_DxIh=;ivCbn0+{u&3M)(IYm5Aj*30L)JL54+asAYE9H_ at N9)UZFG*cr&F?F)
zumy%hh>TnY6e-A=OX!V>0*;AdxH00SElKd{CD`=Iv1>I20C}!GkUIv5^kl;ShPy{u
z5tkFXZaIl9U5TpemmYNK*s7TZ9F!iQS{O at ZNiSLwX*_z_Pykez=&T>_EEUT|j6J(j
zBB(EmCS4)K!!P?QOd at U_!8xxF%x<lQLKajnE&kslFP*WxF_)7^z^7c+JX@^quVhUq
z#;V#Ad1`(q1Nd_{nmPjt{n1__J}A1H-rdw1cb at 3HVKdX`^$c-B10k&dptJiM77+j+
zz3~@6@>eO%h6!k)T8&Co7;KYRd&bHG&Nb`-sI4uV3~GPbXg|!Tlt03^R9GvZ at 7pZn
z(tiFff5qItTZKBoulPetR(a8kR);64&&AEA^p^3UD)t#XhdHcB+Q-cr8d~9WwUz7)
zC!mbWo;7{F{$y-T^~54wmxX!+?<mZ;oSnnS7~Wsr_rVU$CM5W#?)XmoUyn^M-Rk%t
zE8>6sf$3|0-0p_-$+yG}`5cpMlXpIT_r6yKxs<4{8o~HUQA at eUcS^TT^G!f|m(y!d
zAE`g*2R+`Yt^YffRmc}9xZY2aVpP6aH3v7*Lb5_b;?Ap4kdu{SgUc4^M8R3U3CmtP
z$-n3y31vfalKxuc4hMY=Sw${n$Z!nb9AQ3De1h3ep?c@&YiSaCWARu3Val+#K!dtq
zSN&)M07S|&%^>+)nfQ|QDwzKAIsC7OzWodku}6OxnbOlHW_Q__=p~l-Z3rO7I?0Rz
z<83pT*Cn$}ym`=w4$#A)sNSuVCVDQhErJFw8<v3b&X$HGQHEfwQuWbr*<N!3 at a5(B
z`O4KMPyk)nK4TAcxH_fks^lkzMVWK2##I6ow0YHcC+PAC)gWM!dua%&Wg_{Gx9Xe0
z4vdR)^v6Q)Hxr01D{~ZhB)WA2ZW8LNY7Hy|<dh=%+xIqtFro0~oY`UwRvjwU1q)fQ
z3ZpNdn}o?MW2ffmfX4e08-C>Sw-5lbIftT<ZdSOT6|1%O;AakOfg;EPi at ktI7t%G$
zuti|7G}%%gFyeZExw-gR?hozN9fED~f>ZeQ-`v#8M1S=VCm~x$)wm%4<fh5}r0T5T
zMlC1Tt;xyYV&hp)HS_1X-_{ybZ7oazs9s(Qa_Le2dtgh9xW9faYEwGZ at 1a>2KQBUj
z<^faR5h1o?G1)S^`9u+j=4bT?$(FMcS0&%aX_cPz){Y|v^<8v;+y2oFz3hgvAU(#~
zSw_fq6ZQ7i+Bz0e0%3Rar>x3AQ@$1Iri4w?@+c6(l=KUxH$yo9G|l_32(xUqCJq12
zd|IsXgcO&QJJG1x;Y~dS)w at 7{B5IxxTEdcn{s~M{`x=GX<9P9eSCDP*M^?w^Txrci
zKJM-b^}bG7bFq&TthRbniF!L^*nndza+?GN<M_SV$oua+bl3m{=<UijC{+A>R9i6f
zQqsHo+v~ssuHc3i+hCa~*F$#ffNNmS&PPi~J}?RWfAn-f7!|rtHl7Y}#p|w4H*sw#
z>!PrTnw19F&A@&}+XN5Ax|H=KR0pO|<fSKoCbFwwIB!j- at 0Y!-!=37v6A~xtpzuzL
zC<tbDyzssKXHJO~hAfZ#>X3FRa03xEqGJQ&B}p7;v>757IT}t at Ws6_M4LuK8AciuL
z?e@{~>}GR!gF$YDu*FAzl7Z0!1xkDL;8TCT^${b$bOr}(&AcnY2R-0(eBl0565y8u
z*3`%o%S2DW%yN)qqD_{4c6)-+x at ct+4BE}wP8DR*JNZXTs%YHyJnUlpdGKLaqcY1S
z{DGXb86wawL5!V>alvg=&v-Ws_nn*0;=&?IX)}7~LbgNDbq0O7d7#AYGw}iv5fBP&
z7g-P|{E*~NUy|I7IDW3%ZnJ#KWl@<^u#yB){vI%W-&d$PF0d1HH-b at BnNGYf9*%XK
zvbuZedjS5=YrKqh-R`-NrPP^pQPdiBt_|6GM7h{4 at _q#J0dwD|LSx4xz5VCGysp at J
zWk(PDUWe{>(+!Kma7(cNmaK!Y^ZTWo))RKX?*U6U-35$&a-QV!)@fo^5{2zma$T!Q
z0xVy2s7b80e2>%z(E<$Gr;gi9CyN5k#?bbn!AA at x5%ouk&kqYG|1 at NF#z(KOweu9(
z+s&feL(*=m6%Xde|7+R~64W at V1GWcr#HC*kSE1@#iEIjGfiaB7%|6E(sV1IRj)dG3
z&iRC77?#pag#cv;DbyChN*GhnaJ{0@;-JM6GR$s8ouu8~_5Y4&0B>@?0FZM;fL&8S
zIl`PnD$b3Fmvz(-RNUtNL%@+$RNYcp!-Oa?H>*3ZMoov>P!pzvWU&16v?<Mzpk*}b
z{1+amw#WDGQG>N=()!r3PR~7;O)Cko at Kw8&YpbZn|I^l&z(cvW{WFYYD-{ugayk{-
zObB6=Oi$~m8IsU~k+rgAUpj5F<dljsM$<Cg3}r2QbwnDbsfG~KYBZLq82j?S?$J5t
zdEfW%`FzfE&dfdc{adc<`hBnMdxPTN7!7p?rJaZ~2&&s_LJ)6>uSC|pbj at lJ5@N&`
zk9&E)UAf8A;s~Wxc-hwE@<XQZQAuf-xJoO&(3!p@{!P#NWRG3?g52~~$moC!1q?u>
zqr?XAW$qKipKCTcVSi?1wQOIfp_%!%<8JyEhC!V88 at +tl-`SmShn#}DJpZ*FHPTSG
z^K7`Jd$ey+gH!MUYVZPL?1|>ueZwa-c at yVuKw33Ko!M;dt~N->l`i=?xBxYP{nZj3
zg9E*M<t5G<(}yo#tqeNFcE~arGTU2MM%8Jj<fM6vKR{%*3cJ^UP~zj>hScB<uM8ig
zqURQ$4Tyq}7%vpaj0F<1RU3#g_p^BDo)zUTv&RJ7_NNT8Xi5m%y$lZ43xN{&hDB24
zzr<d{oZ3g+d2T2RcLc(5 at Lm4rg1?MW7;`RQJN3zr3+fG$^d))_Njxm^a=LIa6%v95
zgIc!ev!kH=S8_U)(Vjg+<K+m7?tVSOg|gKHihh1+)a>!kYRNeI?`IYZ$r(->%m9ss
zkiK6}ViUwKCiKd`PRIbpRe$fwVH0>$adpOM6(RN{`e+G+ob at pNOJ^VY1sL62?=%mp
z7qQ4o8S_Dv%RKmTWYpR^v+h_cok~aD#gOPyAiJ(M>-v7-;My<aYW(;2<eB9(c{qaN
zqbhD#rN!;acmJ{LAmiRs<Pi~lo>};7?g|Xp>PPmd(}$rfcr}*^{?mfio}NMVk at Il~
zAtvZmmBRB__csbH>2-?_^h+u}{{#1U{#&*=cv?cAxlt;V)UBsOzXXkS=4(~%mR3a-
z+az;Je@>A?C!l at 4wp>Jlx9HlflB{in#cxsHY59p{gZ!nv9|}!U;Y^<X6xUT$(6ja(
zrrh_kJfP}NOTfK^$zX?8W6IrWt~cyZQD{X$IyhT&#U8W<6nXS}{;$hUO1lzPWG|Nn
zDL)vr_C1aqEBJlJ+DzuR=1R;F#NDh{Bcilqd{gtdUvmmWunC~Uq=RkM_(N`-PR7g6
zMNmpiNQV(CgPoqiJXQJd2+wS`xQlB)ZuZD42M1`vg?}ZoCDJm|J at 8dZFs2#NKM=T^
zm_0jGmMqV^RBY56a#i&o5ADcw_1*NP0iL2;{r5KpX848v{!d}0dNp9 at J1M&p^mY=`
z57wY-?~dUap6Z#Z5IodBv}t at oDT&dq8Qs|vo@;Rr&k^u^mrXE7<9{>WE(Ie=C_l9O
z at 89W4^VqN0+?;x~@9Jl6;|L-4_9Z`~9B(q%CfrC@*!6>i#jv4&_Bz4h^=zTH8&s0l
z50z2K_m*Tr8mKZq-Jvhs1_X+bzCFPLcBQpo^!I#jhpmaFO;B);NZzCAl&k2WmyHZP
z^F|Ts1f%Or-##lvb58&N9W=|+K6_3W!0z2weS0C!;Bicy*@<MD0#en>oUR^Fm``<t
z=(W|!O=z9gnHc-r>0$DFRu^&JO?ytb>9f4+3rNd9*yb- at _M=I#6J}U8cCj9`W?}rM
zz4^4URV~uLfxv3TnpaCpydz5d`>o9ZWGHx!IvNuL2Ci>H8U~6=&s>lsiJOKd`N4Gu
z at kp*SYqdfFbVer=O=A8?9$Qau^iwf|k5=%nFgyz)TW(nxTIsBct%{)4v4=fh#*2dU
zA<!T>tP)2{Kac(C;CU5n(hW>~!;!{x(PPU?93OYD_^-5(hhQz1OMt?j<iNAj5 at Ee`
zPlksOXiaNMV^-U^tg9Gt8cf`JhZvKAMo;1puvu1CFcpck|9rjRGx14*z=Ty_*jCpP
zL at lU_2nf~6R=JOAC#Z$XmrX=8%{qJaVW}n3`7JlE_~~hDT3g~Tjod7|XA2`h6?)X`
zulW+oh5hL?{ptO_gNN at C+_=y0ZTb6q6!@UZbSd_T${sZ~YqBnUgS?FzIChe$n$=-i
zT}Lv^tDUwyGbHNgy>D5w<$0J+IV4hqzJOsVs??^BFW92{J at Ot3&H#<KON at 1w20u<%
zRT~x(UEIA0YK1H*EnQRNAYfuje5Kfs^3 at _JjIwo8#awDjMs8l>yCpv2t0CQS25GPk
z(T3H at +Ji0x6N{wr5xj4fpr=G!QI*?Iyy(8wV2^vrQWu^@CN_UE1*{HuA{7qO6jTxh
za|tF2nO5mHiG`iS*wi=ycb-0L`DJ^1>=0&{o!A1_THy=oUoL<xyzV{+NrS*Y86dti
zLecAtJXmxtA9XYUN!ep(MWz5S{DZ*?TNBJZuFord=Qmy3Ar~Mc at gDxYh|Tmuehgp`
zwGLg at 23O|?ev6Dju|cxnpQsS5uK^D>_xkHbD2;jMMHF;;8Eh$Np9k8O4dV%1FWDzl
zj;(TpBFaMsZLFAa<_3ZsAR1`%ow;ZVzGfpH9hzj8zAX-7+{uBV8L-LCP$Lhb^Bg at T
zBzst-#cNNA`AYg)BkF&=*tLYZV)Q;{y3v2 at St#!A$ZbUh9Sy93%u)2HW=Mx^iNRoI
zxVvI|sCjI9|NfAjPJ&V~6j4SU?NTFWh<`ogM#dv3jTf0N8!6yVxq6;saFR<04P>H*
zMtj12AhQhXiG~ueC~WMtEy3D2NiFWQ57zJrj%^bZ7UZ@&iXTHNMhh>Am4!Iyaf~#o
zPO at WzKYpS39|Dl_niihpys<CZb;E>n+f{E%{FW<Jsc5y061Z}7w)EUqFL1S&(IrJW
zLWmKgJ)tda=P_R`Mq6iBv`4$<naVEzWR*^nA+T_K4axBkF}Svwad8b%J$=BL{-~t0
z;nUkT>{ZV6OBA|`boNF%wFG-;^ylT&IBbN$p`aGrA`DMiCcO7Cqqc2udgt8le8T&|
zgTXhH$Td<(MUz9a)aS;W8i|CTaw2(7XT}T93BKFO_<gbBe#mgm^|}4ofqVZDl+_N6
zh$8dPW|tyu_HNf$Q7+En5oQ(u8e%_(jB8e!O1?Sku1vliH9g5WmCzMzBulnYZE&d}
z=qj&DoQ at uzw#0;g*}q?JW;1;uQ;@Y*Vo#LFI7JY93-e3F(_Y=Jy%n)1y6)G?$x!+s
z=#3(kzs%M at dpIA&PwUK5FYL)J3=O8w%s!42=T*Re-{62ogFZ!-K~ZF+%LD#HN*@r`
zyy7}p`1}I*ztBYye2SWZ>vd+J*s}^Gu|R-U;3?>agC~ni8+{J2D*Tg~^uGpHlWCz2
zp;8dD_=9x)1?Vl- at 0t9aKHfv<I*=E2yD~bk?im;RhImbu8PVDEaHu+Lcszy`>gWnh
zD-t6IPT7Dq%r<`VWY*)v8$Y*QI;h5`%Kqf4G$np+>#vliER#$LJmU~pym+6D-zQ!7
z40z`Z<$kty;rkC=d(Rjlwq#uFn-OkwNlnh{2rIejKBSS~rE7IAjdS!%)Xjc|z$p}k
zToT84;h^Mko2+E1U#eJ#jxW;4PdIdUHKRbwl^s2#5i#s6ZgVVCmK-3v(6!!FznLIr
z#Bai%yJseqs#KP#xsnEu_~z+8s`1Gt$N>D$@x55vY<SL|rSyfGmC5csQ1jh>c<>5A
z$4ZylO4t*x at _)uLm3yMQwKXf|L^GNO$ku4cjg2=W{_n+UG2c|>-%u)QHs6$nQF536
z(*4f><B+3E;rx3RUrANjlWTA!bS1^to86$z;3DUp>S?%cyam<Z^|5cP#EllBZf`y^
zjh>C@)W}nkB^CZTY}Mp$JzN$;!{BDmgCG6Vk<YpFG}Jmok8QxhgibaW2L<!fJAC>D
zVeUjh$WRa}ih7Hsz-8P18=!5Y>h#k-6hC%l0oI?|aWFdHaHI_BpEWe7NMRlmRA%ki
zr;Zj#YF)5=nJ^rne{#=6C!Z3!as0ivWr1-mF*TKTujR+A&4=hMEbaOl9kR>!Anb9j
ze{o!I&*R)^>PU99E3Xvcm`G$3KWkeDS9CMIK0X);NmDu;;&Q8>t#pkhJw*918wdJj
zLqBy4Yx30DDIVKhI(nol|3Aem5|b{`1{-N4Y~KBTX<lRAvEftpr6!n6hX1Thg&YWK
zJt5xnyKP9BIryD_<-$qLOO5yO{UHE^i9!;Iz^U`WTZzs2UbeTN_x+8dNypzcqdFyc
z7qAvn8OSqMkgk;}ef$u~>hvplHhO$XcHgMl>Idz|AHx^<CD~@AXa{?fKTl+xc(}f%
zF2NKX;QpwE5FdmkSPL?^p!h<UJYx4-w=~aOkW2N3A80b&s?MF4^#=@ZcZ4R9kqg`C
z`mK_z?W~^Lq5Hjj*?JDBc_)VKBDLecKLMazyy4aT<1g5g`Hhbxw}6HW at kM+ZeKqOz
z<pTE~$x?FYu?&I$euZ7O3=dbmBjb)?;lxyDYh&JF-;VSNT1mi~cuP<rIFh-XktmOC
znM?g;$=T9K(MY5qBE at MWQ#gSdnUpgqp1P%cD5P%ULYE3MGZ{TxH5xtHV;MYLWzjJ#
z>P_u3E9CQ|hvS58kq7F-N~hdNxK5`pMM-{IhvI%c0;ZGI>|!fciiw!{|7BpMWZs*j
z7AyVypAR1YoU#jq7<f?H(fe`D+hO?&9Yari(eR3g`bx~Y+N{|%lV|?9TcA%6i$+%b
z%<S^}(lDG~-RivZ##}^oW3tYhZ7my4R!hk}3PP=uf$H)@gDE2mqt(d7kKVFBBiydV
zzr@*^yv|SLEQ|0jr*<tAbeVeAh1j9%@vTSkiY)n_(o`poY$#whV|Z->Uyl at IqI>$m
z_}9^0aLt->?z%zCzUq%fQI<@dCmhZBIJMDlt5kxAT}L~+5UBC*&-hgwiPb>wNt%*p
zI+mnnj1*0r<@|gBQn-$W&CS<Gcj?^aj83zts~zz|zKX9X$WBUzS)PJAg1FsY$3Md}
zjFJPLW^}_>tJa<}&HLx8Q2ux4fH?>eN=aqc-Hb%dA$32uAQki3K at W=vCakqeO&D+5
z$Bn3Aa=GqKAxciT8gI+&<JQCu%43$0^FT1^an1qaVk}Wm-AKOLJlf9;D6Q8&aRkdW
zsIJSa)h69pjYn2P==;a;*5(csdJ&%Kh})+=->cYDz<E4=-HTS%W0kkUvc!;?ANQA8
z6qL&t&#<H1Ypz35RhEp`(|WPePB$<_p&;gQYVe=8Y9 at 6(W0$3FEvRdFSZptEH>^8V
zSyV?V6bvF+EWeoEpaxp6(e)%+wgVy3fa#Tgna?pi$>NJM!0<GJ`hg@?sgff<9Q{r4
zbvs8j_-57Jdsd8smz8COS!udhWY}S>T(kAS at WIs575HU2)bn4p2qqJ41JfB*(LJJo
zx+`eh9##wB^Q(hTc4{H<8{6mNr0F#CGezy@#;JL?R<{kBV=VAbJch^akE;N%<USrK
ziqR_{#7}I7atuhwE=OB|s_XFQrtOQutDtCatFr<A5^E}H(S-}uVZ~Vt+z8vcP*4;$
z3bj!OPQ-XADaIVJhiG0~KYpU|6+f%Rfnr2 at NT|b%7^!QFef-(1y2UPa4$m@%8$B-R
zhifabJUis*<?dKEn2(w`FO?}4yP0x&mwH6kx}g!@>^7Hf=*M89O(%)i=9`>(fS6;n
z$&oT+Yl6tc?jqKbghz&Gfqh8vQ#46$<+p^{!f}Xhq(ZnXtNqsO4_nk}y{?T4%-6oQ
zCMWkvA)mJ}@&j%g%7mlo7tOg}SVxaxbGkx at W3Iwyxu1Cp8(g*)M|8AVZa|DLiL5sW
z=Tc&`$1|jPf at F=ovomU4Op`%|_CwNIzB(s*&yBc(`SF9d-u*H0ywzq0UD73!h_x>H
zt_`c0>CI_dceU%&Tw;M$2eCICx0}#i8K*@T7O|hNufwP*lHs1UjZcHn2GUQvYq=9e
zm)|ldsze<b#G<-c at sTuIXrO;~(d>oLVS}2yd2+nm8_!o>5gs=_jowQZ8fMU?`rvv-
zfL#5FfxW-H<t~VU48ZW&uV59YGWOS9k!S9%{NUo=lLf66{C>^&oBSWn7|OnlHy00o
z#*ywoh$P7XJb|A#jNykEW5Jnt18Ls51Ss!=r2JSiOixcQ$PL<QLBcTR at PL@*%<-jH
z!4r|@-MF|)3_VQwchr at e&)ToYlf=%D=7BPDaEM9Kdd!%|(dbR4D6wja9^Gb(6~Vo>
zxQTw``SMKz)3_)J++?~%Npw|e!J4zLiav}cny!=K3A)T^KeNzSszfjq$d{j$#~BQk
z*@`cWDAU1Bgu9`YvTDq$9`-TWHsdpl=3|Ri>i710THbW>7an^lvW_=U{KBaY)Mm*j
zkdJ0pKns!*h!cj_Z+Vj?NU41wn5t^~Q(wM6d`<Z-ulPyV5#=DLi-e30c<#J8%_bK^
zW%WfDLO0@{joVu`sAai(K_(L#chq7b!6O6ft$Se6SA%^gHz*m6hxux>Z6_sbD;5!^
ztKpid(5QW<ZI$I_Z+0zYBZGAPMdAA_hv<lNSKFdxzy#J|;tehaqB5`|=0t$!66Gm0
z<ysji#S456?lDXdPJ39xAFr6(#B9eEg9fMaF+8LcU7h!4wBb%Uq*v1Dgr56qHx6}Q
zLu&=L)+A{hkwXmuqOt;C5jbiTFFe%k{*b_59lA#rJ`dRlTVqV34DEm(Dai_gL at 9nL
zkw!;VJr@>ssPo8(o#Y$iLAm%z(R>0dxdOW4vv<(tRx`$oh!mCF9U at M3Mt`YCU1D_d
z8o$8%31Qfu3{ilI6q)_f*Y%>)$cijux^Rx#Y_ueX9?jj#)vuomrxt&41Ls3P-K9q7
z)}O8UJK**bfl+H%94B<fKJCNwrq#VF7=H7H*2P)fakpq}AFE#f%$7J|7-me#N##CU
z#UW`^XfUUz6GAJov%g*GE`=0z^X=64>#jbz{(utWmL4(W%!`$JiV?;L^vUBdR(lXa
zhAiJj&imD61d<0WH at V$sSxDi=@=K8(T2&d{J8u}A#g}z2R*30lf|)FWALbS}Pg?(N
zsS!f8x7&U%ho1_h<biwGFRW(oz`KJ!?~aD{1d8Un)gnR>6x>D4cqI*-_i$m@)NXZm
z8H>gspZoV2k(A~3xuB>6CVUQ$=(q7S3trZ`n)+H;%vrbalC*FHGo}LlkgD>mDRF`@
z>G2bZO2Qc-IU)dI&DL!uloO_!%n_%NGr6tF<f$wxVhI*W=Z6Kswxg!gSn>p2Swugh
zVcRR;sjRt~R8bZFlDqAxyZekZWO&;MDVt2oQ-o}!Cau+}&xPkcYnU#9PE+W}JK6b1
zX;Mf{Dp9n4&uD(tiB4E4IS>J|(WQ7F(Kbd!ocY3MPJX#1*+rXEoeCiL2bu~M4tz6v
zOK at cEp#iTB1C49ep{>!Q$J)N+#t?gFAQY>D=0uN*wAxZoD2<w_hJg#3E2mi46Y0sx
z)?rs&D<e92Cxco3Q`RjNGZJ7v9*%aKBKzdX*;2DV;b at O*;To4n7wGh`EAxF^SR+FL
zs7j$nDdnD$<OtELSfQ>Go9tzS=WP9773JTAS^B<po|q}2`_|mkN4LhO^kIe=+1Ea{
zBGV8r^ePbW_=An2k;czb$lcO)gF2MhNPG(QnLnfd{Qsys&jRsKxRMmSAiF$nyysz(
z&PaeD85%y?dYRT=%QMpNWJGJD3o{r~cg4|b7x65&dC9oenWM1#*C3_kFxcf2$H-`O
zJaNWyF)5WMXfTaDciOeeCPF0=zk`_lq#@z^WPntUYhXy3D2y|2FIOZfeoh}V{~zV)
z!qxOl%_A1Mr=B(|GDm0^Gq9${7hh3RsUG22+tCjC_-#>G-3hzuqXcmUEK%g5eM|03
zLI>Ul_LK at m4ik9FIXqMo2<CuwEHp=|;>?Y2p5kGI70 at 9UMEcPND|=urg0D`6H1r-V
z2tavuTY+-O?c1}LGX^-XWCNr8WRGY&3Fk_vS|O9+I)C~bJ;LduQGAp;2{&dv<kq3j
z7qO!kN_OT$Q6kp<+_#JF5}EGQARFrN%^4P%cbwC|hM%;D!m6H;!^7t<ut&6Kub;Sx
zO{5ai+h<GDWf08RPjiIPcA-<9B*HBi9nPt-8gzm at D6|7hQ-UN?`aQf36WL7k&D#HC
zV2r+f?HphF_+*X)i$KE}Xlwd})nkOLqk+n+*^cHoT=mVlU#e_2-|Sz}q2eeG6OT;v
zRb?PGsvGx;q2IO+lkH at 5ye0Lo+0)}cxZPi;AyXq7xtT*Fh-tb<P_2026M?qAp at 1Cz
z4-%~trBYzw)fA)FFzq?@4J!>LHW^k<y&+!sGxXP&ROPdYzHt(r6MDTcx>OMuHT>&j
z-#8Dt2_<*@$B_GINal7tIN%3G)f5O0P+dLnz0Rj|lM^TBddY5Q(TTnX`7U19Ukz-z
zs021g4RX^!l-^mBkL-n at SL<7KuOG?sO!X2`;0izc3CB4V(Dr%1^syGR`c4oAVjYX@
zB3pfuVxZU!od$$JmeVaBMibi-(&^(vXBrC5{zt5olc<s^bPe8Abbbsu!@*}Sg-eUB
z1^{Y7JKJVYyj|^Krg{F*U~qWp&o0x>s-Dq4agQ-}i<jdK4|?X9^w<8ZkiU(7r|Bim
zaT6$<ed*khyJm~KtNHQb1D+w`EpP!9gh31gLn5V$AkhbC(1>ACcs%Uxkt5>GU()qj
zE&q6I;JfMQ$6$!riY$f}Gh-G at 771`Dy5dj*K(h?3ztqLv`~^?QU$VeSWeNo`FyxB5
z|F(IQ*lY8qT(QM%yT7YkOsSEErUZ91Y!`_3E=%kbdQvMALY}{3CK7bUEEhH~;tRsO
z-zMeMr0I3+yN--h=DCed_KiY(A`{!lJ)A)hhyRTXQF}ZNn&mW66VZt?+h=y%3rxDi
zNW!rSXRY`QeaYC7t$+a8lEI;7A8kzTT!@0KRrGN*l^+K^255kMH`)eXhw+3$6cmyL
z+ at 1Z6%k%%95GcCjPXFuEb|asMFCTokXGA%nPFB8HJyX={n)^VEYlvwnvIzn!JNz4o
zVsr_`b^yzUE)KpSgs3f&;!Rn`R at qc~w62kbI+tJIi^AjoCw}sq;w>VbUZU>iv675U
zvQyuXdh?l^#>;?SVWnsO#Y9fUNR(58u+<oeO0AJc_GAJjx&%3LP79G7hdu7|t?+a1
z-C|X>Rk43iIrWLA9t9T at 4K9Nb-MKzxXJqxCXBdmIz~Au8OUjLgpHz*{<XUsKaW5iU
z+aqm0_x(ACvBR9aw)cSyb3iIDVa>1V(KsQMAYKLI%hr8S>xkKbP0GdvdN~Z!M#NEW
zRoO at DdY4IMn%h*!<kEMbyJ4bHz0YXfzH_z at 3Fw}bX!6v0Z+o8W9A4u_1I~Fv#*)>8
zHksnA^vAd<>7yHZ*FbU5T(D8{<Qhk#<8|i^B&ex6qDR!Z#g at v(vS^HU3=h{0{j|SL
z{s(Q+T>iI2<Qu4ORD=pK6p+>fiHiM_vB<iF9!*k{?9YrKCzq^LUVJ5Ql~0wa#oG$(
z8%FjPu?6CO<JmK0`j>+gsit@{!(pm%-a}L}>sz-(9iYaZ)B4evvpMhGUnwKX)6XrC
zK#ldcQKu*@SpzJ1U=}Ps`b1*<x2*oG^)~9v1k{&U#7BLN at 6mM_mn~eh)gARC6>GiE
z<<KZwmE#P+BeDMF<%rg*uawN%M;9CcfjV=^crN;YY}~kS3doEe^Vth_!K1+9mi)Z^
zpKehbzOcC}YFnX&(rR|<d)BINJc{EL)R`@#kH-yL9bP}g4Q(35hCjESq}KxaP2ci~
zs=oB1%C$V2q8xdbzk?B}Pog4&@lm1Q-!1=6)_ucvzlB{MgJ%wV=q_u^(Yemff4K4I
z77b8_zg5+Mv>L#2j(HXC744%_TH|@v;Z5ABkz!WZ`Tf49)CX at s67ox7#B>+?@e#0F
z=$h)uppm7J<2 at n-gH2acHMFSG$F989kMzaiZTwS&$b_9qk|R4>7V%lP4t19m$a6Yc
zD@;3*n%(Cy9oN3iihq~Urriw%YLTr*>;#{?kM?afMWY>1$_y*&<1k_T!1VQ)RzEYv
z&)2>bC2_#5^)tl-X9=TiVio8eSgjGC*^3`Ur(dEtJPeX0Q=u6dnn*n95qxc4oBo!F
z*z+=yd9JL6EDwxgMVv4I+~aFW*C`%%K51Z2I*Q9`gn_^LIzq9k at w`?G$<_Z%@Y5?M
z<N!QQ^n2^s_{?l0nk&4lYHOu=nq6<28g$0+sz>jlJK9H+2U)4ki%yse36|N-12iOg
zBBW(xDA~(NS+A at mp32|;!ao;|FO-~?Xq+ehee^Txs_Iqf3RkQ^(@o%px@$L#>B#Uh
zhb14+x<PZ=!+7_F-xhhC#gq(NTI4-Gk`}7?5*);r%*^(uztsQXGtD#2$e01%Vo^~}
z)6<`5PvqYVEIdm;ke=MT+V6zP2E@!V!h~#8e(CX<uT2h;;yiTB at Nlsl$^Xf=MM7g-
zB750q-o;{<{na&x<`&HT(iWM>fnNUg)!@cLij7n~pIkuq_n7wbND*#(a-Ll%YxN-D
zaJX}lC1%X~gif{^$eYBcRJc-r;i+n{2Lcz9n!L1Y9zEE^nfrx8 at rZULhz)=2LalZ3
zq%;Ttc6;5GyNmW6c$m_;?e6QRKM5fey at G=Sx2e&MIO~qCZ&>{|s*rk<Y``quxF+|r
zui$PK07$k&$%9R#&ZTf#at;Q=zRyMyB<Ebb at G5l0pR*UM^jft~<KicktXCWH%_cLm
zv!Dp>pnXi=w{KGRrIAD05XYSjETATiLMQuudiX3sY1NS+=y_by|2}JKG!3_gkKbIY
z4Iz8Uz%?M!3M!(qxDa}EBf;A+sfo0oGanMhsItMX!ZM)#W|9HvtFp{k-;wQUA3tc4
zSfgBpzps&#nZ3pUAGnby7FHh at m#dO+{qr3=i~gRi1UyJ&!%Rxzp0w<fVwvOxo`c?y
z`)ug=(4I9k5TTIlqCP!>tYEW*8EGkPsWRyL_>@Jg7CBZowd<&Tt3y-p8hq9>+E_FM
z&G995Z`EhB;RHA9O5t4F4Kf^zl?_ at ak4_=ceRiS0^}Co{S at CCEPey7`di)C`lUJ6v
zslRo|z-7j>jm#3fy2}W^zGCC%dCU}cVDIX9n<9Bx(2hnJ{;x;{P;|-Fik~`D%*Xt;
z*7?9s|Hs!CA-sls>&GA&IW;WvEnM-^c!Svc!nKfSm4uOI2jkiA@;Gh;I!62gfu(8R
zCs*5$ItwIy>tSPD6!_HRvZ%3$Ix0DD)FGT3p5h~d2wY($#@xpIQfly1YUuaqtI(tK
z*QH<nAO_09|D&g?Io?q;8phew)pe#tIr&prg3lgmS(*OLs<j>i4g}u3hyNPT&PUN0
zh-X-1ko39+WBLK<WobLrW{uP at e-y-jax=-*!NcEiMTFb~49{dXY6V^-+Lz3pv?Z~6
zz7utFF=^YVu~@iZ{J#_)s_;O2URq41fv at W$4!;KdC~ye>*S+JAnj!(y{_L7&Z8%;2
z3y4Y3X{9E7^;dJ=_zl;eM}xm9Q(|}dAD#_qfJF%9_nb|+#}|RO4c;S&x*ipRJUJuD
z>_2g6N^@R at 1Y4mNN)Fkv6osy{p&!UK0zQ$Uw62=97w8X1l)>1AWEs!euP4Klh>_v-
zgE3udQnx4x#IrxV+9N{NpnehhB(WNFG+IX-jr=indjXls(Z_Xm?S26H{aFKKXSZeK
zj&mEk06akdH$`HH)UJ+pH?OIdZ7v6(=?{#f1bc0_+o30BJt$Wo>l04NF*EwN;w!B>
zE)3}YWA4!IlwAa|kBT>(KGpfl;8_0k2uL=Ro_TBbRLD*e`jM<;J{vKIpNhAg_?>=W
zB-+CZjXXh?6Fuy-Nd5jhdVlz-?_a<C$2EB)^AXfWEh|^s%a_Xyl;-)_LtvqsnOI||
z_V5q1q6MZVTcK=QQYH*6e&pa`?Psc(D=Zk at L6*LMh|>2vSj`1#hr&Kbk9<3`$uYkI
zx`*NnE_9-_f3lYJ1E%+&bic-~>XL$ET>u8jR=HyEyr1Hq0^f}v+y;f{Yq^(gDK)$K
zDRGF(J#hupmj$jPh1e`tkh%3}E9zZUxNWNq;~(dQhfi9aj&mbDirD3$mA-E8T(cU%
zZ$TUv<pUX^jyDH2M<y$(d&f;6Yj$qmy|g%F!k(@WaC`Fr*Lc0!j;5QdZ9dZmCr2aY
zlB)P0TO#eVvqKIR4Y=b|{aYgk^Nva^-YF?ctK!^IGe`pMXeOT)@}}d2W(1SLa!ox;
zt=fXZni|ebbRJd9O7Q!i$5O1#+MB&YC;J}uK}`bK%Tr3U8ll29;+89p<j<QrsCTUb
zpsY-wwn|uKR#IzvBOQx~l4{aEGSf`OPoHbD$;B0mlTzu1m>}TKQO?MJNBjz{t?5>+
zXl at RZx{DCvSi(;9OYA)(J6QthOfEad#)<M7i*T$;kvzxH6rbe}hMOIlo*owU-fH7C
zmfCfgTYRZlQYz6!ofm_Pzl~;j{uW!b(BV3p?T*GTv$2R1U(^={jWIl~s5dD*lRH9{
zDqA7*zEQZ<_)Z%8kh(p7qM;a%NzU*`)8YzbGZ|h>R8g0?N86Y$H>ZXxIJow=51cAd
zGo}f5P6Y1K;(Z9_%C at V<n3GkUWTpF6hQ66rw6uSJZ4~VI)Y~h-B~(kY90XL82_`B`
zXuIizUL1}gnp-7=yh*Y5=oxT+cuR?CUp7aASsTNL2;$BkX27f<d*BwuyQrU8DY!{N
zsto>ki+E{;y9R#k&_p}$Gg#x1Z>M+i4%3&+1gwJs$ruPRT+7sue!(U^-FXj<W3ybg
zl$iV$E2kvG6D1ftwz068IE~zyAAU|lfvg*<e;u1p737A8Xqv&d^WO+)`O!dXGtl#`
zU&M@&C#M?gIr(baD`-$0r<wvd;>{LEEanp^lgmfy%d)baw=A#IgeIIjTJgK}zj;3j
zd<5(f%YGbH$V<c<oyAbhFj at AmxySj3&@M8u?TPNb$|i#WO<eLu#-qbLZ#z&S;c at hg
z8_+^2v$jocdxmT*%HIzdGe2NUNc7_WbAc3M29yhbPPO&gC!TR^36n<V$zKUnzGZRK
z!cmsoY4#qdzqn<e>vvxow<jfg{hoSuJjJMgWBHNi&Mt6v{6-oWu5<lixP;@n at p|xv
z_hzHYKtZy7D1Y>Dc;<LXEs<by8RUwYBzy*FhO`WS>*!WOdQUR+iz{~vrq2&Qhw|#4
zy;!DKq9p{*<Av7>sc;-Zon3?>bD9%7V}{>jN@`Nud?3xCX_5cloyU%nrf%7;0F1R=
z(v)irL>IT$?NgJLp=iSYz=VRxt4BdR8 at dEtfCQ=VemTnAVWtGVgQ)4cH9-j3AgNPp
z1WJ#Tvx-oJx`5OvJom|sG?f}X9s1Xb;DJ5F<1DF*Pg_fx`D^OewdXhbXSvE4HgkB>
z#{Saa#OhiM_1woLchx)1EAme6cjxZb1B#V6VfDVia?AG1Iky$$!=O at Ytir0J?3-Z2
zU}cuSKuEmaH*W*l``1LbXn*eg%GK)qBa`Z>x%776P=WaruVC(WHfG3Mr&xSvC6R}I
zsFM$Rp3=Xh`eMFr|BCVbU$osymf!ezG3IxwfSGO^h>H|WM>e~3M`$ImZMVsx!%{)g
zQ(0`L{femUsx^CAdDI1^XpUr=Ca*EcXDt)nPq;{KSt`!<4VO<nr0u__J4AK9Zs$zW
z(d$1@`bO^X&}QmdGMWX_#qjv`BH`PVIG^6fH67>Ue1maJ*TPByYRP#5jzbf8Dj)SS
zPq3A^c~Z3y&z5?X7wVOoGg6c>x5JRLM-CB5QM!LRm=eUU^aBqMod|Ym<1CQu>^!DU
z2pRfs8Xj=L4mfSepw{m5u(8^b3z1UR6xHUk>bv~r?Nr;6Pm at V8yNwYeIGxJSCULR%
zXaHyPbB6CaG^=GNk^$568VCKRsUu$Fj>_L~@wZU=E$5FY{T3d{7-U>u0PSSjO#5>K
zUWG*{2IB&MQQ_zZ;Jd3}J0z<s9#Af33~q3GGQ6?@nv2_>-JR_vu^?F?vImu+{R=JU
z_4!h<DBQ2x0&!A1<n*gV6iVs2gJp%nz+B^#dw>!0BLZ1Lm3#U5<Gwhwm at Q;uLw-+R
zN<L%U($DNby4e8})Oaj!A6Zhc=A^^evw=0er>YN6y)r8~vm&}06^kHS at v&aOi>N5P
z9Fc>w8ZFo6y;>bwHD6-c)R;d*>FpDvjn;=f>~dnvNLZa&U4gd2gt0U92uC6oevk5e
zNJ^!>s#i1G5&zdn{Obc}ZiRjOi*aBzYsng at F_{Aw!NhbXt2FPAzhwJXE at YO{CeFO*
z`+2cKeZm8bwdQ$vX6E;*$47A#ub3`v-bzA@|Ck+$h2!Nxi#lsg!!vnxSMrVXh|j_p
zvDsB9x`1E)!Uxc3uSI5T3B$KJOFo=^qNJDc_eodJU68V(kAEjLPb`|JC+UgRWTvnf
zOYWC<B)rK*o;c)7<-+8IJqyQF&u7dG*4xd0G6^6Fb#O17?@8C>b=6-B9gb~(SiXzs
z4>X==!68WcvIA03DUIe^P<2Pw($20dUZ|Rco0?I5Yad at 2CV$emA~w6mXWt%|m=P4n
zqbqhrmY0D|o^HGP=|6UMd^uiA5b at Bv!Ram~f$AT_n-+Kej(VpG<YQ7~{nV!Sy4*K4
z`@*I*pqXCW>s2)qrj-%uRI+r!*|F>n at 3||XWR4zW|DGQ9S~;+CzY_sJ2z@@Wt}mpi
z6Qn254@}v9`m^Y>Q&vflpzu)C+ZVl^X50Y&D!N6O7EciUrN~tp$vyOFG1*14g|W1V
zTVrT2-|30>m;KkXE8(PO9#BL9XQmvYdMPQC2F>}UP4XHGJq!1x>H0*(&@WV4pY$gV
zFZTDnJ;l{cv>$#G5#2p{%cfX-vvsFSp+G-kAX^r3SjqOFikg`NWN2XU!7_*QPPbRs
z`+RxG5buv1X at aH4@LqBr8H4H_<Ar?|)~B`EJiqzGacIsBZ<k27)(SptiX0f|s5RiT
zqtrj_G!PEm%c)_9lXg9OBE_^P82>z|PUe)hRfr7Tq{|8EI!cIBTRfyWJuWWmU$$f{
zAWx2GK)4uFhQyn;UqHOKm}on8x_gy=y+B`be_V^zsKqJ<1en|Y^gWQIL}x)j(U8$T
zaqy~(lp*QPIVu^S^}1);-qP0&`kn;mGP{KBc&QbI*<Hg2`wf3)`rWmNjKatK;T at gN
zRSFS}y~9C=w+_>BYNd?=Lfv`^fs)W{p#4xFN;}e#Ig<nu?%O&~%YCfJo*BD0aFddJ
z>cV^+e-H4wYCQPNv99VUFEYZm<ko7+h%3EuayN;U_q%%r&~L7fOk6dUbuqK4)bY3?
z0gDuaUl9<8&z-h+D-f<_jR(A6Pc+HAP@&~br6$zKq3xtmatQwBnHOzAWEXm7215a5
zpNu95D!#7pin`zx<KC?Iv9JC*6w9R5;3=^TUP#gRMVi<XEwqMIY{utaps14O(Mmm#
zt<dbN$)jlUR=#RR#<jwu>#EV9^PDHbflIJyWxWoO-u1qp2EHD<KK2;+ab$FR^Cb#e
zHty$j<?xCnkL5sPcpI5I&#&G3>Jni%PAfTVL0(i7Ftk5{Zy7mtz_)q8MI1&2Yz^WN
zv&iuRvvi>p`CGnk=(mt}4^w=wH<Jh-4CZG_BaGT<**IAwGLKP?zx~S!0AczD(o}_;
zFz{+Yy4cdCCV0cX at S*7j3nXpI9Y^hbm=<!Zpan_RdB&Sy2-f`!FK&6;lz(*M3{<F9
zcU_jKFYk%eeLK5gEvDDm>nW9GSPSC!NNjjUX;Sr?@l5Xyd+TdG=4_ok!;_V&jvR$&
z$(!UrpD_?{)&!F7I&^v46|d_*yHIq<OpyQ(Q%yks1O;z1<$YzI-Atzukqadu_w0{p
zu<4Gg+)Oq+9tjE4uFs2x5(c at GUeni>3ha!Lr49SnqlASt+sN(^mXe1DN|I2aK$Ye_
zY^;P(f}oP;Twf;K=#{mFKK_a@?LIS6bA7BH1tP;<Tk&mmS;k0)X{yd3#IXaj8Q_0c
zMNErkh^=-_`DyJDQw}c6{4K|4wz=s0zG>bVn<4g#Y{r32f~eJbH)RB}Qjr~({P|fy
z<bQb;TE!y9_Ym0tr}-_IMkAnj=<@D>s^*O;eig=|s_{J3p9EK;*aYaf{$X60gOe~W
zj0oQqK)q>~Fv+J>7${1ePn~#CD#OhG#&@^fId5IbA!NaKL~4UVR1qOW)|3H{Pr-q~
z0r%9dBSA=QDJiaAkvra at Y-;uWDz3CW;h~QtnSD+_qnS44nYamzZ at CFcdrUOQ?a%Y>
zZJ5Ycn0X(P&!Nph$rvDFp-2t`F4AC)W5M~~ynjFWTZP5v5UasxPWKr{kLaSoL>PRh
z!b*b=-{;cH%d4y=HYGTsCj=aSW`vUQiHap;PNHHbDAt=6%Wh^Vp(LUQwc!PGc)5Nb
z_=1AM3sg}>g#XY(z951iR!}dhzlH^Dh!RB*Le5P``)=!{+(C(7Xdi32NEr*&GfvkH
zFgwy6iO?Z8;zpT3`vTU}+cA%eTD|yTC0VpqO1#hA)lLv8Bj}=Z53szs6C;5`0Rrkd
z at lh7oNp~}%iA)MhaBHGrAaDc20)w!QzGN$-+n_)$=pGaOA~0MZk*6jwC~EE*@Vy-4
z-%o~f1+NBS4~X{kLzlB6S%0D at zE_D^TB_>5V{7RWC`Am=<nh)4gNeTH^#K(mFe40z
z#e|D(LvF7`lQ at Ksy)D7A^0^8NU6nbwV at _*_pcpj*j`WtUq&#tkYt4r7{fcLsTgd&+
zfhOfweZEAwR#^wRMYQhde~~#7a~56Mpbt8rID48MSit6Gj;toJuEUfr^srzJ()7=p
zNA8-}kW`%yUSEgEKXA_kQf8K`ym})VbAXX!ksaO8LDSt+1G!IbG&^rx>qTt}&>WOH
zuV20_LjPBS?p=&HhRE3gZ#8JelA at hp0|fb3-7l1i^7gJhE(<HJPj8%%IQ~7y0L|R=
zmfNs(cwu;_5~)e)aDL+wDhKTd()SG*&R>WE4fv0P8y2-wl~IgVJ)eu)62U+#42$$m
ze0}9kH(*$xOP1-?GLAwT=+o0fPflRY at ahp6(3`Zkm}takqS?B5AmfkNP-&)ssDALb
zHG+5=+JJ4KdIyM6Jj=u=BUkbE0Fea(bmH~~KZh6H6<V#WqQnxrKe*v+NYSD8VzXXz
zsEZSz^l)f%0K5l)<$Dau8m6G10ag+Qo3*GRW9*$o1qLlIt^zetK->I1e^H&V2*4gA
zacR+V2+Fc{b+q2W4X|^Ha3xB>h~5N(%RplE4?UjUkP*o$>$2O1FJ|Se#Kebc{_ZF8
zezjiA&cK8aQug>hgRY1I9het7w4OWkh!T}!!O3sCOsqLA%Kfe`C1#fIE4mGTMI);r
z^wclN?$`033ESV=*`FK$<<u2ZqnD<XB2xN=77f)p%mvYSpiuQxJ>+ZaE8?e5JYHhD
zsXah~579|Tf7mF~x}vu020<L?;+5btJO~B4eDI01d5F=`4UsO&Nvd&uO$w;50RtAA
z(j%^5E5>JPvS#@8j8yT{de!50hr9ds-|Fvg`r^r<V6{uzyBfDqQ^rQ7h#lYB!g|HV
zh#fi20puS<5T;hXo=KB-1@#eKtR2{98nB2=Oc_%cDiZj7!2`hfx_*Q<!R<Y?XcXlu
zv+&gbYCwAX$dqTkDJgm>m}+vQ^k<_trje(-)tL6u$DW(!rkoJ3C!Y0jQr2yD+XHTE
zB($mB4X)SbRoIqL*BHuBZnf4epqJ}HEOFZFES9K%>z7BU{mEWS40Eh4v?CVTQ+0yA
zv|mt}myONCtmQ`9iv3dH1t+nwWf`mgT-3H_5t-qS<`>Ys8gv&KU&G5FZLR%(IwUXh
zk8rUs8NcqNG?nfEVGT=GI=Xdnkeia?d2 at 51UV`<u!$n-?Q|-0rl6~Q0N_wahA<z65
z-whf<ePfJpH(NW;pJd6qI5d?2YfuqV3__bLZS1o3k%GJvE~r=-*lUqdQmmqiBIem~
zG(p<aHw2YHXgXx)2_?*~W^*JYmOv?kcOj;u)~-y#ERud6y63Ld6c_Zc_bfRQHRp;u
zWqWnR9^P001wUZLk9j90*<D4HMgy*;Ik+nSUPKVDdDVzHOmT^9eKxy$Fk19`9YusC
z-lpGs)4m07)xKxw;Y#nUlCeH3tF~sHT3?n^WJpq#zz(fA{accO)f0QIhR#c<HDvnt
zulQNsGvn at W`KG1oa5Y76<hE<>S at 1Ih<ArS-5^6ZavW4LTKJIGue?~X$iy@<hT#yCl
z`r4K(D0hqp##{TGJ0Ss)DGv*);@~9 at r#XH7#kFBuwWc@!)MWl+6L!h*ik9ub7oJX=
zI;a+%xXI?vc-9}asv3b=C|e=8{VU&PRjt7Q`RTV~&$vOxD0q_S^KT4`KV7qal+%zh
zph2D+9|q+FOoBK7h~}Q<)<oI at U*AdyW6&ca^{CzDXL2s|SkW_IFuSCSonPhBuK9p*
zm|DVgYtqDFc{}Yx7THIh(}Byk2lf*HYdK1A^O)s6 at kn14_i&ZNb%2U4=3yoGFegRf
zN9g5|_9lCS?_<dLx~yej at qYP6iUe_U$=))I61|QPGWLq!nAGFlG6aF+^s|3oLMSPY
z1{D*c;dBLjvWg<wVu*TS^2{~I7>A3L$k~u9EKKnUkuZ19WzyVY!(6Y;^f^65Uj_ql
z`mq;q2%e_5%RI1rvVk?W={ltjb#2kr at 5IE{aKJZnApYo?aw5D>__~tmRx)B{*zrbv
zoD(FD9TV_>pP at m8y>#adrMdYBmw7!uiN_CroPz~}i01Diq``N!#5|*oPzx)#rsCo=
zaY!ry+P&>t_C#+{>k=M4 at X${g6&Tov*U#xoUL+1zu8=`^5G?|34;jSrw2(W<4Y7)B
zJ=B!XixAUV+H<QWM8{l25rwRhgXl9*vt}wMi9j^?4T%~iis(x;OSO+dE6_|F6cblr
zm<&O_)at>5!y%LopQ?M}YVV3${`Ylmu|?99Zk&&y6a*}6N&TATmVahJmxel-m~)jj
z4<XtfK4+R$;_s=YKN0;pRW)$c-9=3?UbKr|Cn5>Z^_wsCH8(Fnjc|G&oMw$6OX)iD
zNNlXbO)R1oMAmQP?;K92%|$Anw65_lZx`%7G-E=-#h1|hKJZ?3D3Q=yvE%HKgigL5
z(9m?u#|Lxdf%MWo<v*}rOX3UJL9zI|H3cxLqJAAuPdr_7Y%)%`<bM+p{?gPt=Qclo
z)B0Q9AA#e)Gwlzp8+_m98+rC!N}oRFM%u^cgb-bLNkxj!(0<1RAKrS2FMzIKyM`lQ
z9-8}afWmrMt;>vdm(?!P<f)RPpRW7X1|{J(J#F@(IG!akt)pfD?8#O>v3G^X*BXs@
zx$BE&`|ZG6S%o9=?*{^%=GiGX&s8Eho?C76A}R(MNkBrZB&ip8txp`~R#}2 at TT8GB
zu*-(wUdTF?^uC}+n24;5-D7U|ECJ3+T_`WCUXT#c&Yg&mL+J6dWxEc^&8u<1S#OTG
z%kXlyf3n))<aw<GL|7!tV+ha^*;_~UFCSmPgv3##+|??=De-t3S_N69NzOeK48fNm
z9P{o+dYbuE^mNZmDt)+Tiuxf^u8te(T7uHF)3>{9nFAbFV&xec?OW6WCM|i5G{WZ0
z;c<1p5(y>Z_k4d3>7qGqVK2tv>hZ)JCOgoKBraIN`1YQ|VcH*tIk|NaEezzTXVsk&
zLhlv^i1wNro^y24nb(@&Lt!Vgw<cpezF0W`WSRqF3%S>uH8bP<nYu|$8On_PMf0(d
z0dvGEj#pIby;cumUX(+R6v$0hU318WvDzu>yUH6M=qU4(q1`V=0y$8mOW at g1Vgv7w
zTPplFx1cXVW4&oF>h9xJN3<4I`RobSZ3~jxK0(w;+Ng+db1E|WjKH$b+CRFG|FXrQ
z>W+G?2g%=-t*PNj5X)yayDh|(Yhl}SYly>b?K8s9-;T+M(i~=kZ)#A@%0|H$oJ>tC
zs4?7wBGlgJQ8UUB^IJTWQLsvIV(65Yt_-OY;=pJauDhhn=lDDq=64h!+mWh-%)Ge7
z##S7TlY$0vh5nu5vF!etzHm*-%;bcleTnm_V at sKii<d at Nz$w1eU5(M0;NuZV5I?5G
zf;^E{OFsqvyq=H>k95P1^}W{zHaa;;91>x6EFZ(m4bKOa{g*kASJi^DXhH02Nq(U#
zONkGJ-L;>+ZMgNz^n!R-9f#MHa~gV^Q<eu=M~uX#XC=i=b5D3Q3tZ{tz2EKWLS0g_
z@&!If6TZlj?cn+&hCcq at 9BJE+!Z!?W0m(nUQ8f=5Jg|Na4=%=iQahg77yEoY+23&7
zS?rNr)RDB=%l8q0U;djsC6bs^QxC7BDro%v^vHHD5JuHrK2t3O2M4no63A(Zl^Mgu
zrPol(qR;fq<Xoa!^%FH%Z3}pj#D~=i{#8;}%&+=c7S+GHtekJr3SSh~sO}eGd0k&k
zo3A!CtSM6+6Km>>l`Uji-}>;T^^o+2A5i8#acWN<)(J4351a&^RbG<V?$+1{G`345
z<O>dZ7AA+q`>Y+MCgMBiB2K;*Ix3dhQMx4Y9{Z5&Bw=I83V?IGSXW1`Kda25 at a9fY
zdp-&gPa7jeg;5M>Shmfz at U_TPqpcq@n{ak-I)`J~AIwU}H8Jf^2i66J#R>DKCW|^7
zhN;EUJvSI&I44y|$!nbPg#*XLrRYM=nKxA><83G)H~-P^eVE~DTe8fzvKL$i)Jq6M
zri}+_^!6eZpy9rsR-e*xw7=5~7AE2-kKe%0NPJ8cC9Ctlv7#&)|0DdHLjC~MTsN#l
zVM<d~isTvdX~T6B6Em?nKSqA^9IetjC5N!4vZh9a8};iyWQUM5#<GCX<wZk~Gs&vM
zOH^HO3fqHfeXV#4|LxU#;Q|w%Tx1$rk*HE_Kyf*->_JDwo((U<!5`VB-~Ur&PH+F?
z-G|9neU)6tI(~~Ol4#TEOfo2X-`xBxgJU2Aj1j`Y$Is>&gSB at AhUz3AQIK<hbRH-q
zhN9C at 3}p-jXNPIZCYuyr5ocm4;xY_55|307S{u(gD%U5MhTQI-j$Ta0_vUz&;)9ZT
zSswz_nO)c;RTKWvcfmwLt+KtXI8T1B3A6MAzCC~2$Cb4bR|iWwBj~$8FCPpuu^bAM
z9gdOlT+VC`umo#>f8rz8kbgi_g5Bg)a3Mb{qQueXH^p%55vqRx>+%8RII3@{eaiZv
z-Jx at MLQx=aRA$!ofr^E#@iFZ<@MN_VI{5Bu@!}3b3HF5ZyO-4g8z4{^4+ViWj0~2%
z_f~p-*!gerdSy}t*mx&WNBf>HA>5go_RzbmHqN1;gT<vk{&?I1jNS4^UTE~d1W#0>
zOU|i`vT0h`+5dQ+d*OK6=kE2_z<t9$=mMEMq0+0qw%wd4?)F1XKu8(P!tmHXD0z`C
zfJe7H4U=o(0UTIhSp at Gz5UWjiffTJ(Shuc*w`bHk1<0rGzv at V+;Tu#sb at XAMwp{vD
z6kUSIb2RSu at h2d5QQfmrZ_3LQAE&jdeZxXBV?uM4ok?aqOX{rxV9I;<q<XiLI+dgH
z&`Cm_%petB;M7}uz~-$DeH`j#D91NtI^bU9H=lA1PVrZVw~*wb!EvPrNkY6Hx>hin
z3>z#Go4YE33}B_qHUxaIuE&1 at k-uUDZ*VVKDXjl29zCS#joR>bw<Wj7=a79buA-=I
zNmO}~Rg&VfRU-FD4OP@{6=>yL-|&jBDTur+6!FYa90&OJC9~Rq0Va_kt_lBm;C}nW
z$6gspU>)97rwx`?1|g`8ia8EnMe#nx+rKxg>)Pp3V85q-?;?apYgu5WR{y$a(<|pl
z at Nd9;*3lz|4w`uPZOGeL-o%X-$xXI#=z at 0<hQ>s<d9WQR{!yPEz&jgse^p3iwS8{b
zYp%IJ&jM&TYGFJoPoA**r#q(uzE7E*YPLuv3UWp&q2j@!WihAekEgVL{@lnw3{M#1
z=5na50tW at 6?!XV$ewW(I(5WgbsbY__(n^QCHn<#WRYYng`d<_e-y}-#;tK7NouvLw
zYf^M~ScqwlYy2CC3OM<)yo|$%6Db4KMJg`-H3wdrM6!v!Z|w0btL*qBgY%G|m<iYn
zuSd{7-{`kC^J9P8?%)|sQvZ~8p<wy=O>+o+*cit<tqYbtQX{f#TuHNPQFLETvhv;6
z`#5)}_oAOM{Mh0wT6CG)T5!Fb;!r}ZvkW(Xd|^$?a3nwb*sOP(mgk544q at S#acy`j
z4NI<&n<SKHdUXJaC*EHM(VfFnAI-8_9PTa~N-RvX@<%o{8$Qytn!^x0(e|JNcmKa`
zue*Ou#OQJL{Sb1nF=1F}kvX++rdJ*BG-$q}8L>%=9LdoHZO*ATl<GBlv+?Moexv<<
zo)(d%?p9G6P^{Ai at tf<bGLPjoF0rTQDxi)q8rY&K=b=R^KJIc4%z`wt-n1)*vV5ND
z3%bDemN&iPvmbn59L}pq5IO^o0-(d>J}tNz4v(bW+7<Yc>8LxHm{SAJq!M`qH?HM8
z?HPQ&zX6q+&b!z52B&y=Z42Zb=c_rtfw(vr1TYp5g<@qEXku at t`2|4KPi;PwnxZl`
z5r<O5c%NW2M7{G<FGYlb!5RUf{cV8fSVv{yjS*|+ at OG}h<BGocOF}{q2Pg-5J?uEe
zl56l&`)KelpH|V;765UTmQ3qT!<P7|*N<h9wYuXS`*O-Ck9x|M1#C6xFwjeaad_`Q
z9qvu*(UY0yTWkH%@)_G#iQGz%gnh)%LmW`ZAqFNTZkaelBllp(m3ZMjg4%5~yg7|#
zw<JzXfDB5M2p4i}(6}i2ubpcc0FvUt at kvMdLg8}MyLzfWgYwWyI9Vij{`Uu{!>z^y
zMF;Zi1ZXfIs8y~*A2KHS<nJ3`z`cRDlajugo%Xp?b4vfvbY`?uM%|8O3kLVU&s2by
zbV~ld+GK9T&i*Uv7fSxn-=Tl#s3m_eRLLKVQ1S<9_t`5Tq$T--jIQMG|J(xY`bPh5
dH4V*Rb}^>k*E)Tykb=MeY~5{_zxhzY{{wXk$GZRk

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded
new file mode 100644
index 000000000000000..ebd61d64fa34941
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded
@@ -0,0 +1,2256 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 585,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 55,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 185
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 55,
+        "y": 165
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 445,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 265
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n\n  template <>\n  struct Inner<float> {\n    T t;\n    float u;\n  };\n};\n\nOuter<int>::Inner<float> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 755,
+        "y": 25
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 215,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 95,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 145,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 335,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 27",
+      "size": {
+        "h": 85,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 335,
+        "y": 435
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 28",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 275,
+        "y": 185
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 63",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 230,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 59",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 485,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 130,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 525,
+        "y": 185
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 31",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 485,
+        "y": 155
+      },
+      "name": "29",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 365,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 715,
+        "y": 250
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 71",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 525,
+        "y": 265
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 34",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 525,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 35",
+      "size": {
+        "h": 105,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 765,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 38",
+      "size": {
+        "h": 85,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 765,
+        "y": 430
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 41",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 525,
+        "y": 460
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 74",
+      "size": {
+        "h": 60,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 495
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 52",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 95,
+        "y": 560
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 53",
+      "size": {
+        "h": 50,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 365,
+        "y": 560
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 55",
+      "size": {
+        "h": 50,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 600,
+        "y": 560
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 48",
+      "size": {
+        "h": 50,
+        "w": 230
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 25": {"syntax": "\"float\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 40": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 83": {"syntax": "\"void\""},
+    "CXXConstructExpr 56": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 53"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 42": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 43"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 75"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 44"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 42"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 42"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 44": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float> &)",
+        "ptr": "FunctionProtoType 76"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 49"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 45"},
+      "RD::First": {"ptr": "CXXConstructorDecl 44"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 44"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 49": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float> &&)",
+        "ptr": "FunctionProtoType 78"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 50"},
+      "RD::First": {"ptr": "CXXConstructorDecl 49"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 49"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-csspec.cc:5:14, line:14:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 62"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 61"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 61"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 26": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:10:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 27"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 26"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 26"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer::Inner<float>",
+        "ptr": "RecordType 66"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 30": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 31"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 30"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 30"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 34": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 31"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 34"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 34"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 72"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 31"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 37": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:10:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 38"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 37"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 37"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 57": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 58": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 59"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "VarDecl 52"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-csspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-csspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-csspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 63"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-csspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-csspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-csspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 31": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 71"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 32"},
+      "RD::First": {"ptr": "ClassTemplateDecl 31"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 31"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-csspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-csspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-csspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 34"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 59": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 63": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 71": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 82"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "associated decl": {"ptr": "ClassTemplateDecl 31"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 23": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-csspec.cc:10:23, line:13:3>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 67"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-csspec.cc:9:3",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-csspec.cc:10:10, col:21>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 26"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "FieldDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:10:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "10469090",
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 19"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<float>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer::Inner<float>",
+        "ptr": "RecordType 66"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 19"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "AbsentNNSLoc",
+      "q->TemplParamLists[0]": "\"template <>\""
+    },
+    "ClassTemplateSpecializationDecl 29": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-csspec.cc:5:14, line:14:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 70"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 30"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-csspec.cc:16:1",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 35": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-csspec.cc:10:23, line:13:3>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 73"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-csspec.cc:9:3",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-csspec.cc:10:10, col:21>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 37"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 49"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:10:3",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "MSI": {"ptr": "MemberSpecializationInfo 74"},
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "13806641",
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 31"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 31"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 31"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 43": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 62": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 67": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 70": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 73": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 47": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "ElaboratedType 53": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 55"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"Outer<int>::Inner<float>\""
+    },
+    "FieldDecl 27": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:11:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:11:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 28"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ct-csspec.cc:11:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 28": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:12:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:12:11",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ct-csspec.cc:12:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 38": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 39"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:11:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:11:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 41"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ct-csspec.cc:11:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 41": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:12:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:12:11",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 42"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ct-csspec.cc:12:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 75": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 83"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 76": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float> &)",
+        "ptr": "FunctionProtoType 84"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 83"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 46"
+      },
+      "syntax": "\"void (const Inner<float> &)\""
+    },
+    "FunctionProtoType 78": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float> &&)",
+        "ptr": "FunctionProtoType 85"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 83"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 51"
+      },
+      "syntax": "\"void (Inner<float> &&)\""
+    },
+    "FunctionProtoType 84": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 83"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 77"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float> &)\""
+    },
+    "FunctionProtoType 85": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 83"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 79"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float> &&)\""
+    },
+    "InjectedClassNameType 61": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 65": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 72": {
+      "Decl": {"ptr": "CXXRecordDecl 34"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 82"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "LValueReferenceType 46": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 77"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float>",
+        "ptr": "ElaboratedType 47"
+      },
+      "syntax": "\"const Inner<float> &\""
+    },
+    "LValueReferenceType 77": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float> &\""
+    },
+    "MemberSpecializationInfo 74": {
+      "Member": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "PointOfInstantiation": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "ParmVarDecl 45": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 44"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 46"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LDC": {"ptr": "CXXConstructorDecl 44"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 50": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 49"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 51"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "LDC": {"ptr": "CXXConstructorDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:10:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 51": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 79"
+      },
+      "PointeeType": {
+        "preview": "Inner<float>",
+        "ptr": "ElaboratedType 47"
+      },
+      "syntax": "\"Inner<float> &&\""
+    },
+    "RValueReferenceType 79": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 58"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 48": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 35"},
+      "syntax": "\"struct Outer<int>::Inner<float>\""
+    },
+    "RecordType 66": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "syntax": "\"struct Outer::Inner<float>\""
+    },
+    "RecordType 69": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 57"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 39": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 24": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 68"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "desugar()": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 68"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 36": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 31"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 54": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 69"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 40"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 69"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 69"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 55": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 31"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 48"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 68": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 25"
+      },
+      "desugar()": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 68"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 80": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 81": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 82": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 88"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 31"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 33"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 88"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 86": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 60"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 87": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 88": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 31"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 60"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 88"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 32": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 34"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 34"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-csspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 33"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 60"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 33": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 60"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 32"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 60": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 64": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 52"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 52": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 53"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 56"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-csspec.cc:16:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-csspec.cc:16:26",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float>\", <in/src/ct-cont-ct-csspec.cc:16:1, col:24>, TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-csspec.cc:16:13, col:24>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "ST.CTD"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-csspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "CTD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 50,
+          "y": 350
+        },
+        {
+          "x": 70,
+          "y": 235
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "ST.CTD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 105
+      }],
+      "end": {"entityRef": 12},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 190,
+        "y": 5
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 720,
+        "y": 235
+      }],
+      "end": {"entityRef": 15},
+      "label": "Cmn",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "TdD",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "CTD",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 740,
+          "y": 160
+        },
+        {
+          "x": 500,
+          "y": 160
+        },
+        {
+          "x": 240,
+          "y": 160
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "labelSegmentNumber": 2,
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 480,
+          "y": 350
+        },
+        {
+          "x": 510,
+          "y": 235
+        }
+      ],
+      "end": {"entityRef": 13},
+      "label": "ST.CTD",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "MSI",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 305,
+        "y": 540
+      }],
+      "end": {"entityRef": 7},
+      "label": "Member",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DeclType",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "NamedType",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "Canon",
+      "start": {"entityRef": 23}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 755,
+          "y": 535
+        },
+        {
+          "x": 755,
+          "y": 455
+        },
+        {
+          "x": 705,
+          "y": 455
+        }
+      ],
+      "end": {"entityRef": 17},
+      "label": "decl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 24}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 625,
+    "w": 921
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-csspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dfa24a0c67098500a9b3ca658ae287bac9f2905
GIT binary patch
literal 32690
zcmY&;cOcaNA3s87k`&py5^`3uvr_iVR?gY;?6VcwC&YzQ^r6h`d9IQi&dSOz<*c*0
zv;E%Z^ZkB*zu*0Fyzl*bzs7Sso{#7A`A#s@*Jh-<K}SYL#;Eg9!<dZh0)mW;!k2~`
z_yr>y7*0mU4hl7W;;-)Q>FMO<PevA;w`NOkFokJ6yZt&KK(p$H*D==7BI{;dtI;hV
zou$*NM=x}r#Wa5JpS+a0wmq|fh|j22a!lj8=#msT^);A#Q3eggo#^Fj_OB at n1Tp2i
zTW|>v{aE|p1rJVG{Jyd|EH}zjva*?bXvXDcu8lH at ZwZ()x{zm^pI6Ey)3)E6FO1gi
zpI^C~*IX37%jXyKGw6y0gZ>4HiJ+49LbchSM_rnuwjb5YnD%BKgwGru^~;Uwyu!3T
z5&mGghYrNK2K*_zOyhrI*+wrvf8F_u<>!+y-S!6ptEH#UJy?kDAUeqBk>KCDMti~%
zy}nB at 69)q>b$z*<7Q>-8L1h>P^=~d`FH|qV+F80-h at s>)J_%Q`<!pHI*D(+)&!l&%
zsIdyY)5ufkyncs^*29f0osGuIFEYy)9)+T*x|#O>T0cK7Z1O19!@|Ou5fDcK`!frR
zCoL!hGQieufHv#X_S98c8$_Ej{j;ca*FsLU*AEW at uibp4JihFn`DiC4=5tDfW^xTX
zy?jLLuDVEw-fh#&gjdIpBEBy7TsaG5ik$n?;<JhlQQHo^hs`8LbQ-trhDA#3cF^SP
ztBeynrjl>M^0-wlWe<&*5menQ$(P?`N&Zuk;xzJzp|({g`-a5y$Ho0w6}G<#Gi;XC
zE+4nX8%`_e76wF_UKx!gKVc~PXmdA2gQ9uez%~yOVL)*=rDgLA&D#Q2Rqw|XPfRL^
zRy&tFe%l3yb5SRH`j8uLc%{)7O&Ld3Kl?i0+Ipy~NUeo9k);sl)>?R9$UYOtW+rm_
zV=CzxL&`=T{g&fu%ix{3&^ukSR~>#%-JrhPA132Jfmv{Bv5+XaxUyRJ<-*UQVsa!O
zTWlQ<rV*0r(L at l>6L(yIKYyyZT*vd1&HR#d%bbbBaIGAZM{=J1StUiTDOvH54H=}e
zRqm1pw-X_Tz%X1X8pX7}_kzQz_1n!RhAeKL2MsG)%bz<rM>NrC`p>gm7N{Gpb)pFB
z{MRalgXq`Eu%#6#jqOlottcZY(~@WGVS&^Y20~dijz9GdeyfZB?z^(tU}m-^uf`T^
z(j{@%HK>&lAsBI8%8AgdtF{>#dDdJM`X!4aB!T5u#Obn>t8-j}Kt{F6qs8tG at 4yzW
zeI}Vl2_b(Jh9z!axs>~uV~Oi9zMKB)ENjim>(O_SIpu67Ng)BX>SuRDnA#4^3O7aN
z at Tt^yM;vvO6Z0JUKTby_@}WCl=`Ol#hrnb9-v)&S#wm<5CccXLT_Jnd51)dbzU6)F
zlupw(c0X!e^<i3fL|gJTWdly7UzeO9%l8N|g%A8|=g3jk<(&G{met{y=XLL#{2+|d
z_SC9uaY0<UVqf|&B|&*MB4K4qZ<d%cvS`1+7eIk&x<`FKc39H<!4*ly^R2wTZ#h0X
zuk7|D^qabfWau^eO>BDDN*1K|21cw?B@`2r<om)p;MF;zb9m58RLHOXtG=Blii~pa
z<OC*ov9t8c$BR={Ne`<%GK1!9n|{Wt6FTmyV*H*95oYNjA9&hSR1zU}zchk2UHxKu
z?(h at 8L%oMAzUT^rZ3UUf#mH{)aD8&KI_n}Xc8T2MGXOv2Ec#d^98^N4NMjh(wV1R(
zrEzueTdq%F{PGvQFTb3b#ben)tew*Pqo}P{Pnvi0<x3y4E(8ZOwav!PX-8)}Yz8r7
zKH8eT%~6z}REd!|f-#7V8Y#dVBZH$<ZDyiV|M1fb7d0_o-6`h&L1VRR^-l at 7WG-u%
zE&2C1l)u1L^F9}?Un0?;=(p5 at H4;oGH3OG}rdg#*HD4Fu-=ghrsx3w2w<Ll884K!l
zNX(H>{VMqF%^Gv+^ke5`k&QFK<Y=d9vOiK(d8{=FjbHGTUv3|)P@%sK?Pj}f`_T!a
zHO{_EVpc}|>3o at v(;mIOyaReZ-LIKkUUwnd`|2OF*7~N{e>RG6CN;)N{7*ZJJ`*V{
zbRs`bHtnkVMc%ty6iWN;eNGBxwPd15deDW*n1Y*9aF$-|3;hdyX@<^ftQs!1uQYZC
zv8TUt)@};SOQgr!B)~jxH<d+Q{+_ at h^y<~U58n0{Qy&^$Bs=S$7HY`8S)I$flVQ=T
z#ui~Io;n^7Xj=1#9v+KOP>&0Gd68y>n|)qBe_F$oYpozkztY7(A&`IZ&F#pGPxRI=
zr-&SN at HIqjANrf}^uQRX#nJ<kg%UaYX60Xeq4hkvyq}w_ee(s~@lCmvC-hI(V?O`6
z^(}J!j?DMEk^ZDYZeA4!$@RXEwiGR7#nh>3+a=T&4zyGoF1(Kav}=3SF5|bs<jc2y
zLu at +mlY85hUm`?r>Z?@Udhn3!sRSGaUEZ&rddvBsW&7C=oA*=@n%$RI=LG&KUgjNG
z^=a6hDYE`FvfpEE=U2|P`GyT@`OJm~*kBwSJZz;{@+Q+45CxzJMpDKC7?^ICq
zMM_<fga=HkFQ|p=mQ08{EqCABl}O1IXC2<4MT2{egmxw*l#Ybh(bB<$$JT_$mT9Kz
zuMP*qmnVc|pgOmh1C-#S6~CjYx4B(5 at zF@7%Uu_o<g##i2C5#E3du&v!V6*7*9 at 9=
z;gO$()wYiGC@)9*!d2fl1zD>1;cwE^|B8PX$LsH1BeAr%Y>qoB-}&u*)IQM4EKjU{
zO?H~O-LN6p-_q&P^6XCn^(D7O!9=cyv^n~D2k5^SYcBiqb~-U{3pVI_k-Z%IWU$?>
zD!(KbpYKS<cb#7F^w*tCYl&uKe=6{mcYS9JALiMYLf^XWw&Fh5w0xa-Uml+Ht0u=i
zOSKO|+&?)$vP4a%s*M!=`j#&+sTQqUOzZzea^^91SscDE?q>^sMyBjv8RoNo>f>eO
zaJ1ydV|^r4dPVm)7o*cXmfeiK=f^iyGmd^mq!ZGw`i?wv<WN)TpMIQ~=ypHxG>BF>
zI(d`T()zb*kK4(w&&};Q@;4vcvuaAeaL5uh*uw~BfcM>5>3>k(MfJu3RPxZ444+iA
zafRkv|J$hOvU`$R(a!{O{;=a at DO_$*+H at Ap8`j?%+}ih0DWAIBxy|e#^u*U7PWob1
z`_<sR-p`LOH6x9dUEjU3dm^1h(>wX~eYB#mC*R89x at 1Xqs^CAWC34b}Jb?t=sdWMa
zd-71HsAs1Q$5SjM`ZD6He8qFl)dcnaU)>K<QKPCK`URQTn~&i}Y128LNyFAPCQyzd
zW87aWNB^3C2D at jiDC^!_ at 7-;wS9~7a$!*GtuXq;dJxMT$5fk3Yh`m*G<nQ3NIsA3x
zmo`@=yVcI`H$z$EqHk8aV_0VydpbXSk<!w6X8N>bs3T?eCAr*->J1M?;={Xp;VGL8
zTga?umGOC+uQ-3~?Up=ODC8yz`hNJ-M0BaXGIL{_<@=+lx#~?C_4`G0oT=~4|0e%n
zZ5FvAWR|vyJvI4SS;8r0$yPQmG5ahUa#27ou!tk5_*Lwac*nM8s!6Juuf&~ih^kc0
z>iXSYw`Sk|a0&gKuWdr)5lan0T$%UC36RY1N7um2OLND_JKbEAqHjZvvhW=`CV%50
z+v=h?n_Z=u3t1CqnU9zxpA#N1-+y84OXV)d$;SLQkJGV5J}8k-Sh!2V9&PPTaT5B8
z0~?;e6(Jn`)by`Uh|-t5LO1C*!Tk0HDq{1es9k=4L%F$+gX5X<A8#9_)P^(nyb`+1
z$C>%`VE_@=7oPN$xqH@$Bjt7R<noj0(V{-B%QAtjkM%eo2TIvC%^7~O;~VXx7Mj8P
z|M7w_$)Hkz?>(>H8SM9TGaWgBGH0gIJ_p5`r*f<HGVz1PT^SrW at 4vHF8*o8<HXa@)
zKEv1TVp6RBDsO<x_}+w3nR+5wRm4RnN6in)`MW<;K3!YleXhW2Tuoc at w<kkcD@?gD
zkMHBofNjH-IFO<AePQF{)U^Evansq!d%Xcp7#4lWtR5_ at SBO)LLiW0}y*Hi3(Cm@%
z^3->&9}>EDSvvMd`tQ9*vQFQA+=Wec=-6kcx4&%e8m8Xjm8nxBvp41l+Z(rU_z-?g
zb at ft!fD(fPL&{g(XQH`%J(gmKTUhVIt~E3lDon4C?n}t0p-ClF(1us^p__!vXFIy<
zR8li~13t7VA at N#5{w>S8Yd6he##*?XZXBxH!e)#%U3pw+Z>q;;_QW!PEvQtUiz269
zO<H9)V~IwK${~v^46_H%sokZl#_KN5kSiathN}7bBMMxxQwC;#MZT>h-ZQk(-~P}M
zy#2_n(WQZJl2+soaS<Wqu<GcP%T?$A@%^}X&%^@7Ph{pLnmuAdpavrIIm5&DBv<Wx
zY(?i at wLV@seb-2(bnJ1rCr()|@3!5oseCTY5$*Lhc<p<Stv9*1r}B%|KSX9!GnTTZ
zd0%R~r_*(B(^DqJ;IjMm0=$wUXOX>coQ)3tR4TT5JTJs0;>j@?5&?bW{rKYM<aWOj
z=lFXzb%XjJ;!l?6Fj|~CXJhltiY>f9zj_>JDCU>AH&nXs-}Z_oiUy3z3O6LEXCgjc
z&CalN&D at NGe3a9*XsEsNaf2Z#!G8t(Js`!UqK2z$i7KqoC2$IwG<QZVO=~}X{MSf*
z(M>k65~8=*!$CKaEA%H8XTp~2<tl3Hemc1Cs$B-|c!_tZ|NUL<w-85e$j%yrv)=c2
zk!)#WHkr0<5$NB8<4ZxF9QH0~)Vr#uGCR9<HVR0jZi8p!wDs_)%F at k!=jofHV3#{`
zBEvr$t7PAf5!T9H{b;vM%y9EAXk7`}XB2t$J*WuNEI@><2Fr~f%6hmxLFC&M)D3_y
z+qP9w(V=~xWjFUROg51hF5L+a?PNDxSB-ygeHmU>bJJNPe}DZw)5ee9j8ea0_lEr!
zJ)(B;;!f39wR(fd at b48^xXB`WT}tF4B>PwGGuy6<uW!5ZeC5c__LkFX%(hq8wsz_j
zQbRwIpk!gmWF6=j28fuxXW`?B6U-?R)v_ubD8N1%jzvspOAy4vvfVwU#gE^w_b;X^
z1Z`I6b+!MY(mrL-4!R5(S|~C~E>Yy78O&?-LHrW at M5`zI{=#U{O}}s=b&Fx#pHWY5
z&8Gsyns&0(Zp?tH;wZ at PcxWN|;?G~d7Vh8w(07Z`=JsTGlF8;(HW%*Rk9N%PyHz7r
zouBtxq7D%kC{aA*H1DH`>^CA5T|UH<cLkSS4~dU^&q;MUWB2HWzC2^ws9AxOth-Fq
zrZ0ISMdMXwAJdnjN{KWZ20Z+sGX>=Q)B~5d93Omx?tapAx!Zo-#buV`1_d3$AcQ)T
zhue at _g;J;WR?HQLE3_>x9q^Bo6)O(xQ#NLLb7DV at qM4yRW@jbYHVZzI#49-o+GhKG
zO|ON|mW(OisEah-5YW2B)U~>xE-i6S)Qj44dVX3 at KNh`wRls<`FBKf^H>gw9H{}4S
zs#)c8Gb(<)6$Mi2RXo)yJ~-H3kTt9MJyyf5)>QaaV-V5%;dzN;-ZHDE!0w%Oi^LW^
zZ}DC+vTF<XZ_!98U3~yi at vLcnvE!rKlRRz2(K5=u7EQQPXZ#mCJbt7FE0WBiI($3U
zhO*}<bT-YM_8RjaE|JB5#BQ7Nha9n4TE2aNeH^-|n{QgBM^V)&)ZJsb&cJBUxm0>B
z09lS&X7cjBe-kOw^bgj`#m&XEMxkt6tIR`pZt#1um2B~7oh0Ej^$~|-5N%5Kb>FX@
za*mtt*DA={7lH^%H0_8R?twPG8-o|!8X2LG?(X42+LbBkF9ozXS?N}*yCPvxJMVnc
zh*4sOAr!vF1)Fox^KaDWFjTMFf}pOKyJ2WJ&!^e}K68!61qngIa=lGTlhxZV9EVCu
zK at GR>EhvsOl`fH~EVhMa=X{%zwa{$~wWIlGR3gj#pS&I_Cr?d7dAc!m=G5dnDWXM+
zEc{!$eT)oEk4Ce;ij788SrneQ9bNNl)5&Iq+IT+v#|_Wegng7F^4nzp+SkootA^Ng
z{QASkjlQ$3cNLLs;zC2E{6^!wI^~f!Tkb0PSv`7YP{p6lx#pdqfy&e%*WZ?`M0vfG
zGjGXLAJV*QH)@{O)(iUH;VYS;q!@3krp=LY|J4J5%-5doRELk4!jim4Tz#IuSjR1l
z+lJiu+ny1bf30&w1lCpEn)l+5AYH6{zThv9_<{Uxv2SjW6t<S9aMeWs733EJBCqQy
zX^jWd<*@|!Dk~-w;@$h<xna#aMjuhal5#}8N9migO0{i?wN4P0&E3}Aw<Rp&Q1#@H
zzdR8OiiCT}IQk%-n4e`uOH1=rN_GFp+S<)4Qp(R3Sx~<%=+7qS=Nb6bqp{GeEjA@>
zv(=rrP3zwLcCD*^;!ACx`OiCnj?A)gYR&eoe*9jlr3*!3nI;E3^RFqj#$DcNi~F;J
z25(AZ>Lnnh7UC$``DnK-!|kyEmtZ|l^DB~8G3NJ(FCea>W1=!f0s{u`jHW8*J|GKz
zUA9*<^za^hi#p!?_!;~TVfRnswpO!o`u?+ at KN6h(BFwL^jwrP2?f==G*{-d&yqg!H
z6IrtEy)G;wE-fE0^gziwy{_%>Mp?xItK at _4(C@)s28tR#d_D5p#SI4d-Ysk7Jx`-M
zL}omb({>BEp1r30*vN{U#Vgw-qxsHPzAoh50{=qeiFfOf_cX-#n3mti7r6~c47{Y?
zuJQivxy&8&>PH;vo!=XtziyR0e!|P?yE`XdLbs;Us$F?1p!Xvyg7Z-NUD7*=U1X+@
z*A{*Xm-$P=az9wwhz4;yuD7aKoIROtO;7splzJf5M638 at J<c}igGzL=#PwyLeJ7%m
zh1cYS7nhEROub;ejNaSQYr)sWZ8EDw>X;L7OJm^W^?L5t$gz<L*XDlziW->bHvmuH
zhebQl-_K~MC*)i9-j_;lxnI@=6UZOEVOp2?Ow-OivGs{s^YL2ECtr?xT^}o~_)yyP
zWQkGLhzE6#UgR(_Jj<IbW!*Mpwq%Y(nlnvMKQJS}GZmlJym0R at SGck|BaeEsg3OXQ
zeLKdp&dv_~uxGjqE5c4|p%bufm!51+Rnd#&{I;lj65B`f#&SSydD=bteN0c!-VLvv
zmVGmqYJ9iX>#uK~B~1#6Nsm at 4jZkk-zL=∈E`1R%yCFq1zfatJ+E(S*D&eDI+_{
zw5jeo4sRvujBFevz3U5Owv#Q!*CdH&bo-7KByv)Z{O&B%^r$mecXtRIdcFZQew;n8
z4f?5bFmz)}9eG&#cd_m{kGlWuEy-PVyGN5Rd0HP6E<bve9$4HX8&aK}Lz5v?Xxylm
zFlesfvr)zES7qwNEa92cx&x{Dt8bzodz*N}Krj^n(<x`I%Iul>-5en<V(&;;?goYR
z+iO_{`~yit3AA#;%BtbNtvgCDD_MuC3F{26(U`ttug=OO#Apm3E#^IgSXTejlxJ%$
zj^?$$V|S?G-m at Bz=afC<I&AB-w_YW2Ddl#_Zc<6}yX{5?hsT-J>`Uv#W>?xz;jWFH
z;Sjv}-IwJ2oi+4R{hV{&H9N`EgQu6h`yZIJ^l2#}bw at fT3|_CZTf4iI;J*crrVGKz
zP#=GW%@|p=oUv&J>sH{SZ&E(V_3*p!?)h~W_2Z57T2<nGn^34=<7bo-gY&u<h0-3y
zd*%|0+#gID>w>r1>AaUUxjGC!cIlu(R#3bghA(nUta@#vTQy+Tn;A1*ZofV6)Nd*(
zisgo at 2yhgE!UJZE581+2G$)dl>4{r(vs9w3Pi(@5lrrg at gWT425~r0=)7G(DSsj1=
zY#l<p-ZX-*H!p=>85$Ot_FscWC_mgSXa5+JyVTj%N4!mx1Z8q?QS}J&)gtsN+x9=B
ze8csna<HZvHisCZYs4#EC+^=^uax)nbh9Hmj5ncf&u!l1bBh{EIrsXNr2Vv)e79^Q
zGV&eFBlHVBv{Uxi_EBbx`^BqkA9jCS`(f->Ba+vC!68aenX{M{elh0i)uOzvSrr$_
z8v&IUCXIew)YadkLUYxecm-_jE#3hqcQ{E0%!T~)ZVTO`Kjsl<5r?Dv#Kk{5wI7Op
z$7@#>C?^t^a}zgSJ~$J!^9!1{EA0 at MrhJPp<jDDS=h=J=2qCR{*Y0WlE#3E4C3W93
zg{|hZ#;E?$WB<yi_VjV0kCCf-qK`YvS6I_sW3Q`+U9>~o$#=`Wv{4u6%Eb>a(JH-q
z%Q1Gcs83Zf($Hgd$9yn at uMw^DI~t?>WJ=JsG4=J&hUT~3^`n(9+4K_G^xn#aJ3Li#
zwT(tfqnMiu33cSv^hWNAWiQE$9W*|z76qSziN_u5zj<0Sy4QanbTx{wFjEzte$<(0
zhS0DrEwjc|So+a1BjO>w(b=EcIO$ZSVz&G6!&ka{1-F0Tud<hWDQh}!o5sAjE8fBW
zeVwyeg(hMXp^W;t_fpmPN2tbKSHjLcS64HFU`pm2n%gqBnuebTi&)q^ufI>9E$Ck=
zBvtg7w+BQu_T^P$O`Mk7xaLh!)|92MKF>Q1AvVTUSH>=lU9X{aV}4iAKPiD|VIAS6
zR81<qz|fGPBUxegC at BA{oSV6`^jD8!$sO)`_%9vyfH^4cvbU(Wv)vUfx)avKAFE>N
zk^v*uYyvMD9chw`oGexb$D*gLefA&jpD`7{t__xiz0 at HigDB`|sF?;&uFX8I*}GX=
zvFtJ;4pFF8ij<@;5ptb~&j_S at +CZ3o<#X{O-!gk|T<7(j!l|qGs>l`#&h#|SKc?>^
zZ7BH9KUS9zXUDZjZEZqG*VcN3?QEFdOVWo19HR@@IUnsEk3GA<e|ET1FZELXXnF#6
zb{e^$ESe^_eK;YXY?EDf!o8;A*T$Q1{^08eICe!%GNGLr0p2{+!0d+B8JAN05=?1a
z6q;Os-a3ntmy+6fneg%^Ibw)dGq?8QQ+l|0nA~CL=z*EHJ+Hsm%a;!o`S>R<fd-JX
zeb2G!;e;^a29du?JJb!9`Y!Z{;+?yihQ>TC^H3msV&`-?6eLhkb}yb?2{E+cdbR1A
zhK3;WGP77b)(i@=z}FI6abUNrmzkLpL^L$=;Rn~X`awAjw<l-uH7Ez^qhNum0gN~-
zK)I%uGz!%m;pLQ?COo at 5V;;z(p)nGrOK~Scil2Y-AFtGQ^X3YyawiKvKb-an##>8c
zceADW_QnG$!$e^2>u}e6QTI?+%w^`GOM5#vHDYx63-x$2XuwyPhgcj~fIrc?{3M||
z?a5#S`6&<@B$@R at G5y~=y}VF=>zZED$U;L$b&w!`;o|6c5!pnm*y{PHLcT#ke*Tpd
zF%1n$5G|l2e$qU^L at t+Ht}v4p09K#`B>)OMp9G}}Eb;IE{3(FWuNb_1IZJ~`cj5yf
zjkcsV{0&-y5CzuaS>cd?gwWWmG)?$H!P#-iw_4uXmHmBKI|t~58Vk#M>{MWBTjP$}
z0+fH&X#;`ZdLo4Zn~SRnOU3F!;Itr1GQSN_tS)I71&AHk*tIBWX at m>|X<}Lo7#LC8
zwKb03==<=uzpXH);&i$k>f-6Xd(x;{d_+VLy?5opjQ>;wNDz=b7*kw<&1`7@)7_ at q
zjRDTKA at yjaBROLA-9i=Gugw5xA%a9GS0}QdGBj&r4+{eHou?8gUyH~>U}@tgN99LB
z3zGQlspOc;z(i=n+4WFNJ+wS+b`deh1FpRATI7qx!WLlO?1vsW*D%5!H~f%zCXnU%
z_ZD#|qOi&-R-NDq_BL1;k_i<6w?r0%pAiU6sWt=VvDNiy3=d<lhc#8$0nweIBUGXI
z%dmC4O=zWd;F-c$7Vi!hJY*Cayf=eBJKI1<+AFMvC-3TNRXKrGoV(7R&)UF41i%oA
z2fMV;zx74Ge0Mi$sUPeHYpKYE&eRzERRctEi|CDe)8B@)C`iBy(6Og$$zt-D5Ix5-
zG at 4ppu;uijD{(z at jl`fQT&qRsTbSvfeOF3+s_Hf#g>@FV%T6_qi2!w71gYT$^WwP;
zOTE}MM0dDuEN6{h0?rcD9$Cg)dpMV+L~XY7OSKqeZ-%q}B!40Ec0b?I6qa&<>sh#W
zJ_U#v-N%ecelW!amj^t1*k=OwDQoDRwgn5`nKB&{!C&C6#MKvu7TGiv{Jj6e$C9{#
zB5sWHni$|tI-If&wr1xNTX<m=p{lFmnDR<dXKXhW0><#pmI{#$R<7mSxkU?C#T9or
z!R!Z=E7}~{o*IxnVYab~K5|tO4!V>ba8`+qoTEmtvr!?4Oxb3*jg1P<wUm5Gn}!+@
zXr1y0uYqVR>dNx;P=@^d$h!I9zV2fhFyunN_>Og<4#oPL;f81X=|Z~GXajU)83#&1
zy;vRr<w?E06W|olC66d_^124 at 2lge%ase?Ai^X$xJ>s?XZR6ePgimCA;(ycT04Z+A
z0DWPRjE at pOpiQ9G@&M2bx^)JPz*dePVWefXGYF<tt`|XB2P+^RRD@`4Z^J8JryAh<
z&fe=ig=Z(p^+9SlyH$Mx*nMqAUv|oKbgM`F$QKiqYa4qA+isknpao_;9`!pg1I%<(
zrCdB@#VVNrq*fdyMt0I%!e7-KG=naG`T-xSYn~mYOO4<)`Hbs at f&9`=j}YhrrKx^1
zgAa3kC%wETh at d;=;^YY6Vc}Tp8Fec9O!*LNw((&uiX9B9ZJ`8%FqFVulQU`rme*v$
z`QQ1NVs&xMbF>KTw0O4nb6tpe_6NEB<pp&E;aa3F1jQ5zLW~LlUwdG>u{Os*OL%wr
z)0<wBWsg;bV|C%(HVyj181UHLtBpCMLcAGjz{RXMS#uBqz=Z#fp at 74(EjtYVyP`o9
zc9w;;JY<n<q-7Dn72XVB1>jNKb3su7SO0-jiKD|Fx()ojh(&UON8@%d<=Z!JeF7t^
zT5yp>mYKzgAgj5mN{QQzqt*?OV{Qe`__*H@@LOI9*5%^e4{*2llh>Vv7zSp?M}P3}
zLLD*XR%HvfZx&E}<BHu|s-_z|QpatCM_dG(tGYE{XBZI*qZiWs2Ik^)eIHLh17Pa7
z%3y;YeCaBohf2-bAi`R03r~w5B3c{x!eal72308&gRIeAmz5;o&D@}~*Ri_Z<7Tnz
zL_5s1dd1P-jU!78=Pmn+aLC5iLj?Bq*6cPDpw1>Cuj&@?RZv>!Sbyl$>B-sL05Tkh
zN8#H=L(i-huTEGH0^kR#n7rS!4l|(}AGQz&5uL-+$P>+hq{W#GR-zX!sGZ`+?9tzq
zIf22PTlQweVCqy at Z}9tLKn?PAi1}+$7{%BEQJN!q6F~D9Dlur7$~Z+&PxxM*2_>jN
z+27m%@@4w<P)U`NTD9AgU&#()oA{Xw_O;FrWW%#HhUADWqA#v3w8~b~k^(TZ=_`#-
zZ2hi-&7-Y$*+2lI4gVZ&Ws at f`@Dex`FkxGH*d><vvB7WV8$&MqY3yI_``NWE=3&Re
z>o0({K7&GeQg=OeXaAHDE`VehI>mgGMukNAcJ8R@$$+(p!;f-?DeAB=iz6#Z8-nYn
zTdnwS4z at GHAb~GBoh(mNCY_zKxn7|2d236FPJg+*g+xA1GGRslGy5iHo{b;LkpEF8
z{|BlRH8y39SVQ62#mhu?idMmPLJChL^SrgFv84xY6a!Y6ywP0WtU3rG58LyuxM)Wg
z*0WH05~a(iey;59jJV!68Ls-cRUB9=o+Fh&U0<{71ar2U*eo62?iJMecwd~{#Zw(x
zg0Hb4+Gt+Gx)`_`1Wve2yh*o}J(>bx{@u{-1Bh^|$KN?6gv~%Z%sFsEH0rf2p%c!&
zyp_-<yuZo8w^J!2gbrnDy415^(yJ^L$pNaM>gKH_N1&^;4QxIE!86lFVc`lGBz5kj
zfD7va(enRs+&g5hE+BWd+eg at ySB>Yl|Nr3IOb1G<89#+Iu39GFuYpX=s2`fk+CetT
z_7otIWhJV(rGSck+tBr`M9mpk<c8&V4;*)RL<v6KfLt5%FvqPNd7B;NaxLCoc{LmO
zwWlE_{u(cIbZ{I40NVt(ES0$2n;3<?=#-sO{)e^Vy&4WmpaPAbHJHJhTgb0i2CAuF
z2G5!i%2pE6*|taS$%Tq5jCAsv*lu6NC|Yxafmr((-VDyivcf|eUO#mgYp)I08o!Ul
zx6Zrz`>)ktLSs;j2UQOs{)}Bn*e{PMXZKCBS(wEtZclNE{T7rRlV{dmJB1v5nDQD5
z4`BjpJu|4g#ATVbeap8pXlBS<iA_Ep87ggTP#2L at R&P at 4%K=ut2(orJL7vF9%!1uf
zy*I;<YjU;dS|}NU7kV)Lnj3=;|ADX^RBpK&FaSieBm&+PU$&T6h_>v^z|HVM|5|Bn
zbeFE}g^9y>OtYKK)q?{LxKUatCg0LXC}T$mKs*&pM>-6WpcC%t&H6#(y{NrT7Y=gp
z`bC8E<seEAv7f!|7F39dfj!QPu~;X#rOYB&*hMook_v3MSGl_ at 4!Q8>p#cu#y`PE1
zmabYcGO-f<-1Q-K(F(@6+q_Vm3_|`+)5=d(TsRa|>vPXor0Vv?R&^X#z!w+PCD0rb
zLdoYkRd+rRn=Ro7ACTDF7)5tpERACNNu9&}sr}?jtqGSNmvf3wUC1?v!y@^d%~G1u
zVcwJ<AZifGJI>h~OM5qTMy`bC001$X(d^fRe*{EocSz=Hi8{_!2dRpi{$1l8g{>8Q
z5GtvLbLNA-?{X%v%yO%iEwPq8eD+QR8g_Hq)?iaR3L=NGF=}@f^81l-;Dsp<4qrrK
zdunRk-hT(Ud0%%}#C!n~`9)+GoGQrk41VwkgQr!*f!|~_PhIYt!GSB?HfPP+MLA+n
z0#vvA)jBpqpdgsvH9Y5H4T|8+Bc7YE!Mg)Up$N(;N?sR)j_ZxVjz7RXWcr1%d6Qla
z8`6CTL|-isPd^Y}_kP!;-$_7Fa*q;cT>>ZYCzj+0sotQ5ygoaM-z!K8#1XdJW3;*m
zk)^#p%I;e!vaS^uo7x|pLKa|P`zj>LC+kJa;yqQILR at bHsM^jc*VD5$C?8vU0;%l<
zC}W5MSUI3iJ|dEA8zvQtl{jr!_chPPvWwHdu at L|`F?~A)d at h$ne at U#D62Z#?rUQQZ
zHwa!|d;)OeAS#h at Iv}Dlkcjnv10WDP$uX#2QndeH>|_8TvU<h%c5bq)l$I9^g at e<C
zVBD;ajm_+mkgGM0sMGp-KrxdC2}394&;PO>CEl5!00 at 9P7Fc}2FSiEW;*~>=sLf`w
zCP#Q9oaumjq#c>4=c at _V`q6 at Nm14CE(#jWpwkkXA)?dTqRUkt4?7%4t$UjMyxAG>m
z1C_A4-T?$TO2pg?Y>|wx^{W191OYEq5g=N0<W*5J0Yf4JRI08}X^v4+A$T(Y$P&#?
zi^E>i;3UUPID;;O4x6um?L1XrZHPZ*v$N%nF3~c;7MN*TVm_ho?j3DN{YpG;B|?YF
zt67g$<V$XXmHB$bFe8S}0M)RG!SZ1~#(cG$D*G9+7olDCc;i5GgC2lJfWgv at 6n4R*
zv1Q2b$lo<6vWcmTW+{&t?B^}XwEh05FF?Z5n-4^s^nQk433!q1W_I|56uz;vv4MC9
zplgU6_%!qy5R0IM=JemC6OLB$Hi6ndDG|~(x0st%5 at ts;<jX87TC%+XmPpZ-)!_t)
zuB}W2`rZQieG$|F)`p4JqOwsPPJ3X$7UjV0gQBXu8B6Z)iQ$Z9IxSfLyBjO*3<#wi
zB{f_lZ*7UlaGov{kpBtOXUaD~c7|j`40%*mL=wT-DG<lL$_#nOCJ(_Kci{wMLJPRI
zHx(<7x*ti(nI at bB&epsCh7x8J02_C>>*rCyhpr)+A}Pyjh{h_6e+5$`Hlna46$;(F
zCQl1!Vl1NeiBe)w<+^o4_r(j@;mwE2N$Y<a6;0QmIC;BK35x;&csGeFlFVU;DrL2F
zypWguK*@^nDf-ro*(K!cPRmMOWsi?RK5#0MF$3IlM-3$>kg}=E1o2lGn!Sb=?Tf<}
z5eGtND??R_m~8k9T0=h#PmT>OJ;$C}F9P|;zlq_;r?%7xM7SnQLru6soW6o at +Tzpr
zg(s{9Ws~Ns3KO1D0FfkZg%tayREv?iEv<JnU|ibkb68kWN0%rs^nF+i7R9&Yv8ywB
zcVemGHYmfK^C%JO1V50$<dK(6$Ow~m2*}DcsRq8b+{?hEG6iwxFjDRHa`$g4`&}~-
zhn>MaOMP(rJPZBL;AKM1W%lo=(#D$W)Y=U)6bVIL<##sd5f-buTH~LwmA``<#KD1U
zSdS`?Ks^IE5U;%}u(fAe<GCIcK?qy-+Iq;sC{a}aGt$E5Vq+2QTr4TkdS{IW(c0IY
z{2FZrm<&z<2C9m>O<^te3wzq?r(&V*shyUqhP%$UL$jHB8cvuUC0cDb5l2I-oO2mK
zDszLFa+44ODseWqXstkIy&^+Lim%p8b{!)=)zgsIEe`WPR+{jvYR{IJgEwCXH{ihL
zd+VAoy|SkgKZ-Gg?<75it3MG?%4Uw at n6Z$V24UV){i0)7PJmmUaE<@04+p3{AZG at U
zc3iJAD=3nYWCPQer4v+(-SLykEFfpba4O(7kP{%@)fy~!XFmD24nzr(D`hHG)+VY#
zM7IXGprDO7EOuIt8et!cUCP7G9;7NkL5$e|2<-gxR%e$QBN%#!nvoLONyXQor|^19
zEE5J-K}B7ZAWH+>fzL!)dAY at gy;DdEBztYm$dmDeDxcS+_X7AzwC<rPm!ec9#cc>6
za~80hq1P~m52$bu6_+jmxeE)Jf~0Dh`Gn~LjSl!hQ1^|0?I#wSLJtFXU&56<QO`Tz
zpe7 at Y1!1N+L1ypouw5ClfPoMIK9TYk22g at B4Z^~Awcl=FNjWriA(bsWD?O<5z?nEO
z|F4lCsMPr%sX=7DDpK8Rd3VHrzNxo|->N)!gbd5Of`!%`&r!ajHK`DKw at PIe+xTr4
z6n4zr=;wU}T<r!pG(bBPG*D?$?92{MEIUt)@~o;;?x=E|V7<Bp&AIFi1U!j<IRMB|
zAe%IatY4WFHB^Wxeu!T_u-QGUYM6nRPwXqUcweRkG(-ZdqroB%vdY8$8MyrFevQFl
z0i3`CNDFI+DUa!L$+sg%C at orSZOXAU@=G#$0Pa8%o|i(SlW>k5)fgUz;L}f^{W<jK
z1Ah4`LxPJlMv)`I2mqmzIxRd{YZnYt7X4Lo<NKF?%|i{h24~N2WJU}dGvATg*kh1-
z6P^szs at nfczKcvAgcfHlb%W1^kNdnRpsrqPkSN9Yd^S!^25heOw|^%%fd<@vLmYN7
zxj#6^Qpux%c>G1^-1^jTBB3Cuj;z2KY@#D2LSq+#N!I6aIcXJX^^pDJ=Iz(&5jepP
zJ(k++Jy#+nq98A0g5D~K0AwWm7{S7l2e?Z`9!S~SFG(uJTBzgnC!C!7y7BDursN-4
zp`akIrYNA)c3|d`JNlR;3SiW at Dy}C0w9zBZ!9IW0Hrvk$NN9C5cz0B$y7Z#H{XdGo
z(wNg}b}m2=eH>6_L;UB8Zj59|qI^=I&R^@`fTAuLN1a#fM}zH`EeaSAWpAZhc;F-`
zt95v&A*TufBTqPLQ04{0iT~(5u>o9zg~STJz+VE&a$Xf4c!V3Py|y?SWaaJ-Ar{Ct
z;6vY4)Ze$X38w>}ifLO^oxDK*FHsywjaS2&!@G~Ku?z+A?a)P7^=g>ixj1^%T<W<e
zo<17$6(3mm*iRA at _Q(Lo%63YHnv3KK$GJ^aoM<SIQ!Lh=Im17SWLO#qGh-OU7bRh~
zzn5SW3$>vQGA&wAp<{~2zI%`1mQ-m&ju=%4z3{mm0OaK5E8nt<bs&_FMTZ&8!3S(D
z73v5iv~-}e)lU&QRDk{Dg;!qZ{_k)a at HMbb{)F`eeXLY`FX1a6=BkAn?uoZ!=iQ%6
zTT9(QxH<QpPI&VakV7_?KgX6rM*#WF(IJ$S5I7Q!cawyCflumHML<B{MA7^Es0pXE
zRJ2H|=QaOY6f%9Iy6KP-g9QTTF<>wFi6AEu?3_=_IR84hivhF|!)!<mQiJ%>4A|0J
zH6o>*)1Y-jg<Je=SC}#2YZd_J0UH7GFD2KpjTr2ZBNZZs52&0%fG7u)B4UtO{BZ`>
zCKYpNqXgBcNnq+X{-)he52lOL*k!<g0bpVP at sJ_XWx7BKWT6?9<+>6Qjz~c1z%Bqi
z115kY1Do&ONELsG;sDbr0+TCofYPo>p>GTs%WD?3*xs!<>)AKoYc<VhN-C4$g;JLz
zJ)v at UE3qz9ttt7Sl^84q#$(R|Nwv6i-wM?o3V8te+x7&2okb#8E4q4xZ}|?!hAN<p
zci6_-mlb?k%j#gxZ80Dl_}mLFPYcq%o>bW)TMGkGNde}j3SrIT3YW`J;br;5zxu+C
zOWl2Duq at nZToiR53E*E<G#ecVHrAtf<n7OhHQ#UutmrFSt833*{*s($u^}IeWqN?K
zRQ>t1$)hgaN2U>|_MOiv*n8;mqY-&bm9-@!^}|Ig4E-kz)b*Knr*v_h=5^)Unnj?(
zVYQ*zI6;9Q+DYVA!5s5~wUAdDkUfwBP%5_CRpy2jdC5xC`N7n1tRAVlJ53ipm6Cgw
z7-_OD@;1Z*X-j!JvX_Q8Wxec*mlUcr-QBR-8-4%+)W`t9%a{l@<UUv{Ze0s1yQ`c@
zjhJ8Yz<4m~g<k=mwv@<KUk3>s_1gsj0fPkSp at QJbN5?y+m^`Xr(RdPtvXu8H+)_eR
zoR|a1vRAkQ7$_FdR`?ZA8B8N6C!=}(h}Xnsh7}}=6EGj>wqbnxuZaQ?L>2e`n+oFK
zAl-45s$m6RQ=v$u)Zrw6u!p6V)T4mj0^sfhhHO+%&t%36nJL&k5V-#Oq}5RpB-_*J
z>whiQLKVldA{(HXRJO{OLCn2C3$iCeXtTU<E at w7Rmn8JRMIKBqHG|O#u<#!<H`GbJ
zg!LbHRe;Jna3*$e1UCqlErX!-DT`TSz;M1;6Zy;oG!~Q)q30ENBvoMR at oQcvAdUVP
zO^=K(+qy&R;y=|J5=NatAAi<XrIag#$}kCqUb2`=v+Gz=EGj#YQyOOjUl|(bJLi3;
z5|4Aj7(uW&r_^HmG)Stu5Y-1ecX$7-m05g<0Q&Ln4FYnYM>mqRvHz4W?C*&{1#4#?
z#<iQ>nhbi5RrrA=9yb6`q6%=lu-jm}zQ)<`Q{Gr?7ZF^^Dc*VoG!WIg2(3V(F%dvx
zf;Ax>XjcGp<;`SFOmdSv6-og%Z)=AdKn5h!kUQg~lv0qN<b(x46j#b4`CA{5BX<qL
z!h-s{@h?6B;0tLN1_W_FXflIV7I1maoQ#Pc at hOG22ASu6;Ql2bIV^*s4<mNN%3vT^
zZ7+m}H*c+kcu!TB1O at N|({mZCJPD!WCpmCcH3sWWLih9Hj2bWqn<iTb*dVF0N{aBz
zsJoQ_z5o{hM-ih&0D%Lz3v|QK1>||>5lENRsi6dAli&Ie3n8^-FqApxf#DPc?zx1)
zVvpB68XeMr{es2gb at _i}0I0om;KXyj3<;3Ww?_ghcGAPZ5ks=%8=mF<x(;r?0Yc0v
zTBr-WB5^i;xMe=(A_-8NFM|?huV%JKtP8O&6?keij<?Rug;$gpSxr?=6USGr;5vfE
zGe9*;DF;2(w(?ssv}!NpE**%62 at xYh`=~#h3fw>I%`|AP@~O9d5qYig<q|tk63hsp
zdVwHnwRZs92Z+eR;^_u at AZn4gS2T;R<^EFZc@}ZH1QR$qnQ^8D4YUv6N7t?aMFfBQ
z^f^$CCs4BmB-jjOWq-}jIcbbcG`33>$KC`!vqi0y4mk1EE*@JMDo~^#!p)BLftn;B
zJ$K%npcQJ8j7>fX!w+s?lH0F02eN*CLW^)#9bFmakdL>7%kR8tTWANi`E92}6|(1J
zNs<-~SeXKJ_Q3M5)P&vV^flWr^E8HiF<6=>S_7`{8$o_3)#4^iN)Ry~Te at J(b}qkW
zPLTE&2<0HCV3oXsi%;q(*X*+lQ1pALifa?n1x+}eof7G!(?Amx`hYV6fFJ-A&CUxN
z{V~{yad$9K9X}tv^PBo_^m)G47>^b3k&i_bfu#`|vf5KBle48jb+Jo|9#lpc&9%J-
zPPEqGWpN<c6sb4(O^ko*_|G{N0hsZ>=0nO~zPzCn`u7T<R_ve$SQ=^jf=H$Z#X{<A
zKy5)Ip6K5T*jlF;Km1nrCBWWvOex;{=LZsUkPJjeWBwX5ri}_jE)ok&xpY+;Fj&$C
zObkd?PRcJIPV*ZRvL6T!f`Qrwi;Nmzf9G-{KOf-lZb<4j0y|{~w{Py}l!ZG-fpOJ-
zx4f!r$UqkA!oR at q<^7z-wPqg`skH3JzDZeB=eR{W0hJF?3cxXHMA~!RsBYfjElE-z
z5qOl13e?KCGxxMtHBqhjkK=jAV)~gR9r*PgiNALRh3H0}9L*;G^1-o2e>{ZN_P?vI
zs3nS~E+oL0l_PNBoF|M0V`Rz-@##B9_rbUS42b at zI7t~HQj*S%O-b7*XO@=o8Sr8&
zzcgLj|M4P!*$q2`SY6`Q&ibFME}unjXaEmnV51lQF<C{*-1fvy;1fM)T&?(NH3 at 1m
zc>}KsS{W=ARS}~`&}TfZO`6C+o;8s}E7>LpOg1zWgr-5P|8bt{LZKuD#%s;utd3mv
zrm+;+RS$|mr^g^W#ui>^xB*F~w4f5I^(B@=pkA-G>>YJ<LbO!p3so#C;6Qmzi0tqV
zhacA+-Gk~m+YOWrXb_m2Az}_d&78;SSiQOjsQZzaZ47qACJAryBk{A6z~K6orm{sq
zxx}q?B0vnx&su{%xL?)U1D_TpM}A0N?GC#RrqBl*0=jbfeJxR|;F+D!&72{_WKxX;
zGo8^x?Xqz9n*>vK0M8tZ2h9wE{kjN9&|Cb^e~f|_)XQO6qz>1*@mfkbTWNgu7XxUf
z%f2ZMO^LX2Hmzb~&Ten<T>yOn6Ltwq0VIgLP^<6lwzy`E)9^*b?1vN=p&<7SXW|xg
z<IgPq9q*2{?_>5zJNAn}$U>;$y3!<S2|qU$D=Bc;<nZ*!v^)c0M|<$4zkr*Jb^G&d
zgz-3oTFo~EhVQ1?L07?*kvZ>^RYc7#MM%jWB_ef0CQu1CQ-V&(1S+H9SbMST`PZPz
zJA;ofl%zmW{JGDG=(;OItUbz6EB32Q{uhb43O at H`6J7tdpAe-YRbUPIWk^GG0ci-R
zpBHKXU^EH&cl<DlF&O)$wiv_znC_7(4(-cvR}xqm+eiRwoiPH3AcZ+C1K|7kCKzOK
zq>lmP0-LWkKC$FI*H<V%HWUO{@@ltfKfuS&qYRb%wa-;imr3UBn?%BXYD8*Ub6Ea)
zvf2p*6OxDBSH`VTG#&jniv?5<BqUL-1poy2^#fNxiZhd1Mf^$S9$`i1opk|Cz9R*|
z<}<*`0Ld12$-Q}Xgx{~Js$#f=?y5e_NllFgs;Co6=oPu;=Cl6x;lqdkF5~73bo&u<
z>i0ds(S^Jcj7Tdh-vE`3g}2c4Xm8Mt#q8<B4`3T}<Oo*y8?pExAomLB*oesL4d)~E
zja1Kf&!G-knEzTKg07&Rwq$xB{Q&~wwVFCPIvtgCN?iylh}nyPA2fP^Lt86vyibRH
zY}7ptSD{A;I90YVX!N)?OcTdwd7<9tEtY at x{~a#hf%?+2H*4gB4MP`N+}yD<Fkq=_
zH4t52#14)wo&10r6v*6#y^}P-mG-ET`eWhm^~n%N>ZEf3 at C)#TJ#gRvPnieYqAx9X
zqG at 4q7pw)7z5ThaG0YSo$&}6mWyDFdOc@|k`tM1AwRxl)g$|!L$uLy!Jr9(2)izU2
z&7)U=>O)rTrpQ4>9V=SB)8!x^3(E^Y{*q`te+ at 7O5>BYs?p7?BA<~y?OG~sIA_4;^
zjP|F1+GQwMt4CF|xu>Uw8swDC3N*EVMM%IDUoIDz<>1gcsML{4xru~@*Tw(2J at g$f
z4>aeNlMieyF?sboz$+%CUM0|^BlTNtfW6(X^Ql`b$@)iPie<Pbx$*WB3oiOOj?V>f
zTf*&+4 at bi%Gde-m)K(p7WdO&Cw4ROBKNkpgLlx)U-2e4ELzHFp#>}r)qTGl3jo2Vn
zoZgrF#*!L#EHC#(;UVL1UfH8A+FS&Hd5go*w6kr#N)0yzv;5h_(lbkeh)i1$$BbkE
z&CBC(rBLx0nONPol%OmU(!Wrqfw8#sM`3S<okpzBovEyZD6FO&9p!WXN?dooinr>D
zpk5GIJU%)pS_2bMg%&pedj=SetpaJSGDp+DFm2+Ik-_mCw-G#q5$L4Ya&?W$3LLq6
zsvMml9X}{8;_Ek1vMAI?fDJ$*g#PuO&JTCM+-iS^jFlA#&)dmC)^BB?xn_$^hj~>E
z1uwph)emKm`~h%Jz$KGcmb#NqIlu&BPCnyre02VuZ%z)ibb`)EC_RumtdrZq57aP<
zEr>{|t-U*1T$Z)?_1`d24hd1hsFfT45lo2{q+J!z={*Xavk*%&td9!ol;rqf6Il>N
z(o$lV82q3TiG3LJu5k}+Ua*sBX9~a7>JbFIBr~A at 38<dMV<(PKP*htPb(qYr7~Kgc
zpjk=}UIz*@_!_evmLes0sYR|?B^$ympn8lehRefH)vR9*J!Za+wZJO&I{4k=G>NuD
zJ1n+ccWMG18ip=`j>Z%5%@X|$;SJ*U3n#%1Cob$&cj8GsG#sgiW|;c=MB?1H*Dg0g
zAVBWyxC%x(sq{gzE8@`U&t+NfHm>9qO*mO2e1uLz?t&{7+mQ}R?rJMV4q*g at Zb!u;
zbjU6*k<?noHI{n0sE~uSE4_D>D<<s*7Hi;^wwJ6^mPef;c5m$Meoy6`;y8zezyxcl
zaUi_{UL9)41N!VPpDN$X$w)b9a$E+^vy$LB at Tq84Rq@Bq(iV$?9~qVb6=lEQ&7XP!
z#Z*FRN at fQgCND$}a*4k3zARuK3D$eQt9q+eF}e|=4l%k0&wCen@?|I>()R?8TxA}G
z#+`uETo*nS(fteq0a=)J*$O#ZGmmzZ8&LEA>=%egv#T2O`H~oSp9C-!O6NX%%z2p#
zk;`N6zTT_<CG_vdH7uVp3Uz~3$zil=wHs@{x-wgfKouCoVp*Lc%=tx>5c98__S%}L
z{>=$2*~*<o41YTPOm7y$f!C$m)&P|`tKsmgW|AA#H^fCFtE$eSXzd;ltNyL1gI^tP
zQ0}fcC~XVMfV}VgaDUbJ at _HX#3+S=E;0LW#&(Xt|K>LfM`&zCJg>kq_DkQsaww4tx
zUyF6_oy9w`Rj%JU7sl%UK<AsoiCo1o$9VQ1SY-SRP>*On)&@YCL};lI2G6mzZ<|`F
z+yP28cLxZJO?#a+n*fueM({)fLZosh=LCaPXaUyf``B{dZb0BXIC<w!eFa)kK-s7B
z+13Amo9m~so98{6MC<Z9q!K<5e`XtI+0F^w{Iw(_-kp>Xo&6bTsv7Qb%^VQd{-t(%
zN*KY(n&hbe at jui4f4L~o(EjfjDuB%b%(?u$n>2q-l-?k=2Lb)5Dhz;lbKTcx?NDDA
zqSQ{?InCVU9vsO4n5v4(w?7G4_Ye9K+I<R=tXITIFW0eve|)9OmmVRJRw26~ueZ0>
zf!ywkm8L!^A$S$6N%})KcH2*lgH(C;ecV=vitzSLBmGEEv1<1D<OpG|ip;W6S0^J4
z*m~4fI5VF)mksRi{dbwFV6huH0_fh2Kr=jPrk1gJ);;C74zFoRP{yIEDr^YxJ{}9?
zSF`>F<b%8>;rw<(i3IT-i?KSO<g^#4rchh8!~*$u^>NF#^L&-cT at 7~61qLG37>ZZ#
z*a0OgYD7%^TQQebv<)Q%V0FR&L;!q)6#pk<WP!8**!PvH_KOHK)HiZ2mz><$j+}S2
zAUEI=!n2}1wKgJmEJS0&86fc9<Eo`$p3*MbxTbwiAY;W`t@<Xq;<?dqW4kumN#=52
z6xMRFu0wK~F<+aE4n(!8ZQ6ziK=-$2Gh)+KBVShxv^bIunrJc4YE~Ci#7L-}Ev`j=
zSX#B{8eFkNQT#?1xb9)ONo06+zjnN$<a%>SSHR!UhR+T4X-1ffz&YYRf2)T9iEp&-
zl`0n*u$`JAVGc2#>aeji=WNKKgd7 at 3v1=@KzrPb|7cN|rW)w_1{AV!-_b`@!HFRAK
zGVp0~=ywb2FIK8NE?%gX0c2sXyh%%mNC{Yt&L9DZF|?#e%!;}Svet>Y9oK6o6onuM
zI^!D3*AWIe%cB=aNxJb(9~O+ at xj;1yUI0Cemqi^;+GMWZ7i$(Lk2nCUrUmH?3d40s
z at 559r8Nm^K;;p at TSPXh2FN0l2R{DNsprHC at KU|*TEf9fD!M}j9q?BtbF%Wp8>^|^{
zR%=Wvg4Dp{mM_o^oWR`30&rCdVOvH_C+}U7xd;StvWtMpeiIA0j$#AN;UthiPkEej
z_2CMX)W=A9IQ=Zb5eW7qKJh1}o&#Z~#hU>bb7z}3 at N0P($&Y|K03ev8|MfQ106+Qf
z<+)e!`z9SMz`H&Afj3sl>HB5gJdm#y9<sc#TIN3*)TfdY5>`<+JTWqHu378(u~c98
z#e?wwy!It$u)A(qRx+;;baB<P>$>e?X%MsBzsK}lU2kHwoMR@%UHCz?1D6ug>`P0d
zMb)14k;l*<yvbVPi)d{mXDpCvk|0~5tD at -7e++l5Z$L}+=ApmLBvkJIRQBfaP_F;~
zc!ZLqlFAwp6{%*Db<jqO(#F{77^AXGH6ddQMT=!5F~#Vl)52IX*<whW!Of&XgQ#T4
zHkD->>-Tk!bI#}e{(gSH-{bM~$2l?gecji6-`Dk8p0DTgHNQH!-uaz(!s2WfK+>rN
zM|LGR<KHeqy)?|Y-XcO_6hl6FuiBr${*HKLl=<7v|DOYMhfuUe8WyWFeWAN-?^W|$
zmZk$<rTe`Y;1XBieuBE~zfJse&?a8- at yL&LIxn&cejk4hSvFX~b^g;kc?sMLL9qzE
zv#YbS+m0Kni`~;jD^dcxSv|4Nae~<3_njs<x@<7y1{N(Wp!Z{Y%^CMomeAt*FlW+}
z_@;~I7{`AWM1QLcoG)H?j61`LG?=Fs=B?nzp?Ib^PB^_x>- at DFz%_JIreE!!mh?7I
z6;&xylXr^p$fKPm{kY*s#5blp$Fr}2t}+ystLKSs@)pP!(ER>&g)G5JV{7u(3-?on
zeZT~}FnTzvh|##06uL6On}}w05C at 42O~)Udi!hq36c!bzWRg&hIWt~CloPZ-=p*Sv
zoO^w|A$6v~@kxJn+(oZ#13&hXytZfk><4}n7z(h(=sj*FwI*|u#{yQd86Rg(T6Ncb
zbIQ875V9zb29b4wDK(to+JDVVA!Br7ZznWj8`Qe%&>@7+JQ}7}!YHuz;?E99bG`DH
zj}Ul?3EGO;b##^5`@m#D(_h>&Vhd`%UvJ_$x7HqyaWO?-<v&xDqFG84Hm(tcce;c|
zm3yY*<q;Nm$J7S1nl7IUfv$L0A9R}0Hi1JTmqAP2NgOS5^*AAL>(EW}o3=n-d+ppl
z5vEXsM`s*4?RIi~cAMSC$=<B!B){p(Tc08ZrqHuX(nL`qgSLZsrjNI*V9(tR^W$*;
zQKtrMqO_;d8@%PB7ToojJQbNWu2X@{TYm_a&qB#Mr1QF(wG<|cRiHq1mSw at K6J-OV
z?N5G*VceH9oMqmDuL<RPjo`w(cOB2FS;n<m at wTvCNp<*ish%j+L9vea@?XAOCTq&f
z_g+c!^D``beulrc%zM`BYQ%6~u8JbX#HZAEg)h1_AaxLdBL$U<<GlH*k~N4R<lVkm
zsdgl!$qxes1p7v%(@tVBL6$&%6_NTbs9<PSfNlON+tj44Bs{duay-v*+q=?7Cyjmt
zEuW1eIOHPwAvYz94a*0cehLUBLyG#!W#;JnfpGRVb}YItW$O~caHi##e(9f0XEOS#
zIF%9B1&|Q|f;2^kB61WO_ at ZgxGWL{ZL4wp9`osDli)Eb~PDy~7`2L at thq@N{H^^=s
zyaEfVlgwJ%$~f&W1)Bq1H?R!W6m)*%Z^<~hl68_;0hXoT;dlGrmIrcV6loP-CetF0
zoile}1pisMwR-+ny};f6yBS1#;=g_q<<1T=2q0is)CZ`O6ZOLIGKUiH at 8=LdE4z+T
zwy{E+d#yO at CO>fpDvA=A{c7`27Y?`fYSWXrg at j5i2f>5bOvQzG$w9?x%G0L8uc3kE
z{(l=$Fe<lDgjiyrYT%mcroga(PVa%xc=J=ZiEskz3412LkvZ1Jp76u_Jln(h(m&bc
zvs#F=%B$g;V{EH;XeXh$x3hbK^B;=K*r5jth7~(8zdqStjyNuKmwZO|RGjYUi|WYg
zrE<NSNzP%u|JP*^zgj77(w{ci=<4LCv1>kWC-1~{VE^kNi1$*Lm^vvkI7<3BU~@;t
z5B6 at THlg4eha+v?NzWPLuPv$Fw;Ze_Fz%`hUAHdb)iWXpUOqZtO#U2MWR=i){-M|e
z&<G{!yusP2N9UF at 1ZnLza50_T<z)W at T92QviYhYx=h@{JQHAY?Iwb>V!}AJV%|}!s
z^1pBcTmy1XowFrw8{5ui(AwYCy=yhKd2BF9APhI0yj7V)=Bw_+nxw9Ox22Z&T{$E1
z+*1<Q3pI)8#b-P0-vq at 6r_?+F%8Ezv*enEts~A<EH)l>dN7&BY$5eBvfjG^YpE*|H
zI(E@*?5meWP>bnmZVTUsJ6+N!2WB1?k4#Gx$TH9uEJc%bFbUbb=!l}npwOkc*r}`5
zfBye{(2N<t2RtivEJa0;9XI~M-qPP-^t3bTlN}3IE<~YJBtI7Eq*pREvYWcE_-ZaX
z$@Pn05 at g`A67?&$C4JD at ZH-1=`RIn|hMa)%swUNlg0!uiTf3*dAvjq%qN71BF{Um1
zct;j3kRrtF{+ti3Q3gzpO-q-eR;!Bo+gt19X)h?2>J|J`EFEeVV0s_;{lu^<vI=C-
zyjnCL+dIh{W^&8k<ZS}a3L$+P4RtJwMM4sI0!$BC3`8TSKW%N!O7dAbtr7|Ghz}1k
z2yk17d%S2tc8p(LwM-fj!OQ4g05BOu;{aAKuZK|E<Dk|Sh}Hh<m$TRR>S>~&#T5x6
z_=LG%0K<pVz*5ZZ*8l!xZBM)<&vr`K$`xGs``kWe<nQ4<%&UQykeu1X&|6ntVNg49
zRl<7*&64M(2O&SYUBIcs1Y~P+Z8kpyP#pFlL<_rhs%Z-eGrhmYn8CC<xg>N^!!}#A
z&qJH4D242`)e+4CLWajTCA`FGr_k8o at 6m4RaZs874;}%S6?sB&B8}GSAnf at xT(urZ
zIIejvI`2tfbe>Gg5zOadauO10DemDd(}EABV^y=Qvw!evSC;(#KBP^3oK(jsJRXjw
zJfbQxI2_$76k0^l2sBB%oS{f4gkhlmg}TR}^@F+J<goq)*!<EmU5nOd;pOQs`_9_=
z>)tp|Xc;@T4qK~MzbYyqhhcy7ao5n$c~Zv_+epM=m#}Kxjo*H|ZBM3UYCmxhlf0bi
z<67nVx1J_Yj!|lk7X)*DUUB9pI<x$g;8F+j-F+g5xrV*{cdC>y)+>#=dR+LwGl*^_
z%pn(?<@d1CUnw4}wTFi(q(P_3s>L+x%v`B!8`IjCVVqm}<8H+VBOcOPhkQ-(a)&8`
zP5vwk|J=SUsAVl(N_^ku?M70d=KzKG#I;d`j{9=0Vr5wjzUJNJij5O@(p|F#3ni=a
zy#$$M{y0JVLUnsH!f#5!aM_v&{&jYAuIh07L$hV!Sb~*#P;)oA<-m$CmZSt8mxI6f
zLx9btbF-#*yI*&Cnd5oYjYB7wKC{ZD544nd&yD9y;+w+rrQBTw+h<4vJAbRDEyZcl
zI4YINAtXHPB`>?8_Gvbboc42ad}c{j&HMM0YSS!BqP~NmbC+$Yp(PKCp41c*`mIRw
zv+;yL at q<<3|2{2Q@(mm1;x?3efjbX9XiF?!O32i1xX3+uV(2oG6J?%t^s!NF(*6s?
zzl<j*j&}%v`Wj+X_ at 4E|^A8y+*RX0+JJwE&X7^bEmua)vMPjdRB2%DJSk+*2*ey7W
zlBda at I@AFa+cWIYd-%nv@#B47vGrCuKKMvmf(32h4shQN?dRiS2e<U7sx!Y%AoS#c
zt3NDud4Z(p&3pBct8QCewzp-as-kK)>~o#MOk}KKe6(o13*5uSa{;6?n+f(VYapVE
zMC2 at acM|i at mHP4rxN60AFFmXmL0v8-i}eH>Q*UoRrhNIbUTHM)^Mp02)R4ZAW*hIE
z1B{PK`p^kygT;XoCx`q0L$I at AX-J|1A$&86!wUNb3(JvO6-C{uKd$WNSG=;jYvyzU
zYH{3M at xUzaE$#>=4K7M^zl`W<4PkV!w?7gM;u0DUxJcGzE!{4I at s=}yIzNiCW;*JO
zY<%BWH&`et6l^Q^9i4#qrM)inR;_;f{=%EM#=)iE>TG<IjFpzp4krCYstK7-Fb6ho
zj!hQI7 at onMGY6opX`lpC?yEbW1U!D-+N0w}%w1FfOUHfX2$dH8P+E9(>b`ks7~4=)
zhVSUO5jN}yRk)phe#U)vllj^FtImrtf<-ZS`9P-hg_)Z71(q*jm;!}B07a5NMc5`f
ztG|D;g-tj+K&A?n4~L{)HtPSQYQJ&Uh>{3Q;Z6&l0*Isv5mbx6IPG%xbEePv1eG-q
zgU{#_hE+=D%>!dF^nfD=SRJD0Fao*-Fdr+yUifz|WbD6eq3eJhxhMHer+G7yBFHR#
zjeK2M^<`#qcOaKuwh8h$T++zyG~hjzlRMtkzhdYlzuts$QJHl|3wUx`Gh(PD2+9N-
z${8;j7h|~7I^}wBalnh*beIYZj+;-st+@=+QVTc)qB%eqUOhLZv-RmV at yCfNfBmYL
zyOUft5+*kfBIxVR>c=!w9K9Y-q4gLTIRjB2si$)9REEEn4cgY*JM8IUA6`?RUnq&O
zR>w|Gyo;IOoMo6l$nx~)M4=}LucMI8`*HwY2^APScp#`7MQH$2i$yjv{E^Pcdev#i
zbFpfxeb>=eZy3ba+%&$`6_$P2L72Ots;UcLY)RZ>%i~X4&qhexKeF0vGJG>(CTzAp
z4O8>09H^YYYZO^qgco9cI8_)vzTy2cOJe7Bf4E}CF|f{!F-XhYN5$Sh7ph}{!%{mX
z1(ye`URY>MYudS5c<5<?V6oTg-1Lnb)rdVMRdBnE+sTTTtJp#JJX*1#0V}TQUQ7)J
z&kgY`BDZd)jPm0Awo&y7KKq$(jym?7K2pc8_*JjY#Qfygad=Hz-iw0i1q7?c%fhQy
zBhV;hO$@UB?U-4{vvQqdUN1n0t6IM~8sSnEAqI47Di6T~?GJn<dU?{Amy(Z~UwW77
zF at NbgL?aouwwxOKp{QS9!C$ToIj$teLY$VQ=iW4!-=uc}2-N)!X(?TyLc2GXJUw<C
zN<)r_C!Pm=o?Xq0srvzF#4ke#hoY{d(2E+pihvm*qm&R6bE5s<{tFT>crA-eVRZ`D
zh-gvj=uW{@RTd6zYOmW2cwXgv(F+AuvUlgx!YR@|)0^&SF)NrXdY4hi7d>~pOiO~^
z&!*&Rp8)OrzDi7{GA?y6$U9$tU2af>5a+Tx?1V7)cYNZwMz<Qf!nAyFc0GR2flvar
zhOYYZy!!f?e+V*1eXflI!ulFK^dZ;$N8)-`^Zf1hY?+U-J~1i%<KaF3)Gp?{AUrzQ
z^sqX)b)8LNeFieG)NU#E?_(BV+R=299V+&!h$0shiDW(8*)$g2*rKO2q+u3vI-sZv
zy3x)>?zVWJo&OWLJNe+p@{UbBs5=*<+p0X^dO+`&(`e=N3)VagKN6`LI59JxS43%V
zY<Z{xBS8+3f&7yLJj=rSBw78N1339S7>AMO(mSefDI4jy1gbgu37TeC!*MBVg%=8o
zy;uHH1)eCj$x~VAdat!W5K77CDC>SN&s><;k)PXDspEjZm8JV=)uSCmewB4`a%8jS
z8J74{G;jD{r|l5cx_AdbMQu1cEYg}_BuZA*5v#jhsbyc4jstmzJk)Wk&I1SD<XXs%
zx7&4?N=vL`K9BF@>RqUi!Qfq at uXUl+1(8+0Gx}e&o`-~_>565TE_3M!uUnOMleudh
zI2EhzWlmGxwj^_<E-Ae9!h>S`j36|xd1MurgUY3}Y)Oc|F2wfgWHEwUSg$nI@#jP%
zj%H`uv~hf-g>Hiue%G2EwI~`7>ScYtx`oZ?iy!>n-2PaH*_&p~5&Gb0EwIN$rL{F%
zbjYI{-ZO-8K;sY5og)YFR`CdKDNt08Cw#wyEBQ--VcjpbLy0hKq=OAv%&G|jHJjT)
z at D@a#Pxy(siW#8KghNE#a$o+Bwiaqsl5rNGdHIdgki3oL4%ZGg=-&yuc&0eBv-^T3
z at Z1(!yD7Vpe2KRz*}b~s4V=qJ5}kU at n3fB&^Oru(yVhIt;sDWSnFw<D)|`@OI!wcI
z-*K at Q+;B=_cRZ{^xc!kYRPM9yL2fl8R}J%bBBqu+{y<aV%%zZz69jegoAf-}eCLzX
zR-N<aw%J@=!8v8C7yk~`k(L3HGAJmc)xtH#=4b)bT7KIPQw=611Bd=5+T!3!QhKao
zRkyO!Pt1G17~?3aEjoHZGC;S%{bRs$sKH~S7g9ACT+dp1O<$S4OAg&2EzmvWmyeHU
zXNqfa_QUV{dZrUbN<-XfVU=Nrco{5uQ`o3Vy{ctc%Bit_Q at d8v5FGCO1?xcWHOg6{
z@{nOUBhA=?7=@&+={mg>geo}47l50VAXrJ7Pm6L$omme}E~PU)vY^EO_x?a`^V_X5
zK<#`q7_M1==^`uv`_|2xV<fxD{YZL<><*r_2D3=*Fkw?o=h%j<d at t>@vuZ)-aSd6m
zAqn|oLi)fBS2=9E?hPRvij66^U{!dFJK8Gp9YZ!zhSs*88?ENHx7Nnx#a<}B^~XP>
z?9u2SOmiMEwtv~qHzu?s4VG!EkEpRbw)%Uu=Qj_TY#p&U(4s3zTN916#0Q-p$q3V)
zuaTAMvxC<>&aAm(T-iU=U=m|5DPq*yZsaTUZgr}PyII~+1a&EU!6gDvc^5}$JeE9z
zw`^;({YGw at t!fM8JR!!uv3I at RvfWY(*o;+!kw{Z<YMSF3ETBFrG3guErx&rV4dMAg
zqt8a^U2OTCRG}=p<8cK(-CAxvk(YY>X7a<G#GdrL(`<&s13N009G>;O=~*$2jHqk|
zm5bv?m!>><Y;O%jV^H2K-$$GW5o8hv at PE37tex#WO1=e{cG4!k0xr&Ote#QWMGh|q
z#Z_RP8r$r^!fjc2{ld%~i9JaIYYIvn7r*b^Dh=|R><T&bsgMsLC~a?FzEi;FE=JwS
zm7jA}^ko1QRjvzp8kb=9GmkERT#|+dl}Js9vTjWE_-Od}V#9d<?nXM|%h4^Bprv?h
zYeT2_3Ps@$#E3IgNOWB6=|_`L&qD+fG`_Na`OB#r_Rkq=&w#cC0yjEh>hW~dyX at W*
zw*lq^LN=cK8PBO*A$n*?x`Hssmd7}`y=Bm8KQ_j0H>QfHeZ at Qf!1nqccE_chkp(n9
zN59-Nn13qmIHArb%+P6Emwq!EaRJ=EDx|QU9%g8=qWEFSW{gYmxjdrwd;f8ht?WTp
z9cJ^&t5BF*{HFr8<_~T5`OrkC>xqhl;V0Ys^J+#Om`D>k%UAO3&&<2=+mnpxa*2)D
zN{q4rfj*EjH0we*$2v;39jd(PI)44__MFrkD6of4Srj`xSFsTvZ;7c*ZK<6)&H3E?
z_BfiFXRgGe#3*7<s{8p_oQA*HJV++N_I}vwWiJX((R}i_4$x4R6UNm-&TD|&;&{+v
z`99-Yrm<4q<F3IhX6vz@&0xuJ!M8pQGt|z4nqHAAw1{c*$HWz%Q%q7ka0B at m8!M(x
z23X-*X><D$1&$>TrM_2ry;-geMbPq%7YD<0Qh$S>lDYOUp3&4tpHE|IU<=K8|FYg!
z6B at 5Lvkq|VUTMIz-DPMrtwmUMW|7pP`vn4q*v;Tg?eiM*jyTGaym2^|?H~qsZ{uDZ
zE$eX|Jb;d6n8eP+y!JF#PiD}j#vK0BmKJ2#g6zv3+v)5RfMKT_yA%V;?PIS*n~x6e
zz3Z+04&uP~rXzovP1 at W)lNhQ$F^g{>Hg55iJK9_XQeMf0n2`EO_H=jUd>UjcR-NTh
zIdlQV0$-Hd0>bj^YWPuy?AS33JML)~hN>9Z+#d)#d#Hwvf2M at djXb457++HTh_S-D
zaVxpPL!LmapFF8}rYaI?z8Z0lm4M^#39-de6^Ab8UhK%}{IK!2<Sq3PSkhVB$pMLv
zN~M5+a;U%7Ot%6{=~)ZZeVeuX#L-au=U$R~OY-DlV}dh;I}be?$W?n=H~PX=7C#hO
zo#fZh7mq4y9#b8gVQKFGG}mxRs_OUV^q*yj(UcmS at yKIi2!@%W4jV`P{j}iqD~mZm
ziFbzUW(0p5IdwI{@<E_HI}}*2*S-`6JwHiWhasC)8q+o&fINk)N*La*gQe)}YB2j%
z(1(vJ*MlXfPX1{^Q{Z}q6b9_UWLsgw;w_0FfmTcbQ^37O*t8fEf>8iiw`{<K7DPzJ
z?azLH$925#cSvD7aff01fTB<>8c}VjWei^OpbFcJY52*ii4IlCZ>KIFUH8I0(k5`0
z<#*`8mpe#TT5 at gML3QRrj3$nj1X7KUMiH>8A(ortM8Vn{5sdYfT|}mqF8<FCwAsf$
zLZPU9)_gGySuA2U0^<KaAPek^P<g_Pwrrc%YCo?<-{)5Le$>HX*^Fo;OM+s3AbmH;
zxnjDD$4yOE7?D+y^vZPaR(?&xyI at 7}pad<Ns_3|xFUxiF-YmA&2e%%Ik_OR8 at Wo_D
zQ;f_8>_y`CGehDhQfkEX=HxoN0=az?G~9svp4O*>j at L)}O>>J3n3Eip_U6gl0SS!V
zt)_L?(l&?mS at M<w^E|4kMd+K0=k_}`<YfdGt9cKs#^)KfnQ#zFRuXyG)kguMt592T
z&2r8<Bd5~_p*les!94#s0{RcHm7j6*YuIP^B>qKl*jzOqbCn24SHAY%-I0uk3vwlo
zCUN#qTr at qD%JgxQcg`Yq?We<f54`k!y@?WPHlG%<#{FsQlU~+I{;9u<7a`4eoFuEB
zFNeY+GDZ!SbkQ79&;<D{D~zRnORTuFyAOA3 at p-)XRG$!FKG at l&iTVFaBm(qnakR6>
zGU~vmE`2Ju{e95(-3F9{Yum4gy9YYMi(L*2Og=GxIn_!8e*Uvo0jM07qXlWtJXWzX
z$%;MWMe^d0r5OWeibDLxikP4~$%?qt6sluD0y;`05~jf{vEFv)xA$u(&X)0EA!97i
zPzVK|lDmDpd|WeJ$JakTL;{4gn_ugHNAi<zzW28f5sSa#l|@qkhPmrRVsQk-CfGBB
z4Fx8eQ2rSE-XId(wJs)%r at 9llUKUGeEq;&#OJKT|&=ODoFkJ%uFMJGPQndiDT7u4V
z<kw>}!0jF%d=3*sA-;X+|Iw0`T%Cpp&{GH$Ro`gA5*X{=`cpxo9J#`nuz%5W?DF*&
zZHP0Mk?i|=<wd5P{`x^S3t1k9zq-+y^Opc?`fDCIm(=*%HV at k9cUVPTO*`9;mAQC5
zc0F=MHzD}7!F-z9@}G1x72{Pw^d}@+v(s4_$k8AyXI<fhI6Uq4?MJgN>o9ND^q2j~
zjPyy3s+jmrvoaUWjFu@$!%k_jRUA9 at nTuVeW-uAs@dv(tua!8P4=NqEg1+P|=FXOl
z_qlaFzPQG{f4UcSo*Xd44#ZnEmIdY7!A*)_O&qP<lK4P1pe1B=WQA|}3V_@=JBcz{
z_blxlja?Lg>dMT#?v~oW|ABy<lH%jz_5x4YCE7H#zK3`-(6OnAMT{iadM|+qCtgMz
zyQ?*KZM`R2dmEm!YK|PKC2;&CK3j9-2>b6Aki{?4mr226#?<RiP65>_GzWqhBc)UI
zkv2;OPHYvivLqWPQ%fSrw(I0NtdmB9FQm0{m at c~Im&bx_khTsGT9%~d4r)Cb-pdvV
zgN}X8lxF#1p$9-m4y?@l8stkM at KmY7TM~=V3q^z-BA!155X$U63zdwmbq8&=ugs?<
z$21q+Xg~l0FcyHOJz at MaS_U1LSk(0J4GP%sN-T- at b+Er~$7Ve_rN&fCh=TdGfrMmd
zlH#I}r_-hoVi;Ts!7>^_?b*Mq4y>ukOwuAn^d>{ZFJCL$tWKV)^yV2<Dk)9gS-tm#
z2_(`ZBbTS+ee5voo0cd1#V;pyhEw;s-<tf)ZIu$yVe_LA$Lm6r`?Gxg at rzpUL?tk~
zlpZubI3G#@3`n<X&B43#;2+JF`v*FWZr2A%dD&KQvRg7FXpB!17=xoUJMdv&q*vS<
z__cp(KIXA34gcevc$(UCG05Y0pm&aJJkXO0tOMkHey_Y3+50V{QNKQYpBZ3UU4Gwh
zcsH~UI%<-}W^{XR+s$sDH>a5R5S7UMGvE6RbQ&5C2x~K;F#u-60pq^qMTeqqcFSbP
zkV#x<MC+F*6hu=`rh_uKKzM)BcMrc|xHtb06fw`TeRGXzlDC>9R5bS)uN^pEoUpEZ
z*qx*Dlu2*u^lU_~m$#ARwk^^UQ6=xQx72ACAd8d2eua$}Vb(&LKV?K9ie;so_k`9g
zmYdtiM$d-&l)`hvtP`{P)0nJ$P3V?0cdiY|RSMIU_Im+%BZRYyD76~H3R9?81lnlN
z6E7ZNT)ch#Jo`NCLJWU%71Aud!cw~-FEcNu7S*$XvUefv$dzaPXOSfW1~gRYrb|9=
z(%M7ori;;%7R-;SZ`@qP@@h9A;%K9iY_qmbXUicUxk3~GQYV9+&lUXsE(hb#ZP<tB
zv<c(mXQGgwzf5oURU3dYv7Nu3!Y8?Mhdch-l+<wWXj1(pXx5<4JPoNT*JezGz2D=`
zR_n71*bI8CG{&>1B>PK`64X4Y`$&;UM&T%UZ)uE<nmcIikb;K&00o^E3F~|ZjGXqx
zIb{yf)+nj!w^QD#|Fm@%=Gr*&;q3c5k?_8gw34!Df{<H|1FB&<<}eUVkKoR#RS3*;
z+Fab0w<+3&B6D#mJH2dq^-1gMzMB}hANiBUK`qIkQ at 8gbIzC>ti<kY~B85Bh8f7U%
z-0{s8sl90#2?jR&7;m~izOFQ&nQ43 at xayB>OJVh*b+H*jpriDP)c{DftCNXGccUi)
zAz|uS-8p;P2NH{bswTWj<<<>X)t_+`E`!Q`#Ri8iS^?qB(yQE;q%6hLS*<v6d0JTG
zg|!X_F2Oydw)qx#w7UdH>#zrmMymp(EH;aVOeV$VaL02|h96I=ni8Nf=sHXg3{WMT
z5T$f=GO#hC$lnamxeVJy;N8m|<wAoPCAyxTuZ at WV0y?K8JX!UD5d(Du!auun!uP)~
zkMX*HqMaGj)AzQz$+OYy39QiZ4qf$;ek0;c0xgW=d)N*-6b&q2zc5do?9N6SFGK&e
zp!7_Z>COD`=ZcCO7l{(|e51<23nP8r7+Iu`%Id7`#O+$(y%@{rKiEHXHhVSiLMz{a
zTfZ_=aP3#Q3|J6#hwC{b8swIjB}j4B6XWts<n2p#Z=Tv8UTe0EPc3N at erc97%5T$A
z2WXfoJk3VTo9Yks(+vou`>pHVr{(#kTbmnB&>ZEv at KXt_mpij?<Jb_L;Y&8?%{QvP
zemkQ6u>XtmeHE|Ir6vA(;YLQ9EpcX_)9p5+H!qEmA2GR?oSpxfMC8~L8~1-J^|mAi
z{_gt(_)-w!GTFjvGmYgvrf!Ig^4OF&EJ<q~`-8u$$Z=9J%*d!)gMa$4n(7xx(VbH;
z*C`lp$wc2h?pr&aieq%?<DE^(W&J^n)pf!*(6x$MrvIl4=Ve~DT4`T&Q`7e)-08T+
z*#zF%3(64VhIzm`ca+X<G}#~MaQ31oly0a^H at MUzO%1L|M@(bu!-EeI0|Fgkpaq1y
z{>b{4pFv~x2`%kV_ZXI<m2WBw>|L(yzBe2i+yru!(JI2HWY^*V6 at 0Hb2H7$~Fv64&
zwZ8B4lKXtE>q)>69&KiXa0gJ!VZc3{BlZAx=1NS^{HOFI_K-(q2R!M5MiE0a<a{oD
zGDl|zupg*pXZHx6c2nL3aK9*pe+hcJ9v6*}cJPo`5>B?CzBq?jSWk>q@`jh!xF)|*
zd5e+&G)cjAn!0Mo<E7FJaMtB$XFxEnu%$qPQ;DDbrQ08$p-zTAP|Yh;3q*S@)VF$&
z7TXsTx&T(lbM at rrswpcrWAAPQ6TC6mh4#(PLmq{D!)?Cmi}oA)o8dSi0g3P%A`xcB
zvJ=E1)PN$gFc7>?^|X%v){$grTXQ=P2f;^^nhR?BkbHEBbVLBlf-gZ!I&mMnCc(<w
z{Rs&*tWbUihf01qNvE}5P#_GOUvg0ary`2 at rB^(MRuIJS!?wI(^37&b_$x{dKPE1D
z1~#Z7;nuq9qx^rUN^tPHfADAN7Gz`newa}tI61V4p?*kQk|@2xt at YzAOEFPU=I9#E
z91&<{kqeI*=6#*6>*^c)(|7d5Nb{AfYh+{R7mEp%DwwN}9;9~_xr=UmWR(VUZSnCQ
ziP9{$Y&PkPL|Ak1a<D5}_o|!bp>v`J+q$rr)*9_;1K<DR{#4m`Yt`*$YHmj?;{)ds
zvi{=qp{~-XyuFDYE5(`bt+MN(EwGzwEdA7W?{;7!CSQrV7`)(Q6qL0DyFffYZ1$>R
zqSK){hxz_&6oS)Wj`8Ud7m|9OWiS6+1jRSAdD%9rPlC7%)i<h-C{Vfk*DIXbvS<0x
zJ#=28R;ki=v8%(_Uu8LCejy=-n5yQzD+l`wBxszBWJg&VPA)3 at F5_#p(^z^la%CNC
z&Z{SvZox;xyI8&+SsgfP1zd*pF0!f0esM%4pCraxCPj&2VVGt3xHssE8s1KBC40)s
zmbacj)G$(7;4Ry_=5a}Ooh(>qD3VK}dst$Tdkj){;*S)ZxF&8JtA-o0gsYaScvmF@
zi|1a4x;ydPmp6Nj^VnfqltoP=c5hSMf{zl-;3D#ST0XeWt-18tpw4^GuK7;1&P$zS
z_L5`JGNm~{i4ChY;g-;m>Ug9WUIAQmb8KVzxGs8Ch`Pp*d?hK<cR3gEB(H#%Aqs at N
zbh!l>el%kLse|&7t7PIXM$6?SnyJJi2Xf<_xv^PEv30PxmN(UFz>Ab#Q3=qKoHg;q
z$(~&)w7V)pryQkecD)NRf=kFlS8K=X(C-CRWp0Rk at lbw!s6n|eas35t>;N|?3kNh!
zbYogkqVKUb<Z2z at b`L7%rR}TG`YFdwe<Fd#vp@%7cVOIr*MTmZmtF#&`@<j9KNvwT
z6W`~@fh+B;{yu(+{sM?b=w#pqA>UxQq6`7B3ebB9OnGD!I3&n;MUGoRTO2~Wljot<
zGIt<K?p8l0Oo6rjj4zTooDVJ8CeD<x$Eyy+ogl-#p7uQeA)la>pTE4o3sce9c*qQ+
z5^|pYL-pkaT~6%ZBa;-BN=(ESqD~hy at z}2|eHarEhirW0EJ@=%ih|5N(xxU=>Ir+o
zU2!SHVU=&}8*wxhLgiA7C?<2v(0S`N<{R&Ajm68)?^zz1F{E4G*xUSbx1cFR_QNt!
zToo!tuv&SDbJ1h$=)7i`644!j+K4Q1D9|_qkVbKOomVua5=(x3&$RJjN$#JW^F&nG
zmlTY3thyazgCQn@*b<-#ix>bmF^CY2F^02Co at YxvO?s at 2>%~s0eE7>pBiZ;g$PnMz
z2Inu|G-^pa9|9Emk=rOy1PZrNNdF~cTX-*TKXn?dQJs;&WXjNXA86mFKI{yO>?i&r
zfmqpl&GLQ}YO{9m)Tm_}e{zm#kpBTSfo at y<BNBQioORrrvGv;m$ZJvRhVzrVh1Ta|
zjcK}-zy}4o+WFAGc2OHKFN$JncE at x9^6wYs&3l%C(omw2NeyO-guj+)@a6(L?^M5a
z%KbpRtDR~io8=CTp&|{G_UrN6QZ#fgKefyRmO+ub?@~<>{kQry7<w(r=(L`He8z}q
zaR7f401mC{6d?HgrITEA;MERv)q&^)WSv0qLH{qgtJ=vcZ~Gjv?GKbCHzKU5;T%AA
zpmZVNplDHy2;(c&s&9*yJ&J{()I4EVvBkT3Ef^l%^H4fQ&t&?p&+=$Mx6<Eyyf77v
zZg0Ibw7C*7%~5t`Q>@0wb^9bVGv6J- at 6C|Ey>EF<h5OE(@Lf}2?rkrj+~u`v1GI$k
z(uBO2()?Y- at v#*3 at emd3+3>YyId>)TbDv&y1O7<?^#3uVkgVBAg&bzznRRQATHokO
zv*fK at Drlx7U4q1!*@b(ZaS6Hnfm(PDSN5vz3-`PSy+YVOy>1M-g!vn?eOZDa<z;=o
zVy9%x8bk;6DFzU7I-xsFbJJIK;6CjnO2j$ke=^X)E{aIv at 77>?FWiJa)hm6*)L{D{
zdv9%f>+8`#Ihzj+EP?>FDC_5%^#{k#l>cF at K;0LmyQ~Ssta{dOx>Cd%#|7n-=iHgK
z?b>j|+U)ejw5Bh4IMzM&WC{G*dqKO1G7FvG{+2<zcSg6+{gRFL!t*?I5y^^UHlw06
z$xWru(-+ZONSwj_Qo9P5-NBRiw|M(dlBNZpv!LmLM{rSKuq45%_#oT_7>@U2p41KS
zS<_;6oNxI(onxQ$mn>(8ZX*oSU2pBsmd at L~TUQ+`69qjun&<6D&lvzaH#hxV8Y3mR
zW|?$gmhDr~qL!^Ag!lXgjWL{aKVeiEm|j%rAC{sq`uF})mPajyJmJRY{qV6?)z-Of
z_V0_c1mIdUZj#B3sW<52hvU&{Kh~@z*+2mqhC`p4=wp;@g#oS5880G_EHC0|Ldv-e
zejtAl#W2tcdF}1_QQqxuV^D}0-39O$_!q=KrNK2dJO=cAZZfU@)iwT_WZIoQeRf<;
zbgqS6By>w&)^v8VZ`JDj&s#_6#jDXffyT*Ku9&x(D at pDXp*PTB!F$P`Y16 at 11+ezk
zQq~gaMXn+#%Dz=p;~eqyGC%n9Jq0T5?-QaB_?j<+ at 3>!WM|$X=4B;9_io-w(E*c!P
z3tp1o^S#^Si03rn#M4DdgjCcCqv9?uvufj&v2uBs*88?U(3=lmiOJDsmALstdXAQ&
z-L+9#Eudz3r(P{%4?fllxw{>V75t$4H3~UsiCq-M>?IVdL%T5;eNF>oz7UgzyMuZr
zbLdb76Pg3<45b<#9<K;L at b7U^Na6lg658^6ZnTCSBl{Hcx^Db?*^S%b*tPFgqW0Fg
zrUr at 1qC^YB0xosMqb;9z at ce275z`j4t41E?zQdEYR6R-fZBa8FF*(vpx??dU3un;`
z)c3Kfq4Aw?1Z at z;{@?)q4Tv79V(=%CC<F2Z*}VYZCd{MFOhuv)-bmxch;LPV>k{Ty
z2kXipgW#z=pRn;tDJYGlG-cGe at Equ8fV5@D%5@#crF)9g_ at v*nlvqy_)8g`kpC>a-
zU9qA!d5Cn8C5^$aArUjJpQ8`_lfW-P*!7oQV`VY3 at sxma!1h5E_QE-vS$XaJgqmsS
zAfwHmQh{!bFQ$P!a_To%kY}zOHY8x#yc}ONO5u?1mq337q%SOKlY3L4@`hPjp<*tH
zQs;O+Gl}Cm*5Z|KZKwLolO>6n9-H^cF42_}5)ra7(NcdA4S!eAuH4ox6C4Oj9^Gle
zQ*2)YVxH0|T$hi*6h`*dwKq<jCxlpOC8(QOhlq2A+p#~ccD5^cVa1PRO=g~5V%M(p
zSO(HfN({8HA?+ece4})lP7W%pAZm=9UUS6KH!>e!D;ONX0|_7<>6h{#u3=3o4=r1L
ziqSBv at lg@O%+Ei$WoEL=bX734BuepmERM<dAY0*%!sr1hlpI-Fxqflp7k8`<cK!`k
z*L6#Gk}Yo`Awi94AzHECfLuf&Y;%l9$9sqR?cpJreG$@7v?*7{@Xc>+WXIj2En2F$
z;f_MqIxDppuf`MiQ~CPr(4DLRyT-t5O-tfITVC^FZcb-)xdv9ICU^HvuIKqG(MFL?
z&6wJTGfnrq|0HmGtlv|^Kw|z2XeJraWic_Usg9eNaf}{abdr;xInmZM<2>nOknOGg
z#0i*Z_whgTI_sJ`KPtZTsya-HPdI($!!p{hj}vO_bW at k@rpS4KP#S4*9m=_k;<<+p
z_y<x8zzkZPf8(?#e*xQfS35VvI=&hR^%T1-lwYJ8Ti+>`mD8WpAAA$Cwom=J%h>5h
z)IfHH$%N-)l6nr1H68)&AOnK}3Wy*VM!S-b#N03h(N{jz5l=WZ*pMJBHl`&>xsIAb
zlJqGV+7ONtZF1TArboByGLI(`pf$|r2Ketf$2zrM<$>HfAy=Vi>oI$S0YRgFh}327
zI-5Lmi`%X(Cg at cFS+&%*@Yz&Vq9t-WN-Zm=gT76&sEUgH%Eq at oLB==i*E2XhX5Rz6
z#P57vpRfthCi^9$d|Ii>M;(jp2)K{mHlM~7-p9!jJszfqJ?^}XLhTcG#L%`RC`50T
z8#y4zC0UM-?~YrN+CY5fH}(wrw#Z<F-^W_^LJzI){3Sq^g#ZPj)$rdSdwTiV33Ob8
zPpb~6xo-T at KLS)cOjS|BN!i#2coomY2otdT(FBzjYpA})x$KZrl`X5f|4Q!%vD;(l
zu7}k{GKS34{V#W#>@imLlnbPHqIR07D(R at rd}J{}Nxyz7&g7n*{g|q7<e^AX31&mA
z%vJ6RCAxXptXVPRbj#$NnSolW619B^^BAeX<ZG~(9kVl2w1Q#6Ef+f|`l;v{oQ*mE
zULCal2W9s*a>HKsU-5SM&%+P=30<^Q|I~R8BcSNMmG~$!q~;fKzt`){PpcB+XZ%m|
z?iLDkLu9d;52u0P$uPVLUuPr+)a at BRBTk1uVG^70XHi3vTeoRK$?2|gT*afoGLG9z
zdRGQKz|buO`i@?C%b|m?KCUdF3AVYwB3^F at Sc4;##s%dy&9hYgL#G5Nui*<b*`W&w
zYPdaB6SGyaH at jMa_MmLdee<=sH$1T_pn_}V$S=x1dAAt8AyU4B+*s9R(RPT~Me~`D
z@#&ArZ&8M<ZR&*y%^GKcpPel^GCfHdEuzz3FuR|%b#Wu|8?on>IQ}+kClMo9cQb^n
zjnDG}2EAL)eoN<s3;IY#=lo#C60{5|_jG6mYn9OLezozhZ4oOl){VmKC!a!ct-`ae
z{j1aF5gJJ!D$6<#`~Th)@XB%i at 5Ps#sER^2iR0FkyZ71$j34x!jo-;*2au`*Iede2
zna5Rj^%&!4c-R}>r$~_ND~7U4#6GkU?QA<2vExR+A#KEF<2>_T_79#S;N97VH<b&d
zG2K75E%HoqV`qPfYw}bz9xqqNzLUZE%t^qV1<x69_h8udR*$z}we)Y?^tNW3nReR9
z?XY`kVzT1Q(;a3b>6(H==T8z|hh>2qTW at Ij>j3O1eN*w%c<Hknl?Jhi)A~S~AkyeX
z*|FkHCy*?4<B at diuKT+AXcnxFed`d1xDKAu8xQwS{ZH|Cr#jlaxbjc*5y(&#X@(!?
zpJrv|*i8Hy{m;WdBM$C~_ at yJ87XP{_u7Hb5!5Q~(5;;8EPg at 5$>EJF#DZ9!}kTJbG
zdBA8$GN#*&7(l1c9G;F<NQ- at gX@zGg!x#d5cXOBG<zK_G>)rgAB~2ge7#D86-g?Ki
z_}Q}dJGsT#N1)4RmLtYlAkFRwDIJvWm+gs>P0f{j)Wyiew+}|9=bR|b?R<1{<vaG_
z279Y_q9(ZZFWpJSZ5z{^0~&!ln+rKM_%GuVAKQn0wgSdA9aEoe=%D&D?n_~LesmwF
z>(0zmLs%yt4ijYe9wlvwSb`CIU=blQUp?`AWcRdO)Ebk@(d?9_%|ka8>X~z2cBUDq
z14Gs1YsO2j|Ce9^jUAZ~1rY45FWN-Rh+;A at 0MJw4a4ve73n)(OK>>M83d<ht<*Y$p
z4}_FHmJntHNWh=qn>XNZU>*JmLgowxm<5>B|D1EoGf7n3`hPxWK0N9Fn#+_Zarn#o
z_z!nz+VSxA2W5nmqdDb|^e+b`g6Id5Ff^VMeKQAyWN1W-23K=m=7ApZ|Nj6qb^8At
dAz)y3!O(N(L%GtkP4nPq-=0Ie^LBbf{U2w+N>Ts-

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded
new file mode 100644
index 000000000000000..84d2aaf3ef42daf
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded
@@ -0,0 +1,2598 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 315,
+        "y": 140
+      },
+      "name": "27",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 505,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 175
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 165
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 385,
+        "w": 20
+      }
+    },
+    {
+      "loc": {
+        "x": 190,
+        "y": 25
+      },
+      "name": "67",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 67",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n\n  template <class V>\n  struct Inner<V*>;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 620,
+        "y": 15
+      },
+      "name": "Source Code part 1",
+      "size": {
+        "h": 145,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 71",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 55,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 23",
+      "size": {
+        "h": 145,
+        "w": 245
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 29",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 245
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 32",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 535,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 78",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 355,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 87",
+      "size": {
+        "h": 160,
+        "w": 245
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\nInstantiatedFromMember: null\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 650,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 51",
+      "size": {
+        "h": 185,
+        "w": 270
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 735,
+        "y": 195
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 57",
+      "size": {
+        "h": 85,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 830,
+        "y": 195
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 58",
+      "size": {
+        "h": 85,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 33",
+      "size": {
+        "h": 130,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 630,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 35",
+      "size": {
+        "h": 85,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 630,
+        "y": 610
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 37",
+      "size": {
+        "h": 85,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 565
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 59",
+      "size": {
+        "h": 45,
+        "w": 205
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 625
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 60",
+      "size": {
+        "h": 45,
+        "w": 205
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 685
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 62",
+      "size": {
+        "h": 45,
+        "w": 205
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 270,
+        "y": 685
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 47",
+      "size": {
+        "h": 45,
+        "w": 240
+      }
+    },
+    {
+      "attributes": "template <>\ntemplate <class V>\nstruct Outer<int>::Inner<V*> {\n  int t;\n  V *u;\n};\n\nOuter<int>::Inner<float*> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 745,
+        "y": 15
+      },
+      "name": "Source Code part 2",
+      "size": {
+        "h": 145,
+        "w": 175
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 36": {"syntax": "\"int\""},
+    "BuiltinType 40": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 94": {"syntax": "\"void\""},
+    "CXXConstructExpr 64": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 60"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 41": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 42"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 81"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 43"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 41"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 41"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float *> &)",
+        "ptr": "FunctionProtoType 82"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 48"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "RD::First": {"ptr": "CXXConstructorDecl 43"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 48": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float *> &&)",
+        "ptr": "FunctionProtoType 84"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 49"},
+      "RD::First": {"ptr": "CXXConstructorDecl 48"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 48"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec-of-cspspec.cc:6:14, line:13:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 70"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:10",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 29"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 32": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 29"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:10",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 32"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 32"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 79"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 29"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 34": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 35"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 34"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 34"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 56": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 57"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 56"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 56"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 86"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 65": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 66": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 67"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:5:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:5:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:5:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 71"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 29": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 78"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:8:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 30"},
+      "RD::First": {"ptr": "ClassTemplateDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 29"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:3",
+      "TdD": {"ptr": "CXXRecordDecl 32"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 67": {
+      "InjectedArgs[0]": "\"T\"",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 71": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 78": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 93"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "associated decl": {"ptr": "ClassTemplateDecl 29"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplatePartialSpecializationDecl 23": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "null"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:3",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:12:10, col:18>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:12:10",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:12:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "54370693",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 24"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 19"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:3",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-1-0 *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 75"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "InjectedClassNameType 74"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 19"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "specdThisLevel": 0
+    },
+    "ClassTemplatePartialSpecializationDecl 51": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec-of-cspspec.cc:18:30, line:21:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 88"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:16:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20, col:28>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 56"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "VarDecl 59"},
+      "ODRHash": "9958786",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 52"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 29"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:17:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:17:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:17:1",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 86"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 29"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 29"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-ct-emspec-of-cspspec.cc:18:8, col:18>",
+      "q->TemplParamLists[0]": "\"template <>\"",
+      "redecls_size()": 2,
+      "specdThisLevel": 0
+    },
+    "ClassTemplatePartialSpecializationDecl 87": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 88"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "<invalid loc>",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:12:10, col:18>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:12:10",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:12:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "1861593",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 98"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 29"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:3",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 86"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 29"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 29"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2,
+      "specdThisLevel": 1
+    },
+    "ClassTemplateSpecializationDecl 27": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec-of-cspspec.cc:6:14, line:13:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 77"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 28"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 29"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "52499103",
+      "PointOfInstantiation": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 33": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec-of-cspspec.cc:18:30, line:21:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 80"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 34"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 48"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "15998492",
+      "PointOfInstantiation": "in/src/ct-cont-ct-emspec-of-cspspec.cc:24:27",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.SPS->PartialSpecialization": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "ST.SPS->TemplateArgs": "\"<float>\"",
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float *",
+        "ptr": "PointerType 63"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 29"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 42": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 70": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 77": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 80": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "DefinitionData 88": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 46": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "ElaboratedType 60": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float *>",
+        "ptr": "TemplateSpecializationType 62"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "syntax": "\"Outer<int>::Inner<float *>\""
+    },
+    "FieldDecl 35": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:19:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:19:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 37"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:19:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 37": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float *",
+        "ptr": "PointerType 38"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:20:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 41"},
+      "TInfo": "Pointer(\"float *\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3, col:5>, SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 57": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:19:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:19:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 58"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:19:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 58": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "V *",
+        "ptr": "PointerType 54"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:20:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"V *\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3, col:5>, TemplateTypeParm(\"V\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:20:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 81": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 82": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float *> &)",
+        "ptr": "FunctionProtoType 95"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "syntax": "\"void (const Inner<float *> &)\""
+    },
+    "FunctionProtoType 84": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float *> &&)",
+        "ptr": "FunctionProtoType 96"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 50"
+      },
+      "syntax": "\"void (Inner<float *> &&)\""
+    },
+    "FunctionProtoType 95": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 83"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float *> &)\""
+    },
+    "FunctionProtoType 96": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 85"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float *> &&)\""
+    },
+    "InjectedClassNameType 69": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 73": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 74": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 92"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "InjectedClassNameType 79": {
+      "Decl": {"ptr": "CXXRecordDecl 32"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 93"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 86": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 97"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "LValueReferenceType 45": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 83"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float *>",
+        "ptr": "ElaboratedType 46"
+      },
+      "syntax": "\"const Inner<float *> &\""
+    },
+    "LValueReferenceType 83": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float *> &\""
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LDC": {"ptr": "CXXConstructorDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 49": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 48"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 50"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "LDC": {"ptr": "CXXConstructorDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:18:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 26": {
+      "Canon": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 75"
+      },
+      "PointeeType": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 25"
+      },
+      "syntax": "\"V *\""
+    },
+    "PointerType 38": {
+      "Canon": {
+        "preview": "float *",
+        "ptr": "PointerType 63"
+      },
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 39"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 54": {
+      "Canon": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "PointeeType": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "syntax": "\"V *\""
+    },
+    "PointerType 63": {
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "BuiltinType 40"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 75": {
+      "PointeeType": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 72"
+      },
+      "syntax": "\"type-parameter-1-0 *\""
+    },
+    "PointerType 89": {
+      "PointeeType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "syntax": "\"type-parameter-0-0 *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 50": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 85"
+      },
+      "PointeeType": {
+        "preview": "Inner<float *>",
+        "ptr": "ElaboratedType 46"
+      },
+      "syntax": "\"Inner<float *> &&\""
+    },
+    "RValueReferenceType 85": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float *> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 66"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 47": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "syntax": "\"struct Outer<int>::Inner<float *>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 65"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 76": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "SubstTemplateTypeParmType 39": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 33"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 40"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 40"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 40"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 100": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 72"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 101": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 75"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 101"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 102": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 29"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 103": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 29"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 55": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 61": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 76"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 62": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 29"},
+      "args[0]": "\"float *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float *",
+        "ptr": "PointerType 63"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 47"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "TemplateSpecializationType 90": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 91": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 92": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 101"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 75"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 101"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 93": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 29"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 97": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 29"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 89"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 99": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:5:17",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:5:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 24": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:19",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:13",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 25"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 30": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 32"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 52": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 51"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:17:17",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:17:11",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 98": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 87"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:19",
+      "LocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:11:13",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 104"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 104": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 98"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 72"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 25": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 72"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 24"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 31": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 30"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 53": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 52"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 68": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 72": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 59"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 59": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 60"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 64"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec-of-cspspec.cc:24:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec-of-cspspec.cc:24:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float *>\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:24:1, col:25>, TemplateSpecialization(\"Inner<float *>\", <in/src/ct-cont-ct-emspec-of-cspspec.cc:24:13, col:25>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "explicitMemberSpec",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "PartialSpecializations"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-emspec-of-cspspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 255,
+        "y": 210
+      }],
+      "end": {"entityRef": 8},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TdD",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "CTD",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Cmn",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 570,
+          "y": 145
+        },
+        {
+          "x": 195,
+          "y": 145
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 550,
+        "y": 230
+      }],
+      "end": {"entityRef": 14},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 365,
+        "y": 510
+      }],
+      "end": {"entityRef": 10},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "RD::Prev",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "RD::Prev",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 930,
+          "y": 185
+        },
+        {
+          "x": 840,
+          "y": 605
+        }
+      ],
+      "end": {"entityRef": 18},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 600,
+          "y": 505
+        },
+        {
+          "x": 775,
+          "y": 495
+        }
+      ],
+      "end": {"entityRef": 15},
+      "label": "ST.SPS->PartialSpecialization",
+      "labelSegmentNumber": 1,
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 600,
+          "y": 315
+        },
+        {
+          "x": 345,
+          "y": 315
+        },
+        {
+          "x": 345,
+          "y": 220
+        }
+      ],
+      "end": {"entityRef": 11},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 395,
+          "y": 315
+        },
+        {
+          "x": 345,
+          "y": 220
+        }
+      ],
+      "end": {"entityRef": 11},
+      "label": "ST.CTD",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DeclType",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "NamedType",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "Canon",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "decl",
+      "start": {"entityRef": 24}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 746,
+    "w": 945
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec-of-cspspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd32166f223d3fd2b8d5e491050c57391892d3b9
GIT binary patch
literal 42155
zcmY&<cRZWl8 at 5f&)T|v_jVdup8l$ymwTRYiil|Yo5w%yfK~XJQyQQ>tBdDz-YEwI?
zT|1~1CC2-t-{0r`yl?)<CyD1d=iKKW*L7d#5qHDffQ6Bdk%EGP#mG?iCItmGhJu1>
zje!pMWkGOgoPt6?GT6%2|GJO2x9bCc3W~?s8xH4uCV$kP%F=8<oZ~d^vd$kCjl3sS
ze!hJa>vEupi`6ly?s+O{{nB^7=x}SR=UQAhv-*2!yGKt{<6zl~Ub{IE5<G}+B5$TX
z*AFqHz5{0EF*iUR;}adEUeXJ<b~#>7p?6wT*wKdfCLM#>tgau9ri9sRj|Tf1uvVP;
zN^bkSgSEoW74;2>gkJeWkmiF1`t>K}4E)Ndt6e_5*ZyEuScAjj8?D%ZF#SllESo8<
z$C(_P^5W#@KKOXj!p~+$9GdYkg6L*6RWM1h63}$NnoT{Q=k;k}|M69Er*|pV))CsZ
zm|Y3Yoey6Y+#gun*r${2zWnFcxy!Q2;13HH0w3Ka7-i1&+Mg5E!wt+aoqy-7_)*`6
z*@4zXN2RB>?Z#V2YmZlFGiSN#ufW;tgCSmnA^hS~@82KXc at f%bwWIea;FfoZJywA$
z<$>$-t0VeO7j3QJA3fip=wf1KH!uAuyksZAax}cw+R!l2v)^Mpgb&7CFvVFh3|4Z8
zbKE~Z8ce3ZNn-pNZ(mzoFH|r(v|p~Yl<5upO)~$>gs6VAo&REcEFsVF`jStp^R$nB
zKa`;fOmp+Jf4gbcPao`%C~a+a&V^I%Tb!66#n#|2)_X?1zD!F7_z~5aguVT3&-+2J
zwDOwp^@ooBhU*xS*(|FxlpQvp(Cdr3<p$sW985l4<bo7BRzfhxyJ|u*Ed7DfjXIGX
zPl4ZRYWGXeY4EMTD{!P1w2NVCRvEAS^Q~(q<%=WfF(yhVUHaCT+HhOhRSJouCKL~p
zD#HExRkmKUnb at yW^vjzQ=jdOy{<%syR|xyn=v;*sPlc>6n$9o!>y1CZ+|!g`8vW7H
z!EXFx;qjyOYf4?2=PeXgubwp2Mt6#_cVtj=X>YXba30$=RB4{sK#$eFc;51c*8SYw
zyanf@<FR<xcgY$VR$n$;oHbLaE_EC@(%}AjzO``EKBB{ClsL<SGHh_pTdh<n+<&96
z;roNlZwY7e8P#z%imi+R1?gCQ7`CpB7c9L5^$Ha!yKnJzB5H%a1&V2=N}es^S2FtM
z*poVN58|3?&iLg|j>>zBe$esS(f0aRXZ1QM2;B?mw$`_Km)_ at b`+td8<uUp7I7;yP
zMY#L5x5zgm98~K2@=`QEt0(dV$M=15e#X9Gy at zktGSa*COC|%8bAzfcJOul}e^yJ}
zX<~xEKR5JcO2=URaLeesh?_w=ylk;$vxORa7BaGQ-3Z6tm7iM0P3 at Zm)pUH?`czU$
zMvi0V at 1dVW<nyk8j~8~b?!PSV*$oPDc&oF%*TB0e(5_%im9J7$xs2xz3w|;EI6?Hh
z2Yln>Q>rI>H^-kPJlw?K2B<f0EGY|KA5)Ogg_N;A8F9PAitMY#Yr0&UxB*eehABGH
zJ!Q|#_itEb?|JSOY_RRnQ_I+<9dYyaEowTK`r=DTUZmb{`-s=h=_PMdSH32DuSo6`
zUahbBZo)g!=`!S3Us3T^p(L}dW4zZj_IaDVe#`A&ISGe7_O-FX^^lni<4~$2{feHj
zS#u-R3qOTvIG;?1XFR*fvkdcJVokCDlZ<A?K(IFUkgcOz!)((|IZtnmeg01WS6TDA
z>(V>FEseYZxT>;|R`b)I-778)+Tf*cbd5#w_D!vPxpPmhW>B7^V&+n5(4t(?(Qedg
z$W*8hag3InrWv9)J^z4_?r_(6&LRb4`1D7`W+K1AU?Q^rhJ%tqd+DpTDazyU-;Ihy
zf7WPq-a{Y#oxgj3I9mjS-n$nkwMR95e|3*$Xh+CjkbeAfM){R!#3oKpL&x)8_udo2
z??!*2DD`Z0HFLBZQ<1XRACBuc;{JlK=IhFAh&Jv)H=pw^icY2wf6gd~Ydvf+%?@g^
zT5pWi(&=IT4rcx2CeP*f`xl-`A^eQ~F0<Ey(1kqX*`ya{P5U2^47Q!{u`_i>DJ_fn
z*BszOiR1NOdf?L6UwgZalnu06GEJRVSRT>HJV&f%Q7}%7omU!Xee(G(=e<kmFAe;d
z(J!BT(=9Z7Fp#oU-y$ZV<=pnG4vd at eX81961;t>XIKLvz_iPg;%^IE`dY4!D-Dz}u
ztozAJ-Sr!XbDh#t at FaA%uDS2Ut+evlX{wtS+GfMn6Xxq$$^|E{8VSZgJ|S5#-)-Zw
zFJvIZxCH6HerOA=D`^pXrQ-NSv}Z at 6s-5GiOuk#@e9XXs;_8QI$hUcR6O_+T?lYFx
z at zfOy^tzklbIy_F at 0v8d-b-(R2=?H01}2`Mw=uHu$@eCR=l-Y(3BKc$Aq`!YJxK$(
zv36)?YS*opa(p*6-e{ICq1mA}TrkhYOGmOsmivTAM<DcHB*VtimA at 5dyL8=5z|Xq~
zKiw3x4WMo7T;|ea0E3O`stz7_DfsfGUZ=2iG<}os{tM?_k(Bw6_rv0Xzk_&8d2;=Z
zc;!?Y0+u<I`%frt7F|7i&vf+RN$T=Os_NVmN$Jn2iI?A>HA(O4Pxuk__dW#bJa!J@
zJrKY9RRc7;Auv*)AybO846{15=XyHa=n~$2nLSW^w!#0=SmBoaSYJR~-6hZE2311C
zj(O=XPhMzc&F&rkojd1XH91zTPhVBxa#CyjZbGHn9^M?!DN{fD&B6awb5Z&lBs at 1p
z_3&3+N38R!x1cjgn%OVfMwhKV76j0j45Wa{SggX{iq^p{2>X5lj~k!Jub2FIw_zZ}
zJ*p1U^F42G0Ton4V%h0VQ$Gc{w-Za+yc&kT`;{@<_MhVk{K8%>IEjtuWOE7Futj%^
zg5tOSc+$%^QYUa0$DO`C7Wk1wQ6?Z)z7hj_t=YI;{@w`u2_$G`7^RTQP)Xm?P<SD1
z$g0i{J|6xhW&}~;N>x*QGDj+<o}|Ces>5b*ngO|99fP`+@#Ckpfq%DRft}8L<IhLh
zZ#5s!^2)HPZYSw$KUay`_Mn~ZFjzk~`!R(V9G4PHL9qUrd~2DmFhA4$`<X+eCD=1m
zFWv9LWvqSGmD;U}532DJ=F8^pF%?(7RQt2=nwTP&_B}71E>M|0%(Q%eNjjZoL*f%!
zP?wVD^;g#?`Q7 at D+m*hV;ij(LsC#aIsN;PLcW=9X;A16Bpu0Uj?P1&1x<P at Kzm|6u
zdFWf7eDZu|Vu3cv90l8YGNm2Of2 at w8AgI4fQn`_)|LGpf9`V^nSiz)qa05e^dnQBI
zPy6+^risqzp3`i2l)1%>@6S~q`4unK3ndV?_pq4`1N5%26!+jLI#&6et)ZtB_np2h
z*Wejr2K!$!UN#O?wjLo~m5pW})4G}hqzkp~y1(bTUcjeK%%L^0V6&R>{`;OO*5c at B
z?iT;{U^?4ib$Q}z|9hVE5)CdS>K`V_4G6q5OSOzk2~B=aapR9j7Y53g7}pf`K&eoo
z^8okUn5u!f+rj-mC40_)lPT=1ss4)m>?Ww_D_~`#9hJvkz2k|JslK(mDBw*K70%gW
z<tTIi7vh=o=z~8}40j!TU#!1^<~5$0GUjxg+sY|6?R%N?{LhaI?mWZiW-1XOwO27|
z6 at _*--OXW(^_JN(J$J4+C+o0n9>26z4eN$4B(mnC_k6-%zn)Exk(h5fxkmgWelgK4
zgU_7BT10aCe%iQeTB>eYfgt>e*sIS|@mOx$mkZ{7+aPRPT`TkU6`_{UlLv*6z4h%D
zt=%<mW#!JlJZYM at e<dmoebi5r%vC8FG&Y7tDEtED==22|@2T9af3Wd!XH|r)pfi(+
z=XTfZN4|@;w>Fw04L%hRhxI-0ZtPhu`C5BoWmIZc#>V}`@emcgCL}R7#I5x`GWYX1
zB!t at 9vmQw_d{g at _cl<j9Apv_;wg|K7A0FMxuraxXk>9t*j1Sgkdv0iEuNZ#{S(~4_
z#j%+?Q4ylLnHzkv+4;TwXi7!!^R at j>u$xx49zIn&=Uy3X=}!@2{YIzWl`yYZuO!}k
zuB5zYUJ?Ty!$17(R-l at D%)Gu%N)EbZe%EuIql;6ESOfbX$UO01sW=>=3*^lalOEBw
z==F4ND~Q}<@}zPdgsaJgwLCA4W^UnImwq>6dv0{$q7IKGRdT(-&G?af(uFo`qS(JG
zsUJox9gEd5^gD*dq|WnlK|xOo_k#v)P^0IzWiGQF5my#H+21 at g?-nfoH5sxz2l?sX
zBXhIu0V|yPM^1{ukSfvLWp_Pxj{`?9XtYO&E76G at PLYhFUzi#bJeL;{Eg5C6>{tSu
zEA3Eu at yF=10HQC;?7$<-Rz;1a`GY^HK~7T{*Z1f`U3h5ltGp+ at SuWP-JBvm#^P^q!
zqS)SoZP|D7pT}+7mxYq2om`W~%FPLn?yV-M-n+k2T~0rAV_CA`emq2lm_2CoQMNU8
zcj&K7?hmP(W{b4<!qZy%(G+@`2Kh!+rm1Hdn$3>`QdmH?i3%~azZAjq?ICJ^j@`OV
zxJx=->h=FMPnWx)x>r9J{G+N{eQ4-K{?}<H%xSi~qhH{|My88`y!(l(e at 7FOazf~P
zw9m7>?D<yss5j<)0BdT=s5X2h?xvZ9l(FzVh3SSl>rKOASD0~`9%@}vzbuyfjZs-)
zT-%+pfXVcQ3O)l5$mdj_xlHK#Y+0Yi6+7OX!iwlVocl at 3{r$3v$7nZ?WcK{qO$7}#
z at l3gM<w=9p-bsVO8<kx78fta6=n{qG!6$v@@Yn}kx1K&=RP)Ck at iR<$5L6F!L>0>)
zi5Gdxu#>X(Zdl1~7Pdd&l!9@!$X|CK%(w*Mp?2zeDLA&>GwRF!WH{GTHKWDpF30M{
z*@rJ$>#vQy5fiGZp)yPe-0!&8TXh185`ir2X1SFHQg@~2xR2M4tB<UexaD-#x9r1o
z!(Cq4n!NI}6C}bKJL??`53<!jTL^7-YDOH~L$d`DB8PI`M+Y`|uQb&9_O->72oc54
z84j(3?pu^)XAT-y1jzpK9^d2soLX4ZbQnBY=?zgSn1OQ%gntr?=c5*kdK|;QYfZy<
z>?<#S##?w^-*@MtZ1xdEs!exo`h)3*1pVyf#d{7B`vS(BTyJaa*LE91be!jk4-;)z
z;0 at 1<S^{q09R6HYdvkcQyJPzCUY(FXKR0GH^Zkv{KOcTaV%}<bYuGPOC;!R}ocg<y
zG~gceOtDFg6xO}s=?S&%z2M&LCS=1ij{L45wQ|?s`#|?t&$+0lujq|(^jgtu1swf#
z-j|^2QfIagvTEA}SOWLc9S*P!%oHJ`bLeHe(lV?ATPwF<max at W=5~1!gRcTVYs<Xu
zweR5<CfI)KnCwZM9E;Vo_Z-e9ujTzlKinRDD1H1RDSMbh;O7q*NKfsq)Rr&BqN+dA
zzXlpK80D)!9Otup_UBT4U#pB-7;Ch{$EJDf$G5nB?h+#CbK at vz=P0wycsDo$ZfYJn
zrG|ofgm>->M~6I1^U=E2A26-6W$)H4p at TFPs+i?S<?3G;3aF|x at wz6`>i9mQUsLjt
zkor6H+9h8%)SUii&GO~)M7rm~iznl9{%)$_2F@$v6%lJ at kMQ*G1Yt&xIOnWU&}^Ye
zwy&Z;jGQ at 2?ikXSB!Bz4ogK1rjW_AF&<AO+- at k0w(%vgoK|osd4BlHSOL$uJr|tVp
zYe+xi7>c>TtP*C6xR at nO_8J%EIjnKH74!2-#*PT3$hQXqk=oLr8J+K}e5jvbR+iB~
z4l(5|78c4_<`Y!p4uP^z=mqmO7v<x|2f8=S!?xzY?>IkXlQwrw8t-e!(#Ou4oCCo)
z_TG81pDdM}eNXg}jqEydj5Jn$TFf`H`2zXuD!)Olv2#@Zm#eXySIwTv!dT*@TbO?9
zJly%$2b$eVxu_9($Tw`(h~(!8_ZJq=9GB|<EplXTuJ7yi>R0t+&WJ=+q<QG(nVA%K
z3Of(P1t(3P)8tW*HcVqx%a9S+)mdA5wZv;T<kg|?lCq8OwhlamU1T?bBMSLoLGVw-
z<tnMqoYYCj#W5cGrJ806{(bVhT!nTm!F{1cs&m%}qT&toJl=f)_o|&;`vo+x!Tt}G
zsY<nle=qs85j&Sg>3Fn0f0FvFwbEG}P;2`~)van+ThFAeB`_}4(vwN$ljARS2la%U
zcLh%cJ+i95S1p34j?BF*Z{_~vez*N#f}5xCU`LU=VWisf=3$KG&E8=}Q*rvLni(3B
zfP6*4VzgP6*wx~?2Q}&;mG}R+$;ZIEm>mgjYl5dXGtMV2mreT!nlR?9<92Lrhm67%
zLodFWIBOfxZ82L{d2PqsMCsYBHVu4t<Wzz|l>N~q(q-oP$ZW_LHJxmo3!80vF^z1$
zE^^S5^e=Vks~5ud4wyRGvK2UxLPLKW at I^m(hh7*<c2FCqeQn*#<1rbG_ulJ-4fOu~
zhE(~v)wx>is&maQ_l2u<J5TNBhke=nQvS#1)I0CKF}1{a27gV<u#|yN-cL&?Z9M;o
z%iT5+f8nJPSJC_U=YO6ItBqY=k||_D*A27EHRD)y%W}E{0>$hT-dGiD$k)y>Wys8>
zk?0gbcWN)D5xk6yKR>#6|E}iU<A&$BTt_|8`s at q~#EB=2Y1eppQJjyNech|OB)|EX
zwL}S}ED3EQHU1T_nTVS%V&9pv(>-VN8N*)2$j_r5Z2N;Xq~c|u7e}m{*GxO{j`ua0
zxXufotE%h?RW0)ZsC1{=h$XDY+$AR+6DTC}+c&Y{d<satR0p^}J6n)h45`SX|LDSB
zh(_>TfsBr+klSyvK0?xlulVP8%aG=t(^WqsxsPfzeNPa3ZfVg;Ar&wV<(>bf7#+5=
z`1N`r>!`p}sb$6|;^Xr$>+ZS4KU_N>uYaJ&Uc~BTO%925oc|&HH^~2mobYqWufNov
zygef-Uu`~Jr`YH>AEkfwl|!iFdD4xp6^gs8(cr(U9&=(l+tHC7(vtUnp4hNVl-&Jk
z7CkBaEq$`ZZ{zl)uLqyOLV3Yx6D)Q8$tA{It&B+U#xgbPYJ19uo1d>(*$4~Hu|G|?
z#H55QGMYRQi0!`p=W3dyPm}%b=Ch(I<=r{(t at Np#w<5CXd$YYA$;NfjD;b4moMxrj
zm5!QMkmGJCjHOP`7z^X$E3D09zZK<YqdUt5m14`6ViSEO_x(P#%;h)Z-(+ at Q`)>PL
zn>tUW^jG%8xrcf<T_gLE{P`ATdEU){-B2tm1=pHN at blnU8@Ba_R_^H|9;b7<tZK&w
z99V<jp4dWbnRw+}jI+}Ab}fvSN_&g(Y0JUJkxKkbrkWD1LmwY5;gGD#8jpU4OO4v3
zme6?+Jc^mtbl*!{53m*?^$lzjU$qIspz*aIX2nyHGkzPcG}k?iXGPPj0t(O7cTJeX
z*sXNWOm0sU%xySFPUzpw%MrNZ-Fapj7rC3iXvTT2_c2&8z8BieeIu?xPe!N0!>lm%
zN0v&B$Q9~X7h6A}Pt~d$Da!fQ_jPZ7e#P+AAYeG3A&~uD=WV^RS1We!Uj{&pMzr&b
zRG&c4g-q1D<kr4d9V#mTrTk6j+T2%Cqv-TkFJfKd4GNeq7pbX+w|sq8P{v0n$M&W<
z$@<xO7T#&B$sRB-pGmmm8B~q>{Ngj?kM8<}J0%sl57?~_0#VoAhGK$YufV at mnOToc
zM$bFj4 at v)6j7qsfM=k%SZ%Xn;OK at v$-^7LeY7Hv&%HrzX`1|+wG0#GmsqWbEgii7b
zZs;fR3#$`76L0FOIQV at TDQWetk65cAEjJXHrJRmWz8GC&=|RPeCbHcjojk=dtQ$y8
zs$j5je+zvbr9_eq(GihVM2=1ge&HKgXG@>8ty%{fPoL8Gy(RvZeEsB_j!JXNUAd}P
zlx2q-uj at A~m_9?@p5(sdHAYT1Npo_;H?5sjD=)J6o1<DE++2Pi%k4kSul;sdclpK*
zi}mB<lz>Z|)@sA`B1O9zlX2J|pX~i}E4;aDgm^se4!xWhcD~UG2v}FE+8DgqJlqt6
zIZ}VBC9xl|O6Vd;ZW?Mes+Q3KH+BXr^P3AW%|-8MWQrds8oxmV5|y&Hb}fFX-bk;B
z`%+~-1ogSe?I)uzcKtRt_tf-7rTlMMVT-?OzKuA(+kX5;kZY%hd+lMt;^@8VHuUI=
zY054kb&2zTiGK<*uN^-(`8!~x7*2CQ5<mW!_;-L)B)qTt at 0_4ZFnjp(nhi6a;r;@A
zR!d8`X;{Kv5uf79!n{kwC*NGe|2T|Gdj5zv(X}w)u)JSt7I)*d?&Ul?{>#F<M$pCg
zcbDpOVqQx5UtsC#QS*6mrKpc(HSF>AVtkBRcc2 at S#f13s>z;7y_b(!%Yt{-g9FGb!
ze0`iYLT`nZ+Hws at 1!@MKWN>Pva7-^;p1ax7&>)#5|1xLT>K!j8EfsZQJ5naAuUJrq
zk9MlCv$@o&(_s6HeQy6!S5?;F>f5=D>fnBPZmCq-T7FK23s2T&qT}Sfc9NK3v^A#R
z`aRy?d9a;&=V<Q&F6Z5_M88oXTlskI=cPgjUC=utf@^!NW2*5q{LYV=3d7^xD~ajZ
zSL{~3E01q}=Ns#Ybm=HmzH?-gNr-f-tYa#4WC|{cJ5E$t7s#c4L_4<fmjs+V7^n%&
z)Ir28XAVQzO><5z91&GIE*cAcEEGoT8{YKi4=qw_WYz3q4Wmx9k9l&=PNPCx+Atd&
zG|e at no0c8qbU(_R9n2uaws>56GbMX(`S-Vx_j0K0b_(goaTlR=#sP=cCby0*KKik`
zoKcn7^(zqH?f7Fs>wu;(dNn3H<jSRkCtSNQ`92f-COyqNOFlaSC>vw(oQoRz4e^7J
zgh$ySye^@L>MOM$tRWmz?yf4l#f|41sw6yb?)H5D(#EG)xajkCZtK;tXkm6R5f)<p
z{E}}Y$7DCgJmMtM0(;3 at G$7A(GyTn8<(r?sjroRu`~^wOwz6%0Ix#h3tPlj(i4Ao>
zH8P1C$yID%i=<)SbbcY;5sOT>Jkux&qYeM^+p6{Yh{$s8<2yeB1wOoWC7&|v_O+d^
zjFjfhojIR}-<^>q9q}FSl(ve>W&GTB--t<eat&ouKaxT%JcBIj3%UQ41YZr7%IuO8
zeQ at cO3GMK`G at Dz6ajdq5D(3gatocgO*0#%>n~dlCWXqY(PcNpb4i#eRw_~6BbJ0y-
zmgI|khjz;pJfu9ePV<RCT^O;uHnMBG{=pa`5 at VfFpA;X-mJ}piJn#DRN6E;%RS821
zuEtg;W;vY)5|oDAExF_dy}F<n!l)`Va at ms3(2}&I6no!%mAk&>3XOY|VtdOoeP$#H
zE=;rtpAk+zu&B5+otqeBwRTm;>{?-wpQ*jd=qKg}*x=XbZ@>4;p6k at gG2N37SxmDT
zvc-mysvk(`CmKJ#@#5W+eg-xOZNkBol8yD@&2rqPe9U`)uB53_8xHZ`d~mqPMuzb<
zol1kA-j!Wx!(DqW_*|$M@~J2*gL=xvZ<mYTDOS+uHVyK|`6hVU2ZF8aH{jCRa1Pp)
zr=3Ov%0g5hZ>ND6d?a07(O*AF?<g7Rtf at wtB#yt4nXgxq-;lGhxcty#PF-C-QOyOF
zeT!NF-T8(wF*AcJQd#@0Vs6SyHir<p>olty!-+9B@>{Q29#tnicQk#i^}XZL->cDv
zLe?mz6a30G8E59lKYh;F!WfP2zPu=(ML`isVWg{L^>~7CVp2tDswni%)z?#;$k<SC
zYX!+0b!%q#bg9}Y4oOgfr7Z^`wJekCyQ`Nhc|QErFq~~YeTM$`S`j%?_z?NuXGeO>
z*}l`*?q-kXmiv|s5AiJU*a=EMvT$<Ld`%a4(I9jPVs}|_?B{{kzyg at 4b-pQrp4jRL
zjgBff5Iot?I-9ERA19tp7D0Y?3iS7=H|*e%$?I!=+gl;w8(M>oAQSR9dpFRq=ocN@
zTD#*;KWl>X#`{mHJ{dwG?HnhQBkh`g_VC<<l@=v$aZ%uvPk)`jY!yKHU`(@7`x3QH
zPJ0780{f+|yMARt6D>i$Bv=u53e|%!3SmDfV*9cE`n6Dxbq2Hy>9{7 at _&vsVTBbc<
zq`qSsp5|vjo?llX2H!Q42Z~Fq7SSlL at x9upi;!&(82f)lJco0vktD{4*=RLRYW##I
zPi5MYXA+%YM4Sl at 8x$qzYe6R-aGENS2p#4EQKeH=90p+3iKMPa<(fRmF>Mrre04tC
zH951~pRcJb7wf)=kaz8Tlr4w}5l7x|2Ha`aQrEEx2l?lL>)`bNyuk2pdk20+_Ih1(
zQ^lVD_Z4;y0i1K at owW&XM>v0}pOu<!{O@`S7PKoJ=HF)qoD%sn**+QsFYtx--)FEY
zwYCN2y9(lTP+373a<X=z#?NUZz-c2`UR#blbs?BIMncgg^$|B2_^p59S<HXINmKAf
zN2dS0H3Z_PEybRl_P3t3plIyQKkgP7a at R80NUjwL5s1(l3n;UQwmld*IpF%|jr{iO
z1cpda?MHi`dqQLf-e(ZqCIV3v4SnrdA2=E-iS?DJ=jfP!yJ>u#!0X at hMc=J_dgRjp
z?bU&WF7xG3YFtBQZiG`5K0?E4iFZc*!sG9cUYy2fv<_$mN)**Is)`PYz`yGkvLJ66
z=#-H>K9D??h1G>9F=r<;XTA12Qy|jQ1 at H+MB%&Z<)0p6Ifb&A-xEh3P#dkCZnE^NC
z87iPvq+I|%=*U4r`a*>e*z@`3m+SMJ1wDCy5!Wh6jJRl9It-l=I6VV~bX3WCtUQHz
znO4(~<7G2hL9FN!g-(pUUI!Lh(O8*3l&MpuBN9V)Y{t0XQi><yFaqZ5 at Xm9yC3p?f
z%8ocY_4sq(BP--=&@w+ae$ryyetBY)Fry<Eb{?@G=oi+;k#x7#A!o8-SN#zx&nZk$
zM=r(|1?<46&Rpd|pw^d09Zxm1Lx8ElWE}I=5^4^RiO*Bplc|=IDf8u8(wog-a~EeG
zV9B2-5mRt5Q4z!+v^B0!XZcWrx<u~d$#QEyUG7;6au0k~legkIPKjGNb}6`45Ef%g
zg*j at JJ!&+xYdHGaK}t$0^wq2)&1|TrcvA!M!wkex3o8N=^VB_6Y-gg9@<(NaFpFrx
zMn>2SA*fqFR$C6Z>a4uA at l$JpcCdlgL>RMdh0nf*{Yf at no{@<hhB0_MQ4HiVJjYE1
z`uMr#pTJ0bpC3Kq9Byq(gVcDwr-A~Lbg#oPD-GQ8-EV%gc-AMz)@?}&??3-#xNLki
z0BIy;!>lYyifi)OV+vc^P5WwO at RAQ?0=9{GZFKZ1(W;LaGw#Qg^P`y>htiU=5kDK!
zO2EbA8kXePNhPbekuhxRn;Av3IwixpdlZ8ylw3G=^vFy=@2M at XcTS>Y<s0)~ym2{U
z<~@B^DS%7 at _8#voq6(EBcTKcaPHA`WL{z>(e88~+mU?12*0*-rs~0ly#>8n^Flyfq
zF(xgCb_I1aBPQu$GaBNM8T^$!qr8U)J=-o-0s5kOa5pI+LAe2QZT12Ob^~2e^OkhW
zrocOUxfgUR)ciT|91w^xK)fYC!+#!EUlF#q$6PsPL^lVgg!l`ewfK- at gKuMbt0g>V
z4C}YicvNxPx9<Y#2B-4^PNy!Gr{ftILp{TnCf$=DI5wBd$R(fJMbIL~{pkLy33Rb^
zH%;hxQnF69w&JvVtu5;rKP62(=KcyxxaKw!$T{`gYkkXe{3JPv4Or)1Gc%$c6vDNl
zd*CPWxO{r-_PG?O2(f!CTSpGP*nW+mz;HwhFZj4(Jrq|kbWiL?I^|#&si9Wo$P~p7
zWQ>m7+rzFFZNMZ at w?ZPWPrGj<E+^k|sB0#FS%DfeAni-98+cs>?Yg9(L#XVSwXFW5
zb#`*lY_O$%WQUp&9OxcU)FY;ag~8D$T`EXWqW~fUc}$Bg*Oy5y`lBzRT9wF5;Z~~x
z6?{D6k8nFB`Ymmw;2{i$JTj-JB!+C!vx*i4Mjt^^iNGxy1U&kVGCOJ1lQmMO%up@?
zH%);l7^`?*i^?u76~zd8bH}+ZRhmm}($!1<4xs40{TstBm{<)1gpb-S3XDb5k~253
z$>9#Dc{Lrv15bq5<)B4>1gN_QtjdNlIEQYCl5EJcy!M`<L-!0-TPa(_5qJ$whnPY2
zekCWzaf1fNBGX(zJxLbJk*owoR&gZ1^mLuPefxSSDtr&#14L<Sk*L4yG~9vuPF$^9
zL1o%14yuosdD#0^78t<m;iIq3cIruLEM*l9j at YdcC&iGyH|AGQKdWH2?r at NXJy{(A
zzqrOQ0rh7e-jfSac#1bIn&@bi&G1Op3_+si87{!&q1*5Zb+SkD1nr-{1fO{HM}+Pj
z4b12ej=tK}CVe6oSiszh*sg<0>VRHe+-Z=zi(~7~UDR+A#4zr`XDp14Cv2AEHV5=*
zYaryl0=~B_X4Gl55)T9!6(2bP*ywE<Ss9U&9yjW=0BobPuYYQAz_>w=De$al9dyDh
zGoxvh!J~jjvxGu(%=(W>r#*Z9JzzP$M^Mj&8CBh6CY&Q1=FDvn)|d+>!ayPZz5DPZ
zSz<ON<~V?iZJj!ED?Y7nMRyOAKI*zg3 at pr_Y0@N>hH at u%>o#s`vQ{|wour+{ledGs
zpdsoa0y00QvSR<PERX_RAqI$2kV$_sZmn_;PEg;KL_1Jwrzk0p^i(@+gfSiKnGgt<
zNB(y0hAne?YRQCN#thwlzu+Eh_j?A?X=cO9DAwK<QW-~!nYqJJ`ag?uCYLM^Gi4`9
zk{v+x;Kn^*#H1O1ji(%4>-b?Fhj5WP%~Qf9RmcL{a3p)ewF?KMtUm0noE7YA8`NkO
zJPfIx={ZeGnv(@VLn`#g-Y&G%VO1Y43Akx<e+jR{^{v298;h3p3LYRm+f4gI0&{FZ
zq%xh{Q{#xXV+k~jD%I)6dEU3k(@|Q?_(7P+O>S7<O8wD(!H<>cl@?Tn at Li3~SA=B<
z$g_8+eI0ii`_z&~JWJkRvh(Lh&UW_~_>oI72>~&bG4Ho1E69W9LVTX$8CQCk30u*&
zLvdqK_KWs#5tM3Gp1K0|*8BcidN(H;Ob<9cmkQGZ>|yOH&L<LIAa3b&yYfvGzN3CE
z62B6zf38J;_I2WmTr*gOxs;HZ13ea;&T>gxF3Q%84#NS0@(WJF*eA~yl8nVsk}{3+
zVIu*p*n?XJ`9%!4XgH{wjt88sEeDCg>v<vyJWZjLpBtQp;wp2 at z0ADiZz(<|=LIDI
zB1#ancdq%>uHPZ)<yRmu$So<=SI*KebBLv&EEv2X0<J_U97gOT;8Mh$GioWV$zk#D
zE{7{Q_}N2#(0aBa+JOSo%I$yF`;xb_EGYHjUJ^TKTy=A}C}Shfp`B1eg{hXsC2ekJ
zXiDv#8n at QnJG0qXC|ImeQt^f78fe8wl969WZr4N%GZ36*eVGaqvdM%S90J$gK_Ojd
zwueu>iMDRZA)j}D00Gj%aS9lQmIq3o)0#m_swGRilL}|Sz7S+%6>X^Nc|!<z9&jDF
zFdBcRLE!K6sL=Q9?bE*!xH(f25ZLdrt)Dzc*d6e at u))#qLD#=G#th7DB7g%Eqd;~i
zZQ;taf5yOzUYGfDa&3ZU+?|K(E4vi+DsLO$XmEqKz_mMqYkyB+<q_Sv2|YoX^_K?x
zY+<=;hm=*olmLMQkwEB;JER)+-}x~;tY}z5s!e{uI3?ax9JRz3Z5zCkiI)rQ3+1U?
zn;|34(cf`Tz<2^HfEN at SZx;6}?$_mz%C!mc3rWK_%iY9U3Yr~A)2sAPO)nOCG-7#k
zv^e56qVWY$EAf=(E?Q!?{pNbl%`Fm4?-Fv&?W1mkOe~Ucj_NsojnO$9GfFAl9uX)0
z=w{hC9-tNiOGM>%kNZ88VhCqJASrFcQHr=eT@$#0j0}ZsVy&B)X4<+mJFp<H{=f&z
zh6JyOkP$+<lmS3QDkAYtDHzMC-U5w$Y>h5<qdq^~orYUX<<Zs?{J`PWqqFh#^w`OP
zW~*ic2+1*E%e6(gfaJCGreN%IaB?(0L8Mmc3r2D at lkDwEM-IDAu1|hv+^Ywz$~jkt
zDj{eGt~eO~>?v)Y*hkoeqnj4wd_Gpy|MMzg*Al%!wbxUV=!jiYUweXIgJsq$C>?B+
z_z8M{?@<g4`=Ct_2h6yP9Iftk*}8f}$Qh3l<F$gj0?c7=Nd;4|WfO4p$p7%`$cbHH
zYoh7v9ETVIN}?BPp1{V5%)rZTID<lXaHuF}S_;w0H*qv>eJ0!#`IXiMPUA$^zDJ9E
z)8{a0q<qgThxWRvFvzWEvRGE2(prT444REV0*RzU7;Eu75+G(Ds^WwsW>=s7%i$<D
zy3qku2lbpQOxW>%dEV1J#PWLFbA+};u)Rqs=+-{{1(4?p@(2K*n|ZU}U!H=`_(+I9
zuy(GXc4=^Gl>w4`V;aV82df19+Ba=tjpm9|>9|McZ)ZP%`q8zD8^vk*n0ZxuPrbDs
z_kj=lOENYckplGI*Fh%O5CEI_S2JE;_mbT8{5_Lq`lS?t>#M%+rm^jnI1Esb{`^PC
zh<@|Wec3Ul-#(3BEEkM>Wz%cbk$d1^d=_cz222HT5`qMXRNYYe3&N7Yi{s-YcSj1(
z at J>ct6<vJ%QwFv2;|nX&X#v)~TT&yA*8HRYQ76FF<Fiz_!9maPfQVWu1pKv1BNbw%
zs*eX3+!qN at w&OO^d0f?3T67@`P}uF1Z+2JT$x}I+U`S2!_~EwJsqfjQ-#0c+l3kXt
zV^ihu?svQnT36rICj*omJ5Y>PML^K#RHsP4y<FzsJuN;o802Jst=dq_=0>^4cZOd&
zWdLmcL$iMi5fdTGtk~ByCv6071rnRAk`;oTB5nIKK3pfHjhpD;Ye06zkJf^>ks|3q
zKLT0lrXLDa3n7x(CCVvEI>JS_>?kp5_XivXmevmG0eTNmqO$cia5^KKfM~FVILg}U
z6V$k#5do+Coi-E);OGfEE@|zd&`Cs5(c<mIpI+tTmc66c{wO^DP-rBEwu%|S@<wkJ
zZ7S8mjFN5t$&%>w6yFtWM~9IWA at ck@J~|kf>C;pLXq{6*t99);#KN-ju8<pubUu={
zO1D22 at 2)yK&?-9~S1=xm4M4z6rIK7&`@}oDa$f_{ouSf-Y-a<4vjSvCImA5NvsucY
zt3x<WX6+%@N85aQZ9-0sGvH9vb%Oia<|{C<@*nn-oScMyo<{dr?&O|-i;|?{t4Tor
zLzAT9Hj6l1IBml}b{fL?Y^qXEN5wbl?19=Kw<v&U%mCUTO4rShW44**<n|{TZxopm
zJ7r3v+K|J5qq?2nEJBW^oD at 7(uG-+IFY&<AZITPb-)Sy~8T!S>IS>*9^h}%x2q|9Q
zUq|jd+SLujB(qr at Mf#zEae}@E_M8w4l4UpXXTb^eX0BxF3ryJ<xJ at S2Iz1};XI4d+
z$Y?VeDgHC?f#+SM$OWK}0;27IX0u%*+|C(sXTf{13>7qd9G}39fAp;_k_Y1Ce=S#*
zPA#eCHaf8^j`ox8x)=ueg*&SL{7*MPpUJ}(cVIUF6#m!h*n%2o at 4hG=3f`-i`>6lr
zKpKkC!038{QPq;QvKqXJN2u>EG?%ag<Zgo-x6?8n2dQlQd;!NN{>+2`8i0tBYce^R
zj`h*BpO_IBX{vPhuA&`ORQ at d))IBv62dVLk&_m4FhrA}|a=wK&K^ik8=!w{Ritm}Y
z4Qvl0$O+vWJ`L*t6Jx+8x}<A_flNHKisNj`P37(_7cEP4Vl4pL<XIg5CwHhu;Tt`^
z0_abRX%dBQn|_l77C0Ko`-S~qwfLWHq%wL|KymqJY-Je-l<AAd$WEz<>dl)^gA6$S
zxdw1??v@=wDqJ2HY*?kk0$e>h6Jt9~kAT;7*4zbkd)>IMcAap$`ZS*OaHM(>dbEUn
z-Uk<mK%JGfl2eEh=yTj+_=5e#iEF1`T)1gkzfvL-;&ucOxB$)rMCArGfJap6`ujFw
z0rq11cOo{Vj_z<SB~66xWtdt8OR|Uf=PIQ<BKLFTJHiBTxn{HiEJUTP`rxj+C~#d#
z7#9V8I~0(PvYMY6%zTD`j%i&}PCx9ltVHB_Hx7<^3BwwFUUdEMep;LxeV(kApBk>h
z!%5Y+#?Ocy*yBcUEt7e{%sMN&T)?TF?RiFv>|kZoZ8}Uy+1=-x%f{eFgp&bjW#ZsG
zE*i*Rg(&=5Lsi;rh^l+{sXXLFf!!?E+W`4~^zGAJ3XB2vT!V;eL*78ytDdq{uiv%Q
zj*WMPd&n+winfhQzkmxTXHt>qdZz{*BBRy1Xtw-;7`jkFAA!uTlATs-^vbW=yC$Bl
zLpTMIw%BeXD^HlNBloq>!ukhhsz{n17PNaZ-fQT`Nx)u`vyj-6gS~~sS|;_(Vl`F>
zPw|%wr at TJ_oihO_R9lf#Tv~4eEMzN$v>v;HvXVJ-zmB$k+B=vr(B?V}+z+$-xQ>S}
zzEJ`}saJW?wAIWAJ;bdPe2-O24!E`;5uDyaff=|+1o&bV2NFWG;lR6MIVx?Dc~PEj
zph-521NegXbvi`9XknVP>-&w7i-X9?QhTiwASc1Zmns<R7mX11N!omX7PDfYJ)A)k
zJ={Q*6F{G=TZ8zg`UglF;7b!lNi at c-qGN)*&t!)(fFcqDMtvaQN=I=vMP~up58E^G
zg7j_V#Q*jy6TmG}g(1Pz3e`p`xgCrw_$e5dDGC%0avn}QN)amnPP-a0&`|bIV4y)9
z2>;Hi0&>8AexS8HuH03o1z|>xrpx5gG3cZSLBpQ5SW3<S<u)VozrGNnU1@&eKuN_8
zRRkPIE-npc8T$u$QTPud4gltmQ#;1icn_X(|8Jnw`z-IV_?POk#Phcs9{yh2dFc`T
zrL?lWgxzrJ;Je^~8rk=;wqsBKRbUh0CwShEL4%nSoA(;>_sk7$wtD?I_+X!$BZB&%
zvH*<S0uZ<l&Jc1-3Ql)q#2C~Rz$Ls&hx1{io{zO&sI!b(*Y(9Dj}er%7tgVv;1I(L
z?6N{ItZxFOJ~lvdt={N5shQ8E!5kMF0(RyQZe--SQ(=(Qq=C1sSQqR4Fo(&K^ld&J
zBnmoEb$6g_r2y5d&w56Mzy0HH- at 2k7Yh|7AW|I_IdT}G~t0-oV7Y&Qa<Elw3i0DrL
zTjJ$eYaSqFA84_as9%Eo at TY>NE^W-uEw5348a;K-<6+H at HP&1C$yJxh1CXKoJP=;K
z84Lrww$^k+$mE^#X4ABYMh;P!AOfN_th>2t%3o0jOo-laU%2E=N5)@Z<%Pb853&X2
zkcU+sYi?YUo6-1Eb|{PsQF&^)&=tatTk>oJ at V9z;?c=m(?I=MyV_<w)1`KV4k>>>H
zkv9{ju{<tOs5=cb8Sor_-78Qx at R<q*9x8;}1Qdz at -3Ur|njNKx?oH3V&nv11AltZx
zBqAmGR$y|wA`XMKc*l&K$Ek;^uYmVZ>B&B6L->a}lq4#CG%hjPi;JNV%Yp2>?XU4j
z-0xu_3_kq|T-!qDPiF-sj-2b~UFpdlDt*WPuRsHhVb at 7ocv4_-Z}%Dw75S4xgjk8S
z9PhjM9sX4U0H_dZT;K6vSX(55Q!&GcI4~ll`cVYbJ$ArifZAHw%45J}{KM!ZA~d>H
z2GH at 8B4`lEQ9%b54Az?#L#IN6$e4m2k)$f(%FFJSSHv~*J%o-{P1C*tsvjXS1y9iU
z)RS3a+}ujYEbY)JD5#=LS)c;$tJcCPVNXxJ$%HWl8KKq9F3 at XkpU7aquHxX}W{8kl
zV!P%gsiUhJqzC5=&?~Z}z8}K}FoLqyR$mQ8C%X_b&V_x=#9Qxgxp|ySox{*^{aX#W
z(o>QZhekzQk|@?-=uyG`fsN$!n_|B!8khcA*K-u|uet*nU)u;K#pCz|Q*4binLPl_
z9(yVT3=H&Lm(ehpqL%Oe^X{m5Y)yF)2mde#fT$A~@W<}WDYoIb6X+s}6VvOamRrnr
zMMh9LdZGe_(P7zVp~yH435VdQa(u26W<pLjRhkF9`!+*9hqMH<<hvG^WOVA3b<mO3
z-b%p>90R*z7;Rz*2r6^G8v4757Eut8P})w!ZK;yMwR+VbaR35PvxNy!aPaLs=p<es
z3FtaEF$K~H7cIeou7PcRv5y1yPDzLEVGAoNAV3i5p?CruCWKKTDCN<Ky8B97P|x;p
zRWVY65HdguF6>AAg=}pd5T at 89aFCl{3E*Tw9B9*g00KB^<Aq(nP^r1pQ$5T0(55Ks
zzlxw;#$l{GsV(<{7J~(aq>9V%y(7e{>T}!)h+ONsC#2)$G6Oj{hn8n$jF`IM;EGh*
zN_G)&q&1q_%7Ud6knpkPW^B^tz-tq33pY33cs<17dJ5i<s`#@WqA at uL&<#`YO#d2m
z39#ciBdB0E;n5aq+UA;E91wHt&0CFZh{J^OxW>_E`jb~UXg9kULTP6;z0Ks%-cRrm
zp5;O#wu#Ywrm#`V_m8a#R2$B)3)#gAcH{ly0au_cPI<|>-#hj%j4)SZlY5<XbPF9O
z(k2IAu<`sYQSO$Hnth+R)LLX)X_9&-kaR|en}b^5+P_;F8!pa&c`oEpIv2`gw-Q>U
zCTcU**<sH{7K(H82KMR6bPJ$3pl*w2wo8KD8=<~tUfi0<B5C+LAFk|aS`0ipCJE at s
z&jH6qXqfQ(XdzH{=t1?og+8J(+dNbPCqx;x7*^2X>Z0ZI1aCSo3orv6xy!3{PtP8R
zH8ih<pKY#p{njh+4%`fBd(^~>h+;*%PH#`2h~rRAEq>y)gG=N0PVa~VZ7>x8eI96s
z<{8Gzfw}9JHi4iJ9{|t+_cotLG>+ojCU1Dp<N$2?#Q`0<x9l}7h6XVM$a{we=Wm>Z
zoxt~Yr1OKSH(IyO_UkiFPN$G`h-6KOMoYm4QUrx^O7Y|!2Lke+jt9yDWXCRZ`<(Er
znFtN6Tc9d*dmNJ&rWxEcm4f&9*9RMrifgF>Y5#-{ClqB#oSB;340hrM&h^xymw2Un
z38f1fQU543 at ukk((DCBEi0?Jj<n3%xVCO%y`%Rjre4hgf;kJe)821T$mq9xOnTsw9
zlXH`---Dt7gR50=LVBxxMPE>Q)&`T%m;sqj<xlVob^6KoB`5gQo&F<W|8xp=01lI5
z at v`|5vIU<lV(=O0y?A%o|Lh?{4i#oItzDa7eakk`j-wIixbiA9RQ_>tGG`=<RMB|2
zE}~y)<@98$HRXqCe!kP>Sxs|k6-QnTk_(60D9y|PIQD;hm`toeCVQE}S98M!dU`A_
zlYgc`#Qi%=1Sa)-3vf`N83B$<|5Lz#==lFX=hLBG!@HyXs0D$Dh$Ej2M&UP<ZlC8}
ziNp(vj3%2L4>PB1BHb2j^V`YABnq$~q$c at rbGd{BoCX1>nLt<q<r17eevk+>TVaA8
zrYt~+q_dRh$YCD=bMG&HfJc(o*-ba{Zy-_7dbb52^AVznC(RLOr`~Om8y#?F?#7wV
zYZv-z18Q57Y6+~E&GF?aY=-Aw at xKC72`LL9q`J8^#hd^4U?e`f+i96d2m`Er3N`@~
zjX)tZI<isDDi7^hXiAe--J!^zqqP3e>t!LtpaVjhcOAcn>`a?lvS7I2<fZn>@g(3P
z=5&KIGjKYfJ>ucoUdr=ni4^)y!ch~qQ{|OxpX;uMlPNp5GB#z15mfdR51g0{IM2XH
zgpgWx#a#6~v4=t%1&m8zRl1vJha}59-_e<DJrV2{H2#5p?fyXx;nbj=9&o^b?+ZYN
za6>2RQ;41QH4#0XPuFJ*DA>LG2_(0EJBj=&kcWNKAK-dc8X}{xkQrE(`Ulzm<?#?v
z(wiv1p}4bU&cW~#dB*#^;PR$QPrHJCm(PHBBR5dks?3fKGZ9C*Ios#hT!9)UvFZm>
zM34K8)r@{px^To5+o3Pi0F2o<2AibCOr7QC47_NTYSBna)HjojNFc&_fkmZ2!43Q+
ziDp{Nm=t!Io|n)lyn=<4=Fuc!xCiTUQI_sQ%8Bl at TKt-e<_skh&;m>2PNRq2f8XW8
zH6Rb_kN~s!f6i#!^IlJl68xP39f453ac_0!9Ihoy<I(=USM+OWk-ZJwhOCZC7A0}b
z&?`XuGZkVA8}bVa9tB8nez{=SkaY?^NtHh#8sJt;2v at 0T_prOaX96n}ddhC)<Pg;%
z55q-)S at VMW``q44^CDz#<8-{j9ab2x<lGi+<U^DLs6<Z3DEyDitcaOFRghE0s>;q*
z#zLn{aAKLxM$g`ab=FQXXgxRV2P~_T`B!r?bDe&FP#_E$fH>RIob4ju3ie4Ez`F$J
zIO_DsehL5YxRV)S6tN$DC-GNco?8)Z#Z%h at Ieti!+D#MKa(6u~#w4HDp*`%k6t|O8
z0J9*kChWykWo<d|<&Q~vR@!AD>506N+(3r2 at p8J21ztU&tOHaf!CL_(!=`rr0zf&U
zqKff2!2Y|==HRf)EkO#@D7P5lFW(ohqLHFYm!_hTF;*3KzF{;iz?ExH`@bBU0?tu@
z at NMBk1a_wXWx5&I1^h#*5eTS<uG5}3U^2;be4n=Xft+R$!{kVC*%Te;m5T%dnj!f(
z1B^O2jjx|9ZM~K9ya3RkfaeF)qVa}7PXN&m+4<6D_(lRjYNy3=@5=5WFQDH^q}X!v
z-eJSEuIV<=9oKB}L!1s4*w7A_bLx(QRTT#Xhn^r4V*7{hQ)Aw at BBuEfXXTicfAc5i
zih*n2g#nw|SQeLfOzKm?WXvy&0?SkZ{XWorYEKP3z(9jg at Ng<JC(In=d|d#%kP^`^
zU?B;8<O1 at uMj--#(paTaL+1Pv0I!Q(8w~=VM~^sRG<$%i=^mXZ$nypR0`_8s1!ULk
z6AC}<1g(d=&8U(80$^PkJv)pUfrM-Xh(BvA at aZgbXw7FiF4q9`(aM)~pGcbP)1#L>
zQ(BuOC*DK>^}v>>o!_qQ1#kE}(C`2lAaD5D6eUIwlzk#J&4PjMvtT<pf%5k+G6+$+
zJbUmQm45y6V_t|_IWIRc>4FXYmtEEzO at b#{TGRm3`etB6C&s%eb}+LNeswZ%A3Am-
zhz_;D&H&FPP>>6 at YW9UCDC6ZJk_fTnrTBR?@L0{5c5P{swQ`B|#gnwS)NKg3Hq$kt
z_PK*<Rs@$ZWTw7iOPj8xbcSRIjF8BS)&|ZwTM1D#NqPt<-HBx#LEukdxrM#@<E21t
zuOfk8U0Vk9IMk?pzrdJv&A1NX*MZrK*%s|5yH#)y+2ZNP6pvGB(78bKz=o5hJ1NlU
zO*0(xx|v>~6a3ruZ#@WF(jKmc)Bn)jAHHl8M!$Jf5rscf(hU2u|8VnwbSctSO~&U6
z#dEKPnUB*0%cuIM?yaY5=ID(i#_|r%Nv`{YYR$6jb{PSmm~g1xCvOf}pR+?94julX
z at jsPE5q&~i+?pRIT2DHF!&C9RdS<3lOCQXngd|W60OMH>Yd|<W=0?Cb=z;bAYgDTY
zz5dRCQCljQk$?d}N{n#5)60q%yQK~^L~uJ>)O<&nf9m7nb<J{@t-f%2{UI#5si`dA
z%G$n&4%pOU!c3*GkV_4qlQhsBjj8N6FDPge2+G!|%@!I=ffsRv-7u|YuynJ1VB30P
zh!W$Zbuc1aq)mwR>_M#(3ibsmAH>j;VgC_Y&;hE|0QA%dAfFw>SY+4hDm}i(?+ySR
zvgX0a_>DXOLaM?lnk==;D4iu4$<P3RG!qVpqH_E1YrfCjr~VMaWo`{XMKc4n36uRW
zw72cOS{Zg|<Fv%ix)EyadH_o=;V2Uu;4fqdqi!f5k)H%0_ZYmmzG$m}FckOuhF80K
zAAW8!V|-u-MI07A(7XUH1SAgZX6)#~QCQaD at BRrhL-B&l#{sgCqLKgsTgTB=T$&nI
zwDTRw#4F^4q~H_9Fe3?-F0u6NQF!2ahdt^k({BllN6}nEKXNZG`nuh)$q}Ij1RkEa
zL~)Tdielrc0;y|+*T90O{LQ?Sm9px2;Vu`}sYb?oJcJBs5L><G0%0GKYwEyifyZTL
zpgDCR6RUD^uI-BeN&1`<0wP5caFC%WS<9(LG0aO%;Bc++!IGh?!`>9ouz23sP=K7f
zq)*zER)1mE at Q7P58F)S=Bat_^<r3u9^&sxS1~*8Hs~I6 at SqP^ZdRQrqfi$F;N)fe1
zL5(}pwv-si`WDiUs)zUrdvf0(Z~Bnh?f0F4gLZKGZPdK+(_il485PX+DH|KC7$408
zcBnV!_{XA8Np5Vp^(i($8L+$hf&sTlk8y|{s60CFqk5pdclVcKuLs=?WcZVn>`uSs
zgTzBmqFDdwy(`P%t-}6}03|P1yw at UjkH{fh2PUeg;4h(bde6O}{M`|r?@FOD%9vPX
z>8O}fN9~q(BzQnA8YDzkV=5!@t(CI3zlvh$;=w3+9Lm+hX}hIIdA{#G|5RnGI(w;)
zsFEfvrVsXyF0ydy5WGQly?qbN2!Ug`|HIgu$3xwI|KnNfw$vb%q(oG-nkXh)VM@|w
zm(;|J7+Nrj##(oyJEWopL#3!}jj at yosktMDNx}><-7VH(DvTJ*_q;~$<@5P{zmLc7
zpB|6QYrU>>o$H+Ed7kHMAf0mUfOUQ_f<eZ)$=ISWv=ALdGWGLt^^DhB*^8q*3_}fj
z9R0qma14y5ZiE6Bh(JJXcTYr6$Q at zWRrePS3ewHmM_p^x2t&Mw)rBiM)&I>x+5YX^
zb=kqH7ps~YBKI~~5ucI?YcJ||5+0B~cgegloS*7ytKrh-C5yz at Fw@LMEYjGC6i&h$
zZDz(`6X|HE1EH5R%Fo1ZP&HI#8nX%^xPQ!CfUE;!Kew&t5p1M4YXYnCBD?PtNi(@>
zL^#u=W8GZcST?f3{^#HrZ)BU91u8E|mY!)|bcx#<ih}{mzM(=Gr0cx3H5hzeJoFrw
zz|+z*gf-PAh06mz7^T4Wd!&?yucq#@hT)>g@&Vwiw2}*v5kiT9Zc}{okrmP8ko~qV
z-!|__85-#(X2IhZUgCPknJ==Gr<+4A^XU%Rdz*g;FVzoY*plh`GIFUC0?fm4^8TZt
zw(DJEjuQ6Q)|uc3Hn~JDuCu9jZAC^wq(GStTXOZvsyOasS_ at +prC0?jYxwL}JhD at V
zhTKa*89rAg-4Q{QGtIR{_xBK&vR2ld1t&X>jvcEH=_aNZW;kYCc1IkPS>Ge`sb#Dt
zEGqAvF?#=ap<lq*dEmpy+++L(l_-@`fU`a{%pJz(s&MQ)8O`kjknzGqC?bdoWqJu~
zxJ=(f`exp0h_`->_~A(%>Tf4?N^7zd=m*TkX+lUeMK_SroQIksjz6Cssf9;j7SW at s
zy=NnPi1vf)27|tmTa_xIQW;gsNTdC76&v!BvAq`IMDI9m>&YW1 at f2cx#C|+2{<xjd
zgq<0MsQ)RO(@mxAkWNo7E67Mhz*~EY@!t?1V#GN`V+F36MMXBaJoQ!gzpZ3^$vGsK
zxZM^PW;x#c2}L2BvYs&O5PzynPhO`Qe0yv^R0sKTbgkA+6^3VCoY*h8$(asnmqzSO
z5vN>oOrHL=3V?>{sF#D`d`)eV at 3E9k^TG{T7C%11giBCmnD^+K!e9kleD^|ncHbw5
z(!UZPx&Z+q7aS3|C&{8%G|x>NQlcsadfpA+SZ;6Te}2+V9o=u^32wo6K}$S8VmK at x
z{qGeg_ItNe=3VtS%zZs8{LSUI`&K4b#rw^tG`ifQygKrr*d|B1R&zC}Jvb_LCqg$w
z_8x1&*Xa*q9*do_-<~KATuoL>{?U(lb4Iep1^fK&F2K=xN4Mf%Zq+=i6}T26KYKnx
z%0&zqkY6i6?h}nzc#(QSU#uHhO-14vemej~Tsf3G4-PW#orXFWf|Zd_4LeWD*v84j
zjrab(4)=gvrPAU$z!`>N=&H~*1nQaDijn7`B}rXqW$zRk_c>x2tF<28P#u<nQ<*;_
z2O<NP;B*6UWAT&v_c5zU&gN|?osq#bH*mqR-2GBZ>XxrVe87{_Z=>-g2cAp~ZNSj0
z4)SeE&@8-v0)Fti-7&HA$Tp^MdwYE7uyy{GB@{hyS^MtI*v~#ZtutxBva?$Iv)o{h
zRv?-wWb_8qj)cpx%*MeOmdFPsOL at s2#Hg)^_ge<H>759=u7|w3mdrlFwk_iFfnX9|
zGi*2F3e8`pd;hgiUbp>qhY?(Va3|p6+f}?2>Daw771sW;*k+Qg>iSTbRs#qKVCn;(
z-QoGHqf!EV1F1EX7#&JzW|6EroC35>^i!w3n?{9`4gL?FelcZ6tZ9=Bj1C2W2Hl2S
z$>C#K^XLyw>pY43pu~1+^G&pRQoL!zKH7u&dlcnRVnu&tJEg_e`6CzA>uyxV_a&e-
zsRPfAb_ac())Ghh&y68u_OJ(}ek}jGT#eFI($;%3ARWJ2a>FI8<=5b~xvwr1;ujLS
zn_&iecM(Zl>m+aRFgmzrt_m2sAKs_YT5x3LLAGI5ZzjlSl&rFenVX`+PWm!w&E71-
zC`^OnhJFPw8zhcU?H5XRkW(7VWDbnSS<4_{f(;Bh5~3x^xkK=+EIH2n%Z0^_kJ2AU
zr4?9)n-pF|vq&^?;`k8B9O3(bv5^$D-{uS_DaFoI5prudDMOkCG4-iO=Fx5VvD{7H
z``sd*ABhT)V-;G=@P at iV;WRIWVp*K>aw}rkkMSnXM`e0m$I?cd=l7qQQ}n{YD~gk=
zjrYt>3;k&C?Pt9U$dijH2~+bfhAfOElS(Riy=U9U<^leJfG8UoYr3WAt&e<q?pZE>
zQQ&v7w!{dvPZo!PXhv9{6p?LWlWRoa at VZdxrsFA(y9k}n#Np9y6-qvTu$FI&=4xy)
zn^fO1nORu#lD*p!<L24=M)w!_Fi#G(FGP!lPrb<AMf8<#ygDQPBLHXETlIyEIl2fS
zzdw&gp~MR)jcew)n=b3ixWQD#F?HyeqU<)XIT^YuRKix9bPAik>O9j`g at iS!39F8C
z^;(4LToLFKSpoAkZNElDObZ(QhYaC*$yt1d36k+Jt%>+Xyld>^@?8RA(B-_s`IIi=
zyZWiG*7v|f$-vJsknILSs~4x at +?n~{x8~DRN^iSb3DSXQal-6}db`YTZ{xf6*fagI
z;$vkpv3Yy5tu`e09x8J=wdRDEUX2$i{xwg`zd?I;<K1TQh9{{^=1&+D1Us at 85C&M?
zDYPAC+`sbW2AUi%il|)!1F>#8Us`BwV?}?u{rd)EuKCr{^sg62S09(A3oBP at i~gpu
zoRbr}A|F>jA*a;65tOJSUJps--t&crzAR^ThnZUm_F>|^+U^X^qZ?N5?Am+GD*s=$
zC*n<C53X)U&tq9UxXE4L*;{XnPmz_P1!f?@1K7)4Qi$aJl&-tOpSv{74KGuf46=p#
zarhHrznNIW)V;pa%E?<hH*ty$fwr$U6Ph7*c%H#5lA}!TU^Tts_BA+Peu){}MEc-!
zQRihWS7^0i#54c2j>qiI0XKbPnVsHOxa;~LFkl2I!+03#(5b4*7;7R{Gi%{fZI?Bv
z?rR{V at -rFVBljTD|H_P3dJMPf?8UOh>3d*SKcsOty<-}wVidCv$VsALYh>v4KZnU?
zwfd`~?@nFrXXWX9Jg_V~){Per7&)fBfn;@N+(`))@NOQmD>dKLr8|ETu&sZlupDW3
zVb2lt4kDBCtFOJrp2h{fTXz3jW^3#3m3(1k=<Br<udrd}JRl_TkTncjMqV{;I;AS!
zO0XoJW<?Y}x3nkCWg>CA<~BcM1L?FT_MR)vO;m(93dT>H^fvBn>xajAougm9p8z{k
zUz(2j5Kp_z%}vpNF)+8YLTR%XSh{btSOaUVHZ+fCVqeszL6l_n2eQfi75dfAcZtqk
zu1oupYqugPD;423Hj+6b>#>ZgkqT&&<G5MFl5Tp>`XioOJQ6>xKhnNz4)@k}SzEIK
zN(X<H_UdHy+XJCn>8tWy8~9Zt3*qd~-DCc#sid4wE>PQbJh$|bUE*bAh*c!pJ{8FN
zuXnFDQMi`!Xc*Ar?LPh=y!+?kWx_m4>)xjerC5<maM%F*{cC|dB#Rr{4Nrt@&;jqB
zs<Z6CWEk_YXlZXbx>w){)V`9D5sGjxrT>K><=SF6&Sc%TgBRB$Bdk*)p4i(o9aKBM
zm(o}j`7LgCxIcJc(_HEUaO{L5Y+|I{6mt*2zQI0!&sMVV0qj=g*H}%34a;lrWk+p8
zlsg~or<ScK$U@(h1e?gkf6_vRks7ke;o9%*)l4*T<<NF96!_*cK_y&#p8!MM+jC_9
z<ZhwmxOUkBdh6sRdzUS68&@D7UU6<8Hx<WukVt#OhIobJjVt$srZ%=tpMH>F*a1jH
zmDFKcQS)}l<Y>{{Lq4MR<9d_AL~HNg!$~1K(zpw?sZy-G$wYM&MsdV-1t+LinWZZA
zxNdxu-%h>_F%(q$>|)N2Z5HHZ7a)VkB|w4dp)&QGG}iKCquq|Y=>VTuLak|dV9xNc
z`^Ii!Q*7O$Tx!Pr<Ny`(RlFAp0BY@#Y*XEkgBw50QA5yi=5FFQY-!=DuV&{Kutj+c
z at -ghJWw4jgbHzfl%z+Ulc!u?SUkE>r$<mX(|IX&c<t0ZuqdHrcz~G5Y18|J*rfAy>
zdTXGqrfA3f)&QemPPChjwj2%~nJFb%9AeQPgjoQ&g<oMTab@&CBoJPkN6v;U@;SE?
zIrtk>fLJ@?5s3k70`(1^A6Zj|USvhcne5Uo!x%xSNagyCxvd^{(^zg``@c&fx(!=_
zZ~(B^A^8U%keFv~ZIwadx(;(Tbn=IvSwB0iizi?aYLC&DW0>-$(t_5Ha;>5H*((+m
ztEn}stdTl|#8;BAam-bf-CqQuXws$i=fEZsc=3ij3+DWjR2z*jrDcX=tMh7aObZ4k
zUu2VxnQKdmNJfDFYk&I~$4%NTAb!579(}&mDo75z-;|pC%PyEliIrOCLr}7Ji!DT;
zUCVH at g`DLDTRjgI>l9lU6tB#yc(Y-$gPoSo2=!<_xkG$$bcJ2}d1p at T!T>e|HHa^s
zyTu|a!4qN@<YJN5Tt|4Y;*(8BZxf|63=?|`iCIW&1JOpal0!0>{i+ImQdxeD+Q6n^
zc{(#Szpt<pX^%kQ5s1>|mw$yv##3mIZ=e4=<TH at W7W5ekHEk_)#TOJ<cAQ!V>Y_Q{
zHKeMH!w+we0Wk3rH?ch|k>%2{GlG5K5_h<+1PU#4VN9o;{S0UJ1b(3gD`)}T3oIk>
zQJD}>$z&fa at ah8Q?wofT3LD5gE3)uyti)n9*W6V}IX9c~d9+5yizGqoV>%<?y6(%&
zM#r7Z#Ig1&gt!R~Ex$@aHI}27mmlb|jr at 7{oz)KwRKry1*uhEQD<Oo7xnyPWDh0aD
zSIh`(K(peSFTzh at HPMsbYf}y7M;e8LW`9OmdIt8YHT4piX63D9<?P<I#T*ey!aGJ*
zyAJdNMRS`!T`*qYrR97~itbhGH1V;|V at S2MT3X4KJm1BdC<|p6i34wo&e+43#od${
zW9;EKf5J?LZ#z6TI8FF25=Pi1fAbc{S1pmdTSuQFAArPr at B-=B{r0kR7Mu>#G`TGm
z3tNM|q#6 at P&?8*{*CBT8mVI1 at tVY?t at B#X`k=ptdL%mC{uc%zxlF1u)w&>(F)h&|u
z68Bx?UyUdTFC=u{<cZdOR*>xZP|g2p0|U{yLb*QHD%7BN!v<`23i`}qnsh}mP4~`_
zJiTy)T6w at F_E$=8 at 00b7$fUuN1DD(nO=;8_Qw;5wl9H?KCM<LZZBE~j$D}c|U3l2B
zi!L`-bt%)edJ%X~l2}3gNsgZGu(q%&Q|kqE1D%&YJe-*m;aXA}zSA&QEzAx=x3%FH
zf8Swnr&@oy74Zn^vsW9-?xtK<sXmE7=?dIWl=}%h;?^Vd--9_<jEy)%<1z$Kfryhh
z7147Z4=o;vzPH at BcQy%1Ul?J2tV<8khkx(6meF{jjR?8-VThIB&$y7DaxNroP&f-W
zV^uXaC5^n&Zo3&<XZ0fmtYfNg)gfheO&a_WxeY`i`QpoUmHMiRZ5c}u`=Tf<9&;UD
zdag)9G7LDl#|IL`|L<SAHrouBUOBc1-=qF^59~S`>n!rC%?7?3F1kEWRxH+jzkQms
zy;^*KAGD&t8dF+atxT`BSVb-f_N0;rviI^!dblfpbZy^4Kt>XNw<gw#@v9bV9B;+m
ztm>~g**VNSeY^>=W>t-Kk%0EY+{YMD^vEsfB;i>;SteLQz^j8-wUaMFa%TP|cf|Zf
zuTh4WWep1mcYi&YQDCW(8NU~r;D%_cWsSB-W7^sE+)@apMYNZbvdA9VKX38?rZA|b
z$OKq7b1R(^$W0ZnWN}%4&~HbLFOq*!J%j9~zke1et`=DiY3!HbC|Trn9$uSD`V~al
zc=P<{9~PgPS at TN0XQvg<XFt6#I$^+?5sx!Wd^>)IWl5qD1P>FXpbX9I7R$JId}4Y7
zPn;iVeX?hSSJ$`Ms&Q&##eQT+ZZGnfwb%glOF5qv6ACZ;Bl%BG))5B>MxG6HTuamq
zw~RyhcYm<nJEPKL8tMr5Ke<u6F^XMUR*gtF9U`{7`*b;_P`*$d#T>Xp at _XHNP^@?c
zEKH6*s(1Y%0r-+e;(+BrqkL>uwG2+T_7!s4d+UJ33li`9Vv|ey1_^=7Z2#m~iTUH#
zbQ-EfYUIEVGlC0wHZ_JSU#KId(!I?V_$V7mgNiEU;aY3r;$?FHD at Koj16wj#kzzgx
zZ7$UI$eORv<7XXQV$J|2#c8kJkZ%(^BM$hiVw_osc*BRAV>Xy8{*I22?KEePK#A>~
z`>H9{Yw=xDG*>;D+cd&En`kgD3oig^Yrv>1CBbJcV5o_B*(wDbvqSRy-%uEP>DH~Z
zUmI#T3U{v}1*W?2CI=@~*eZ*xi4WKd(3Z8QuejlX2=`sm#<w?q_>TTj(<@qc!G8#r
zu6CiW>k+14WafPHlmAgwO7=O-IFdjxau6!f(b19|1KF%$LUrR_IncP(LQGt33amsB
z56*;UygdnRu-j7EFT2Eb(E+0w|28g!zKc^<@OIKoDVkUr;|4h5+=bfiq9mE{zP9h2
z4^D+E_{m}YuMI-)6O!(oeEa%8&YE#y!4t-Hz?X9WC|Ed?`Bvv5b|Q_a8Rp+|mCQbh
zh9N|D0eSkWD_lW^Fn4^tp?2Be9fPdAuXg7r8QJ1HE}7+h<C~a^zwS%s>edxl{f2e&
z`!677 at LHV5JAAy^c+#+K7^|A$+%`-&*0AQTrdETy<E8ozF(a7f#n1A(oz<v<ir-^*
z4(rnts=kfDIY6+LMi9Mfo#)ve1<4gf$sR?`WI}c$w$>}Kg<oy!y=rK!VvS at WAaQ?L
z<zjA%`-dp0w}tK>vTNUaWr+n>VwyJe(H^#%2}=i_57&{h*2`>9t5U)Rpgdz9s1T>q
znl6em8G%V6v`iEsurKJyXa at Eljk{YZm1hptO&P~=Ph)Y6xG~;gpS*^{p)cL>=HKc`
ziN{Iml*UYsfLyG~Dl)T7p;%DNz0sXpyGk{`8eDh1%w_C3<!g5KHw#mSfp9sgw#bU;
zXEm=oPBQzUv8?dw(L|Bj1#gqHE at 2pgb$)Tuzy#ZIJzolkX at WxKQlte%cgL`#&Ectq
zbT#qPC~@FysM%SP$Cf)tsDVI#l|D$dy8hGjz^PZXvD-yKy<W|213&UJBn_hl9A(`2
zWiHjPzy2}P`FoxOW$g>ix4DU&D;cs3+WFhY^kyIHu!8t54IB_XJY!xUU87C{w#ZsQ
zMtQ~qzUtZFq;w3~ND)grGSu)P-n?O91hk3PRTB~kuyORc*-=9oL+oP>NDE={UZjOk
zHQcw8>ec=c(9~jcl;;&Lbpd|OO<^C>AA!xPL}Pwv+;yF|_z{BDAf9=k=mUdvZ1nG<
zE8JS;LTh<6(g7XW^s-;bx5}SU$T!^##)R}+B`s87P`Bj$VP7%dw5#)K>eFYR!v*gW
zz2qIS-@=e8XF!wU+yW?byYbI{RHsx8wIUXybmxh?bJ4RU-kOVN#OBLefwm>-y0|U*
zmt*a!FHHj6Cg5$tjd&mb`I&m(m+6h}=p6SG>%Pp>f3?H@<5|)|=8cqS?nq3_=IFVz
zVHokKbT-~J_U}CT%dNyT#y5jvcTC>FNkfd!nj@!tJ5v_?bPkoNR-kLdaVz0g{4eFZ
z1)P(cK7<X`AG;W;acB5ib at qtq&2Q&($_m$aDdAR0)2YRa(1V^(F33~la59+#lQ@*;
zU#!UeI&|0oI~D0vvuszX&(7CNq;Z53Gk=^xVCs{rMFO<zF5&}G7Y#Zr`0W5f2fE(y
z3LT!$YHNqNLtG0<oi$UCxBT%bvnNSrn*U6VO)wUGb at 1Y`1E{N at FNfXs##|C37uLED
zbumWx?l*5+3%)>aUBLHEs80GcH4v+c35AlTNYXNlv>EtQ3LHFX6M_Y?kug6s=DBnj
ziL3e|?gys-&%UjNs*APs^gJr{%YqGt1!jDrX3 at t*l!A5%2LdkB`a9)$u0YQFG`fjW
z`FTaiQBN?p^2=P6kH<{cebmGJaR2;}J=w)ub2vr7YBr+-Gy>((7&U|tzm&f!zVe(I
zge4KOqbcJFI=7RjU#Q at O_MiXOCK*zkFU?eS6c9flP&A|J7ZcU_W3nlkYoAU?ng~ER
z(zCt?7qG1IV*tJ^uYQ7$sUC<hPrp{cRAx_pKAj)mSaz?Y3e(PVSuIoss at G<Ocr3jY
z6#y694ts7zFcf-DkbevZ;IO>-yp|;F5eGt>pb5X$0wZE at uu0_@RnJDpjOm!qewM8y
zB*A6NJ8F|!_6P)%zv?Du*&aXrM59fiKda9zj&_5$k)da4T#Hjh793SM!-{Ch!mHNW
z-Yr}1)##&__1Jre*#uUBcmcuM)uIjQ!?Yv*nB1N&(?-r>UzxS2&T4&<Gp(=iy_42A
zMn!a*ySHTZP{`!_x4h)BZ9mLR;3&_>0p!uwM|1F_f<>SJzT9*Pp1c(?Y4HV0Wkuns
zhgE|-LZq_DZj3-^d*WLd5K8Ml<f&7O|77DG%cYt%)A-cZW*1ZgJPVi?FuRYNyc>>j
zN0`m^`KIX_^TP65nCA>0z_^m%vy)R$0cKla{FQJ~jdz|I1Q0`3 at ydLXPKw+xP0kM!
z2Zl>sTmOWWWx}oU`w-$QyISUoq!*jBP}_B3J~*xENp^Cx;HsbKlVHP*RwQ4>lYbZ|
zbMvfE%CYSHONOB+>fVcNrj-3<r^mtzcw+(CHN?=3M?=q0Y4#sg{;53Yfjmvhej0V`
z?@)?X>ym^IMg?tzgenv1huLX#YIt$82R(TtR5Vk6;cZ)7qfIBH9fho)&g<O%dcQ&9
zrL&ON*)R699ew`Z5vBl~(%@f0Fw+N9(iz#~KH3BkS(jqo8Ch0I6@{KY?W}3{NfMY;
z&XYJ;udwjet@&w=8Rqi;I(z(2Zr<JCR*_j5zmm at zIc#3lM at Cpvlt4$pwww3L(LgPk
z_Sgmy`ia93p&PRp?ss(CYr;(t3vl;-u^C$8>^-EMl7ajLJSD at H`^@`|ts{$|FTo<@
zpx>4Ww#U;#O~mT*H+OGVWf~Z8wH_Xoqvy^03Egdy9rT-AdyTOS{j{K{sow3{ja=J+
z6W-HW^<`&kSFz2;w+1)5c~AB9vs`O}zAdY`_oD&j>3&+W3hujF<qyi?s^59r?hEp5
z%R^l6<Y(wNYLwqO8K#FhyDj~6nWNxpKP#DCLtW#}8 at T~VD5Gaw at C#m0j-Jy?k5TiG
zqo2|?Gl(;;*Ffzpae4el`l$n=3g^yk2IwWHJh95hIL723L8u7A#<^A*-b<irDdAk(
z>Mi!IZ1-YRNJnLxb>|h=5(Y234xV9D0q+pOVUSfON`_}uW8O~<4J#NjU}f6cGXpMi
z9Fr|NGkb5tfw5BmT4jQ at I&?2^Ahm}6hp-|jYpVS6)qRkC1MmEu?Vu>nnEYI{3w9tk
z)ZmGFc}H1XF33h4;;9SsqP>kf(h{odicadKvFFwTB!ZedfJ(^pGou^ROCA2s^ql;>
z)=J<$QRJ1g+_mFe?}z at B+A)nY{@urVG811^hZkg#8ev2v5T*i-pmQhLq3XZdg9*{c
zqz-cQ$v at I{=&p;Ny4G}iy_|;|kK+=(KC;E=Az6se+<J<rQ+=Xa%Ykbpsst8{>GH=6
zkH>217d9#=VFOpTdJf5_WOo$tJea&aCqq36y#?pILyijTCV&K>1N&j-_m{dz?M;If
zsfxp%8B at HP*c~iyqC)x0%5L#3Z0*fcyGb4a-+txwez|JmB>amvs3kR?lFV&>UaAkt
z6 at vaFCnHG3neZ}xkff6*jor7EG+hu}LBum%r~Q)ScX~_FPeXzQtYg2eYZB`pWlU=!
z^EGYx59>glHgxSUWSx?$IW|F<6FD*;k`lL{+mzR?9Z^}_PX9t~?jPcfj2PcR*t+pc
zcH#8DKwB9e<(UKxs(hChn;DUGX}aMF{fajXw8smB&lvHSH^h=-Yaqn<e(L;glD_uj
zIHP%Jip+0)d);6tBha<C%uYPPEb{Ih8)hA8b*RFse1vLFyn<`)50~Pl-d^%Km at mS<
zi%mYJnU4#Y10O^2Pw}XTZy}$Vxwi}5B04JdNwRcIethN0w27NJYMxM#?w5jAhc7M`
z+odbKhO7U>Ctz9;MW<asFX&8>G%N2DVGhq~Q#2fx!3i&M_mH at tiolCcve2X%tdPrs
z7Q>VPU#vz-Q4_R~kM0aV9WwcAK?$Mo^;I)^mO&Wc4Eul)T!Xoqi7!`~cs13<cXu+K
zEa#CjZ4;v^Eg~}QYRB~{1uusjQR4DK{|7n!k1Pg=mqyxqIXc(Tp}y!M-^h6sBHB}P
zT+*`rd?mW~q|^MRqp{FoGc~m<f^npRA88J&1nNyV?C}u!u;xIU+%mgy*J)40%@0_#
zANZ3?UH=BEKE53TY(n<nU$eV9RsL5baQ at p5r?w=RV(D!KSBpuRhENV(!aA%5aMeAR
znyq5+_a%&t%_Nr`^P=eKO^>>jafW9^4~*%&FX`0#FH~<p8x0W0c at bfv+J%VQ6j-!i
z32Ms_!nD~%0~;LnE=KKyR^Uk!gN!chL)xKv?4SUW*>`9j;jDRaVb>ZFI6Bu|0+n~J
zKo7lWCmMlzTxOE}+w~U1x^|YIn%0;L9PT{RoO2ta3n-NlX~PgqQy)LigZ`7631yUK
z!Wj#79Of9`RMqp;h+wNFaL9FAGUB*`4fp)prk%->U=Vq<-P$COzEHXI0s<1xHrDV5
z at 1Y8Plg>Z=#luI{(jTv$!czdQSwv}MAG=D#ct{V0U}Dyny1oq3KSFGG;;QQfy9jhW
z^m_ at imS@ZfH?Rq!h}O_}yg6wz_#Q=ELrZ+p%9l~AgKvdy|5 at e#XEzj6uyF}~5lLmn
zH~)TaMB8yL(u%kehyHgo(z5s8(a69DF3-45<v0hwHq)ziGJs#KCR{`}jJ&>oHu}PD
zyN_ONXGp7B>fd9!c-IL24WLuvB14OS;GdghHCT7x%9#Nmk&Dtq=4W3ny7((E02~#a
z8VC#8E7U%_`KA5FjzhF&hDSDUn$VG2a2xZ)xzp<gLI3LQ{Z__LCNM|#nVj?LYWQ&y
zDblxUi}CApk=fi3yiK)JnNF?7-W%^7j5~Edx!N{6oN9gX8<^N~GJf>AAM<|TTPyr%
z8ZE|m+^LuMMffc0W5dWeRN~<RtHOqu&=3j1T|X;8+vMkr5-U^6s`gXW^5%4!LB}8a
z2r4C;wEHu=H4}!N>s1o&UrC90bZ*wis=IP33UY?&m368^AyJUwL<W;SD*>s+>vHzG
zI$s_0W}lrY*5^r{hB{}MRsyAUF5~5jtP1E8h25oaJ;D`N!p%ov!h`UPwxsA$!9+$3
z*KuBY!a?WxeTKQmUG9B?U=~e3(z~rwUBz)6$#z!Bxa*)W?Ny9ZlT3#njb(ZfD;TvM
zXA2FCkAxL5o-7m?qr|CI3<YSK(!KVdrYYn5>H7sCf2X;@MOy!98CBj3Ep=|&E2MF{
z#vWlH%#%L?p%ZBdP&jRi*nN|R69<j62a80mM)mlAbTvy8E^bQauJ>4Lf^q)UE)v!`
zUX;xl{`L{1be1kspiY>}(<j1nl09--C-a-z?e2y+p-qk)F!3-nIak%x?QOc57ygv$
z7a>|6%N4ICVP9&Mg?&l8HFd0-?lMS#;G*=+HEP5pW&19{g2RzgP0bNT*U{oC6;@`T
zWoNg8xT3uLiL&mQ`Sb{pD`s=KM&VoI at 4dSogo;*5FdxMGYqO5Y(eldL>C?m0O_{d`
ze%J~XQB3csu}crG5CUcC8&n5 at GJ~XRM8p4Az*C(}`}G(lj`DRgnL`7i^}3M4D!i&d
z!mfv+l0h^q%B>XgfvB-37iHyp05l(8wm388g4++Ps3VWBHJ!Y((d*E9-r3p-0sCo3
zN?>T~g})+&Mp4k_=F)kgJ>+xV@$z#@UGIMRQVR0ReIfLOAb@&Wc$7gkFQY|jKWf`P
z^ui=kTMD9BURAS||Cr2l|3f1KUn7^4!aia{Q~UFO0VbI9d at USd{v&9ZzyjyZaYbWK
zdVv}fCuw5S-|HfJ;lohl<WHDmB2fYR1u0OxzkWgP>rrJ#uTlUF7NN72euHIH_O5DR
zb7%97h1u<V4})xvT{zO+rCPsS??+K%@Jn=>EP`#HC$gi at i>BC)o4d4dO!-G)(X!`H
zq|(kq>i(#ku!K at vYK1m-K^q^=8}nq0IT((aCFw93#)RxKza)`o%wc4S3U*P3GOI*w
zhcyfv+-%hH@(nEM=L$Y0elv6Njc=T~K60y{MLQw~OAzFQo~WhE-C>LahP?UuH9HGJ
z`Ltr60ZKCv>zdAJ{z8qC__5Oz7AZC4{JzK6*x~i9dOM1#doi7d&9iu7A3ciqg-Co=
z9Mf8$5a-r2UKF3;_=QH5{<!d2jh|QOz!^D;*<E at -CzV5h-qe^gOSUjn0)6i+V_6(G
zJG)Kc4$W~Y^{|GQ?*^mJI|&M$TQZMtaVfvil>@yMkn-Upm$NdJJM5x33ujys9vY!E
zFPAVVr$}bR`K*<t5$eaWHxK%DRKnu2+<C_l!l at H2@p(nn&z;^ZYzYxwEo<@#tTbym
zr3XdwC%jei`JmCXc^5I{_|h)Xp{UTZf<3rg=nnv at uHh@5X{8AxCsdE+qFaJMX<SW)
zny^@(lzUhM7^PiptR}qB3xe at nTs813@M|NFoGN7IZe68khi;vmap<Q;nEjj?C_QHE
zc at k($vlf$Lp7=-<(+^5<)Pv*8KR9Y1rQ3zfrwkpNkGN7w<x at w2JBbTWjPS65E{1mA
z>COGa6*>_ci`b4U))Q139bXh5#mZha1FS~$*ijG_DCeAa{IuMbXl~f8h3OM9Avv_X
z)zDv0(pOFA0Vq;f=a at ll>-dA7>`<MIG$1E+Y_&gZ9DdrD928>qqwk6ml;;sX1KC>~
z`tia)YkkEZPwgj$yu9E{<9gW#+eV)l-F-qIJ)!i-rrslT>R_9*szC6<dHAoU!$byp
zi-8dK)c?5u`~HbE1Z{fS^Wu91Fv*GE+O6oAya~sL&+pH6Rr=^)3POF?!$%^9gLaQq
z_0{8|T-TVOF$4QyfxMhcbLHsA8!!Bmw3`@my+b9QeE3x1 at a%9!CgBigc<i6NoCebE
z!3v$QSFNZBV>XZyo|)0k|5|=MSbzXg;EDiy%e~ceb%v~euJaGH*4 at aE7b&VfyyBCL
zaa+RrGQkfQ4##l|a3<;w$Jz4_ at 3q<v5by7Er)^FZQuhqo--$2$A-J}r=;|+$Ppfd#
z-=dT~0!?TQ)j;&U*i$RxxZ^239&}Mj1h9}_PeL1- at D6_FK|c$iI63-{3Oa#zuIP^Z
z#o8IemYdlciHxyuPBEGwa^F}U{CCK(VbLjUTM*I}%+{ep4R|{|uj5|{j%$xScOl(6
zG%)}K3kMGGy?3+tN#5elCua21eMMEv<152odT*>{h%eN|2Ia_agzX4<Wrl!NE^<9E
zs4EOQO|mby37O0*2Ua?b%UfQkqMi5QjQLf2yUwkhJ;b4p+0*!>N*NrdgZ|SDFRC;e
zkR-Rh_)wfB5D at R@(|Q$HKS7X5c5iln-XV%sP5b6&rU3xmyT8M9VoMu&3;f%wb%%tM
z5bsc}yxI(EY at imho3f|YQOM!o?Jdq->Ca~TaSdR<fgw~n?Y%}9Ufur5!JF=C=~7Id
z31J)~&KxME#c&G;-Au=m1KCqr5`c?%@KH4mk94`(S#L4g7$SSyP&YVvjT4mwSejt8
zgSlFCb?}bqcy@%bV(xKZrY(lKhSb4OwbQJWBoD;;r<yp-{h}}%Tv0_L+R}ppi*-o;
zvTJ@|8r8nd%M4eh44&W^Wm+8YV^hmDjQEKpR@=?5(<T)Gj(Y0V=}TNp8>`!t#+9h>
z#Qi;FogcFxj;j?F()msNd?fr`%EPdWt29`{z)$)qv<HzrOjDxy&+dAs_CBY70OvoH
z(_OfrN4@=Q$Z%0T2z(%QloMr}a7#=Kp{+N-3?HDrvK6)M;7Js7oSmF#_ON+*R*FYS
zwpliz)XtE6wj_{O73!3i>Q3WE1U#`Q^*Ug-8I!TQ9jKRFZC2upDB#`AiHo6EyZqkm
z2;Kmgpb#?iYG?61UZ9Qki{b)@*-+UW207p>88PTsxAtUffp2m`U-TLbcOb34&0M=O
zq5{UPpnUUkW7_mEM|7Eo=;dYE#<`9aAm><UY%>_N^1{l~HTQEsHYv}Fh&4(buF2RV
z9mnk at tUWf}l{KV at Re9%M-Jzj}5UC?Tu>`Wld2~igx62xp=VqUw05g6-5aL at BN)o*V
z?7;b#>|8T?9M at Gz!F5-DKT85<A|zq448RT0SU%|>PZv9=%oumBN!w~_mO`ps&nO;1
zBCf~RGMWW7Ja$&z>ax6zaALI?Jq!vyqnDdunXI|MBS8XaKiiMBf-4jTCsdV<n6VYy
zWI%gjmG{XvFz4||%Q!4uIXb}@!|_jSnkoRCw&T8r)wK`ijURlFhDaoNH(3YLV-QhU
z3#yAiF_6dC>8vA00m-Axrc?9s+rlsZdW|_eRtiL)m>Zti9!r;dW4Ic4S;#f;al4Qj
z4p%W(Ez9;$)c)K`HGp*DIf>tdPCb3S5 at DEtgLS{HJ;EB7tKQrOZ^o$9rKE5XO`QGZ
z!VOyDW<L7J<Z#_lYTy^gKo5EnHQ<f5=q(B}z`svT%;V?!&$_>Df)50Cx0X4RN3?pc
zSqsvE0g|gGT&yK&{U<)2!Qr*%!HdOlX*%>2z>ZgNH%;%!2 at -UTi*8OrG<KlDaVHwY
zM}2?g9~<NiX7 at KVKW5)Wo+0ou_mJ!ZkMgI7Tefy)`hU$moNIEJZxpO-7#9?0ffD;t
zhOT~282D%>X4^ZB<riIx<Om;?W6YWyD!b~ox&|ntDP7OY3=p`*lj6j72oTE!U}dg*
z$EDOq;y(%VmAeA3W{&jTZN6I%b*{u}HMFI`N$UCg^2Sl~=8?lZ{#BErz9Z=NXvvVy
ziH2<l(XhD!P2X#xQ%->WclJw~wcxh4NPyYeBD954dUlGJCDC^>ZsEb9zWEs4J}vDg
z#6f~gh2NSoMI1-9AY_r1j##5+(r-(8!gaiSnZ|dvP0~xmgUy<&t7P!_n^2w!PKlGP
z{+4c1_0--!;1@$gl4k>jtid|=!*Eh?s}yRG?7KvK8V&#>Z5Lc_fGVcIBj}y_KQD|r
z%rN`#e}jM{vY8{V&-6hcq{_ir$ilf*N>%81TA`borl|-*2fHXPupC6E0G)4iKGRj&
zWiLAJeg#R_d{G#+ntY!eQ2)JX;`YK2`jJ1;rSHmn$zRqs8Gr3q;z$%>3$rIXT?uPf
zj$Pm>RRW%#WYi*&f0V&@KIT9J(Pi%Nm%qx6OuItdP2%1CzA;o5*l9EN{G24Xz6`zE
zzszOug^Pc!-M|Z%`wsyi3LM#R4Jj4^**l4M_h3}(8FsP~K#UU at RD^s0HYzVNsHBlv
zNBBC at YU0{4|2VSIBN8@`s^6FQpVVM&y2>KG@{|9C&!#nhNi%OFisvDP at _>V{{$=kf
ztd;w#8y$Ec;r0Z&{|=^|3J&!GDi7=+N{GCq5^nQVfPyv=W=u3w5_S=DymC;;uN#5X
z+yA8PNCAFxRfUp6*c*PL at i`uc^r4#OzSPe{2e1j&Oyl|Vw-z4{=>%MP{JM$*o+($&
z5<;18TuHf}393oo))fMBBfrm3ThwIz`3Ofdj+<*G7^n)sQYyd9w`=n@*MMfw%zc6o
z6I*a<vD|ms0 at u;i%i}Rm8n$cxvoo*gyi0G<Vdj<*kDmF_bta6`vsjgT{`>3dO6%JG
z+_p!a-YW8PZVz!HY&$$s`jbpy2R-_*y;0;Ic?*Zqyy7-opeA8-X at Vw8LDNMOvmIhg
z-A?J3_MUkDQu2Y4Ky<ra_`;%{nSGzqt%>d9CwsaZt%$v0#w|-pkyvCYk6Q_NMhlR{
z)v{FIL@^6}<d*BM_aIGmHTWGp=(IdV`Ia@<M!Dm&hVI+R?fB|N;BWW9EF^PNP(w$N
z>P0#Be>UqAd at K*daQh~9RLloKV>uk(nD%T?3><iuNmgG{B2~CdLXU#+h*X$^P&!pA
z`#U&Is7@^^U}=AwKLc&tvM^bCv4lSdlUNWR=%JP#xVw}bRv6!Cm(Z;MbTlZu=f`_B
zXB|^+1Jqh at l=OL^qS>%L(`7s&we<Yhhku&OFyobjNlV%^5WnH3hFQ*a{=ZV8;)eW5
z?+47<yv3=|q#kLE`N0nPd?;(@fT!8y3IL}>&r!_q>ablOG}eU4Y=fuI8~#ih(}H?S
z#H1nrEJPWKtQpVQP$yl{qc;POh6nnllg$dL)0wSh33hgjTGz)ho{vvpI$Xbc*p-=^
zZBOo~mTafUuuICAdMHh)#C5kqf|!G3cfd*c3(^R8w=s%_2N#=fpF1=lx&am|Qe}IX
z%vCy*5wmAIm%ZzV4+M<&cgRd=L2pBbQ;s3LDdH*^*7ran)mq?!N~fBIZ|f>oc#u6r
ztLamES`ho+3INEa9=8h!FEGff6zQ%uvo3b0v*hV$mHvUVNUKo7{2lf68gCy()Gp at N
zm%L)1Wv>jVeg5PYlUv#J#O$dyX**?Trf~S#*L&}y8kCx}MVb99AUyVh at Cb@Ic`-EK
zeJGmifLX>0+P-e8I>&H>AHP-R4pam-#?aBMDqm%7upn*HtT1Ca&`ZXtjw{}pWbAbc
zNwwXc_U#$eI`s2SL*FkVAFzYDWKsY`L~YSolsLF)`Z8eJ8<#!y^(f#hCkJl(W%fiP
z{qb7O0(DJOZ-THW<2KQp>+nG at LK&Q`*B^8&ztf)9&a3#qNaiqvjt}jKwP8(RDb_?~
z9HMSysWsE=#0S9H=$)D7x|!G_AXbRT*)?4}5o4&aq$naHuVagJ7>q7JvjgUCL;DQ)
zOkzoh>`=<g=1vR#k>6-ULq$$d*lzgF<a7TBtxjRLP;lY#N^jqa)$pESpypA{(IUTf
zc!2Jl#jjrSQd01SwFhF1(*LMisq+qeB?F_vXk&$8$5HcHXmI<k2s)WfjUqjO9yucT
zs%-C8XpuuWN}fgWmH(@F1BW+)q+#7RHXol|3_^|${=Lk%zxOPt(I+BBo8hbLFXZWR
zPRGtk-?{Ez8~HwsTThpCh9L&l7WWDfi2r}W5Mjz0*u9lXw~&Hw3hn$RkVi9q<qitY
z$dW#@U%;E;bcfY`VntIRNb0KE+@*#@2NK&|g3>g7Sr-7Z3$RZYR&PoXeAiALbCvv-
zw^}3|Y=)L<HW<2Sdi-*5Ez(M8geHJ(E|Ab>HZW$c_BA($-ER~cBSl8ZW~`T1sI*HK
z39~j0mRIDi;hTnre>+RwXxgaNdF|r-C+*>D&qxBXc-%ZiXp;z90g2DMX9^;hc`_8T
zJ_{dp>+Of;#@MYeLz1?1RWkJI`mQYmIiU~k1s~!YUo4UPGutF-U=Jy-{?Jf6v7l?i
zBj at r^Qn$glZS7c7rqB`E%q3e+zvtX7Jl2YoCKEpmEM2Ts*{ej<K`o8Bwr*Wg;@Xx!
z{oCHLf4FjL)dL at OFJ-hx=)Z!jv=U<o!CnvOA~rwMQ$!Jj at x*Mk!)Et#%?5*7>7ff>
z8P<~iE`tUY?)-%chNw=t+~)8rS}0G`Ds{chPkK**a!89Wy0dZs`xms|LE+n&jo_C?
ztfm*K6Knw=BY&@T$l0R&Czqs=Uu2QfbYs1Zw#bfRZvX3pGQD{^L+|d at ssGAwlY`wW
z<#~fCm5Exyzh0jDHYJb+Nn9#lo}OaerBFAt@=~TPHmXv%bc=6!vg!8Z1)-y-8AI3X
zT9c0DWeysyrY>N0qvC1tRR!n0 at zXdtoa-xxkOTsu<h(NrQ2PX)UnMjb`1bTVuFcf?
zkdU(+d(TMo at nCe1x78A<O13DwHwwRsCLHW=89R!okL0L%1Jia14n1hgY-c5ElRz>m
z%mE$sJ_Hwl6N?S;kx7_)TNpI^pyWK!c9}%pxNUY0Eik?;n6&)Db`bEFrf-h^|6Nfj
z+8ss%roH%MWp%~<*K6-j&p%_>cG=F-JBIJ at _55PxYc_6ZmA~yD7%`LVG1*qsE(CZM
zt5CWsdwQ34K$1Ew8ms~1R3&S=xfWfZc@?F{+|zhEkoKFxiSCq!dX=>x;NB_cTcsmM
zk;28G?)EO3)WrA8TFGA2y(9IP*2&+{CM~7Vs537#CH;@#Ae;>tvv^{UU||cEsS5QD
z at J3MdYZZG@PnD|1U!78By)Rnj^@RW9kX>gYDWp3Ws}ah%VU$ojY}b9e at f{Pi2a8B9
z47FMRC_M~ts^NSj*OH?*TX*oH*J9 at 7-?~^Q7$?3<UH>@Qw5oZYu>zeTexmdY9iSes
zbm#2_M3ex|0Dc(n6v43JME;#WZ(rut|46udLEauM9(d+xBiob#y?!9bSKYFmM8$t}
z at 4?%?%}^JAKPeN(Jw{2G+4vLHpC7}OqGMmW&~~|A{<#nluc0i+Fg+lP^OmRQp+657
z|H%MkG__mmloGCex1jpn(hCPlSJ;()wZUp6Hct%5HV8b*)err!f2#r-F~GRgLv=dm
zZu9uUIQ$pMi7=Yq=Jy{-HW2j>1<Jo8dfuH2-f}y`ptQy`E4(bV4rHU?Nw09x&nCyp
z(dYA~3MQ)x0~0LJlSfOun#)2CL?G4R2<;(I133Cy_NMThwhgp at K--VDNC}UzD)l(5
zuQrq)6wvd_?z<&(5d;GZaZxeNDjRI~xleW2J#=6djcb+Cv-NxYJVK#0YAB%W>-?^9
zFW<-~(9E(M=-F1A)NFUAH+jZ1QUePp`f+YmYJl4- at PTE$Ce0RFCcPKZY4c1p0}EdD
zK;;Tae=i!d at R7#QAoP`Kj~t-<-=b>TsSL7>?|>Q*+WF2fJmL;XhC7q8?eV`_Um4o8
zgbq84+NtuSM}>T;e_y9mzirf|XL at z2-bZa|_#nsRUSz^;ajO=`>%lln+BYe_Wk`J&
zk>ru4b1u8#k)Y}Kf5Atz!jW-k9r(?#Gc5I}-p&4JMqU?6_`JvOsU(}?4c<Spt+DAv
zI|vsyvZ@{eMibvLs;4SIJ~hHzao4Ey2m at 6jeaA(nYt!|1^6A(;sDPdYXklAX|Gw_v
zE=0Ma5 at 755=d;bqv%?Fr>&}#s1c%H!4rvzU|IdWc_`46D96xA>EVPX%jC9Jn at 6I~W
zx(EMyu~~I%V)W^+FPuc>_ZyLt(wl8QK;L=Go>XlIF(5%IWG5luX`o9qySd(=&o}yM
zN20%{(Lw%%OpV~jR?2^0dI_XHS6iotr0K1DzBMoI?lX-i>MGpg1tLpzG=^ZZzDqs+
zC&^x6d+^MfvcLE;t{GYNKT|ea5!amc?fseCRTx!j4t*mmdqIgG^t+)j!GbOz?oGIv
z!m!42X{$}d(_N+$9a<<udRORkJ+ss)L5C}d{kzWldZe&=kAy3}Uyt<UzcRrli?1+H
zWN2q0T=3C#Pq`??dk~Z?bT?jqbksP0Xdr&bi2PkJ(H~wG30gGcANc{^WO?ti(}?I&
z3U at v4F+N9Owqr&Miq9`g((Z-*tsOM_j;-`LvNWnEW}yvqX09fQu$lFXq6uUUZ{CGa
z9ZdXCk7{RVS#I&ihd1u3u$sEoV!USuK1f=U^tPX`*;d)rSp#3eFkTg3uqGm%#w+%>
z+gtlyDSjwC>GaryN_;`Vp<@#=4L6G{5#|7BPB`y%MBt6-R<QYIiVq3E{2GU)ZnmPE
z{posTgK>8fM`UnfT{>g at qi3PyBpu)_06tTLpz{RXORoFXGBvjBBbMu{ZdcTXq?+nD
z^=)twq8EiAePYW9!rE?VVqwEaMRIKIiQA*PU1W?XU8na8)aIT-5|_*hyw{30JpVYy
zzum8}6cNw$+DP{bxk?Hnd4%G|-#SkHDY>qoS6d`}seP0D%y4}}m+>;;@(o)+?8V*w
zgsEKhWAB#RFM2BwLx)aFn!9G%mw8Xp*1dUs9bmz=6yNEzDp^U_n5G}!xux2!g>F~m
zn>*w)_|SJSy=k!qBHyaK6XC3}LUnaeo_>7d;p<eN`5F}3-pm^tTb>&IvjB3F{}?h+
zjaA5|xNbcCRC-y_B{ziHCZ7qcpR-+{e|2mJZAbc{AC5rTTf5SC{xzTb><k&mbxhhU
z at H3fXdWD(@bGKjQ<(?4<`dvsmh6rz}o1c)ZDjP)lC>1{aV0#70hGh=m+ipJ#0{^f%
z&G7|vB2fET)K?;E=xacMT4TQeA1oA)tYMJqg3H?LY|-2XV%G?=^m{h`^VpKfX<$zp
zlmD3GkU&VvP-`9<&F(A;opCMi-_Sk}AQ-H7 at t5%xb8U8j;%)hUP5%-g at 7kik|2l7X
z_S$S!=WO;rx?DDXAxCK^)2L>)3kDk{uB!Sf>_rS-61aKq_`YI#Xz4bW!Q<Ewg=+&r
zt^wx;+uf^01ywBgn9|&~XK`N3GiPP+7#}TDH*lQvxAq+nPtM*9?(=tuecmXQ;a6XD
z>SA-$D)P)iO2P_7M&yv at e?5 at m{LDkg^KEd$i7bm##~boD_X~fI31nd22bY{&d~X{K
zx$Hy9Wl4XqNa26SpXeE1#(IOkYKOG)-2i?LwDQT*Im7!%GgWbJ_pj{UpwfKP%pQ%s
zGm!^#2;M{$%<Mmt5)Xb89k=>l&p`>f1%@!SY}peLdQuhXP(coWaIE3Dp9z&VXNItG
zL`2v%R}ULlA9=eZJhbf{eB|n1a)lq9j*M$<`H+%a*>OAM<7oo#8;oR(8+<~_npo=e
z#@_0M|3N55|7N6S$?c~3{%tmSBT+omIIfM%D(s;o+@}dcY1M+#^G^J;Ca*3mzNgU|
zpCFhO?7$W^eyHD>m!)C;ClDq%C%%SX8 at T8)IQnz>GLL_n%;>GlpC-58=iloZ-uL_A
zi88+t5cHO5;~nO4Lw^4Q0m-X9Vs2?Ag8oUWu&K`?AHhH-1z4HiXA5vpzm0Ev)yrP|
z&0w at 3wuLFdKh6ePBkCliU4kcj1nT48Hb6{0w+YVXTB;(PpMQ6BUD6R>&}CJbuIAik
zsD*Wlk#xN3T2+|-b5OB at uScPn^L|4e>RSi698X>PRHhl7HXezUuD}TQCI7xI at J9>b
zYn3V~&Vzd~xoWQSTTVxF+2QV0r2PVS at 3W#RDhTjO;@_MD#rkv8%)L?=uLaqPqvgu|
zoOE{vCY|<6z~xx1GVdPVLo~*m70thzJ?+$46R_IE=-FQ{Ogz_;5W2P)Bie}BI=72M
zq25*gXY`-ef{A&XJA^y`5s!{m6l<sU{R2V>RT?9n`@z6t-Fi0f7C7jKAfwi)-L{*;
z+r3DF*nvV-)gWSZkaH|Dmvo=;Mlu$#2G&u{N9UaFV1)|w{fOS_qBQIE!=2l>eHO)m
zZ&%g|=%kdEJEog47KW{VP9GzE_BTzluLi6-;I_p(<Qg8mt=k at X@ZveQ#t&Ytfg2W{
z=C|_c>L|~*dnz;mL7;7>Odq3hnMMo3x&km=xtYDlY7Dw at qw0N|mVarC+oTyQ(SNO-
zKh<TBVdvd2su$I%Rq(%X0`{UfUcdqzfA;7z1sr3%oj0y?PKbSDl`?Z*p$EL0rCf1}
zbT>h65H0hdex4fg*38YUMENt-@@KKaw^mI8v7O8p#t at -1{gn5($ffjz>@YmV at B(^v
zRMPNUs>PNT5+ at kc3}X_DJES-kPQ@}01VvMVd-HKZ_$~#)_pF$F+B8RXaL(Kc=N2AS
zgED9emEbikhpd>L8U^_w#a(fAf*)>62ayxwxY@!_znf8DJg7^$)B_7MqfiYxbTZ2G
z4^^ky&B$Pgj%cSRkX%5e66L->|5N1mcQW*`h0mdl|9_(g!BVWANhYJTH}3}ZLZ(^_
zm$O??FXcHu+T|wW>6PwwZIc_$A;v6H;qJjdyXv>*uh<p^)U3fk4G2cHJ5&IsLpXn;
z`+{l)ZE|4Dhqg#6PCZ<Pg||N$vYWWg-E&)jpZ<xX|2Goo$5w38jqrY`@e|#v1=H#m
zW(90DUOcinR6gp#;SZ|2ziy_|o>iEO-iZO5opdaW<zfPAj7G+_Mg1r9Q+jI<YcbNy
zf2X^e1P#=TUTKOKx}_2MtHdmmVFN@^6VADjoroAoDq_9e&-CG&X-h}-=B&mjqA!M9
z>$4V*=g5)cdrc*q!^&{&vS|;{?7uq3NMV;~Q3Hi;VnfBvaoo(Y*%Ve{vIC1M9Nxq~
z!3n;<6#Q)Meqk(^ZM?ElSpRiR*lrNFjI at iV@l+$w-~WK!4$xD^mCVF*&|YTtwJty%
zXvcOtuSO=yXA`na4gMgNalAX(b}0<wKm?x^N1?8^T`y=07X9a;O{@g`_U!h`<?scM
z6?VrrE%%C_VFp_gjwBO00Yn>YnAa5PRR8L`T6GcfTB*F_m#qY|?1K2AtB!WrRb5*&
zo}08j1{rZ{LE0VxyW<yiRmo0{WFHoRZ7fQXEb2@}&|eE}#6Xyj;FSGeP)vV+c$rl0
zAFOaN4v>*ouT+<mc5t~!ol}{9!0TjfrXtub^#7%=7S$hCNm*!mLyz-11>AsO6GW46
z7?5&=CV4XNK~G9%z%PAtNC{U|0AlxaW+cI!6MsyJPKe6`o%6g*4aSx3?W;+lG;ZNK
z1t at +<h9G7SarE{G<HJz)so++#I2}5&hWN*pydH;=Tro0bpm at u6D&?IDkPjE!!y+Nv
zh6u!%-*r56rfw$OP*~PSzp_#i#G at LJ0U|B9LuiRNL`95VKsBrkm(=Cwt^_5I!wYjh
z!r_(5xFjPr at 8;9K!ODVeq070IA(_I$OR?v+p9cjwWNAm7h^I09^7>iGO-0pZ19>ji
z0xy)y<-ZHd at PpH_ZX7w(;00g`Z%2TL&%}gkBF!4PA4DuD%*}7+9{WUomd)+=QKSz&
z%{OiZ{nBjx(%9CtqSAX!Tkt*R=6}ZY?=PL>95YwqFvTx8O&8y?ugAy!>^twW!MNXI
zDZ_ol+}nI9MY5TjxHTV&T!_QO2n-NJSx~xy);VxEl_!ejowi)M6AdvStP50LHpuKY
z;V*D()OE$C`#^wR?C`Zr4Mngbhh)CokTs^4lMl(A1RAqY14yU7 at VvK)>n?!Eq(9SI
z;%f%CXDPOM{riyl^w#iB*VjSn(ypmT8TzThi<|bWgxwyXx;VE<S(Y86Bnd$lLDY-b
z_DiJ?QLcZq+Ttc`S}V{EKO5La at SQ)%8j3(jBA{k?RO|iir;y{oE{f#h at I}wNt>`P@
zXkbs3pyw1aJ7nMVf(Azi8=H-Q2 at dv7BcDnLg^=cv6z&wi#tb=irdvtNa+&y08bn5j
zGcAY4{+bq~Y~S!Pe;t*9Ta~=wJvQ+uhiLxEx#hKCufOvj4~E76B#Jv1;UX_;!?rI+
z at tQFFypDOlDbtErNk$(Wd0<@HRU2a4PjkQC)RsnmKgNZwDGxM4fq;909L(3!6fsb!
z%~9e(VROYp-f~8(M+qTIqcyd0*s`UJSo!f#LB~R1m{ez<TrPD^G-X><>#nKOYZhL8
zt<39rwadqw$YN5VJk)<QC7yI29ql{q>^I}- at rh5i8Q(ujqG%~oqLiz24^=8%Z*tI}
zb+z at OvpKe%>Vf;@jk4RJ5eJ{0RUQ2#{G(U<8B!Kw{55TS4a_C%Xs4uDcG_srDPpY*
zL`yf?fQ%ISSO2_LhmtKapg(hRDFu7{EPj>OAc1MG&?R-ou&9 at 95oY>l7f5A9Mu?7C
zrawH}y7*Te`?^EKwcTKG=8JKL;=x#-MT<ZJsVVv>{*2l3zDA{P#{WxMK1{gJMf$6H
zz*M$ntW(rW8AMgX<WFw)B?r*XlWy^2QUGS6%_I4S7#g`%g641#p`GP;;4(Ka>cg|2
znHP0fE^W0*IZrtPKvmtj5><{(%Q9R8(i)=&l(xY)WfriS3S?e at 0;8Tz at p2q9@rOUC
zI`$1eg- at k&;<%BNg3LVUfL;cAsU6=N32IKEuP4Oz3>edOfs>nRMXYiZKnjdiNkym_
zKkpGS*>T?n7PmLC9I1YXLmETA at w?y)BfT5UXghA0K6{^OD14g>%<q9KMTUgiA-6Z8
z7p|73hpcAV=`s*rU-xFr))?-zzx&S!biUalVZ%8 at SA}U|adYEE(nd)JJ9_+jS1C=S
z4@}hR(yVy2)_!~;1&C*uT&<#`4Ot0^priqCmx=OI<bz`rUl2(XgFwHB8nc4P72G<F
zyhT6mI$7Z*A^<%rv+j;Hu_5^EILMN^%fiEAJLiV^imfE2fiIcRrnh={|70&PQ}J3r
zZ+^dty<xpN at HvDV-tNUG_-qR}vqst|*n-(kD!jAHGok6DvEH+^WYNILA5Rm-Hwp=V
z1|u09 at ox4Mf0i?g?}-LaPkcyD at yPx^ZC!ml)9d?R<e^eFlT!&Z5%H}fp{z-abvoha
zluaI@)fqD6SEdM|bJ`U0Jx3iPCyH;eX)THsJ*=GMAxC2#*H at B<nL0GFX20t*zOVCp
zy?(#HeBAfvbMJHCpX<8r>%Jb|mne~6F?L0^G^GM3- at NCQ%y~Z^PMta)MZ3<p0D$3w
z^nskN3~_dKw8<rb!6u9NI5InMljCuRDo^tXMs(Oc$}yewrXmjx*Q1$q5&&~4PcIe)
zA#((;8IW<%zKz$iSe`h$f=WvVw_;BBDeY7Xw~KT?PW_fSNuHErvI~E*_`*J`KqD~E
z1JT1)kZcH5^$NOutO`1o at mI4Zmfo!ZV0HJSPEWhyFLp-`yNwMv^6VP5Ff666&@}!B
z)jYAT$hOC2s+R9Fn>|%DYYa)n9*mi}HwRD68Dlt)V>hI|*~`k3g<IKls!NLy)RMDO
zD#Rl{8H>8O>i8KA;i3M4cGtEPyHmYHFPu|vJpoIIPn%*a){|>@eB{rXU^OwlX#CtG
zALj~P)F)$UBTjA|_{F(rZPwO#MJ<2ED^#Jl4<X686IPi8 at G4+-4rYab=T_h}wMooz
z51VlT7zhc^N?uvDJ*hYfkWqk4yvZxt%FL;|5^9Q?6?M3pKQCL4ASUtJIc}bCUwh=E
z3MhU6AuwMB{{&1Pe)rU6HpQz9TeV%{0E&03Jt%$#?5u~wfT;x5M0*z0G2pnpABk;G
zZuV*6Aka`uqjRvd%V?)3d-$PITS7H?si8S?f@~x5u{>!W9c=1u#!<7iAGvM}s~^^R
z8~*4GwrtI|Egt{AZ4FM##gi%X^u2g(BSGgCud=U{B?o955s`1lGVyI;wmg0f3Fmk~
zSDA7A#abp~B6~W_^{RQz5pSt30^yF3Jd$w&m7zo4*Sb|A%0Ti+0c20lf}#d#g2|N-
z^vLdO?L6hbQO!Quye`P;ec9UTYWAH5CGF2W?#>I;6&peY!3+CHH~Rx{F3u@%)tI$_
zd2_u8+m)sM<rMMsv99%MO{ux90vmLT9DJ+2Zwch$gDkwy)mP{5z^?iAVf}`!#4nYm
zC#NMQpKqwQ2H4&ZwS at 61@XfIU-yi}W5`ENa$7ORl^~GQekb+Pakl8d<IHCo6T3p8?
zv|y at wS{Wt}ez1;afyks at 2J;=`A0Pnm2J9b=*p`VReJsfk@!>7*wIx?|#^~G8U~O9D
z7t2J$#~KiA4yXu-=s<1+E(9+C9N6GAmlL7&f4WCJVe2AvEQ=>A#5~d}<kl-I=czF>
zU2+w(KH<J|T}yZJr2HA_^SYzi6H?caQy|3x_3yY{j?m+^-z7N2hY0SkL~w$&4-e at A
zWN<oo9aDSn8qg}bVBY<^0ydVo2<c-F=~0gnSiM*$fm(zG!7 at xsr41^rjD{+5=&SUX
zTh_4CTibc0-m5=dAFCZhHTw0EbEQr8D&^OziKB92qS_E at 31_{(cQwJJ!x!n<uw?!A
z?*Vy5?u9m<4PJUKyyO%gjI7P!yEG28iJBe9B0N6Whqo!E$*)cF;D8FYiP$tT#Oq2W
zx6v;AmGHO@&dC_e1C4&?Vm|-cv6+?iv?DW`Y4T3gxITZr-_f!bOD9glXK$B5?T1UZ
zj3GB>T{LwA+uyl)EQxh!IWKoqn0M<%?v3vW?oz*`QcRQ2+Z-R>H7!wI<NDf!lKrh!
z=ML%<L9*W?2<dLs{}hi(s;flS(Tyj=5Yxcb^rsP9Z?+=VHk!q<8v{n{3D;pL-FgAB
zewBbOqqm0wNH4gWyH at hOP;8O}K8*;C8$N*CYF*gk(^u`fZMm<5-&^j*$5a#;7(gts
zJKY#Z3nmb}>X`&-5EKAM2c?Vm{cwHLhWVD at -rRUF6UeQTVw?zZ&cPJENy3vs|3)Z5
zva`;YYqyrPbep2)-vm#?^Wy%oO4nL$W&Qb)=V-;Rfj1UBsA*ya3K*zej$Q##JqC|b
z(aK_laxz&pxsP4irkv9QU_4hL1xp6wNZo36RjQI1{ohlcKvE6`05RCtmhobFFz69P
z%VXDT@(>sWgl-p3BkY(AaRX3rk~?GD)lbcD-tG-bt*)pzsU}gdq%9NrWB{f|oj#3P
z6;#we5aJh}tgmJ>(w3h<YOvw7lH0=}e-2GWAo%ts_v{J6JN`Ff4n!DZix~+N%IO$Z
z*5g6ULrTpzS$g3$*nagE4HIPbXpfWbt)jJc7SeGwQ^`;s1!1!M9f!f|LGn!#H%kaO
zxo!be_0*b-D6s|-dS-rEPs(CV$CGe11Owy9S0kT~O$X36!Z+7uf}h0&4iGO-4q_m~
z9!477ttsd?DE)eM`uUq6WX!g7F{FP*l-&GduJ_n91^Hax>z@<r^~sj at AnvG<Kvr at c
zwX;?<0}Nlc22H+c>t(swtJ>J&y#s`^-!jSnN7rsOzo)DKY&p;<ueeK*;<WZtv!T5O
zfKrgWMhe6P(qW<dJd{P3-z~o7#xM*Bzup^mMO`uB(2^#golzP~In&TqhNVJw4FHjN
zmAR99-2av)C#N)RVJ7r4O)}15d0{EU<xj2aQ;%*}mZ3zUbhmv++I^r`C(0rJ4Ebh^
zOHY9f|HK<pWDO%dE)g?c<Ut4<l1JBx5IBD9y!cpmq4gdn$FHR_O|9o0Lh-`GzRa9h
z8z5~4NIz$=6ig?P?m^9~vv-#BQZ4S}>rPZPWI=u_vYOX%is2`>&+F#8=CC^5r4ZZ$
zI6M{&36)Dak at eExy-)kQcOMek=Maq;buXK)x*KbDBaww3on(y|qZKpcMC2u3KF((C
z2_-M31z`#KaPSCnXWYBD!l5BHYpcWfc|^0pCvFhVPpUqoI-GbMn;}+RQOy>sh_X~|
z2~OSw=<Sg&+m*_eQ;XJbBtlO0RbTjLqd5e9s!0%OXj37Gl;Cw+KrT{E?NVtXeq*=;
z(udm&e1n%57ELPRcM?oJ8Xd>`IzzftRO79w5Cq87#?L37cQUD-;5yCsf5=9V&JewS
z`qLh%$ge+!MNI!a1b<c#T25#cNs_NENhB-WDpksKerZ>IUzzTWI-P|g9ZQj<`_c$;
z>O4WiG`x6MukUoV?oeU%&2^ZI>z{S+aJi7;l}!|=`2V60k<W%U+G9Oiyt=E>#T$Qp
zhC)ZBeX{EbnC)%I?F{{W4Gc6fpE*qLAs({@%mnpJh}twVdTPbd>;Z at LTI*>~++TVx
z!sQKvYwBuNKceLSD?a{eyV;ughKc_17z-Qp+4h;#@voUj53W40yWP1s<F(AkKoA{H
zpIX_!-JmP4LYS)>HA!wYQH9&!<(`ZUhT*QAbA5+S(k*Hd%-VHV^YBI(TUr{G%<va`
zW^BfibKi1ywstpOI_Sww<W}GT?BZ?rgMrmN2it0Ls3h=7k<tZ|Bm><4|0+_}?K#lO
z6>>?8A>P~omN(QoY(KNlO~}+NiEkRuzLVMKOV=!s?tMQpZ;^ZDG`FNYPGU~ur`n)T
z7j3<N`U)#rYsBwd%{*}`9xpFkd7&gXshrjFVkTmLS^jHBk{t>!m)r6L6dkJX^N_4N
zW1>!xXvm}-+g9KCXgrph;LUxIWlNzY*#|1^F-gi%VRy&z1TV(qNlEwWp+h4BaacRd
z3KX8HfFK`X%zMW|g2x&9Pk;Gfg5tfU9r&8~y}z*Hy&2Cx-?haA#R2GeLYxr~g`<7X
z1kF#;+*;46%97y=`>!W7%7mpRg$@F2j#GP+=?7`%iTBWQgqt$i<KVN=hzAb at hZ6*Z
zxFP#WnU5XK(+;)MiYEDMpwxH!<?<FngU)2P0DB?eSyKNxyb%gk+*7I<`s}`!R5e*K
zu!<!yQ_P2N at kv7NIpP%NS;^8uZff~yWz{uPUe1>ck2|^n(6Gc!STL+84HmBZ*<Afk
z8LQv$Hoo&)SgePeY2F<d+sZu|Lv_I&+mt(&qA1X^SIWW5M~IP}$hAM`1)$KpG8<Z~
z39p!7{%XlHG%{W9srMK~nT?K~hfw1z%hB7GN1?4;?AkA+kfa|Pht3{m{pZ=WJhIs@
znhU?rO!*=?EhxU9djDIM9y_G%UHjCf<bi#YSi!iCtmwXRt<t3N+q#y#@tmsd1Gg3R
zy`k9$4rvb5Wi`(XHh;JffFf10h{VKAITZ=U`Muxp8Zf+4i2~1Td*?D2FuaDV_r%##
z`hh3CDDLi}3N>&vXOgsi?C at m6u4f~PuF{6fEBSuHn(WAF-oWx>+fWS+^CQfyGsL+w
zwmf{zCRz at Ko2XLGdd$vLkyE4TH~I0wj}%c#{>*lZ9CKqAj-sVc!uTWnP*vvf^(IN<
zr-M&7bGnFg>slWUQ)o-x4zf%<504+ot-5gTW78)3 at Nb(;!?%2;7H5b)?7opHW(aHC
zqYQZq-OB@~<@9Wu#NY~y;ID@{w3Ok`fwQi+w*TDJ_;B1YXWsKt6pScjwQz;>cNNv{
zweJiELd<srnz!_&e71Q>qX=8Q7)(niMTRP3b at g1q^O2_UrqR-HGGp5{W*=R2WT(PD
zr(S21?{@<jK0-o*<1U|?Z at nOwzZh_&1vRb-$qQkN|46=Y5F at alS(Ia|&V|K3E6p_f
zl3=Rv$Mhz)me~H9mpY0jwj?<oNPu!(HbeehBFYOOH8-JliB+QaNOR;<|8jIOuP3o{
zFGDmc9P~$CYN)OyAIfDsZ1PUNR&QY3?KT!|%M<0yUhH6Vgc^^vFvjfLW2~ZX@#yAq
ztiXyQthc0<Ue)*al8(jH+jfa5AzQBY7d;r8dmXWpQ>j6n&^_bzw$923m2$?Cc at IiG
zC3X+^2>b;y%5&P$gu%=sY?;r_#B2L7LA3_P{jbBFUe_mNam1hEA(_hhH at -mZ<@2M-
zguJ&-B9#e6aXSRPasGDKKL1t<+*wbpIyH_1B6m)dP&*9aFeBYRp!4S2lsF(?l5}vi
z4yZqMBTcIkq32V<!sP+`h4XaygV6g&ab5sC)KF^>wdQAp1EUJ?lm%8p^YES9fGr*M
z5Q(yQxyUcTmuhxl1^nj$meyHk&&tSxPqSsfPaVY`sE-d|JQNBZMxo&A{qHMa-NiQb
p6}%S;_5WSL3!+f!UiH<T5q+Yi*{TAYJE_o)`p(mb#B~o#{~wOwpj!X{

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded
new file mode 100644
index 000000000000000..3dd988f8b27ad93
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded
@@ -0,0 +1,2203 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "loc": {
+        "x": 190,
+        "y": 25
+      },
+      "name": "61",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 61",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 175
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 165
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 240,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 330
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 65",
+      "size": {
+        "h": 75,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n};\n\ntemplate <>\ntemplate <class U>\nstruct Outer<int>::Inner {\n  int t;\n  U u;\n};\n\nOuter<int>::Inner<float> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 765,
+        "y": 5
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 230,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "loc": {
+        "x": 315,
+        "y": 140
+      },
+      "name": "23",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 465,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 25",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 175
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 70",
+      "size": {
+        "h": 60,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 490
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 350
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 28",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 590,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 46",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 590,
+        "y": 350
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 49",
+      "size": {
+        "h": 115,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 785,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 52",
+      "size": {
+        "h": 75,
+        "w": 130
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 785,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 53",
+      "size": {
+        "h": 85,
+        "w": 130
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 630,
+        "y": 485
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 31",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 630,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 33",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 420
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 54",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 485
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 55",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 57",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 15,
+        "y": 615
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 42",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 32": {"syntax": "\"int\""},
+    "BuiltinType 35": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 82": {"syntax": "\"void\""},
+    "CXXConstructExpr 58": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 55"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 36": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 37"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 74"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 38"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 36"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 36"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 38": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float> &)",
+        "ptr": "FunctionProtoType 75"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 43"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 39"},
+      "RD::First": {"ptr": "CXXConstructorDecl 38"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 38"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float> &&)",
+        "ptr": "FunctionProtoType 77"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "RD::First": {"ptr": "CXXConstructorDecl 43"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec.cc:5:14, line:8:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 64"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 67"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 24": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 25"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 24"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 24"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 25"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 72"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 49"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 71"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 30": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 31"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 30"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 30"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 49": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec.cc:12:26, line:15:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 46"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 72"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 51"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 53"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "32063832",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 71"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 46"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-ct-emspec.cc:12:8, col:18>",
+      "q->TemplParamLists[0]": "\"template <>\"",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 51": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 46"},
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 52"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 51"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 51"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 71"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 46"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 59": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 60": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 61"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 46"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 65"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 25": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 70"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 26"},
+      "RD::First": {"ptr": "ClassTemplateDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 46"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 28"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "ClassTemplateDecl 46": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 70"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "VarDecl 54"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 47"},
+      "RD::First": {"ptr": "ClassTemplateDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 25"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-emspec.cc:11:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-emspec.cc:11:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-emspec.cc:11:1",
+      "TdD": {"ptr": "CXXRecordDecl 49"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "ClassTemplateDecl::Common 61": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 79"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 65": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 70": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "associated decl": {"ptr": "ClassTemplateDecl 25"},
+      "explicitMemberSpec": "1"
+    },
+    "ClassTemplateSpecializationDecl 23": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec.cc:5:14, line:8:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 69"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 24"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 25"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-emspec.cc:12:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 29": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-emspec.cc:12:26, line:15:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 73"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 30"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 43"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "53834784",
+      "PointOfInstantiation": "in/src/ct-cont-ct-emspec.cc:17:26",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 46"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float",
+        "ptr": "BuiltinType 35"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 46"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 46"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 46"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 22"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 37": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 64": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 69": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 72": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 49"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 73": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 41": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "ElaboratedType 55": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 57"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "syntax": "\"Outer<int>::Inner<float>\""
+    },
+    "FieldDecl 31": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:13:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 33"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-emspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 33": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 34"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:14:5",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 36"},
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-emspec.cc:14:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 52": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:13:3",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:13:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 53"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-emspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 53": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 48"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:14:3",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:14:5",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ct-emspec.cc:14:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 74": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 82"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 75": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float> &)",
+        "ptr": "FunctionProtoType 83"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 82"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 40"
+      },
+      "syntax": "\"void (const Inner<float> &)\""
+    },
+    "FunctionProtoType 77": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float> &&)",
+        "ptr": "FunctionProtoType 84"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 82"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 45"
+      },
+      "syntax": "\"void (Inner<float> &&)\""
+    },
+    "FunctionProtoType 83": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 82"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 76"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float> &)\""
+    },
+    "FunctionProtoType 84": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 82"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 78"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float> &&)\""
+    },
+    "InjectedClassNameType 63": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 79"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 67": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 71": {
+      "Decl": {"ptr": "CXXRecordDecl 28"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "LValueReferenceType 40": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 76"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float>",
+        "ptr": "ElaboratedType 41"
+      },
+      "syntax": "\"const Inner<float> &\""
+    },
+    "LValueReferenceType 76": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float> &\""
+    },
+    "ParmVarDecl 39": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 38"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 40"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LDC": {"ptr": "CXXConstructorDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "LDC": {"ptr": "CXXConstructorDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:12:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 45": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 78"
+      },
+      "PointeeType": {
+        "preview": "Inner<float>",
+        "ptr": "ElaboratedType 41"
+      },
+      "syntax": "\"Inner<float> &&\""
+    },
+    "RValueReferenceType 78": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 60"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 42": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "syntax": "\"struct Outer<int>::Inner<float>\""
+    },
+    "RecordType 68": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 59"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 34": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 35"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 35"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 35"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 50": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 56": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 68"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 57": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 46"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 35"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 42"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 79": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 80": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 81": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 85": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 86": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 66"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 86"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 87": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 26": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 28"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 47": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:11:17",
+      "LocStart": "in/src/ct-cont-ct-emspec.cc:11:11",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 48"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 66"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 27": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 26"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 48": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 47"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 62": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 66": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 54"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 54": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 55"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 58"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-emspec.cc:17:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-emspec.cc:17:26",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float>\", <in/src/ct-cont-ct-emspec.cc:17:1, col:24>, TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-emspec.cc:17:13, col:24>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "explicitMemberSpec",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "PartialSpecializations"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-emspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "CTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 250,
+        "y": 210
+      }],
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 150,
+        "y": 5
+      }],
+      "end": {"entityRef": 0},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 200,
+        "y": 150
+      }],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 755,
+          "y": 205
+        },
+        {
+          "x": 925,
+          "y": 245
+        },
+        {
+          "x": 925,
+          "y": 475
+        },
+        {
+          "x": 600,
+          "y": 475
+        }
+      ],
+      "end": {"entityRef": 12},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "TdD",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "RD::Prev",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "TdD",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "CTD",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "RD::Prev",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "RD::Prev",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "RD::Prev",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 550,
+          "y": 465
+        },
+        {
+          "x": 550,
+          "y": 320
+        }
+      ],
+      "end": {"entityRef": 14},
+      "label": "ST.CTD",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "DeclType",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "NamedType",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "Canon",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "decl",
+      "start": {"entityRef": 23}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 677,
+    "w": 940
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-emspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..de217ea055fb3e9a159b267df0f5ab07359ccbd5
GIT binary patch
literal 34295
zcmY(pc|6o%_dY&jUz08Sz9d`O%Nh+LC4{k$F!nWLUj~)zsgS)$w!tvjMi`asB#eeE
z6_K&VP}c8z^gPe+^Yh2NUS{t1y_|FI>s;qL at 1)ze44D~t89*Qqv(a^kIS53F0)Z&X
z=xBg%My@$u27$N}BJMzgulf7>y7>izKw$-I4vZGl_ at -kS-l0N`h4iPk{?luht_i;}
zq5A`STBIcMp3aWDQ7=g1%Kg`WH$vAESLHnYJqNPm0-meVUq7fXnzNl6 at n2C6**J5A
z(+Kp}LOlM+SXUb1yi(qgQ;}dgcSr4}%ZXQJiPOXhA-8+|@TYiQL}@;qbVQdjA%U&0
zI%QLIp+oRVvsa?$N~o0TZpUlGZyf4;Lo at VVvkRO&25~yAi5-TwKQo>eROW!NBQ|dy
zRh?0;E`4`nW`EY~+91V^AER9|QUVS~-)??(vSxYtDP~@>?@L=Dt>213*wd?{CQ^BS
zVk0XS`4F&BjTM1lnC)C=s4eHUq==g7=ZCQ;2ZQ;Lt!IzdH;pzB3cpNZkNk}6n<QmQ
zx?nok_B1_e>kE73q0Q$nq!{;m>W)Ttyg at yA<58?ScK#gVUfS}{U400`n|tP_{u}c*
zS?=%aA64uRMc*YkSriiS at Y$Edtl3N#(K7SfF}cDorGCt$Tms)Nc-4P_BPq+D>tzYY
zjlzwR@;6`2xFfbkxW4Tbvtp`C+Ey=CNB9ss|2ShcxaZGZH{HBy6l<VUD3jt=TK2Bf
zo;EXoUHW(gdVezJ?5d$I2c_Z3R=hBFpl_l+3C2^OUZStL^(^`^tScbxZKzLoP at 2{4
zDCIrL4!%FJZIwa~AS8n#zMEn+sV34JL>~IQzA%>BS%c2kzP>X at X{4Dls!S|yBV2w=
z^+ at jOAzNpGyv}XkiRTxD;IU%-KW!{Kr}CQn)16h|=QG~5Cn{bzcXXz-Pt@!d9ZDh7
zEtl4JUFP+W`=F=81-t9TO1eH(4i>Pyp)#~3&tc4u_bzvoh0aEfe{8#1hU|OKh7RuF
z;l8<cU`G9E`YPzb^T~ruDj44fmO)30t5AB}d at N^|+N1>=h>J#Xx8~y|9NIrX;A(R-
zx3}kK_{z<`<K>SZJQ#(JBqgx*qpHcqKMt;ha+J1`+8MuAOFg`;tnVwGO?vjl)9>ct
zLL&O7CXM%jANPaf56lqFDO-!I%!;INMTCNBu|}29Y*>9URwRUIT5P0aVZz6gpMP6%
zBqq9TYz-G%VPQNtjVnB?6eXa`-gL~qjD6m4^;>kMl(?b5e&U5>@Edz8HH{q>i`_59
zGp`sr1K+QEU?&2hPfT6Z3Ici6UN}qn*NcyBOx?BVq2b+0cUfxLev6i+e@}6Nn|jwE
zc2>qeK|hyn2(P{wNO%9T$<{Z~B3jMB%Qyk)!Osdi?;G at jF_ZP!O&yEP!TjulM7`^L
zwzaOa+9?QOieEE+J#g;;#^1jL%9=0CNn<7V-*dSA_Hk`Zoe>+0Y1>Q~KOciaj6Pk^
zHgVV#CFvD at ZP|LjaI}!j^T0eOC+4|VM23a=MUDsY1?E;SIRq6h<j9<}yPu at P*j_0r
z`NCR!{>Fl-k;3&Sdt&Mzw%3W8RwzN~$oU~H{)U%-j5tJLSGw6EHxextXg4mJ{-_kf
zZfU*cEq<xK{pH|$Wax4YY=<^^c<ebJ2l82lJXFQ^<j29lH=dZ=;)<fqqiD07NOq9m
z{qo4tfxq7w*yxtO`zp8h?9A8BYeWjly}O{u*&Xm_sGT$hX+86m$Lj`XR at l9UmYKx4
z3_YFhFB>9{Ek?OCm$v at w%yZ20uPVJ6kJY9Or#;_8_kKbkfS<+Y63?Z}@m|Lt40(0$
z2 at fps5D1ZrnqZg9+qLc7Ze|v?Xa5+94CqCj6&$@Ly{6c<qZQI!;FY;3rLnwWZOk3+
zbbeOTp^6m1dh4vx`^&~+D4U)S{Na=9qSxn6ZgEo%{GmuS<$Pq>D>?gMOo^&`p+ at NV
z*@vgalD~-bj}Li|Nq+2)C-VDTU;LsJNIDScm#Pz!T62`>HP(3iv)d at y$SGOFo(jC8
zEhaN2#%2}7K at +olfxrUgo7BF(uEu3<uJeF{1CuGLn*JnkH5TmKW%`Uq_KVnpXoYR6
zWcl^aXVQcUQlWd7Ma|f{yUQM1)5Hr<L50fv3XFfpe*IdN?vNRl4&Ir`HI$XNWV@(u
zaK0|}ht&Q(1)<uh)e6_DGe{bx(73 at hs#xmVGOmx7T0&UN5D@`1c`YxGRf1jiva6zK
zp*J^J)7)tj!1zc+q^cK7mOwnu4Gsb4q>{~sSfeg~lLKw=@yAlJo%;-j%EKv968Cdy
zDNH3F?}U#HQekX0>iQ#)zmd2viAvs7CSY;q8Bo>;6HUJWm>>@o)cf at QGWKYG#xXn)
zpY$ToT*_4L?v2|~+y~9DP8AOKI%^J*lSF&2-r3fWgb#M5g72DFygu8za=xZpdBia%
zRt6u at EovSOW(_M3g;n;Y>6AYY6ExU#m1fY<>f3yp`TMQQu<G4Gsw}IZr-mm7Rnp_o
z5&7{?#b-*x=9q)(4Z9k4gq<Uk^rn;aUYoH#&_?LgNxvVP_IdMh*}dLCRGzf(!+b+R
zzWswlQj06^#X!%2zzaf|Ro9+uvpsRt`y3&1L9E1+O7Z4jI>_CEJ5-|jPNJV~P)S2x
z96oucw at IIrHjfN^_Tps=?pg|4Z8V1v+UWLS3?C%~#xH*M!mhmci(CQfm-rWIpU%dw
zXRuJ+DwfMXD$3CM at rC&*h;f;pPNa<P4#o^3AAzDmI=P_)S}NOC6i)2x6^!^l$<uL^
zM{`2eL)=du3-vCH)N|yxefS}-I|BmO=w>{7+U0lK11xKZR2Mv_`@5 at 9CNw6ZbeZA0
zh{25x9*%Cxp`qL3%ZQ;4H^hVYhT#e4zPYrH{|2i(YyWmI5Uobl%B<UB_$^oM+M9&_
z=Xx%it*j1NeOoMHVcd~|*A?!+xN>bmcQjGi^jm6chPBJ8p$KnX;+N#$6!C`^Y<xd1
z?+30pl$KYNjs0<AL^8SF_3sU)r at feMLD93mHZiXM?Id`;TYlLXdFe*#NG_KhbOEI&
z+{1|n+uzE1y=<khU=iof{p$v(*@S}q8Fel7T}`pC1|hN!{0Ceu3KDA>T{N|)M+mAA
z)ZGYcMibEw4(t^luF)@=Q at nVhSII>c0ipU#Qu$rov{`;JL&vVSI3_GAkjB<p5LOU3
zdc0TaG8HnZ;JQgAdy~S{qw?nFE8X~OA039hzjcRy-~1fguzA-{rOQ)U(M5CG#~^uo
z>G|9;e*bTppYgX$f^iInzoY*z!I)0(zO?T%J3UTJ$>((~iKx3k%xOwT2WZ)2ucaa!
zdZ&&-PfB%^qV~Ifi&bvOVLB%^<ofRSjux at aKeAt=2i-PI(}g at 0ZiO(;nnkzYH!|4!
zwQ&9DWQyODxE<1PFCF1&F2}IA3$IBrfIVaLfZWh3T)mD~)$BZ2px2$W7|s$N*TjwU
z1)a?wZuiU{U&!}7d69I-u_Jr;s#0L<OjSm*+gqc{32OAs232m$4%5p#5s|Igj#rwF
zZa)o3GjE_BKtE#927g(ph;5(MvibVmYRf#^MW;*pQ*WC at 13P7B@0vLFHm9293aDz*
zOw#Pqr--&!eR at t|Gfc{ZMG>XOWicRd#^sZqF0<k0kC;K4D^c2*uOpu)hmWqqs;(K@
zt}Ncz>B03W?#}PX{~aqH5uvzHpA)vl<zMwAy8OJ at TU(ZWYRj&Jf$>7Q&``yiFEdqE
z9W6OvVR4IGHI at Dm#XbM`3|$T7ziZmrZk*FTz96rdHTWUBWouo=2KrnpQ^;Y?HMro5
zV7f(XS)q-{2VUEsMp8|R<rnWJz*O at SSmK}ja2C;&H_g4anwnS_%3`gq+bOv50CV;3
zR)Z1EpWB?zz_44G-VDK_zUHxks<2qOL+(P&+rbxiR9$XW8I6D6xk^>+Y7V7ivJ^@o
zr4Q$ea7ger#8?ToXXm2)d%9b;f90n!sGW>I4i;~h*|;9<X}Ds2`Sah8>8{s)k3JM5
zh=21O%k<Hdb^3PQwHtTs$`e1|mFu^f%SKbO?Qi%6{j5~ams|6}N)Ua-{W>n^2V8%Z
ziAlow)FiPN)fVOG_+7{!?9gA-%Df_LGAne`o$>g(vEPu8N==zEo62~IVA2#S#0V3y
zHJQ*Re&9x<1utHURKPO}jLydlF42OFZ^X)^8{NC~Hwql^@!r?YjqS8c&*FAR<;Q+U
zM(NRUNWJa*d!Ik(YOY6o<(=1#L)kp5QGzoSO;Z-HOKKt~J~yjAiShhXrnld|UTRbv
zJ_e~eLX at op3*D;9OTF`;4JA18 at qpR40H<NiXKTb4RUUy1 at Be+SOK$DB`lnUQxz8UX
zdUsns3p9>{yp|;U8Vq9$ET-7oM_*qpIZ}PtU$lU~>VQEwymx=jBBo<vT9 at L@zw)z)
zN^I9W^R;9f+vHQ838A#P>%Nx;_Vk9LG$Uejhj<nxK1WG59zKRUS-=D7yH^-FM-DR!
zGQ+9Q?n#QJnQ(K?rJL$>{C%EyPshH{!uoQ-*1<r at oUH5G+b5W(jgm&$9~W<$y6{f&
z2KV0aZ+UtnB;=u5Fu~_*l8}p#r|0lB6xLIQLj5BR>tk8pX+0{A!i3S`z34XYdxP2d
zpHPF5ONB+PaE at TynMtMuMX}ZI5o`B#6^s6izZ13*CEODJ;JbD0<wTHFl!1&U at y9q#
zH7%Yob>Ivi?MJsE5`|c9cO^^egQq#PbDP&bPdM_o?JczU3e*`x1#aCOl4=(H_H;K_
z)>umD6-Cw at HmQeSi6%M<T(TS*6tc^Gdp$n(CA(iQkJTL?h}NImr7VerN&`gMufNuZ
z#uLnSB~g}BarN70=L^ErzJbqTlS3jnxY!$xbu;!#|3+^S5|>kYWSVncy#L_eRg>M#
zkbz5Sc#8c%wb;GA8C)pqr<A|^#7U>2b7^E;-SjQg03pN(-yJnQtj7JY<-7S(yD}1E
zvpQrSRq**zz|p4i^Y0M4Cj#ood(Y;}%KS97LN-eElZE1Ldf5KDayy!%$8kOy%+(+G
zR`X$vtPh8;)p?8p^<V1i^R^%S0)nGgDcM at WaH%vM at t=ip$3M-pzSW0)(#*ENNDDhV
z)?_8eZCO&2lxXSpN5FKip6qaWgvCAN at _3v`V;Fnp6E4><3LL*gOEsh!^JvoaG4W;Z
z)3Hk}b0gQ^n+{)#4d>o?CTGjS6~%$9!pV_h4;3EqX{FI`=zxT|br^(E8=OQq_eI=q
zlen_S&YIf8xcub7h1^$S&u*5?>1}r&{JIIQVA#8x8)kW?L${_ZvuSVkNI+AUa&qB~
z(}&)^J`WXaBF(qgixX$P_bzXL-rl^ZUX*yJ^|^@63%20<p4-~byTqC(cod}PRCWUt
z<@{hA13A-{-O20&;Z)y}rP+0th854s?*yM$;}HB*h^}x at ZmnPM;(Ab7)nH#;9^HEW
zm%Dwh99LON)Tb389sO;^b=kHL>mDZ_RJ%yW3g!%qS}$15yCAuK{n*fDzGCo$nRK`p
z^_9V=44DjJiL(J;DhVh?ll2ger~u6hDi6pj{27 at gb$=LqUv)@Ur&7_ at USgo0<TE6v
zps{U~U-)+(?tVrVzk2TGMl#0c;75P7d-zj$p;jK>RB4%7eUIO$;DdwKll-gc&4dGI
zk)a5a>lj{L+Z4%QM`QJ%7PsA^HxgR`)i-Z=#hVYbQ{K75uc<!Adu~e}M%_Owti)t~
zoMvFZu*_+pGuvLLy!K<}Lyu`aA?3*H_vlL7aYXRq4_o`8(WP_yT6WUysLS8%ueA6q
zb2}NneQTZ5qMsup>8Me6|8tOZnWap*mu{{d>z%mxi5^N*gLBpf`jU|Ezj*k#0}89W
zAJ|n!_tbuhX^&>SGW)@;n}3qeyo|R{Fvo^|TRe*4A|-c}MKyjmbMdUrnrf3^mbOPv
zTb8&wLi`Eo(p|Rvjgbq?9tGA<mOUE9cWuSZs>RKaPoq-3N0_&4^)oOT<xC$3 at cr+7
z!#{>ymWO}tnzr*^_Hf}gF!#9s`Q6$psW#1NA<5ahylI~=Gq@{fEXdxLe`QhTU+0)`
z7&P?BxCgoSo#$rAncYuk?V?f=Bd+|dSnW=b`uld#)pubi8tJuG_cS@^q9_Nw|JYbn
zHc#b_YV<{Y>!liPA?|G{$HTtXRe$BApR?dsF>2*ozb1qZJPP5ebzQA=0dGwA9=<G=
z=MoVW%DB_N(D2{}vz at ZN#an!P1k6f)BD_h}&i>%|E=D51dtS)JW!c&=fluw{>p)ut
z at KuSd6ET?lC2XUl@&cQ-2&FgmxZcU#*9DGcJ5!HJNZ(&B)J%N}Xi~4~#jKX>hNa}*
zSj$r{cc=`s4v#S|oN8B5S6NY)L;M&|8f3d<j;M851ZgC53<wNy+SxwPTl`}_^EydW
z^XBnjOgY%|XPLWTu=>^~4h8>++S&vfrD()Wg_75lKUSMqX6?m>XEAo2ziK&@y%U9A
ziblq5z at JMeKs0H~BE>K85ONB!5qFw3a((vh^$l|k3JNw at hIohzGTqjZg0>RYpFb4)
zWg)sdRcWaZnQ!tX*>3UHD870k#*BFHPW4!mZCP_*&9hV)<=cvc%n#DJdKO|TlOn~a
zlGx{sauY5N`MF>bl?U;4OE%|@u?JWgH3Qeib<&TAA1~DwjecHbNb!gZ{U+r?nxBKK
zi=8unVfVCbdiGONpQkEnc$jYm1wUs#DIJWb*m$Qfv at -fhZrNlCU%-qoNDn5w9xiyT
z?)~w=RvnYKjI!jA*`B)nb&;lO(cil4 at -*(sEpHNo=d<J{1~WI at 7ZVZN8oert5!I`y
zW47&jyb_r;-$%xNKlT;AQ<Lbr!1|Q4`0m#g`nf%paCGyPPyCkqR2)(@^<q6Pxi4MN
z)1gjFewVw|_|fn at _KRWyI|Y&G2X~}xG%gRWIdVBkNo8y02F$(=F=8QlO$vHMhp*{*
zCQPjVrS!Iz{$+2`_MJUL#&x9F+Sj6u at 20l)#kGEc-`#7o!T3+|{+2(3)?KD*i`48%
z6)F^-ckCnI<w at Rv@_DOY3p?hYj%cMRN_(~1phWv)>r(N>BsL0<_omtRN<H4iHQ^R`
zU1Dx!I_GidJn8fKn9+1jXMru<HfFf`4{OcKD5j&wk!MuD_pEA(#PnX-;@ff|y2j;+
z^YC0A-|aiFI?L{ifs9YBU?CniL|bT?&$PJfHgFdq1|43QBe=!NuVqC>h_dyJw at KoY
z%P%gb-?A5Abo5b(1?yUVu$hf|B(Hskn4uE<#f7=r#Yn43DasqlSu*gcw)d;9s<$a;
z9=n~sua1dIduU%J+{)7K5s_d?O5R>rT+!lj^na?^mU?T_A!=f^V(oW%)LO7n_`QqD
z$7h&);)-;^SUQitbV3F_JJa8TWJ9_+7L at Dnl8mb{UxlIWaoN{yfubL^87}`V9FQH(
z>HB_pptb=3G3K>9zQVQBER<}*Tx}~q{S3clw61cL_lonXJhvjusM4WTZ5V0vl4?JB
z5uIE@)0_S}9Vm%6e`?c6dOhpNP!vJ^8T3*_B&2~0vc6yz#6B~cz(G?SmbiZL{q1w#
zF^_33&TG9+s!|M9UZ$wg>&l5fGx1x6xy;+ubLLP2`xjCWIB#i6D66;ea2q){6k5e_
z(X>Kc(k9C4!g%uQJ+E(9zrE|L`s(7i#ZzDU%>%K)C^w*X#WpdvrhfU at dHvqny};WR
z!8aZ(-=h1hy!Wygg_1mv(9u0G{Vhp-V$!1)6SNw=MR6<T`DYVjd-L7{qd>H^Tdib&
zo$M=i7eI1jK#e)+%y;MB$cL%+a5TL|ciz>*9H~gR-sKUT?;L$#u}~$rL)Cm{dCKe;
zLGV at ipx4OdbxPs5`x at M?EaRUGHF`VKE9-D9&kOdiS!=j97Hs~^7zy{_(N78cF0g;O
z<8Amh`=OAWx%_;4U|p^7n~uL?UEd$I3%8jpjHz)JlM;@Nj&_a*+pK7LgQ at 1%UOo+e
z^n#78I;ac_LcE<)x5%e!Gg_0ki<DilV;@(|oq|@s?Wd_tz0YCTbxFb;nd;b#6(9*7
zPhjVCLNC|YnHTU-O!-`>O!ne452~kbj5P6;zqQFbMjiCIqCmFe8I<|6OLNx(PFaL<
zhVk}sSX1a<=Z%Ht_N}muh2KBgF!e}e5i-9cHCrX~foI+`UeD<C++g|xVVVvQ)RI17
z+LmHe8GJL{jdg6zwgRO2i at 1|y6LnXez at 8rzUled<bO*6&z#d)>zut<3-g`1H{97dL
zLE>WI_RS>p!t+aRk1AmAp0Mf(u<MDUXwvAqJ(WEmz3CE*gQBpfsCA$F;@FCN4pmsX
zkK)yPY9ACVkUZxe1da`F3P;{urf?k~tg}t?^_jR=!nFljz}KJOML)4Ctd{W5r!tI?
zfBjv=T9?tB=IT>5KgxMM;ZGba_bO;RG!jfK!_`P*QdY}#x3dJ7X&FFTU%O}xg4N>h
zv#EqodaPaE<nX~$)gS7_XP$g{ru8--1oFLT1kt?{Hnlc$vw?_haQih at A!VR}(W>Kq
z;9+FD`|Y*<Hz?}77=0)X9KWEJb8~u%O+P+X_#uD5;kJ<I>0b#mDdXBz$mw4O4L<hR
zW~51M`fcgk<^tUC(P96V$muW~0~9R7O8y(QhaKq%Z`ak$Y9zeCEDmcQ?44vy^UH0_
zDLQ~1;jsqkqZ1(+O>?$7FbVRbB|TswPn16B{Pv7kOF{e4YG?*d$$WV57@|YG5|XQU
zs}+5WR8rcWkrdsJDxJe1h4!P4&Qlm^fuPhF%js1)i*v8t*Styl)*u<yQTa4wQBlM<
zos++ at C!Hr<_CI~&NU2rs6vSTDx(+ at Y|7w)n*;T?%I<&zg3p9xi&BhA0`Z)>q9$7Md
zgf{3uyY_k-qoX8>8r|>|W at 80*NP!y6pu}6cK&^c+du>{EY0eW@#YJ((5Gp7S`Wz+E
z>3LFcY+6in<E+$Uw<eoRiOUpOG7VHtzM+${UA&JV8-6>GMB6tj-)9kS&AO0R>&Hv1
zpq)vl3mX=(CN0cR`id)OAkSKxOE)ZQWiU5MfB}zj5qCNY2kdPe0jtL4{kRHA*;vce
zq?ib((iRnskVHG`E7x at ZW<BXRj^2=!=1qETkm2U4;l3EF_bmJhI?u58&<L6JsAO+X
z>M at 0ts3<OiI#BMqX8dQ&h~j_&PMKjcbIrB?{5xYRXi^28J=t-v8mdWFSQ^E=08ZW9
z5qJ6vx76t`YriDlGC;+Wp1~=J7EesURum}64)iiL3IahkDkhBzu;NFznm89#9&)1D
zU=k&KNJOwh0~I?f7 at w^0GAp31<SjDG;|1GWu~v50nb^*ZcODzq!S}|H9YI*yp!d{M
zM02PX0o84}m?goD{(SS3F(lZ11_F5{ANA9|m<g)YO%J%~pDU1A9rQK8x>=9t(26i>
z6mWn?fZJJNZa8C(IPy{dIflaOGvFn2Ay(Ex{DZ-XSwU!_c+5Nfj_*?vEMD;40+Fes
zD^k+E#VP3HV!h+Z*dwlcIU6*1wN={6y5}}WCS>P&ffQjA!hru*uUw;o=7MFsuY-WI
z529iuDNsy6xKmm&i{knRi<E%<@Su<95__CZVpM-PBYtwS^sg+!*RFXxlonH3?TezT
zHa at N-pI?3N(JDQOSi1M!D^h0U<$f;t5CUGHBCTGy>O5TStTiPO6|HV(`s(HA^jR=!
z2M)8GTeF*63-+nr`&GLH*-`KOffX<DhB;6-jIN=mh=ghEz6cN6j}DdTmLcd<<K&~X
z`RqYM?1 at nL9|KV-!|9}s9A8=2*k9{uF9Zd|aK=uwR-~D?`|{@5RS}mOz7jfi_%l{_
zLnCiN#Oje*bm$mr=*HAJm;)6mmqt%Hf;D`jLLqQxAJxSzH?ka5+9Sue21fBhkfhG>
zP)1 at K-DB(V(usphKMr?`5+_EIdRZi}RP1ZiC_~mxjMRMR$%(_RPcCMpVY>E_antUF
zhMLs_BuR`F&l*5nlUA9!ovQsc6ol`0p at q@|Mv^ABom(A5)+R^y7Uk!DYJY!E?|#;@
z4J%&e#Q`I{vu<Qw?l(5H^<06KU$uL&C~kjey$h-GrQPdI%2&(yWS+F--Vo7&#+dMt
zsLpZ`a|L-IasU&$u~E5+JuW4|cA@%hcQ-&NV5dAr&Eq4G1F$#ej{d-7Fut13!*pE9
ze3!{*_n83N?+mK_N032V at 6bMH)SF0~jf+c`X=zs1YRlWWU=p~hj_Q>O1*K$lUWuYn
zi5A6o>iY$~$8;cQ(k=}ivv73+$2)UN#>R|sSFzZ^*IPelzC4b&grV9{d at Ymb`lD6>
zC4=qD#Tz8hp@)aqP#pssW9cqXL(K9p1)eZMk2Btxr6XQ{gZLPvg`VWoA2P6v#8Rb@
z-Ao9luTzw&9n9ki*J{woMdfBb`q?krg|q~ws at i~$hmQVeR=g1)^E5~j`0TQ5DhSm+
zZ#%8bA~Sj~uJQakFQ#e*R0b`+nV?YNfBjH3s)zw4v-=}7lCWqnVA)!W4~c0;1l!l8
zH%5{iNQK*d$gGMpP$ipqvARgb-$l`T!?Io0m*j6;f=wU~Jg$lE&#vRJUOMpjwG{*@
zK9G2_B7^G(Zp2Qp1a8Mb$^};iE*Hs+FOJPg0u5Gq*s&Be^@nlhwkONOb2L(H4e+D`
z$B=`XBTCeY2I3;66>y=Doao;_kR-aW^s7~zYxWZom#4Z_C}2E)R&8p%9BMXPC&AEM
z9yA-+iUx(u5 at L520Owiac+<GkLEbxm+>k1~0=1x at UPv0$AQLocoe~&kM<KKQs1t;0
zXYIxKwV1)uP-2vkxrnroUxgDA&vQGE3PdPS!YTUDTzx2I=0KL&c(O~Q^gCNKII9)>
zoU;TkEuII-m%Cr4CKF&8UaURA1e*XY<YTBh>7k)~?|H#JSq|}F86`@qk_`}%@JvBw
zfbkAkW_$Cn%yfl~pOBGd6K}_p4Vcj`sjgvhFql4_Ux>s>9)B6#^ix~wKux{a(_4E&
zs<+5j4bzT^1_4J4uYUMJzy*q#DX!cI16#pqP>?{F7Ues!Ki+XJyBKNMko=^@85$Hy
z1Pt6BMJ1R7mK7R#Re_;Q16(cN1x%3g5F(>HY8HM>vIz$hqge>6n(ZqxaH~nS#yFDf
z%Aa7E){S{_ECV#3`Jhe6-hJ^;dqpJP&PI?qNxe5I)wz8?mde%hB6=v*&dRB>?#sQ0
z%S4<yTYZ$?eT4WHdnY$^gx5wx6=XP21#Zzn3%V^16<x#a%ffsM?~$_hleOF*fxM%b
zyn{_VBnEf=taD&E-gGFW1ZtSpUAnOs{4Mnvaiz_A;K*UppQq%28ahcyoJ(!8USdag
z&_YLsTlbBlyUF-U!UEA;x^9V|$E!y!IcrV(sRAKLje6;qT_gY8u&#8j?vd(_&qb`$
zp;LK4eZRF?lL-fL{b;`9UTufDlLAbF4B2VU0_kUVl;2c+yf@?l^18Yz;Jij{6%lja
zGP<ne?g)=4jseG?m?7zaO@<X9%u?P88fhwGz}$q3vyn_PuxJ)^Ro%EXkPaY76-wuH
zPS{#HXwbuCC>^@`?1O&x{0Rup0<I?S`9C at 0J#!(xZZ8y3pYpD6;)}e)Dv<ULG*c(6
z0Vj}@$XP4T4`k5b*CfhEKoyG7BW=f=-tgYHT>Sj_xwWVF+2{@38eseNOH8b=8E;MZ
zU=5kL$nGZ5u|FVu60V;K`s>1f5)dbv!ixOGzc`2hp#_JWr}8FuLJ1f*+wBsA=9#>@
z#!wxl?S4lI&*Z@?j6nV(=QF at Ik;7+4VfRT4%g6DA4Wd$5%G-4Z`Mjg%yLMU!9Mt&p
zt}_1%G0c9hM<lE!zQcn at 5f{M;Ui-!Nm9ey)6<^rJiEemE1wdo};EH>R9FjDNL8 at R2
zF^dM+1^B?5h8vsd^ZQVk78V(Uu{2P$FLGOb>oWDghbL5etara|*k#uqY&FFRwVV8N
zz3{0`N4ewI`WRx(4<!o|{iPR$;rvG+3TRRXzq3G6(=b$ij5AC*IWMhhH-!G2vjc~7
z+8`Hq^d=>K$%hgBc?{VYT9u!R=&>L+k4E#%Y|Nzd0XI#J!rS!z1h<t7REHL2*okWv
z6|cF%mhn?6b-4Wb1ylW3BI-Rq2-*(qEKrq4Afiq=;{8Oy>(N$wL$Mr<N&oikDaRoM
z-%MilhGB;Dn_F-5o`$~afa8qcu%qD(RECawt_xZR>xBSR!gwy&Roh`?yYeZ#H!g0~
z_(d5qKdFA`{wBp{B&f#V_F_}S?uCe9X;BemRuKhCYwvdV(cYVVxky>X9?ylhkPPRI
z;~hbvPYlqc5Ndq+kas__kpo)&(QD{_lSe`W1+-4|g_hZfkBhhXJN2M5V3{>w5&$S(
zTnV~ZTQwI#i?>7^F1Jzx7(z#mi~R;VZ%%ZPin_ZpTy)wqF1$&@8Q9A!zPpH=dBFf`
z)XoAOv0uJRCJyl?W&k1{NhFq25*_H9Kr)$2!a$TpD529Ky6%R;5wJQn!0rn>1%|9-
z_G5c*WDW31jlVU?HazHl7FcGK3kiI}<h%yC-vh~ph85<Z^{~<1=VX{<_iFaUJZIjd
zeVDv2MOZWlm{rp7<BK%cQO$pr%QbO#qo+abD8q(QoqcEQ+8rL1UZb;`^w%Q!z8WAd
zKmSHo;Ethkk4<gqe>6)5KZq#^&oiH2`2HD~D3^9DAm}ByKIaKUHg3N$@@C<C06mHl
zfGt(i2v7p-ZAA?}!c$@m^7dXI!^D<u=QjPc7#d!j%3~+3M1nZbUY`K0z*WV#05h|I
z at nTTTi0ECy#GY-jTl2&|%Ds?@%mn{|F$)MUNSCJP+1*s73w#OSFA)6z)pddSB08hl
z(8s)h at qqxz0O3m$zf`T(jQY9`JekQz{#9u;RC)BO_2y9f%9U$7G_avymKfvvmgeVA
z?{p?Beu6|`f)#3IePMt_5470h$isqRY3a^u0zy+t4=n*8Wgt`3vtax})XU6Py~rh<
zw2sO663i7FrR_$8rMqeTb=8ZJ={G_;CQLZABF})UmzYNLMN#e!@pTPE$LN@>8nrx$
z7PZgQE3-^6^6txez}}44(_ue-a+yA*%1=_ at t4Zzy`4^l>`|zxn)W47u0Q}3~_Vq#c
z_(A0HlOUoruAs3anPlxBy3?|=?zDpip~!H}iTeE>NIxG!t)~3Hu;j6z+>KJ<I15*e
z%tbiJ+jR10l~mBi7A@)&CJzH)Wg*>HAsb2P;pAOQLm_uCQ5I at X0Ez*icsaGm`FKOf
z1_)n7N0dgd5fZ(w9x9 at DQ!@b4PbTUV_-SX(H*8v5&{CUlyShl=GGbQXOU{L(5|^KJ
zsXfI>N7^^o#2bEGc3jf|k_N<-5|3GZI|vXBwoy1PV#&VxlqrC$=o7io+H}%&u<Z>+
zIqn*hsWE9Tpg<&NULb^sjQ(G2HuPUA2gS!u@?Bv3&oAvb21haluP%k<C!q``*}+zy
zjNho8CgccSv?3**i_#lzH+o%;oQ23M!6{@s+yDo*Wz(V{+i at h68pP6iei<vRIB4}O
zy1PRWK&y7Zh~x_AG at fRBS68GqPlM_7z*Yc541%@i^(d?Nc!i{Y!h{=Q?qT4i-GnPH
z<hrCJltL!V4Trt(#;Q||0hOtM68r!G_#d at 9Yk+r`_by^Fq!!Dbk)8iv8im+=Jv5jQ
zvD+^D%s_Zg_69l}n)DO6Buw6x;|jb(H8eeR*Wslf$X9#x;B;q4+*AoBCGLPX6~#_t
zkxfegdJ^3ccaaA5V&dA<<(D}1>d1>QH^6qGlt8$UkFwl_n=-}*_i*Fe;#8FIK-Kh*
z#gRmSqVIr$NZ`h6G*F$?V$^cYT{QrnmJQ^yf4LjL6p0c&Si5(v<$v5E1Dm0+1xk1_
z at i{HXh#{Pm|HoU*INsck5B^?|JiV2`xK5y!JZn?>5D4Dt=_C+fCtN?u?Aim;gyo0m
zZWXm^;+6nn+Y-LWc~Cr~eL6%5=7z6$*#m)EPr74}B>8~+Mh9H~O2|K&+F+1ozzky^
z9GjweRqa-?T_8BrGZk@>!Oz`I`{0)3lqQ?Amd35zM`|!Pga$d=?{mZ2SEeSt7TmIJ
zW*%Ic1{GL#6g at mi@3~P*gEpw0#%qO8M;n69Ro;upPB}jDn$dC_!Vi>A)4W3YohP4B
zh#5sNSQ^~;%8bJF=cGZjoQ=<>@#3Z^QI^8I?Kv{YM)woxn5%>1)|ptQmIiF$DbDhv
zchl+f>07PS8du$O*P}9}wmhy#i=lZ{-pHVfNK6$p_~j5=t?P<fCJn3vhTAnXk at NpK
zBng4z71-e5VYC_r4MgF`%KSojz%tPi at 6_3R3+ulw2P77Wu!{ma1MH~;a{!@67sY0r
zFqx?)rI_Y=8)lT{RqS?)I|WJ!OEm{>Qi?fSz0Ui!?c{3K#2WcdRnvJJ-d7n@@jnl%
zkrIQIHB)%M at s1)QOta^Getw<3A4HJtQu_GL{c4`g%&j|&sOqb#SOFL_6ih5pK(&7g
zalhZlpbnPNVugk-leXSCN&^6Vn)4W-LU|Hlcy4^rdK4$lPT?V9=_4BO){!V^IJrm>
z at NN+p6&tx`- at eBs9-E_O_j47q+BDMt9!aXlVS at zmZ2*j5xAm8_9C869VuQ`Jbx>Uf
z&e<X0+#WyJ`RUKWzDI5~qPdCPW}Ts=wja10|BEe0I<i0HuF*j4U<`o1f-ztQP{gX4
zU5g(YtHlT{oxWmM%LR#(`4?Vb?^g$hGxXmL22@<~@_42nF<rTQZv*{!_I`BrNDs<0
zv8panqt+jxF<S7SvQSKz0jMtk3^t at 7(&02cnS4mvHP6>yi}pFHPVZX`_YC8(W8CB?
zxY4^1fcTPcAFw at 1N+Ka@5W`kM8YD%K3h`fS2y5>B*@YQRDqKF)Xsftcf_5Y9a^zvj
z(vK>pOc#N6M_b~0YX{u^=}JgR3~b1iKK<=_A6wL}gH1e`cnP>v-8(m7zA7<wuT!g@
z^HznnRv}2YawaGSS0hTs?&&K%Y3^6yWj%aQQ|+^swdAtEUE3nK{#Ft!V<v>2RhX2f
zv;s;jR;!hYx{}dPqkof2i`~jUuh>j3e;vsZc9_vu<Bbzsd#J&VhZl`x`mQ&y{NoPP
zK*;@4!l_gE=Jt+oLP*Nr4e=^s#%~$XR_A3R)Y0&mXG!*Bxr(S3$$x<cm>OqXM~OH7
zV$0K*46(Nc69-AFdBMLbaoBy@)U3%@*uv!)U=Ra2!OwtDZE4PF>jTEHnyH=%oUK6R
zj58B4dE>M~J>>v$ApG*%LKzHIv*IU!|24Bwx()C=_&MuWm1UGuvW+%)*~oQV1#p#g
zn>RNC#1s5Y!>t_2R at DBVdeeqA>RjxhB&Rq}R`jfvwRmT<V<7)Ha5Dftk7tfUEO4!I
zrX^a5yNa_KT82Z(*i~0YJG?q&*390{3eEU=*>~uDgeom at SrbM0?b=n<Y~sE>(KJho
z0?0{bpk6h==uk*Y@^ct(!<kz<J9I?OPe;_4xk>lUbKx^>_Kde=nkO)(W-x&VfjD(;
z=b`lJ{?xdYT+ at ph2GWZ1%d(cSuAQK21LidrK>8x1&`Bu=q|~h!M6{%OQ+^}hV(P8|
zw3x28juvn7`=QU>q^jlR)YM|$Azl?gH3M!ffHB7r=g<bt_nN+5&-v<;YZXEt!`9LP
zXCk8hE*kv&+{O-75mxpBpb7){fSwhf=|N0gRCI_lEUh3^c=_kRSn<rrM$SMjqB&pT
zoFCjgH8Y&b?x6dBD=7U7a+QZ96`ZYB>)+H at +?=dd^q2oTsfYW2BeyqlcSZw4Wr$NW
zZ?bBJ+r+DZ at R+2&&}BCMA+{)$a{#kS<0XrHe&-`Z(b~R_7Br|aq{<VC7S5z0IFDd%
zY at LdODI=`9A6Wg)-V6B8ja)#1q$Kk^K<WeZY#@MuTm_`PJG(DJ+Ru`;NkEA}W|3t|
zat<KJ7abTFSz-$-1h*(*e$ATAR{72yx#;=t-X+HZS?*+wrhwXQXRR|uo6_J%f5i(j
zq73Pct6oR+$qMxyYB0uB<?zkqtcJRe#I{XqHiD?oSjR_?maB17c?UbIbIVb$YyRFT
z6^?A08QdM-6~V6AY=40NZ15eT&nGOIQhIOPQB!gb;5<77!kY!eQe3AXtGW<~cN~d{
zF5?A?I-M|5g;Z(#YI!9hT^D{N)}wCwa8?nFPmr218?WP}*33^qC<le_9O3!VqiarU
zOTC9RTGOrSEY=61J4ee3sRbGMg11^d+{m+JnLnA*n?=gtW$<}`!+tBMAFhf<{doyO
zhXgC61#1cX^<xZ67yiSr8_}<bwGYnqAQ%ka*x}w?H{IC!wWfFzIYH8cK%6M?R(oUR
z6hs?}a*u_2HafAs*U~SP8%8Ev{DHjquK at Zy)WWq1k6U)YVZU?VDX_yC16uJTk264}
zAzOUbIZZq?!Vb_b2w8OAAXTeidPjPc`{pdhUPhFMFw7U%D0*RnpfWtD`5pq%0C at -7
zy9GzNO57p&HB0lVv&{(H#J;+*`4MNkbv(?9FH+1{-<}jjWw9!y8M6X7mWR+{V_gH1
zK9TKfzkFntN=xJLY&dkJDSwE~p81I->*{DNfe=lDQcH6l%6{1#6$%h~YOET_8y*GF
zo7256>ogCO`VOWvQC$kC8rd$O0<xQd7=HYc4yW&!+5?Kuy=L`yQ~45?4_rPFLLvsp
z+7BSR1C0tMsLs;GjRU)pasvr~ZUNdj9r`!d%f_XBvYJG$TF5>|W;Ihg{9|n7B~SYp
z6o5v?n}sCJ63f0v9JHk`??*HrwAEx;G{3<+w65_Syz~<(nTcz3KQmfYpGnrf$$U--
zgeOd|#r^2tCgkY=RF0KINtF5m)SIUe>dS;W>CjFnpWDkQdE%bgk3pQs$L_Ret{wX+
zQKH=EJlEz3`xu-$wx+i=6=gT02QdZXOaJO9-7DOc{O$a260#8Oe)d_kL;HHwVgqgp
z6DxOB5d3MdNqYDx_Q9hfCX^wFFAYs${hu}IP@^NFlXlcmRun{@g2s|Gv4cyDP<O$n
zy<6u+BPh^tXO36 at gpyw`aS`XD+g3i>a?1JEY%pj>e)Ew;8wjglO~uT{d$-J+&;Iwe
z%4ktQtsx}1fm<;RDl^EkAjRVdFbJ6gB3Q{8kZihi`K~rf??rCB4Nm<aEG-qtxTmJ=
zpaY6{)K_|R?J668-+sQ4Xt0(0Nv*$S_I&m4K?;18F9}X>)qHkzI*#Nq6FWy+ha_3S
z3THs#6sR2zm;|toQ9C4}+rEZu_Dlnb%DU at -t%CWK<1K+hCnd|=bC?7~r(^(M0FD9Z
zt=BUW$c3&9;Ox`31<*P<jVv-1oB)X at Uj+hz#0enKJ_EYQ?U>r at l)U{nH~{RDNY?%D
z5CHA(XHz$kD<#i6Pxh0?<sgu0N|`W#PBfZn|MX&qSvo0TmT191^aHzT_Ijb1f+A0^
z6d7|C2oWZz3dklQ0pNzf|NjJAn*>TgMte@!P5^l`qmQSl1wVnUfNl5k^1tf13m;)A
zxq#c}(iS_rAIf8t1CoI`-07Ih-`T_Puwazx!X8^)RPz?HC8{61Es^ErN0L%-Rq|1A
z2X3uIQ;H6JW6Sn&c+4mExJCvqoB*%`_WsbFna+)&7~$HO`C*S&LsR8~!Zlv5-T@$d
z9k?318IJhYueciITl+_Z8n{T*)lAT4Pmn=J&R;jRgBX@)M+Yapl$vZ3SEg?5v|Ihf
z^vIE0GgQ#Yu6%6392Tv{rWvGZM+)%fYd?DiXaJ-EW~N5*frt|ciU(LO?6LN8tW&WH
zL+K)qgWpbzo0vL~3y504uHV+l5Au)Y_H29Q_Nqz)!2ho%nSx4ALo1QB{U5D^W35y_
zSM`uJ90usb1OGb4YGmU+$s=?&SI3wP*@H+DyF>hlHs2aeXjZ^og9MR=!rq`7rwOGw
zA+k?cynuBM%^m1~*fC>--qd}Mw9J`b- at _Owt}oBx#~xRCJOTqEpjO=tG&Ugm-#F!W
z47NPz4$T{z@;{nH>o)kCvv}^gGRc7POK$X5T<exxyYPrv9;lKL3J5wNrFjYBQ&tnL
z(@Jx56~yWcch5iNQBs5lTV}(y0gGC4b+pP4x-Qqu8qk=R_Pka5?jvYb5(uNNBS%N`
z`fLy2MnHj;cilY{2FM@~3l*8KyLA73H<ICrn02cA;uz988U(aRgJd((*Cv8YDXc#A
zBP}U!i`@jm3(#C0dW(bxR at xk2e5LlWuB+xswL9T*CTCj}5DyxN+*~akwof}7OYW>)
z)xE2h!3u3(ZN?QFYUlPErv2B1$Vr+Pi8@`id-ZR91)q0yiZ>Nbag%_tpTOGA_0|6H
zJ}va+{XmM=`M{FNxy8Q^9~oSW)J}=FrGb`?eq(^u(s-OUFp{C0F0mrC?Z6p;*#bia
zo+n)`LcC9- at OBk2`!Z1L{pQ9-P8(H%C3)4uE}EX<zKf?*cIE_ox^W<0MXsUbyUea1
zQ=pF-m*-Oe`ARtUO&6=pv6M4J)rbn{Qu3hTNJO&&iZuX`O8$7e0JH)aM2Uxoek+~K
z{78K|#Gq}|Acm?iQ=*0R!w2XH5p#3p++W`aSoi}XcTX%SA3O0l3#_T?1A;US%5p?<
zMZ=M-bQs1V#7EN-#mSP{AW$}61MZ<4&ekzA18%7$<FtE}#e$g&LdlPr at c=3feh-iV
zj)Haz at q5)7;fvVgh{Oo}qm{p4=w3{WYvSoz7isZTtpl~Von<A!DI2|P0GtsWaJJyL
zgos_gis{PrIr_Z6K)#-fJ`*oXgQDgPUv!<WxxTWoWO$<EWdi9^oaXkd+1psMcI$t(
z7 at Chn9BHBeU~1|Q4L)&<vwl^(T(f-~Q$&r=RByzlr;NWRM6`2VooFr+A{Uy(Ye>Yy
z$hbxl!K_qr`zYDN;3uYtj-Cty2XQL4IXmODS_nKL!=oLPS7}kb(!%7ihbM+23IRkS
zBRxr<6>m~n(y(Q%GV7y%Em`F<h}ePSO)A;N+vIKlf+FW__r2=9FP8YSm2VrGI?vsC
z03dMq3bLn1)fiY;%Q(usQ&2aktm-;P-~vpKFom^O-3S4Sh{q2{)e%+#p`i{{g1`;n
zjgBGvMok5 at L4{xOz@?@ZS+deF(=(sJ?HAB_oBC%uARDV_2d)cD0#b_MzlTn>0R|L-
zFYp!k%YLJM4h%mJLTMoA{UjW0uRLsQ5X at 7!rNfBAG*LpebjXAi&js>+tr6heIvNhm
zP`nH0^Uqw5z{E9H$)dWz(9S}MKhhV>Ew#p<N@&^jG-9FF?)2HgNm at Fmf&vfP!0$tE
zBrjOj^P|qRsp}c&(zB7Hl`mxNl&nk2Q{d<Jl+<1)ihBn<Zw6WeE<Hs;Q~(B%B^Thf
z|DSFJfR)HBz?eXM0haz9RSm|^y at c2V<btosG_~{f?iD3eMGr*L0vJd>5;6<8$d6uA
z5=Y%_0$SNOXDLvz13_HqWV9a$Wo_hX%l_UFn>nN4X3~`E|I2DJuShhq1DJdUVVhs1
zejy*Bsg&WVZv)5smo7$Zk2}S1ld)Xs_C4y`C&wpJqG9JG4i5?i!&3a*IoRynbSMuq
zqmPe{M<W!c9a-gQQE7bjqBjCK!bA_~f#U$1#~>S5j#vIV21^&J#eK<tc?Q at h1!@A9
z=dfPIZ%s_~scSr5-HYtM-8w>WnTzy^D1H0Wx$rUzkpZTauU4<J;pDCTzL!6C)Yn?y
zCt at I2xz1%F8ZaW*+b?DeGb=83?^V-!wavZfyMv2B#ctL9B@%@p+3bexXkHXOppgY=
z9iD)jif_s#qJT>EAgb|LHlQgzjgAO+c^83HnV$Dhk&5BtbWckveP}pBZjbZc&YE5!
zln=I6`5}SSi{(Qb5VMmb-yodyo7GBZ`|&)bB=he2^rCHzA}(?{l5X&O7+blEv^Ynn
zG;d2?rnCq27BYSJt}4N1xS`gmTztM?AR^e3mqDBg%fCYKjHO~am+v at K1AboDeu#j#
zk7DbjU%V-i|Me?cfpRrcH(+9$;?zzuqNvP;TmC6%tBvjCWqDY17 at +3>O~pctsBq2N
z8{RH0hoDHdM$`(MJ-C)U-C1W}-8EE1X~}t`5WaSj-2!*|cpt$R{`5~xnB&_ktpH=f
z0o_`U?D?v#g3(8FgMoRWq4Y8R+(17-7v``vaO{!O$^%^GAAvj30B6}(fwi|)uQ`~F
zkM at 2`mG2TG*|^<lEiVAp`rI6+qRv9JIXCT-J at 56H-$?Qf_+j<#6+ku58ijtAz^T{V
zKr5g=lCv{b1HG>Lurah?xhncO(6Me~0VZIBxeXiGfr+nymTB&4pC9?<pge^jx9oX3
zs6h|0rih&lz|O)pDkt6Rk_W!7t+OVr<VLa0J#wSCFBNDMr~efgddMH`$lb<3ZtYnI
zGt;2*Rc;Rz_5kw(%}5J>O_t$&GXMJNSV0Zs5?+qe>s3`AHWeN)tVzDEz-ua3nRNm9
zAQz_op at Ib$M_9<r0RaEgdq-w)5zkNM&{Gyh&RK*1y{^nxPj4OhD{=`7+~0p=IDuk)
ziI$xFf&T$0C#S<xa3HVt-$z#e>i(0f;kcE!+Ea2zUKmkFBYdwBxIMti+tx)wJMu8M
zn7i$}UNDJE*M{r&lfTj~@QO_ej3(3tGGEOqaEj3yJWcV2z}F*TqQH_ZYwstn;omcn
zZGeE(D*R3bgb7}xAbP=>25RJBSgRmP9=P9;I6v`zYeTUn(R~rOV%6FUJYw$ephhV^
zezR6#k~{n(pw=_vj5u#kM2^z>EWACewbow&=I}Idpq1=ZF<9U+1q`(rmu31>w;=6R
z6CN0!Rhh^GE6em&GM_x$l~2NlF7Vz<%XHUd1?crxCaBVMvVj-4nmi`=QXmauF19!P
zURvwNUZo;B;H9D%CTND>va|(@63%$yQf4?ad70Wk@~HrpMt)4<lJ5WZmc;^-07f!M
z;;33bK1#21`gxuk9kU=}cQh-7<{hI1Tsl-sJpJ)e$MiXB6wASc?6z?Fan<Oyjm(7y
zOi4hXm|Olk3{VfKfOHN&(d0_g1Mjc|37rMzd<3ednHPJJb%zab{GzsSP#P;xNHAZ;
z8S|PUvrb(hYOX_J1=J0d;(#0aqpt#P0Lo2XBr;361SHeS0vrJHDuxOLyn$tI1hOJ!
z9U#eHkyq1#^<AMsEoci*a<gXcZw&yNd<US(;~zz+p|KxrqDckV`-EsCDrmF!3&lB4
z+&(i5QG?lE5lO2(IqJ+6a$5tDS0eXnfTH2F$wvMk1=woBn*1#g-v7S=Ktuvfq0TYT
zp#as%0f7+OFktVyRD0xT)=`ac at bxcup$3S at I>LN$*J?Hr=*VSHSISSnT&G2mUTn>=
zEgkChF02*$M)Ka_Bo`W at M0H#E;uaN<Bve2Hyuvj!-%<b6cP{Y0Rd`5S2#{Rbt8e8w
z)J_~|Q9?s&2O!X5W|TWli5==rx#a~bY&5MQL1JLg7&)?CaW>2^avx8#`}*kLO&6`y
zGW$LnlxlDhm?b(gnv(z@(c+2jwB&MK$;G&dA{IA-M)yKc10Z4~vhjR;C};aXN37*T
zs}Fk&RVVW7VC>vt$wp&;v6dgt7ftmup@$$4fD>MzTWR9_D*cKBuBDQe#f5T_B*Lnq
zwty9I=Vqv(rF#wwhz*vYPM!G17^#70?!m1BD-8k<<3adHB#9xtp-yQ-AnwN~QR!-W
zHt^%<kL)DBW}t9 at QJ|0{PMkV}V@;q*d)li^zeXj#@Z2A}%1|JSBg*NBy;=?mCM9f;
z(u3^}*wtZmX7sFvK?B#<h_><c_`q`%0HyKS*_C}#ed7|4d8FU*-tSR*F+&fP>Hiaa
zI>)4ZmwRzq2z~nO0Vk4Y=2nwD79&rInxn>B#lKFL at 3Kxxt%?I)EC7m}ih!R7T9^Ep
zWIPkWctFlgRzO*%y~+aKMtu0y!kH|fo)4y9kJib5vz%VrQA!#rMDW0l&H%lTIsP>^
z&C~vc2ge(CC*aK-;6+DRG!uIL*}s;-Rt+akV at ib;fOebsCD3fD0xEM75Nl>CfxV1S
z<AH?W0CW=^=dL_dVJEGw$;*=8r36GMnI-3TnH!rn*0`c at sEm?#6LxV;)n5+a2^x5#
z&H;zG?}M^knUi7%Py5*3S~xVlFZhfkb%aA>bJ{4nbIEU6k*g<(%Ze=Ch|}r`jPLo^
zJX@*W8(iy0X6+SDpGrB*SK$DlPgs+M9RQVq<$+3@@+@#m$ZgY87RCnPkt><yM|YF8
z1G04eKd>f02uL=tBYv`gfg~LPt+0*=1BZ939f0s4dTvk at C5rm*2YGHl6er^~nZS`1
zc;MwoaxUojo-tuvvz{b2!(|;BO$F5ZNdTM(lhvWYi<J24y^^^kyuT7r^Z!284|IIf
z at D8JhlaA1HznE+IKmc!yP(=&2$Bw%hQa%Pcx`2W}i3eWNbu5mKX^h%YB0s)Njf<cu
zWvy@^fCf7{e~X;hrBAr2OH%^-*mqiyA#s`tzE@{+9zsQ)L&N8s7^HO;p$@N06)ypl
z0PApHg)I(vQd1^@<^_!~u)ns`H+4u&blxgxxON7`x?Aoo<os!MLXL(t`8l&^YHSMW
zs^f~ROT7^%F)@~}O>APCE6FfTEMf&<Zoi)!uMSI-oufn<-VWJ05o<|{UnJ~B#*zNN
zDg~ecS`5&-4vYmQ8mK)IWVVldsJ>MM=KPh#-U6IM3J0us*Crk)LfY0?VZPBJRF85u
z+{KCvFXjCk0zo2PM2$YQS<o0Yur|$U9;NZtcX at W|j>@{QbHMv!=0oBR$vy{O!+2KM
z5Ylx)!|eL%uM!Q0FPxjFSsTVI8RdnjC;q?2-aH=4Hu at hob|H^Sg{VjyCB_m$J!NQ>
z%FG~)Fm at 6{454~d3aRW{(aK;lL}Q!sgsiD%ge)aX22(L6`|sSN=ll77f6MFjn?HIz
zp1H64zOL&&=Q`)S&-<M55O8ocbLbJcH6{t0Mvr)}25aaa=Q33l?4!ON!O3>y7M8Sk
zxb at Wt;Z^5e!<Jhyx&%8j6(ZZ~u$EH;6W8CIxM7FL7mPa+&Xps?zIL)KnVt}5pSbZD
zNs@&tQD4-Z`F;*@PcUufoaYE_too#*@uS at e<Eu8v3*{Z%gB;lUf^54X-TCo5Yg=OE
zTLNF^q43sgVK;R3+8)B4A64g7nNB>_++F{EWpnLp_dj}RZ}ihrgXO5$#D5SVlacq6
z5y`ybc`jV;@Y>w!uSG1JHLpICF>B|$r*1g|NMy{46O27S3SzO2%)X6A0_=$NY&k^K
z;1mPdpOB)U$83koKH~iJ1<oM~gjg3jC)c%3 at Q)}Q_{%6~9aS3`emfwCi(K<W|D>J$
zPt0Sh2I9xcTq8oDUFsl)r#9EqIeGX+qYX(~fHf?{wh}7K3oDqYt>QVj?CyB-(Nw+Z
zOjT^cq}tIRh6H1ZrRC!y1GdTM?t;DA$?P+X9cO)AQ}fESE<mILk|)ZFdFh<5=xph;
zCvKu?<Wj_g2hw<+7^~g6XY!y0r%DXmgb at 53yLs)cLs8oVbz!fOm?M&_eI$5Isk at n0
z>(J^Av1f^j={0k=Gbi`V_BQNGzy+9Ncwa{6+MU<?^z)SCX+ADF=a4A0B{0}~SMWCK
z^x3|OkEU|Q202{Jw at adwadCFL@t*gji=?svqbTn7zq`{Ub+wB;U3N1^UZ~$WZ8jWS
z)rFl7M|NeS1jX3i(!9FcbH9 at AtwKW46OG&^v*a5|J_wuXOXI?gu#Hp`Nj#(xegWHL
zeEj>5hqK$d!fWV-iqA|{NbkGrK9}|0ytK`>riC&I6cN$$Dgv|rPsXqI at aT<!lu{w!
zDZ5B{t<^E7%eM*VY=g7k`5pNLrcj<S>p+Or`Ip?dPHDil-IX+0g_EY>WZyNCD{>Y`
zZhX8X0oKnlu*dD~eOuEl)+jIL$GzwWyH>Qz{STcDVwZgqXZa7=@|q6JwIc*$uOHJI
z9Wly>UQDhb#KPuzZ4y#|ZEscPIfT>@IaLX>ZV!+8zBr~{A#5st)(z$LjoUelYce;@
zkE3FtzCj!(<P~VNYY*r9o%CHFfNEul>aZF2CNk)oso2VzfU6{(oy9xzF6dLS<{3z~
zwgSa&STL-(W^TEa(@XcQL-*&)vLKtCAnrx%@e^VtY#(W!DC;a_<XV07K2utDlq$~7
z7~WYE(PhS<ivw2-_%X)p9etV3c-6zls|AoSg{3dRZso>nQQB@%u|i%$liT|pk~~fm
z#&1v+fUAWdJhPV}>3}iwTldv{U0H(YM+;2zG1fZ^9;;oeHlfa6 at 92+_@(;N_O at Q76
zqgV+I-|V?<oxz;uRU1%E?j4IpL%oY%*Rz!OR<FjJtK3bvMK9<umJeyGCcE*2o<^*0
z?|MEy>ih8c(4KEqJB1mcn$*_DRg^_1#L{{Nb^D=G?4LL~!HJKEHF82mO;YnBevdO0
zUYdu7YL(P|B(jge*WATnmW|;3-jG7`JF=~zL`>+_-X3QJD3HcLlq3Y8;6km}M10Ta
zD&*=*gv_ce at 9HFZM%Ud8x&LLr&LPP;k~2Z+t;dC=8iI>as`k{-1A+hD=S22p4`KYc
z@?Jw%r#FGu6MSpv!d`p>IQwZf?_4Hrw7s$LjPayGjqzzsLik!LmJ+bm0#{JBZD68X
zn=8nA>5K<%U7%r8?@S9PqZh#l5bKR%|GU5r?<b!Cwi-Q%;$4zq96$%Io}SYwUF!6f
zsL)@Nl7BAM92WFx5i at l5Zm~Fop1s|6FJ$V~xB&{EAIbIH{f-rOzhK79d}zB;?B%R+
z%NNbL{QysR0n|I{TakM*O at 3oVH|@V$rPsWlj;ndLz7M at hB(uG0r=3ZgIKvjygb*}s
z!{OPoH{5W?RQK5pW&Mh>X3z)Lvl?V7t at j`<1Y*~_&GGpgugle#;GVEIc6K~*IdjIb
z%Jj9ZM3#KHV(d8#&nwW8HYk)INlFG+XNv_A(e|b4YHARw9-tcL*Mj9qQ&L64N+8_E
z38d`^cys8d6zmU|BI)zE+ee1lI=U)M<bJ9)FV5MO(b!hN0eg&M#bfa5bQ$Yg1 at g!5
z+!J}{KwvTiDZyqSXLnSyV=;EQjI<rez6``4f@~OL796_T^{l*~Mj%IpPtp0HnI2MJ
zZPoDn#!)gPz9P8?89R^uz`uWFU$@}S7;|*Ykgjit<IaaB_4htJitD+BAb60*fg2oI
z#k(%{s9^^oQ<_rKzaoRxTniov at +3HS<)}#;ZUUEEIz=DFu9 at SW>8BqXg+towOZe+M
zmx05E7#uPB_Q}N$=Y9J23+?Y=jNz|Si^cg9g=ATa;;z>K|08}6l0G*6oeEs_rGhYl
z>%iKB4O7XBUpaNl071WIni!#Y6M=t$jCT{ZrR55ec!9BVjRG(})ECSfa*I?H`vpk?
z%-ZP7H;@3`dVrlAFM?p)2om~v7(2bd3<%CXej{kg0QQ4#`#{QJoTDhkJR9sQWR{*v
z6gZl$L`)^3hF&U^n(U1WOX9wEgwEMZYw!^@G9VGaIj at KsT<;C!0KcEzQHe8NJXc-n
z3zNBj8pn7vD;zwLDHJy|y}f8QCPRPtMh4kdj3R&gR at k-`6yu(&NR`c^d9dkF1qTS@
z(TRmW at Bi~Tw`48e4tx>cD#RBN0|yrTS_H<(tJk}#dmW|z(){}+0+9E|Z?M4CMdD__
zzU%JQK}>NW-q6oUyfP+d6akp|dHB)%dR=^xLUBa0hi;&Hy=_^eStQeVR9S?wlo(U_
zqIl}XChpFr^HU*(u`9vRHHu?eXV1&)Gnqn8%nW>DQ%l#iynx>&F(YG!W1Z%VBkkAl
z02YY)eal!ZT<4C$@}82{P%rDjmYD{hF57CGWp6+!3?m9aDNok}so<>i81`S(_YFcC
z9|T%39=7ZoI?=F*eDX)|3lZ`nuJ5C9(^<3fVon*|f9k|Um`*a57?Hz?4Lta4^xXT^
z63PZy#;ZLYGvi091+dat+jOE4h#^WR8kIl!MHxt^Ac3OEsR>TIemS&#Yt0oJG2eD`
zVqx(Xg_KxN3;uh&S?gvX!m6FFqmDp)ZSpyHnKt>#wYZ<vomr}Vw|ivEds-9;bG7u>
zMeK%L?3pU<uPg9}ol^w<XPz=BFZBbb&64}`g^ketJNStvap$2qM-kTOZg3WLq9v$w
z^PXIeZ+D?ZWQg1AlkoCOpB_EWnd`iIAUKdaj(W0Uy9i}q5(G at aqdcxsziWNmt@r?Y
zf#p3cw2YKE1xbwluXRwp@?$rcE=WGrDjc3VlPa&D{v8p-S<BG4H#Cl`Vr7Epl#S at A
zfPI3?gIO)LUFia}vhlPYJrL<G0~vPb!=`+odN{<7SwiaLp;v>uTI$<(c2%*X5~X%l
zgN-YcsP8kSy`}MtBNJ9#LU{EnVyY4c-Gq0mptTVG at I^xSz?(7Lc2P=+-4y`HUYdJE
z5HjVQ3dRmhTLWtvwjDVi9%@P9-x?n&5 at zKIr>Gu$u07Z|9WyUj{wE3(#HM}Rv=w;-
zeH}i36#+AJmlIo!Em?QyKlxODzaAhG<wvnmB%)xmGGSc47GZZSt80?ZbqVSn^1UHJ
zc8qXJu54$Fk5>nZ)v*-XFmDE~^xxn1B?K%v5PHJ#3O|IwY{^tVgDMtIw~Q%~y76%q
zYFDe~+^gU6KHX#M?GSBjc_oEs%8r>th)@mN#%3ybRqxV2-hjuEoM<u9)I8Ns;VVI(
zkf3rDRlj`dlZv#-aI}a}d_5sO7e_#BW+{0^3KsjN`Ez0COY5S##ln5&oy~6wJi>AY
zO=nL`mBS&@I2I*=_cL|tT(gvLZIGiKtov7v498~BOV<RWpb0@|TL5o3oad%4Iqu6F
zo?zH&wU&r|43Zz{GSc*s#GA(<3EZZgKl2=)5c}RS*<FK9&jWH1&@={fsBJ???&RqB
z$>dh=r`Ea-0_=(?=0Zr{!pz*QHf2*rT18SW_X}q}4<}pCnx`6*E)2 at tGCrJZE6bu?
z$Wqb-b at h82!<x%?ExFT+!Uu;^)6OeUP2}<9OFz<ju1|PKmE>5uksS0^=-S35h#C?W
zl&N%6PK{}s0vB;6e5xj9UgcUxyZ?AHY<@d|{j4klaj{OCg^*}x7w&wZAGVc=?i2f4
z6i<`M%GaJU`Iuw%rBMt?88`ynav`|%n6<OoT&KkqB33^8^Wa}__nN?nY6(1<^AgHU
z^PyVnoz{S1O+~s6jQQfsB(KKy-cKkLsuBpD%6Dfce at M7yySBv5<Q-r~3oEE`kvLc9
zN5yvI&7%I(9n(*kyCRtjGt+bERfJFD=8tmcM*ZY#);KANu*SHZ0mf&TlOVq*#8_EB
zWsM&!$}wz3K6WlBgp9=YHozA#)M>Nxg`s|ja at B)%uB$ihHLOP5G2Za!Iogw(!@j)1
z_MZZjg~PEsyW-IV<dvKv_$*uq(Whd>E|@Ee0*7Mk3XzMTW4h6#*7YxU_S?z7dKP^O
z_Pr;Y{5iYxnPm{ruz#6~;LW>JXizf>4yXtv9v<w%0gy_a<=FYi-L=dZ2K0$ij9fQo
z0!->Qf7a{@-OU08mrk^WPqeiU1oJ2&i4I!Px at m#=+YaM`DDLX@%@(au*dKWpvbv7t
zAS{W4JwB at 6pW^oWn*C!sd$ZI14LSgE3#z5 at cFxat4u@2#OL~+XSmU8_hPXL)x;i27
zdj(^3v68bGcJ5S3rYgnKtA0$utgosXcy*$zOepU){;PNZk5MVNmMOKseCw3anS|Yu
zxfBE(FrqWQPXft(ToT2*xrw>dFS~oA4z9dGPN@{WzB?Yi6vXO_5}3CECxJh-E$Nzk
zjpIY~D=4Z1g*ul(2PZ#FG#v}>XI+>OK}@&J!Jx0kdkr65HoOe3iK#4Jm3Q`=F;5Uw
zwUM&9;)inc303Xfus at dg8E>$2ft!Bsa5unP1ZlU at Dw>@)^WhsN`+duLYHPVz(Zq54
z%Wzio<j=Ff7eVa5W<0ZX(m+1gs}Dkks(?{XVeo4Jz5hfn6ku<Q;*LzFPDW2RXQ!n$
zFY>C!rtRjEU)I at nd&D}8b?VD?^&U<Ry>w52()@C+lIe5tp`AY|*@XujPri-X%3zD%
z#@wwtqk$_eWCa(quP^R7{~{Cpdu)d!AsqYu(Fj)%pE?(*+qK_UmqK1$SB~opm*CsT
zSI%;=(bK>`KIvDWdG}x9)<7Pnfp~8<Y-21TD7!<zt0Zc*J&!|nOXzK&XSyY+;RUr9
z#i*B{AWrqRThDoP>`#_qPVB-M9rI-E+raM|cG#IsrSODU-n<}2BSfdf`_tklR8OwJ
z&qy+Cb)j4`Z(cZ(RI3Fprj at zsHJ~q>Zw}d_^`3IU^W(m4M}MrGOQ@>mR9CAw*KoEA
znFdR-Ew1X)CsG-s4y2;c#Z at R)n;_fQ8BeaiQP_3O#{M#Gt{+a`{L$-5v>RT+lNMJ?
z74Yb6a}>{$l1*k-jm{hu#+x$L%9*?TNlE>z+Fc)FixZo-+qI6R^tF38Buw7kbxmw5
zVSL8QOQ$>7<yh#8^o0iF52uSVnN}0}Q2oPDuz{kvp8N^xHb?M(k3g8+*vO7h3hEVL
z$1!XZL at HEX**wPmZ8mg1Nv&KEPqT^s?_wx3Z_ABh8VFI)P&*|x*Z4h!=pvBZFlGdN
z{U7fY|M7`^)}lxGjNH3#axMv}(TPmd7sC!qQd@;t*fnljB&V%$OU&5*tg+$wthq4W
zbR>UKc1vdmd5*Y9?we(6KpXgs$<>oH9iwC&Ohd6(M>4CH9ce at nxJ*Wu0`778W=>c(
zZi^M2OiAS5B;Thgl6#tA%dC3BbCMm;D>;qpZog19^MF3LD8N!66f{ov+$|snsg~zy
zRQ9cBja+<U4{?zOG+V1eG)jnN33a}KQ(>BSOqP5$O%JVDORbi{r)GbS{C at b|b4BW6
zQa4P4yGZ_`fja3rksv=%Pcsd2eSAk4!cQzAwzb{Ru)~8L)~mJ6TMuOhW!?49N+XQr
zd^jmjvciQZ%Ja?n6O+BS?o<e}`xY)_$y0k}D6|gR&Zl?BOP`-sl!5c{d~|h!mZlpc
zNW_L#_i}1C=)kCR=JDpA6`A=Vzp-&7BuaRx^6TeTqc$l#Pn6X=!EQIWP3!*t{qLo#
zJLFJMxcg|}L~)au-)L&8FnZG`^5+SQ-CF4HqHq{4L$#5leb=?r at ppV~x?MgD=gRKm
zPglJpkX4>^nk>?WofR{)3x_d9qAc%!WR0<jKoQ5gfYNs&HF2pZFOp at PwebR0)GxF`
z98{LR2G5!BB;(cq(Q|L^(eu{4*!HIvEDca>8cmpIa!<YDuO6ma at z(<;@AK8rqE$I%
z4Yx#lMtxlzTUU*N5=^9N{A2?fA8D}$uYOq{IrCTt2t7VhUYxz{)^mIEkDd?OD8QZ@
zaw at n;h~2jZr&k=*mE7o2nicptZz5i^wH8q&K~@!A7#G}KAk}+jj{vN+ELfuY^6g{O
z-3=G2QZE4i+I;BAO(GB-(2YrGqoH6O#S7o|jhSpzCKQOVa=pK_i`xxy(W;ZADdpH|
z{j|LUJ68w0Y$Uqwh|jp0byc-0ArE_%yZu7v2U7XhiV17p=n0<Z!&q#Hqe88rUNkAF
za2;&X#vc5o&=vj;WMu)iK6E{x1(AxP<Wh?`>#v<jJzS}BbcRCt-WlC4Pj#pYo-z#0
zHY*#3$(wv}C{WH5#<Pos-R^9%c9EE{-v~>Hl-px6x^FC~Re(*`qIA}I4VI4?X*+V>
zi97g9VPg~94#^TxY>RbY*9thAg{rcHis(4E&-vD}MsEcXCz#O~zgNa6OOrw0?MW+6
z|I&y#uj7x=`}xNGa$HZ8?p>d1Zchc2sFs?aSBQFVMIga=oFIE7{23^c9F_hI!ovbS
ziPb8-@!xg1-65W;<)aEu*CY6OY#|xPA7QRaaa4pb7qL}DhNqMlPM%1t&SJJu%MyO;
z5$u6h^5+Eeu0r<Bo|m^9PB^eN5NF13tnF&t*VVo2Ig{&69Ab|I<)oUMuW~y>N~AQN
z>P<had&j5R at aT_5Sik=>YyPP@{W%|Z`W^S4&@w{AcQyBzWa+oA`mER!OZiYWs=%8!
z<`gjc`1u9plt^pU6jKxcRww<|ywH8D*G;`pM6WZB=#kWT4Y91XH~)grY)-H8`9EJE
z^F!QR2q)VDh;6$Nk60)UBIh4q=y*FTG<ziHPZ6q|-%Xs3N`!4{6pMIc=%#Ct$5L#$
z-I;E47sXbJof-?HRPm1MtmaU{E1c(yNvGO2lvR*kic;onApV{`rzysu_g$pB8<2+%
zyD&n<sF<P6;a|%?j-Ac7l+QN$wIIh>33d&dkFa(O8l^>OYS(|2&xmbq*{jfg3uB}0
zs_diTc^<`Tq(9VsLY$^Ix3+ZU=@++u&L``iN*bFlP7PH*txs&+u<#(iw5ON;OPT>#
z;eKwob!p|SGTb+OE#7=vRgwE|>>(Xm>~KQ#1dt at 9z+Z5DVMG?8Dj#sx$uXc$<j=Z&
zGf{pvpyI0htbXTc3*Z+g+5<q|Z$JU;YsWlw1}*1-p0h at 8Lp8DK2?}Viefg@!e-Rho
zeH5Z3x;EW%8vm!pDrLjM^KpPD-QzQ}u3xmoje0*+0+|6Sd{?KqiC4cXy=PkIBatK#
zr-M;(olvR=-YigUqbSVG2wf^>qUuOW+}7)j_sF7D;%G at xutZkp!TUUOe26r{nI}|f
zd7hRv%QRTK!|0NR-R_=96kAc15)AOxx8mZP-j7$NN>Hj2IyB>)?Ayob+Ii#hC}jR#
z{;I#F!TwIeTv(Y=r69n8`^e0c_9MU3wH^nE5ek&cX8(D3G~rNWRmUgyXvF<NhW)(a
znAHFL;ZdWOxu>Yf-2@=d?fsxzx(a|}2Yy`=*1%Tcp>5N&z)7g<V4L66RI^X(Ie7oV
ziF1E8?(47c?+2bGKu}R|v^wlKePds+BX;2(UFCU4L%_eKlKkBTi?)5|^U()<5JiMC
z|2YJZtgoHQd)poM7uxfA*=G1B0yJk7U!xF71 at 1QUO13<NZBqCiNl3K;kBhGfS$6zC
z^2JPnkkjwb<8k))ZuwI3aKgk}%m(?5Gyl%cj#iIW4eu+191Wi(Jo`nQJsSGpT;YIH
z{K2)J=zvO-nd*7T!7RIZTSC>W-0f737Q!YDwX{E#=~EIM_fb5I+nkWr@?IepA9u`V
zRi=zC+I+Md_+sPd>%%%~I*MMFLg>DhrnM6e45)b|s2YFp(V-s`e%Bf~vtk2n at +|TG
zZlhu1!{*KgcP6_z<AG(lrh3F!Yiq5cde_8^1YVb#0%r%}2k3TMv>l5;zyDEm^*Pio
z%3oL96%bUB+f)f<XSJPKs08uwEh>)w*)C-*zz2gtBxzdc2vn;5Q+;e;-a8Z6SO45U
z_7aK{r}kcYdGv?9EUTAI4fZDa$wcP4&*CE2Aw`1=fJ7 at E)qHLEe!*W2P<lsQD)x|d
ztWysV#?A2L)^I-;y9#JTF!3*r*kGsiqbfMPa3k`H8`iVBv?%R`)qcV(qdIEis?Rc%
zRPhCIDzT{E8~3|cc at 5vzrHfX(Rmd6)!yl{Kp()N2B=c(wXy{;h7q6k%c)%mKCmiXl
zF`%BE7WnK}R{kyOH1VG}Z%*qLTNQ9T(C at m?>#Mko4Ba2bllc at j0&S~=uBMu7UNPKh
zbm?rbUNm>qw#K$_r_CqGQ12p)#}*1%Ga57Pt+bzgbCU^+4~z%Q5FRg!7#%LO+xZ-j
zz}p!e-O{*fgH83$lev(3w at wrK{)Mytx5=H4kx at XOLf}JA#`Iu80uAEIaMMs3lP`M_
z5})B0Nnfh>8XBM&qSf)YHWN09;BSoVLeR&)#C6dq^=*-*DoQ*`6esoN$QB30o#6|p
zedk?<u at rtL+A+GAVHnU)*3?1YMtTUT5qw<V_B^or(KuW(zm^ZDhT8~6y6>D}3iYY7
zh5l#i%Ro!>&Xq7Ml8a)5CYh^f|6}j6_e79q#jy~9e2rJRZwn{ZYh!0>Ta at Pf>!ETT
zEwqDi<eS67kM*qP+Zn2xVowBgpr at W}^ZzRUBh;Y}xRAq6;YUQ-HpbEuV>|rowS<A`
z`VdLLiBLR#Q&Nfx*WpzUUM|_3-Dd*S1WUHZyYxMzx{Q)`=MJMoD3Bmz5s}<lptM{l
z6oi^S50Yu~<?R3r<=!uIw!D(CuzumovnR=zDLfcZ(NoBFc-gEe$wBp||8?XlpwfaY
zCE%HyI4mF4I<lT6&s%T?apq|QHJ>qSLKydW3g*{OfVFK}XQZl(Otw9=8Vv`#wIDcq
z{F{YuZEg5e%3^0dC%g68r at jJg_cU3dr0xYVs#O2wX|pqYIp-H5__ahfc8OU6Ct^xx
z1O<Ry3tvqE<B5b4TnNudS2SK#aCI6mW=Kg}wc?Fm$fTFwA(8-jHAlGi@^nirRJij6
z3c-?fnbt@$m?*O)mQWAPjDVtPB0#ZA6r%PDQz{lOpVxbE-fNEzaz at 2Lw~I`sMG=0O
z^5Q5nlw2&?bOb at XPl&LT=G at C7*HDYaRuM=UK!GP at mPNE*nBJ0t<bZUQoLYzjF_^!}
z5h1IcT;;_0*Rb<mv{@SsZVzx9BDd?Y+}BKbM-;m%i&*;5`~<xG$fmU`yA~o#)m?uv
zGY-4S%{EjX+PNR=FMvg6i7g8c9X1&A>6>cSOpU#ai4Jk?cIo`(kst16o8BO!1?x)^
z^m=@1G*!GjM>`<lzlnLdc0XCMPrb_ut(_7#md_9*D2-=AnuY!G$Xwo>g$&h!blgg|
zI0mX6z-X<;tBz+Jo7;NVBM_6^Z;{+$kxH(A{)-n$+A_oH9 at -~Dfoz<6SyCf~w0rOL
ze!=A(0y6dui?}d71s|Y_>*}~?hl}CS9o_DMy(AI*!J6t8LBRWoh~f#b3mLP~S`_2C
zl`sVhJ$F#sWI?Yjk`6jI{q#;}tw^xm02M$2>?4FkwTl|xPch$V_HM+JE7}m(z7o~Y
zynh9pOY4T67GBdN_CON_S)_=@x~o~)B9iG3Ev_`(=Q7NSv12mu`aoA=9e9NzNGUb{
z^$(s5h879S-V}eqObfShAq0x}PiUZYx<d{~z5L1YeL^X`{ZnMPVe6qt>+Wl%GM~YS
zrOI0%@{Xh|5XccALt(s<8!%PIYrDiIL at w!4wI>|_J{86fC&k;$F{&6#`-Jd^2O^<&
zTY?)D%Av6D_ih4B%sPAs7-w%q;2)@y`QN|!mI}?pe8nhhsv?OiSxdq8tAMx&=iCwg
z|NRK7Q;<b>97lEw{0$U#b`wHHk&`o?qpZ6PtYG~kiamOuBrt~?(0A;;SfsAty at a;V
zD6V&=?EbAV_wPqL7Te=58rN!vb|m(QA~#_iISTbsWb6Hup9dooKXSrJmzZ=+=r5!o
zP;K2weX7GkmqX`>#{u_}v&f7+HhoKOIy;$resocVpD==+AHz9goepb}X|*p^O`Aup
zp-yiMCK3VHc&|WEimJ;(4t?Ed;AL7#mkY9V+rZ}%q at 00fV2)-)qC}jACPK5yNi*EI
z?2aAj-gn6DpRr(%voOINC}rcnOX#~IYMcFo(ec+NXlAk!Z{ERuqw#7~0{pilnqt_=
zDVT6x5y#xAB-q|D{hGD$0oY;>!4l-$I3heXCWfqtzd1-dJz2sd@&CT6%YI_nAd6hS
z{Jz?+WgR9YUUx?mV&~Hun!S!AOpQzH at Wx^`-PZ)zmXCg$E_E!q3>~MuM>;N$Ox?ph
z?d#`-$y*W00Ab6&rivWT%?K40{B`7f53e=(%(R9wEI##|?+ok*sZW|iAr3ZNyd=Fc
zZk{(e5{kV?`bNeH^>7SX32g%E#v*vN7DAGSD0RByt at +|yNT6{-Tj2}q=b8x%&6n08
z+^9Vp&g}oXI+8>RL3gkDE=KV~VQcQ8z1;JUdTuUSwYDfJ-9EaH*Cx;vj^qeeqS!XV
zKlEcl<m~s&^)idwd6!IqxM$OenTGfu7SOEFHG0R2V0^hsm0 at JJTac0pUHEQyx<Pdo
zGTKXWq%~=Lp_dt|-2}`8OPfN#oJ at s)hyvZN1X=D6f9(WJ5GwU^_Jm>Ag4BWIlL at 3_
zu}yXmZnjrcwTrXGsWC|2Vfj&DQvd|IL7o2l8Io#b(2png+b|S5F`~uf$kNidn5zgz
zAjq1<^o~WhS$|EnuPb+L{B<>a{Vv=fJ?J<#VEDHwxPVu6?_ at j^#FOvrN8WfOseAV;
zbk5y&aj!t71m6nP!N%81?)TQhjWqSO?P4=K2Rof2`nvFEMWWD!6-IZMpTq41S>y^~
z9L7TZe#x+*D5c8;9_$N!VFdB&b<`J;rRSs&&o7dsbaiTr%(L}g%$VO8g?p(kI}47b
zSILg#7oSmcej60wZT8V_F01F#P<c-xMHHTx2gJO&(iPx*@P~J;XZ5+pEsnokwV|gD
zVcK0Evq<W9Pqn|h(}!UzL#dLk^se2h?Q>8)z|ArQdMpTpnBi(i!&Ce(k=trVU36`p
z3Q(Yydo-<~@@b-JWy&=q_+>QS&1o%M4LhE_(Mc&*^o#)e)|MTr&{eSzeLw%)Mof+s
z`oRUW;xzFy0^l<riA*&8WY$Fzgmbw9UZHAir^S9t?R&D<W4yNsp*zLDxoao2|Es0S
zPLrlE-+B_a^qflOv!dqj{H)|Zr>|SBoVVcp&CeRwC%c!f{- at F0#bFoSW!j!ALLbog
zb0J20C2LVsZ&+cQYd;yq1;_=)6WcRIDEW7p>uW({`0b#86zuLo9CE5^Twejb;l6Pj
z77qbz65j`n;|h*7roz9%xXuf`sg%d1$0w1{IMiVI)SVr~+${dlq1csmg))9H()wzm
z4frjvBP;MW_OF5Txa at vImL5cV6`#_;k4O|!p=bzn5kd%X6RcJ5+8ngAf6bo`+*}yA
z<1Si%7J__#<|?4jsXgWZlqh^bcaTdK`yBUkcKZcp=63gvn_uq at IO#8y{rk$TBZ`RQ
z-qIRgdGK;^!+c|*JPenkI(TcIjy5_le4H^`rh$kwmdJXiEX2wMHLr*tp)o?&$W_cP
zIa>S<H=T7 at doqsk5J<V<H<I)vF;(?>f>7w;XZDmlJ;R$bXTS9}3h)Lm1df at o;DZ%q
zSsrGmB1}zZmt;S`U=(u~wo?}`ZG_|I(GH*^2JIrmhG_~`skXm_3i{4r^?r^qR(1Gk
zj#T1YhVgV&eH|1YfNh&8jGlJ?`!T}ro0d%M<fPX_tm7j==@j=`ySGin4^5A46<}Go
zgt83tr~SDm=JfMzd-ax=lEr*i*tltfe7=In+lJsAM%RbqDe~0!1@@Q8bV>77D&yi5
zx51V}^LhOyUB^S$9C4cn_||nJNHIdOJg)@O=a$FsUBJnwWPf^BnDJ|?t=n0%v+;B;
z#xXmbzl`xnU2PUk3{Ot(R(q{*cw!0|kzA9a>l5&rcUr9=xH|Ytx1HCdVk)Ml4|yR*
zI`rT5tW<_!TBm-xTDj*wH=VC#o*6?*_Luo>Cb%;<P8DjC9TIn(PNHqmP$<)Q-PK_?
zurr2F{hM`3?mx0=zGV}+v{iY}jpo|Wq&IqS8-*=o+Dcs1m%MPObN03021_?l!UrF_
z_kQ%mrw{!~-_JF8OL^`4)z$dEo9<S0>3rj%EPGYxn{YU}zh`(Bp}BH*IODVLZFd!>
zs`sbbBoPozEH%0yp#fV>7{3{_PtB^){ZM(SX7dmbtPn>eNk|=!__3wR$dj~HWAZk)
z0_+!RjXS$**u)7LfB)zn#L#q^PK-(1I29;CY(+uSErpP_aL9Orlpw<aA?`7-YTSMg
z$cZ!G8MAYjN_zdX5!xx=t0DBz!$2KW1FBn7RvV!8$L<c*D=mE4-EHS`%{ipB#UcbV
z#5PIaD$PG?mI1V(WI;B?A9NwSBjnkq?7Yp=!5f+q9JH<8Ax!lDH0xlkWM~E392)K3
z>Al_y{Q!rg_bNgM7mj_LtL5L7Bk%6zR!S9Y-n}eGFdJa-L;%%hbq;qw*797rMxa^6
z02XQzZJ#T}xwdIFnN)-}dB9Pu<Vny%yspOPV&OJX7Bt{YO>IX16{PE1qJYmnuYn7^
zD at xH3!GAZF4pCvy{ostP_4t-N;VpREsQymuZhg9DC#N-QiIq_b=&mq}HkYe_r~Q at k
z(l58kfs|@5 at 6<DcpU_^A2Q7QJnX~CHLineB6sA2b==f7 at A-wsk1&K`(_!=W6bJwdR
z7b#~w*|tW56f*tggeZj;KS-JUQ}jN&o|>h`9r3sq+Z^5%BVewuqrEV=Kv>B*;N`UU
zwzO|s?p#z0m7;xc+K_prH{|?GI5Z3~G#=P(*Wtu0Z%TB==MFkZQ*!H9fwkwmFyOO2
zVS5aQMI}5`z)|(PsER(q)`u*Ky0+w1cU|t#n>VO8w8=YAp$5!lCdQ{I<yt9sz&d|7
zMSwNxoN6${oc#D=bQkRO;e#ep&x5U3;0D6BDCU$2d9|%)X}HG)q6^2Ac`gKdf2p0V
zy9f(gsnz~jr-Pu1i|{C3$V=2E__C*pEUVQ1G7fzC&BrXiru2?i%Hlaks3Q0p6vf*4
zN9S`$N<ani7dNPjyxg73ag6epOf!E!mu=>OcHPXFJwzzD7%?pF<@z<HeY{flHN<w-
z+Iu>(oF%{<oH77%j*;NM%{+2WRlBxp<KL0oCTMQ#+FThR<;C4_6GFu1- at y0b`&d3=
zl!WabLq^8X00n6w!)<ZK+Z|R9t at z7)_3c}ccJSi!!#T&-Y8w*wre9RMduHqGa#I3m
zK8bi=k9I{NZ97JfD26M|T!J%%jy8uUTC0A at cmNOJUvdrQ_4p{qqC`)Kva3Aq^)3`P
z7TA4%%txp=buspD=!y#D{si~)mO4q$iexLIb<6XUqTv4eEqOzJ4+SWQo!g)%4SbEH
zEP3GJc9nnW{gu2aL%?gW_Bqe+LxT(J-JgLX_qnmu6?hLlYFzKZg64{Z<`=<%A6k;s
zDmLcM+4 at sLhj#RY`<@Pfp3(T!8loU5-A0-G$V4JAMvXu2?DKq at f}$iCoD7Ces<)a%
zC at Ke$#tO>Nn>bRpw}CR>{$$-}+kjxq(2DWQC7oFZ$(Yt5mzL%Zh0L3}7b**rI0m~r
zXRv6isWAiOZ9-H50yrx`ZT;aM_)9!3&cPAoAncAw_Cm3lv$VmMdqtt)w8nRr13|P9
z*sp4pEjYO}6-qASj7SQNg?qj at Iv%H-+`DkoVI8PDg7SsB9)yA;6F(`o^}Qg`eP+<8
z$QPX5K%c at G6`pbgv}vt5bm(rBHCCIL`m1^+#hm-)2*F-<JU`9^Hr$3<Ud(T?DMwO5
zPo{TWt!2#q at y@0293fV_vSctx!a?MP@!U!2>p*G9`uQB{x{25t at PR~;G<kDTYQZ4U
zb-7{ChL*ha%xfeh6c+6}CYV3w|CT7BET2m*U4rRq(`H5fKynzU2;@z;yLf&AKjgo=
zZA9uxbBDok at H)wdB{T(C`B87wU)aC=+`c$gE|WW$=g?t4yyQKHxb}$cmcrNgpCF?j
z^S0(SHGj9~-g1{7f4W;zh*gil<NRtA at bO9AYM%BsaW->->;9T>FyR+E&r}D{1=o_%
z4Y+#`3_~_R;t<-6TxItyIhxHc?hb%XfI&GNv&f-54II108(sX_dW{x&UvYO$%o$AN
zlDlbW+;H=DBX~Y|KnnLFxrz+KJ68)5_ZPSUuk_YyT`(mI!bz&`26m4{e61Ka1qS3U
z#(PK9nVcz54=vPgAL%7wB92`TngL~lLP)!wCXC`4W9d7+QncVe*}KxoD0R*XN>yhM
z4ahQ&a4$}DAYJlUuf**{{x$ouOY(2yx%YOhz2OaquI0y(<fs59O7zfC>^V5cFZTCI
zLnm%|>LuVosv#Y7$Pdn3wO$a!Zxdu&pUUt={L{PFw<$(>`<My_raCiMhgVACX{G{G
zTaE#mN1BEnL(%)avOZcI92zxpn~Wn46I(DhX#sTzL2&-6xYrhg(;^6Q71~d%W6-z1
zHdG(g at 5&5XQ=XUmG}r2 at Jh&`vT;|2j_OUmrgMt(gBe_BLxWihX`7?o*ik-yAKdo(i
ziHybyl0 at OH+t~fj9v($*<e%Jc#CUO`dGOds+}8cjB~(49!6p*6h%^lh&!^7t%b0Ys
z-Bv3Jf~)iq$W*aSpUoC4EC&U5ms at jwGM@9*Ne5tL;@1D+^iE^$ASuK+<ejOjBF<#7
zs2X7*D5>A#RQ0IFE5ua*qG&*c$s-NFz44BFvyeI{&_aOWUx1LIpl+)l(P6I7|Gl*x
zU#P)}qPJ)Pl*#pRMylRFkEUT?W{#y$u&FxVfW+}f at S$OZj<&8X7<P2NBM30!R)AUn
zh5{6E^<`%qoQWD~N^|pnZg@=09vU6-oM8|WAA`Vw4-Nwn#wN>0Ar;pXhTS(pBpFxd
z9tcmgnHe>*t~Vm at J8%tF$PXakafI+=ssSX`z_rv~5tq(!tmQQ!yn$Wv6boIb^gs8C
zEY;2SaLM}E5cU*lDZWmmn5LZ_zHRkFb0op5x;sC7%wQ|Dp#G)d0X45k7{I@?2G!xf
zkmmVP!jBcccHK8L)-5bC>Ey<=@kKk5hAmq_Zr(2WjO*_}A1ySY3Way`8SdjQ+AsP3
zwa9x_I=WX`38|BZ`WRaYM`(NDwuEVOWq%@0Yn^uJZ(L%jC7wQ25~@F at CxZ104(F{z
zP{wqIx$8^5{)1 at IT#li0{z(`=t9C6W%w$zUfdF&Gc0Z+U{f!C#da6z=_=_TW3QH8*
z>dcSPrHIYnc?%<CoBeR)+N9cM+nZr>_xzq)$mP1c$h-knB(SP%1fE0M&nou374$N@
zQlb4iEmmB}x?1&h7uvztaCh~#iXdX8G4lFcp>l>nYg6gFxu0VZsD1iz%tGbm`F7`b
zwqlz=q=1?YBE9Z+UVVW=Z6i3H3eYXz|EFBfZ?ruJ;{BCEUV5+7L|SPL1Gjw3(I#GI
z9yE4akh&;R1zl|fQ5 at 1DkH*1N%uOHKtZIK*z5WGJ^<?V6zm<?xb#J at gzA+H<IO+mt
zj}Xg_F3byDXENFgl9ZLGwR&(&gw^mO3OOd*1X)JIwmsj!<jcMWPwg;$P3nthWgVCo
zc6*RTlx?+-iTg74ebkOAebH<U$@*&PPCAl87G(7ZSm!3z=tOh#3d?PMh4K05_zE5*
zOb6-^Mo8AfqZNS?deI0)T7)vLk*Ba}o=Av2gjeOb-nm;^Y{Pk{_Gtm~Sjj;Wtu9kO
zYI|o}?n6kB at bIXreVS_O9rMOjEvr5oo&XJF>q91%CxTc2ZY%UT!wpc)>n^&n%kzJ-
zK?9Fg2p47G5Sd4GAd>mq6-*Gz7aF-BF8)v>F5zDn4DL(gb1(GcXQ|I)E%b)b=B;i)
z)jc-$mE<@k#XpwWQLEGe1wK$R1WjxB<Klt`x*r`dl)N2uqDxyl*+s at 8-j`E2`5aB1
z(5d4`p*<zbp at E^^gobvqXHe_A1TBwL at pE1itg&gdYg4Pak#<tyaDBAwJEQI=7D=C)
zf8NZB&(}T_N16)tD5w~oP4hqg2V+MR78fiL7sk5#lcvvh6E56|zWt*3+KWgZ7vqFm
zd8u3U3ogWBgd?2TQp)NyMx1i3Tt{tY$G0Av%Lq8c53@<0GtfdWt1ZWhAw`|Wtj at o0
zBp9vQ{ZxTts~g*<MAe%Ni}Mah4u{TdF(G)j*lVUSg+<EbHe{Q?)-vdallqn2n+{zn
z+~gU!_-2ewJahw!JVss2EX7#O@!APqbT@^hib(GFfiJ<zUhwiz>J~r+jpWv0h8nkz
zieGOYz0 at hWG8o0qdwA4RgvB%^P%5_uE6HTv_!Unqi`!6<_47CX%tUlmQ3#<&p`{0`
z8MdYIKzB4eRRM&3Ifz)nO=n-q-*BbUvvD)L6BUB%P}MQcar(!*iGi4;eynKMG5Gh~
zeQ$%@*vUT)_Y(5lb1VN}8t(ZCA>qqtmRNHncYtw(<I%7h`q<oZVxAvR8m=C6JCUI4
z{F!XV<GH_ts2aR5ByXkf5q5 at 1AdLemKF~`JH5i$0LRJg(@=S0_I#v>nlbi~bYr6zl
z?JoAPBIv+{Vj;Om-R-&16QsEfyiuF#bKUUOcPKJ=AOpZzV{@Ars|RS9{KCy0(iC&f
z6{Kn_F_o#tv~OodA at AYT3ViOm8Jj6?-%_?2kz50iNUF`1U#X<Sey6s<dHis5p9sZ`
z8X}zGR)p?T1)qg-;Mr~`eyGb<Y1{A7<_3N!OoOS$pH>hFm|7)sB!}-kP4&%fKkTAP
zgA4n!ek~E#7pCQ3tkbbd7 at YVNUr|;%y3efG$&F6UKHhfbxu*GPBUcVYMA^{z9yoC~
zER>E-c|(ni;6A9ih`W(l8j(LeQ0RQIo~w|Vv_q0o at DgDVKaz-jw6+0~lsP|Vad!-6
z1tH15*>Iy5XP#0pSag3N&pW}wZmLSdVtPYO*2}=$`rQ{aa2&@rZVEL07$>R}C9nml
zcdm6a_Cc+|!XjBD2L~R#x@@=v_JF!E3Xk4&JBpec9jflhy!=4<FT=|Z+KainanCna
z4UW$EPU8!EYnpYtgs#bT93%lC`JSzCSmF2~*bo8sit`1&3|!PnwTqu6D5~$|V^3lQ
zW*Zms1zO}8X$FPBUcaZ4a{c<pSHk$!5_gOHZBa^9JvMeHvC@?G at sc>M#WysqD$C_0
zbXfIV$~jz-SEtB3`@tAo(mQnkdOy4JJ%C}T0IhT!6qIfnD!f$W+X=Mt-W4{+R{g#H
z_0|kS=cOEHthx3&Hk2lKSY5es{rbceYm(Nu6s27>OcY;KXNt(wX(XqNd2IbGIyW<t
zRKoV*TmZoU!Bm;`wm&u{Oeh$`h9!R54pqV*j_*xVE926Ej at TKDv^^F;0#kNH!ghB}
z=&0ey-3K)my}7Qw<Iq{v@*qFCAxNog%Xm=HX6m&xZE^|Lopk*=yj^&N at 9CtnjHNQp
zMuI(L5d8NxSF!-Pm!STFt~teu><@7?wjwpiI%X-}G-C0^%!ePKD&Ioi<J}O0zc3?&
zv>W?_H!jX2e<J8UxG*A=#d%2aATbml$o4z%Z&C2}4>p|>I|thJf(?mCF7ppm$W8nU
zesZMA)$sCr*3tr!7=ok=f0W4ii*kp at X2$%4x#BBw0eg+DvFhp_8L>`9?EUWk`Vi;<
zfgCREScXE>>#Vlcq$<H?a6x=jSES2AQvnpVU+_{!F!b_46s>npw64&js=k{7E`C=@
z!cguyYA8hU^E<mp?!DC3*Jn5|MmF!;%s4W-hKQ`MLY0E+i7LuT3KsHOTVi)OBedz8
z47FPJ%%zRHahuX+ZXu~7SppZ=rM9;_F$jL6htxS9E9H2=CrD{gfStbok>C+~Ay_Gd
zdV(zTTTZcY#!AQ!<WPzsXLkRB)FU^0GOPr8CBm7&m9x3rCV=i<nD(4$*MKG{j}}lY
zO#v^N{&Laf2Z>Pb+X=6sp4tJVtx>~GNZ-lPB5|a^|B)d+LG6<+@{>)GOvlX>FpE&@
z#DDPY<gg6Vae28*<)2puV(1`5X|7D>{~8i7l9sMhXD8vuf&M=Rk+s2VEu2SgFZbs{
z_-|p5fJrfkP5BGNMlABD2|E(2|Jtokzj#sJ)xBUc_|}J>dJTGOyANj?Dp?Jl?u|Ac
z&V(`iU3oS~nzDH;75sN!dL-A+X88{7M}a7#LgFsfNKb(Wz~LU+)7D4=E^|cDG`d*E
z<~IBm1d&|zF3Z4C?)ImhbDjPhI)`bK%Es4J>qU`#l&tJ=K^FR{C)8w;Wk-~5+%oIv
zIQ`iDB?h{ymX|TAhQngdZj*C;`gyo9z<~+OX#N<&ICLtwsw<gMFyd~V+~RIy-UvA%
zOwIs}WdqiV_mU*tY^aB9>vf<?Z31LNIDUVhwRTQS-BNQga!A)}tp1rl8 at 0L1n#{*!
zA1huQe2zkzY{F(q0_fUWEH)dOoPVr*atb1+mmj)SD9pJ^6*|HXLN?@t0L%T{{UZdW
zmOLZvtuH*oy!4KqXI^Y||JRSXx5bDqtO&oM1Ru!HwQTAB{?GHiu>u@>4D~p_u&!Xc
zjZV7vLnBXh+E`~0&E|6cfnt63dAaq4UBl2DhXt`E@{sFm1=**EI;Vy?$0Pn*ivabq
z^?$FgJ&3Ua%a;@6L3V=qp!xs3SS}(<$o8V(Z6gYfd>Er`*`^?G at Zn3xvP3|Ok^eQ&
zN{t`QAQwZ at cKNgXXxK<Zhma4V2LJmNNaB_M`R|H9k3&+F|K~0EDM;iN|6TF_{~;v>
aixI^ehR<Y}qxA&fbJ*;}p~Aljm;Wy`n%O7-

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded
new file mode 100644
index 000000000000000..cdac1d5b974581e
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded
@@ -0,0 +1,1678 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 845,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 75,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 75,
+        "y": 120
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 275,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 45,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 470,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 39",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 560,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 765,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 40",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 75,
+        "y": 180
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 175,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 150
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 43",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 20",
+      "size": {
+        "h": 50,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 560,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 21",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 765,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 44",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n};\n\ntemplate <>\ntemplate <>\nstruct Outer<int>::Inner<float> {\n  int t;\n  float u;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 560,
+        "y": 245
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 200,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 75,
+        "y": 375
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 120,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 25",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 26",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 605
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 28",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 720,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 27",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 500
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 48",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "loc": {
+        "x": 75,
+        "y": 495
+      },
+      "name": "23",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 375,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 115,
+        "y": 680
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 190,
+        "w": 370
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 510,
+        "y": 680
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 35",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 510,
+        "y": 745
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 36",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 670,
+        "y": 680
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 33",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 670,
+        "y": 745
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 31",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 31": {"syntax": "\"float\""},
+    "BuiltinType 33": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-espec.cc:5:14, line:8:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 42"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 41"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 41"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 45"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 24": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 25"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 24"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 24"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 46"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 25"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 34": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 35"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 34"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 34"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 50"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 37": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 38": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 39"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-espec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-espec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-espec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 43"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-espec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-espec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-espec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 25": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 48"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 26"},
+      "RD::First": {"ptr": "ClassTemplateDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 25"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-espec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-espec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-espec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 28"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 39": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 52"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 43": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 53"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 48": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 54"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "associated decl": {"ptr": "ClassTemplateDecl 25"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 23": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-espec.cc:5:14, line:8:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 47"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 24"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 25"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-espec.cc:12:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 46"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 29": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-espec.cc:12:33, line:15:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 51"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-espec.cc:10:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-espec.cc:12:20, col:31>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 34"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "17973979",
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 25"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<float>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float",
+        "ptr": "BuiltinType 31"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 50"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 25"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "2",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-ct-espec.cc:12:8, col:18>",
+      "q->TemplParamLists[0]": "\"template <>\"",
+      "q->TemplParamLists[1]": "\"template <>\""
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 42": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 47": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 51": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FieldDecl 35": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-espec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:13:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 36"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-espec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 36": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 31"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-espec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:14:9",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ct-espec.cc:14:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "InjectedClassNameType 41": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 52"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 45": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 53"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 49": {
+      "Decl": {"ptr": "CXXRecordDecl 28"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 54"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 38"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 46": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 50": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "syntax": "\"struct Outer<int>::Inner<float>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 37"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "TemplateSpecializationType 30": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 50"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 31"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 50"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 50"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 32": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 46"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 46"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 52": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 55"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 55"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 53": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 56"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 56"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 54": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 57"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 57"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 55": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 55"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 56": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 44"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 56"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 57": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 57"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 26": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 28"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-espec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-espec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 44"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 27": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 26"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 40": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 44": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "Template",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-espec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Param[0]",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 230,
+        "y": 85
+      }],
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Cmn",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Param[0]",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "TdD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "CTD",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 275,
+        "y": 260
+      }],
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 950,
+          "y": 35
+        },
+        {
+          "x": 675,
+          "y": 455
+        }
+      ],
+      "end": {"entityRef": 15},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 4}
+    },
+    {
+      "controlPts": [{
+        "x": 55,
+        "y": 385
+      }],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 5,
+          "y": 480
+        },
+        {
+          "x": 65,
+          "y": 80
+        }
+      ],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "Param[0]",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "TdD",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 275,
+        "y": 575
+      }],
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 585,
+        "y": 560
+      }],
+      "end": {"entityRef": 19},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "Cmn",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "CTD",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 495,
+          "y": 475
+        },
+        {
+          "x": 495,
+          "y": 365
+        },
+        {
+          "x": 105,
+          "y": 320
+        },
+        {
+          "x": 105,
+          "y": 255
+        }
+      ],
+      "end": {"entityRef": 7},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 620,
+          "y": 530
+        },
+        {
+          "x": 620,
+          "y": 625
+        },
+        {
+          "x": 340,
+          "y": 660
+        }
+      ],
+      "end": {"entityRef": 22},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "DC",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DC",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DC",
+      "start": {"entityRef": 24}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 45,
+          "y": 690
+        },
+        {
+          "x": 100,
+          "y": 570
+        }
+      ],
+      "end": {"entityRef": 16},
+      "label": "ST.CTD",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 25},
+      "label": "DeclType",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 26},
+      "label": "DeclType",
+      "start": {"entityRef": 24}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 885,
+    "w": 963
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-espec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..93ed26bb262dc1195e5627f85ea65e86face09b2
GIT binary patch
literal 37910
zcmaI72Ut_h7B-3nYb<~Y5dj6kLem5Usfs{EK?IdvL;{f#dhaSk6bQXHB~+=>Yfz)~
zA}vS at 29P2pAidw&@%zqy&VTQ7_3<Iu%*>uyv&#FfwS4pN0qWS1vqu;h7>+63l~-qA
z*hd2Y91k4;Pjttx7%(uf9CUlE<#5Lui#4%wU|?`bnALZ+AGmR5_v+cU9qP>GJeT|C
z^+-I2wWzISE^kH^3r4DV|G;2p>OFOtxbZ3)>Gsi!dzibanYkG%&t8dB)=8v&x4e4N
zKd#!09i04Hbw@`wXd*NB{k7#sT)aBFi<*M|d^)??E1AoVRk_k;o}?WzSx#M_J=p>)
zSh>L!m%975rf*hBMB&w)t at A5iF3zjV9%;WLD=i=XF73|H*If?koK=Ze at 5>#|ceQP0
z*0cF>(di$(MO7CH`emK03g;Bdm`?h?G%GwI8Yad{Rk-XSm8xnKqM%uOtK_<y@<HmU
zn6s_bhvz8FPvD9#WcRETGj+>T_uobxr3 at ix=a^oR#F%fM+iwsS*f9h{zsNk5Q_Yre
zJoKei-}IR~Z`?TKheEb?w<cgJDK7VvoWG?y_vU?OoH{@lvbwsiJUN;HKkK%@@#|BY
z{U_yz&Nmuf{Bk0rCAW8OJ2<oY2^L*4C6qbc$lE?I?*H;~9W$fSxOfpqleY7dp`YHm
zmEoACR)->|`k%29^ItA6T{3t$(&jiLYKL+BI#|K(;4Xb<=7DjoFiAsoX7h$<1%m8Q
zas9B3NImP&P&e%3`CgICW5$Z)UrA9{B2H_N>ejEdq<b8C(Rn#0dr152W!7C$u|Wgl
zmKJz~QFXU(nr}E;6PbY*M at +m`!M7rCpX16S^6lx2!z*=U7aF(ndH=-J+(((rWkdtt
zT#b+9bxt9Z<pW0kBV58?tYx3Q5cn{6+KXDX-FTv_#w%H5drHE;+94Rf|5xr3YK!Fx
zwpF{HQG17#@%GaBVkXjvulU>Xh5aSRZyC78GDKXvPx0t}UdhiWM1aSw8T{ORaAse(
z;L){AcG&q@))*MpbD51&@U6VCk&V(aX)UGpW)JZs7Axc{ko{>Y=g{;}u8(81N=3GX
z at 0ZF=^#Y-5A9{GcDlB#77UwV%wYDy*zBA&8d1fWxG=?3y9M=*~KKu>y;=QvbbGCo0
z9NTeqUdy<-1KVV><o&`s8y9`!85>&mHmTHog%9QRoU#_LOpH#^75rg0XyUkFHFq$J
zi#g|d>+INvigY`@DZ4ykv8Zgd!pCH{3rc&vcH|DmG5>y^XaD7p^k#2W;sf>_5&>aO
zVWf;{9=rcKKW#Pe#wMwUkvaL^lM9t*MY4K5hF06BBB#%4#BWo7b8d>2ncW|(m at 0N8
zSyf3jW_)C&9Fh=wZ=7kpc(Ev?SgY63=Kx_=;^y4RBh6vgupuwCpIR?XKbqFRCd~3)
z(oMHa;+B8&6Rx&V?eom92kLHfKWx=pAr;EOvIh>-3{;<M`(7+1^Y}~ucYD#rGdh<0
zY!4i-<{<hNq{L9v+ at jy+rWjLY^`2N6e2!{{%iO?H#+Q!^DJ6aB-Y45BRNR=$YWV!x
z1B&R85+PxutQ2<r+bT5=BXiLEm*48kz5b=+^uAL{c`N>;imvP4d#>l7m&ops{l-u%
zTe&~?=_i+ojK;b1FK+G2+5eiO*K2aLf=QTh^kx>bJBx$j3^D(+#O&*fNn6*Hh99Jy
z+_^WLvY)SKs4><0PC3Pj(aV2hh)6uBa-#0F%b at nzX6DsfQ`FBXc$e^fn%oQD9e)lz
z-4NBWVL0`!{?uZ@<*lEuyPkR6=QK&+aLX!VyKYD+gh};>a$Q2(;5VwJs>=HrtY574
z%Di1LP<^>7_ip^>Jlf&riq+0L*@sVMG)DgX;6KKHk9{QWXBKBi!vnUo-2G`k$idgQ
zEF!P|?ldQK2Xs|dN at THbOC%pVe4QZjmWk=spN{wv&aI_Vlj2(ku2cHWEgb5PT80Ts
z2^T0nXwYDK)crEohI4;RP#38vxn{rKLu3`lAzf_3MM=q-)i(!HJDqKH^{{M&%{ZNQ
z#unw3*IYt-B5s-AIXQb?>W)~9(?d2*GpQY$o6q`SFYIqonQq-UbUk5%sxnPjT`F=8
z_L=RPzLSz^G02;_bNOxZ=_AD(lY82^FOFWX<CHth<;xcIbmVJ)oqDPn`!klc`YV-n
zY2_JRYs2=3o__3 at Re#Rkv~=LbvDTA)$&xE`dFhlFtot*Nr`+GwCW?ifY23f}l%kxe
zjfY9>rrhZ57 at v#kT%5|mBa?GHl~r=r&CbJxrZFANsS>{D4}W`~*{Cm)cyMy*g1oKW
zbbCy2@@u9DWk#D`!7oFWUZ>Z>&wi>}d6^pM!r;1ke!-0Y#iY6Q6)hGxpF;7T;>Al|
zl|BPfozk*~Tq7ok(>{7D&$XYjENIsiTSm}c8lmU;9`fG#$@@M#d%ynB)k$?yuBLLo
zkTN2WSFXVEg1Rb4=#7)c+kH&+evJ8uv2xF%19lC3sG`Y+l5-iOaaRu+vt2zzGSBtB
zmd$wEA$y|wjLnST!2}9<FTSMX{N)M1<*cz<^RI-j>xRMy5Hr7w&y&>UE?XF1KWRKB
z(&kE$yQbc9byiFE6>C~JcT|yz|F<U;8Q-gdT?RrIQw~%M_-{A9Or`Bp_s%O&GBYx*
z-uj{}`rtQ~<#)ptmR+r3Fhx9TwJa#yjs3;>p-J}NZ2L>5<<fLcHqEvRA5~0O_eJl(
zxl^}dWz?$o-yS`4q4!4peZIbL_q~=e$m*YXwU;CAB0ZBUqm73GLj#Xi`b|V<IrH=%
z6{&hsGw2 at uA~{vhSPidou9RcY at AM-E@7`xqSlK6A?`0F~9?33^Tv|R>{v^uyeqKiE
zbMd8Tv^o2Uqo}g618rj0)9)4%_UeUppF43__9gOjOvS?dETuzEbgg%Ed!FxB$)CdK
zXn);=7FwOJ+F(H2k at kqHDO17k*7mY>84use;F3*qvX=ZM6F8f$MVqpv{e0+mdAUvK
zo=~G4i-KWMOB$kf+7 at YK=ag0=zxd53g$2&xc<J{QNwxehZ`w2+xety+ii(Hc;Yk&h
z2)z?!clv>Rc)Rc~d0b5)i(_vDzgD<zmf%ELcgHys6w>kuiXdvpp^}jIeC#>ml*OEj
zNA<xWj9I{TOs0?EMc>B2xJ0v$Q(YzdZ=bnd_EI5jb at LIC1&?@$Tsj$%Oq#s1()cAj
zVJf at ga`ziP-zM^@o`enV1va--3$Lb=bF5dLKcrd5 at +;Lwczp;Xt`DWQOPg``P&(CT
zi3yJdPiNgbal}iOohDjr`*!4Q|4GRwi?hBxCn~Hax6DP0PHR_>ywPBGs>P^t`1W?l
z?UqdFP4Oj&TTW%>e>jaVQUA633tw`!(wI%6!dN75>zZ_pkZJda#ZY~v%7<oNS%(wH
zW*@7+B`oB1-fY;q+)`OjI1#PAS5i1+{E}_6pFnk-U92+hJL_4cd!0TZ?)yKL#)m2v
z^?u73?NY5u{&W7gwDhPm_1tb*ul~4YO1~??^wND^z2u;yDyqge;zij)EGY9X at 6FRS
zBlen|xfg&Tx2ifY$fP%#N(>39I>z at 48TM9V!m}o}f6h`iQ8}k2-bm5fsk1kOWZD%s
zeUdnDJz9>x$ARz*N&o4+*(m(+#M={TMuW$76^m3tj^+-12(9igE8|o9F1B3bG`)X@
z<HUa78nxKs)?+ID75oXqwyF<A4C7PQ-QKY5s~oUzP13z?$SU|ewojY))n)6lq`ue#
zdYyeYkFqVEj*3ZIN2Yu^eAE7|qjF=a at Iq=%zN@;%(2p%nWFEOb*wEpDr_6AN%L7lV
z3d&Gd=?Z&mFV#S)ZSIGvf9u($KKo30rU1WH<uX>C=KIqREAQXdq0M!09=#LVV<&V$
zDOc~|Bi5d;p$r2ZL&3(hH<SmW4Rf<2JC~3xgKdIKsDWr}F}YD^1G&8S!Kx=zMG<w<
zcSCZwv at ehY4_<a>_8a|CYk2W+=JwAxLNF@&lE_?U_AySsAcMio%29>=k4~#IG05!Q
z%5b^u%5XP7g=1r7{PsQhKn1pM-akiPJzse&u*o*WqgJ!Mf4HV*U%OYH#^t>z)1a$|
zngS+%P3;wKv`o3<z5R8U7{jq(J#qN$lgF!BPfe4zzSbTI`QESPv8FvxTk)pjm<vOa
z_rCTMsuxB+sd4)13h;{FZLl1<{cc=ZVKL&=3zbQ?taF*1U#}neE?xc*Z_H<WPT`ba
zP{#E&M(MUAr at x(^91{z!d1~W1v(LxnB4Y!&lrinIK#=M{2=mDHJ6G-uQ<Ym^QZ$a9
z-ZvU>pr3Wm$#QST^AB}iRLhb0MXKdqNr?Q|7~XT%E&uy`nGeo1<l4o9cP5WUKW{W+
zlj1-}goQ1JXtC>4=bsoZ_>L&e?Jr&$3lgg^86jDRd817WXN=b6UVf~m>Lg}+ at 5W#Q
zT{RDLKVj9&OdK}a{OCd;tJ>n4s%~2<NQkoqej+aH`y+Mn{)5QDXeHrq0=6Mujok at -
z&g=ViKDcxy&M91DLM+S`tg`luNxb-G_qOQ9og{X5UCSJy_2OI&)0*N)?QKqL6Z^<h
z*uKgiy2a)*%{ooQRN-2N$`9%^5%$m$gL-W~p{{Vz^em1k$Mv(!#|Uv>#}9gmGZ)oG
zUR*I(n#l{5&kmCh8$(^sx;L4^_>xC*P0&Vef-LFBWYbEPHQUvb(7IIrDE+iY{E(b#
z%Ai4(VKdWGcCm<1aPi$2QMiwi_hDVx?0m at z!pDA--?l`)QTF0U|DvP(<zk<rpG(xN
z+RyDv>heyTdxx9l^!`|pM6oPrd6V(hS?5fS#D&Q`|GJu|1tt5=J++x$UAW7(UTsNB
zU6>J7Xxyr6z9B#^6t?5ssk56GAOBYK$l7p#jkj!~HKz#{=otUPU(w0e_`QpI&5MyK
zv;77O7e~xfSAKuedNO6VqM=q)-P at T{?vwKy?kHN)`B6P{%?Z~ldC1Fiz;!?^{>@BD
zw)^12zES4HZ#2e6N8$lW+DBza|BrEPnWL<e<R?=?mCqkproXmvO-vN)?sF|^3%qJ$
zu#eW+kR>tR at 6#56ZPnlOsI*F~P;n#&uBJJdigonqsO7X++_8<8%#5n-aWzU{S<=Wq
ziBa;)Ij&~%NlWE|TdrIV>w)XHt(TA38s5ENvehSaqHn)kkK5garYeD{GIDmCuq&zW
zcX;q})~}g&g>4z%>#klADd=AfMhYi{MN7{s#<2)pVxKY-PrFrkqnWSj&5&N1NLGo`
zP$yGVcW&1uF89Y>f{$;w4kgtVSVit_<8|a$C2QU#R at n|Y89FvIrUyC3uS>yr4~<91
zyC3fmXuT1<J`}&;5|b=z!m at vfdWmHD<HAliZ1zRGd)>%Qz9M^GuT!t$1Gzk}cuh`U
zF<-x#KT<!$z5Tt6A?Isw&-;NxZ_((s$CBxn$zd!;3-aB+owT`^Fx<XnqF<w5xKuYE
zu=3zQU3<q@{qp6v>k7S(tB%bj3s}9<q%i55pD1*BLYQNILo(#fsvC0)92<Mzb%H^O
zQtqfwl-I|3;*rCHgwwfGV%|cGtvMe|?Oi1^KIq$OrVUpAnSBP&cRt)cS2nmB^VG*;
z_rNN1%E7JA>7H`~W=jV9+;3&5=|o6*Upbb1=viLG=f~qw50B0GUk*_DQlZOh at A1yB
zTF5#xa`@Uqx9dC>@v`&D$sQGiy#b+xz1PO0!j2aIw9bmK8oq0=@1f(es at F85j>4mJ
z?7ysDv(8N(q8$o7sz{(dw{;aVmYdAa30jlG&HVPANs%{7<aZx_IWv2p*uv<2vVeg^
zNO<MX#Qo(f9a0HnZwnk%>dU<B0_W7uv*ALL-#oa><tcN8k5OcfQF3;W&#`KW>C<4H
ztL~=w*`Kw at J2zh`c!m^W&~HD>c6qVZGRs}}W at PD{42Yz{*V$`ty&=9h5FPS at VQ}EA
zBtr3EYtDx9Pb@>X*4nn027 at C*^mPHl5!&&&>I-u&EqX`2&PVhNpE2*kjtaY4zEAd+
z`Lj>TXl8DQVHdUd_|ylQo2KST?%5sT3tRP<8w~IZ>)DFO14q2oWj!VC^y+YVOCaX+
zPRihwE{1&nb}KLJfefRzm8DHkmOy;*jS6x?kjT`Rk;->hBg^Vuz9l at 3QCGWF{VZnb
zQMf+4w|0J<G<Q53`gl0Wi{Wy9;;f<9pzOM<w-iOTVryx~QUE>_@!e|iOY?2(aD#IO
zdoL=UDJ$chbtG<UrOVyvtjvBUotJ8>s^nToc0&z$q<T)?J0M^&ceU|BbR5^_?~hc6
zuPf0!s&fe(aA!rHqv5N at SNmhE?uyU$b$2MU%U<GgHR19o<;}}jq+Cc?l;5uvwt!t(
zcZ(%tzj!A&omlv?_RIZP0;7JchHKj-cA{wyV|l76D_%L-YTwUDr_LuNuZ+4itfuLn
zdp}aD5NQtDyXq6aMHi354`uGX7I>+{6oq9DH~*sc>V2NPx<)X(Al?<D at k~Pd4aJC8
zG2`L02B{b^gxP#;w{H`1)L{JU^~)_k#*6q1nd=+GuM28$7ab*O9dL!gT|TUTxDfv|
zNFBy)DHL%0RD82d*R$a~nqYC;#hIq+CN%}Io6S;7_SxS}10|11d~6W={HSm}lVgK&
z?AEjC?QT^<`8O}W^cl_*F(-GT#06l4*BvAKM)d>5PF(A`d8>1G59XvDig+P;i-Ez1
zK}r7hW0(G!A>F)bi6~QQSEfgxlcIZ at u?+e?bI<F`==V2%KD;-UQ2i#1Xtec%QffIA
zb at 6yO_wEKO$g43haE%Jb(?8t8<@0S>)QGLNEaHC+nQRXi%t6m@;To^Op%k1?EMiNR
zd-+mYZ{Ecj^UCbioh|P%DU^^kTHBpmD>7WPj*5zg?SrPs;qu3XxwT^3lip0vxR!dA
zI%*SWC6>`Gh`rE~VTf~{!kc{>Z)RdA4uvL_a1v^h=@UOah3{ZLu%9LxG)~82riwIa
z+r(t;;HX~-3)^TmXzGDxo90c`OgLV-w=xH5jw2*PFJ!oA;?g5c;vetZ&|dw!QnSgL
zW;%B(7?A5}{rC`a(c_+VXWB1vya+U2Aj~M at 7aaNo9S{2XvjX8k*8M0Y3w`l<NnZr~
zau4+NJjg?WKOsi+9}V>J41f2-fPjIAPhH-7EzHMtxNbe at t<vME<u4R$FU6Wk{GAb?
zQ2s>2Idr^dxaaCn$?hxq+CSvQcdNahglm6L6Y6<uno;!u8|2ZuP%^V+F^&4WC!g0x
z79wL3-<ZhHA)XB&hB9d%Joz>`&@uD{Twa_CK1m7tr1+~e?dIwscv~J9oR5_C3i~+8
z&W_1-dRUyH_XtyO*=j;SikwS{ED~{U9iMsEv^Kjew#c*-UA}&PbCXv4dh7~9%G~pp
zyKUiq;v)vfHkMwoL0)1_A=~Mij at B%9Vm8XuJ-TmL7A($v<S2t4|JUVX?9KC5t1wim
zLn*8Z!-m${gF1DFp<KhioLKX7uxo(ur-72%?&fJVtFmFauIpAL<SA5S1@;|o#N@}w
zkawCp&-%noVWYN{LM%|OyqsQZJgv3-yuQh|Z#GK~MdbG@`ZY9u0S5Gs5~^n}Zc at f0
zuE8Mpj>ERza05_Au$A`#ziAdl!b#b}ZO9{1MdYd9?%b?9<d?zWyti=r>`AUztqPd)
zTzu!S(QM@*#8&C-={{4pN0&(G^3j)WPVcj}CE}Tia^|<!y~m!hWwnaOt1gxF|5 at Gn
zFr>5SUK-ReUnU$O<lCUfug9L`iG7~?d9E)>bWeUOp=3r5w<p91QLT(4)V3)mVGJbs
zT at s{guRc|X&Ty`z%tqz9ULZB>e6iYnhJ#hz7<9%qSa!t at 6p5&yIXf&2#!#?cF$N$E
z)ol1&#eCU~(cgmm<%LTnPq`>sNg|YedAj6rrVophp<~!%*?38W<kjxqiWa><Q4z|x
zXwh(@TYlLUy{yqtIO}kO2X|MG*LIr+F|9y6<rTZ1pLL at Rmd(F2Cipxl at 0hy*JCTnR
zyDBg5bO`R12`i(p^bDNJn|LN|Tsc#@qF3&IgdmvsJT#Hk14AW;8zE-;=L0QB18DJq
zQ~k at wK6N!eN4rorOym0J><qQW))QC#Ow27YgUB3HHZ)sJ?~z{IgaNybb((7mqzVk+
zYKErc;rIWD>u0^YUR3|RVKHgBaf$70)*Jo4coA at Sb^aE97NnhCoU&>gVIq|2CsU#!
z{O`>By{lOtk5RV8 at GIe14WGvOGLs)AxAle at e1PUKa{4h!t at yh480~|vlu`T7=UGF>
zTd+6yGF?&r9jB%R9xMDa34EDPIhtqTS5Dl+0QX9R1>~GNbneqm?>@*jz%^*K7Wf;s
zy=ZToS35vgZ3duVXTUTW9+EfSw)cpw=RQd43dg-ix&H)-PaFom5c&=jUX%p%n7#+F
z0~Z3UO2dDeogsuuz0|4ypzw%zN&&;q%cQ*1BOBuz2Yg^BWJBl3Cc8ZwriO;Dwv{^g
zq|E`H-t1y2U{w^m&-#w|%|um)B+cY3Pp_qAFAYOj)zVSw#sLOks`8c7YmU5AHOy at s
zCgslBjRjx!`iS<{#j3kTP-jHvtl*TXO7 at DjO6Zh%Nq3z&TWU1+=~b~AY at 2(mtm|N{
zvOS_?bmQh$tMJVy^@R~R1q>egxcs*FC5z5e=LXzr);(qUNz%PV{Zd7}5e=f(+*PnO
zlrSUU`tmuQ(x2cgXo>p8$YidC0FUOalxf~&-92+V)QKFHcSR=sQwOj9R6-2e83?|y
zpLVTSszzBMdyCY1BLcsc89d_Y)kVz2fjjgjn!3mfS~mN+KVB?`Ba~lGBcw)daeD5(
z$?~(oE?_V+quC~PrEJ+Pbbad(oYQrvAxCq%l-+ign*^LKd}m3T)DbtL!&0F$d&~MD
z2NEq_XwWG{N;}(+eAB8dse_xvsGZDT6;?Ap;86xc?H6~W(6Y9%HR(BVCxBiuG!#%$
zSrAei(MxcS=)g?)j-Am{9IV&3#H4 at J9wBgKWL1w}v6QGSNFwM+FY7%r=Xf6U&&+v2
z#9+}gXI2|?5a at c8CHnVGWNucS>aM3C^_a<%#eEZKty5onOS!K)?ucwAQA1S%-D$6^
zDvsy<y8r at CjB|d>tteVC$AMYPS#7hVUhE9C>i!WJ+oq~07#&Al8 at 86uYb?0zPvap;
zF7xS2)CaS1T+mq@?2LC<(z!tpo0=gy!uB%2llVwHhPpMxlut>yL$gd|NfYq_$xV*Y
z0!0fijr{uG*c<j<9Y!`fQ4>lCkKUMSL+OeB<8%oI!g`M^NuIWmH=^<*JTO#;RM_xG
z&QRU6Nr>8pU|#9XU|0YaMR#w?xL at B|Q at v$brW}O2)HI4&r{RcmX5(xXw8Atq%u)$u
za}IUmD7Me355KK5-e*6sAI|4M4^2SSDFp at Fhta7p%$!*ug(PD!Gs7YAzWF#u_)rwV
zEw0 at uGrERri60>_0%>;)Ea1x*l!?o?Yl8e}mnE%CBo4(cNU9Mf#YQorwLrLmyh?yc
zIXUZr#cPpRo%oDFOohFDSyEf*JrY4m1;?{`EjsQ&S<`&a4K6`a$9nh90XK6?<f6sY
z4+}q7nSe0-%morKRKvk|2a99OaIckW3O5OEl%$Q6vh(O>>MDU{kddYq!M7-C$iYHk
zRPovKByJ!v89`E2AhKExhfLg>>7RO7iYqPKmpnO*c4 at J7#vrFS=HPja^OL5OY;-wl
z1~rHTjsd`f5bD8GHi{w{=Nx5!;uDYej5(Md8_vXg5Dm1-&F at ioNF7|a&D(Xo<SRBT
z?^}0<8hbgMXen_t?~CfN_0(MA<Jb-jf&~EZaGn(3WYa87Dw3?PAauRI+lsYbY(C at K
z*p}_c6*YI?>pm>G(97~^-y at s?@eCM^b}_$Dp2iYCB*AgkvDV1UfIm*DtRXp$y4pPN
z&t)v1dkO+GXqQ`;Zb&*xh<q>=x96fx8erWmaKo2L$hL#35!9qMf-eLxfRkgr5$@Dp
z;Er=gyNs{j`ulXt4nCKq=Bbl$2k9Oz^k!#<l3L40;%_?$$qPDp<9yeV;3FMJW(dJ2
zm=ae3Isz*-7I-`W=4opQ at DyU}`<E8YxEIW<j7|svydWKe&DZ9JAAc$TA`uo~ob42(
z)$`bWY|B)rjEk3n0llVxsBZp#J>}B_oWhD^sYa`FX#sx23qY^)B;g3EY;$^nFr-Gt
z{5(<hT#vo;k!jPaD<cM*GYi8FcI{dZ7#K>Ujikd3P at f+`?!8_k8<yN?`#6Qr%#?_6
z at FGO9F!<Cr%>Vw9A7`ZY)H?%)F*F={GiW<Flg;(Ht*-bCBH?rwdG+4vdZ`!fIh7aS
zLBvdw5fj2gi&nJi6i)3g3^l6P(7+XS>Qt_vql|rl)*S_rBE+ahDIkREBcHUrtDMj-
z<IS5LI{<GeFt#8otp45^)E3PvvcM6V0i*!O{51*-Sn`D>AH~ep7(W`HnFu1O;G9FL
zl0eM_7c)(JfrxM6dg9jieGS2`M;#x}`&#U<<L|+Dl_af_=?7cga?uGJ>#0$SZWD~9
zP3u3HP+E9ZR_ND|V;lf84qy==u9M`72|4O23$a?L<lve0L|8Z#USF^{x`y2f-raiL
zaK`m5Y`2RvYIFh-h}!8qgh&XbK1WVO>6n6BbiV18$lh20z|RczHbe{RUYo4tyq at Yn
z<e0|5Xf87nV))^ti^@R8D?rWIbl+UNz(*1sg`w(}a}V2OiJ5~%7G^A9 at H60p^gmGU
zj`<XdCcO6wnvFm2Iul$-KVIW*N9NR=R&dosiMg!8ih`*t<uWO4yGYJQQN_95ZBRP@
z$>x<pS-0rdu+dO%Wq(>YH8ele=mP1-f<$;0oT8B97H!evme7jH;9 at dubiulsH?OY5
zQG1?=s^e%{!TeVSO{!WW{&fB+7T|){O*0<1H(6WT$k~?1{dxe8vNl!B9ZufeB^tz~
z^QmAK-w>lByNgVO8V%6vglUJ;S?&S5<&D;jJwLM%9#5uMCw6P|qtoBq?Y6C)w9r<P
z)*a8L<>Y!hCAO97qjmEPYO`H|$drEqSketMUW}v0p%dSbdqjBq0vhy+&lF;$b)vI>
z74=~&+_nq7c?_-ihWNEHDUPBlN-Nw5*3<b(%g^=mqS{T%e*IqN0dfVp9u7`hejDdK
z91rl}MX{@qMZg0+Cx~YAjCudsFxgQ|*^GqM^Om6aXkk>&_pRidm4 at A>Ws7YXTqEX!
z4c)yRLwKwh1j7su4?l<F+cNmxNsE at ou9rB>l*r*wxx at Zk$_+O9Yl_V_4l<&9X0txF
zw&bT7=br|2VO!@{G>pIHq<9FhfxtZzUqVGm(j{M!>CKeQLGFND4(*`K+}4@!4nSpk
z9S)UzSho-G!JCh>>+d#fB28TCHhSC&`AA2Q17f08Zrd|SIV}&R(_G0!LaE*nA8c}0
zd~t|T^|F-fzdm*Z_}Hq(`M2)4#`!_hPRT)}Uii0;)@tW)D$^<~8=T2CL8~<+J at 9f_
zw}ID`^;dC#&A4JNkvb?57VWxj;Y7NpmFBo*;ufCgc|+ZO;3|pG+b&MBa1X~zSx>2K
z{4Nr#Q9_N`$y;}pv at 4oh>zcSMZNM=xuv+yGZr{ojaKR<trN5})R?R)n7b4D+B=Ni+
z6Mtq(1Fa2f%bMp0>b?${Sw4lh+dK+bg|-NM$3RdVc*KR~KWE at xO&g(9OtZ~>l|Nky
z(DkX8go1qoRB{VfFIdlxUQ+^7lK}?fFp}2x1-8Za<Zm<up^KA~e&fJq_V_??;lv5>
z(NI7`a)~do2BT%&$>1~Uct;-Pg@@Z(h8m?l at PQj)IWXc^ziZYgu>)-VP(t-X=qXWB
zg|VVE;dPu50=5^U3y{RWYrp!`7X>z=px88TB{<kna1d<lyiF-D at L!=>h-%~EOXwf3
zz@|@%4=@85)gS_Iiy*X{2YGL*XZ46<WKp?NkTJg~5`;E5$VV!n^5zrsm+k+1nvIT~
zsTYk_t9ditAjuG^7uMfF%Z;FFFRm}v)DEl8_s+Z;UQ}ye!fb|sSM5CrUL_+$Dsc^?
zI*Wz#fvDB%X~SDA*ab++R^`ivu7mH&1o!;(L~Q92+<0SZcV)?KoVAz!=xC%g7MOMt
z{K`<c`z0=-SvQHCo`U=~s89(n>*hbD-5#Z0y^$@L^q?004V}jifT$G-Uq6 at b_vt}+
z at Mej^@g73l-6idV+U$axOMErqz(6!r%(;^T{MA&kw8>vVO_WKjM%>E1HQiDyHrBKm
zM99W#FJ55}GX$W;b&&~?eMRj-C$$k<LAJPH8pp1n5;jY0iWA;Oo;NXBnX#8H?5<R<
zL7YpJ;aTtFI-=M(-vs!049r_`<f-o7PaFVe at eOtQZsf#@z at x%|Uu`MA5pHEB=Sh}#
zj)Y;NS1sZBQIda#V$-Q5X7}3($=0!XrNrEU*Z+!*ugONmPS>Q|Q3B|Rb2Qa|t+>Hv
z+My;<a=F1>Rb?uW>y%EZwuMR!(1gG}%#ft#!l?e$_$X at B@nUe3NsfAG6LFoR;_5hE
ziSNH7sQ~CCT_MFOg&SFV?8SkT@}tYidN;ZAO4>^Bqr3RI?N}(1$Yx^Vl`w8zd5)(X
zdoFbQUw_W?#}NYzii^R#OELakudj4vt|=bCBrYLRDAig%iJ8GA8^)q?fiyA7N)xe~
zZ at TV;!B<UR_x28>1_ at OY$eLqq00<dI7;y_2Mo@<hKGa_R^4A&!K+yEi!M!PHiK1Q_
z3*ZJQ16U1&+dfTLK(5x^1#-JMKN!E#KH%`?;4AYWDy{V)Jfx;LhO0J|o#Hw@=5%PM
zn>9D{idLNm4Zu`Z^xDjpq`He+ynefu&;=3(a+0|d!)nqD!JPM9mh2#3zQqhDGJkB@
zMR|@}!IMfn(zuSMq}<2td721ouQV*z#9558ABA(;>P1j=hc at l<VZoe5WMDv4)<zo#
zSB*v+rQ^Dk&BfiKvp=KyXDPqfwC#aygV}~}Cbf^v_N;xzj2`W+6M?k8%s4&c;CR1Q
zN$7%~h4I;N5Sf*6ubby1wM^5qYBZP|l2-H51#86I;UGUCrHi|-?#B07x+ at gy@&H^&
zX)1RAsxpcmY&nHU9aB6iFL_Eb)M719cat}hPy)u|+le&fK?cO&jzPeWFfdC4j<4?J
zE~T3;RnP)=zcrXpQtI3=?{9LE#4zsxC;mnUz>dO+c|Fn=S5 at ds?`%nva^+kwt at D@P
z19UV$6GzP~2s2VcCa`EAW&l>0zvLF4<k)W0y#192?e<lgBpG~P1>Bz!&Vsq$t^FE2
zsthQtoGuOAAmr_2of4>3Zs9WVrH%>I$Qqz{4CN>s&nOJz9xg+Ss-XQ42eNU7;{%Zi
zAj`C-Gfp%fg}H;ffz;ys6%tQ9^O^ORu;6p|e~=*8#RSkIS_?uZkP>J?VD>Kxfjk#P
z4+=nX;2+ltK^y=rxzY5gRPV%<(o28389uR_ls^f>G?j3sHqN&p2Cp_Ef9ag)<fJDN
z;*1zv%3<ufz_(M0G~Tat9fe-11Q!Z|pM#67tyN^x&XYha_ at D34VIim=BS6wbuqWoN
zRK$%zw;%#1hV at N4l(hF;jQ-ELo<3}yZ&<x2+6pGsrkT2oxu?aM(&bxl2!6n)6}`rW
z5J0cxn+N at QQm^^f`9ga*kps7i#e<y*_rl8P+Ax2|M0|7O9<@RTKbr3>I4o)B3Pkcr
zA8`%@l!H2QIQv!D^sVMsFmHKWzOOwBKBun%^ls13DTGv|*pv>o&=y>3mx+r5u<m{|
zBzo%W9$0Vc;s?H!nZ=U+L5+0*&r*>gnlnfAg-Qdk;eDShAwl2#djl?&uwIH}lj+JL
zkGZ4nIIF%eouc`Hs{-L|YXq<k3nSfB`|fQb5*_0bMjZ+^W4d|bKOrjvU9R!Sqo+mu
zPjyCDb}ZtYHdsJaB3&VYrvV6qe#<T)u(Iyrwv)|$q9jSj^L&3r%>>Q?VNZk0B+P0v
z at OepCt|^sD2U@;q=aEW4IB&lEk0v}4t;2AjP2`KZE$p4#d*k$?B^H~O_yqqQcN9`r
zPV|}|LLlYcrXXBsJ4R$wO6~X9^B$L9JQ?vN$NQ3&HLdC;S01%*gaRe}2RK9c_fZ+V
zMMgD8=0s}<ReQRagcx*`Le*7V0(uvtLr09jb%j&YjU^DCODniet-+E3R&&wBT#gNe
zw5xX6@}=X|CRHVe4DTOvYG1L;st}wFo)llLDO3d{wBR)q!|4id6_pFGX;^jeiJm(6
zba`zwH#xZjx!W+S9haWg^(6;p!6zsO2- at HAzOZ3+<RFh9!R=M at h5V|9`M@}8=z#s#
z8|HnchFS14eOK`CQ1 at U#gvX=L732%b?c2VplP68<k2 at 76CrT3+twyhfQ{Cf~3~PD^
zlq(%tT22<xGnD3v$mHEP7$)AoRt<Q%)Kk>>%|zIVFe;fEMfrZA#foEQDR0$kAP81l
z6zecO-8VXlA8!}@A|dAj=w&R|v4(3t!ukWr>bgKV4#Q<Ak{Xp_0y at nOnAg`NoeS(m
zqwF0x?j>{eP*u<^Q&HHQcany<q8cTdUAqmGwS-~Z<TyM2 at D1>+<+Y~jmc6&%?<4FF
z(G#=_5^j~H)c5gD%q7QyuBzia64i|&M-!hs)cDTfe!MvlskiyU^a-Hp6VlV+>mT{;
z*yXLQJ7bd)Q0+YS$Kj#^ovigxQV at oyegi8TL=Fy&{mC=+R*j-QNrVMiJ-Cls4Wo)V
zWtvL*gO`@kIT6|=6t*f7uh*gMmIkABe{KV4Q~n at m=R#`%?Me|dV*)OZI)HZhIxX1?
z3!XWT>9G+831f}vI}n$Cf(x?duY<R7AgwtAO3(1DoCP at 5nvX=7gB$c*Xkn53;ra>|
zJjWYFcYMGj4huaL2?NUHhe)Wvl#^dPuqgU{n&V6H3SUj(t3)-G8kD2UBi$XH2{AVS
zwSWQw{|-b00aZp!>t%%r at wsGX+g%>I%cO@{`Vc4OfK0f|+r}sV!`Ko9 at 6dKU;$g$C
zyI2QK&8}^t7oD_K&4mlK7CE{$6ud-&g=S*T*y5k(zzy_YNm*2A<kt6jIBhT)jZ1m&
zCZAp`>xJc?$qq$$)c?!l?zyf=1G7;$<-pO!-NqDPvUbmDXKVMeqGnfw?{9ONj^4sB
zx6&5PVQt;r8Hq$}RYR#>jaQM^p|uY%!ydVv_1%xS74x|4)qDRkI^srK{|2Ua%5p%V
z6i}<GIF#8A<RdOm(*4Md5bE8apM8r(X7>tNLo50nc*q3D3LTmFp{VTM{9h;*#30}Q
z;c1$ib4=46m3o57tyaxF5DzHue<=h9XLQMe1&0l0K5m1USP(e}AF>-c9evsWF{n8z
zE at wwjzj+_$?t4SGsJ~KQGk+M$|Dm<yZ}(mo964tT!O#CserBlQ)M%q!nCEL<3`0#k
zV)>qQcA#a8dq85NFBGC^icKQm3b~I|vU7HYe$1myrV1f&j?GfTPG0t)B#^uMBF}th
zko#R)Z&9K6z2lgs`M_oN9*;O!a8?aAlo&<B6O$spk?}c--DK01#>wUEWwgF~Fr-n8
zLqWk)MZL~9cTmaB%Ra*B^4!>^<EyY<w5<b at HiRx;O)^4wc>j|h`-i*vyW@`K%0t&@
zC`7{0413N-n at 8kRBsaaWm7|ND7<@jLVRKt;saI_6w|<X%1Cy3Xp^o;P-{T!p#eVfK
zMp07pWd at KGtdbCFiBEsiGIgc&2 at aKS=%j3d80?LA7;^=wG|gn}l!^p*G|zvtykMBO
z7EXb}{54JqMF}{hJ6=PcQuNfEMfTDBcP4E_lleblwa*~7q~Tu8G3Ao at W0u=Q9+E0M
zOIgXyxd)>wM3b3Ore+nK;Z+jDiuEj0?l-Kf at YUz=#z3-paL58>6Ys9z`8D{c94=Xi
zRC8yqv>L?UIJbucMH^LFAqZ-X<x|1Ez;JZ+#dT$;H^Q&yc%mNvDFpREQlDvO2Nt9y
z-duxwg~Ni`m?z&rNOrz~mef(adSw9MYCzXQs165p_$|EMEu=6a;rJsis+Tm2qQdFs
zy|q&xO<q2_3GCa5A-)l+%#~51tIRn}MZ??j_CZPjlp2CYAbukT#oOjNYLt52G~0j}
zr(>>GCG@%HxVyLFXI{_P`FlypQz)!~o)@iUOF at i0Q1CN`?@2oVQC^Rb0x71TTmsQY
zuuuq9wXwic5z2SclRY55pC=`U8Epmt0(gN`B}(`U<iMUD;mx3!>j#T&>U8G%2bLgU
zgDzV$<c>p7MCT@$h(E&1RPg~L?O86I_=h)wF*Y+ZD at WJw!P}1C>_(zHCKtOKXjhjD
zYjl>Jw2p&Ce^nv$J}AjFSx!|El6mORG2G}W3llMp&+apqc9F+xSa8TxXUrGLCL8SF
zxFik9_Z2P9eG^%`y1Lmu?zlqa+6$7t{}&nc7R}FZ2KLbIF+mG%EAhMwsKqUu_x{y2
zsf~cuN#l*2m4b_oCD*M9qlXQH-s`dtl;5COO>J7F{E#sH)5BJmh7~s-gi>aW1yWgn
z#_^G==3eoC3~Jl7^ajXW8Fw4Ek9Dy{!E5X~M`WLR5O&3N1u1Rku16VNoRLs4&qp#3
z7Y3!YHa5<Sq1W1nA1j&XUtC;sTPn$s4>xK}b^ZVs>KW-t9j8C~#G&wetp>B0BWN8k
zU*e@{c9YPhIDQ(i-VAiixiBLi*lTldT@&%ebtZ(=J#x`>Pvxu*4aC*qFe-mVPNU73
zJ=1&qA*=K=acjgPv8hD#+P!jfb(VEK`M{Ktnm!Y2ZAxZDFvT>@?EV*7H`%r*qgA?E
zBDPM#g&fz4Ux8{%c`+vsTKvzDVB*`LgcI<cQW(YpSA=k1so-?wB at Lg&tgTV{1m!e$
zg_rq;cu0L`i8(Dvo_VM!1Y)pIsHQMFbZh1WBLVH=&}9J$?%GN53^e0fTO2jYAPFQv
znTCfKheD4RE4Bij3v!ZEQGDH)*3`y=2((MRae7It!+n<DMSPX~CgMfam}Zxf!BAS8
z$gzACU6!4O3ElL7osiHW8G1<b(D3J}HKh$ISCU_lo7{1z8`tM*PDoS*@=x5s)egNN
zM~;;?0m2Lh(}YN(p=Oa(@|2DRzk9TExAaFI?}yL(Omjt-&B5(1Gs^HyR;}{s|NeQ^
z-rL?9qYq_~>fuQp at eWSIO`9}`Hxn*`Kum=Tel$m%V=C=H40gWI$cNEv+UJ$wWaT)>
zZp%2kE;g0&kledr(Q*7J-y(7anP#E6Xg<4M(GAmWut`6yk#1Vvt#`8 at T}pO+lFB+x
zUa%yn5NVStl`H#hVf&x6EX5U|++fMlZ4eE9)Vn&9#1KlUzU=~>(V0<LwpnC;<9y%R
zH_0G&Df_^oj*{@YYeZ*nKsKs9*5xUkFW;~5-+a$Q`ojU|`|?KtzB8M)ag<w%kR=3`
zgTmt8g;A5W8BM!Q?J;&xr#2~t$zCu#328I*h6|+6hK;kBP;1ffGiu1KV=q!d>B0`3
ztL-YQ_kyf^4lD%m9dA7x&z<BP=3M<bwH9SD3l8()CujM~oVB|F at TO*fT`tI|yC{lO
z@%=%s<#{2 at rFZea_qdE{ec`Fw3uTsLU>SZNZV-QmOMZ{NKq?|<DLA3FW2jI at eoG#n
z#G71$uxz-9s2(Z5T+=Jz(5a8uirh?uKtIuTojX}FJUh(a#K4+~D7!0sc#|d~dQ<9e
z{U1}NtATE`8O|U3iW=KSc!);L$Ho{0ae3Sz+F+H9Md^H;j|U%n9ZR4ybPXh(-L4??
zm~&?qHQsMV){QRmuj7SOX%005g1Y>wxJ at tKOETQU;Z*)T#IT=9Q(zZfuVB$`7 at 2VB
z8y$EL^uku}QV+dnzf#e$tPM1V2Hz<JU{Y0pdpL^P;GQ<s4KyepSZYlY6%ST`aO;3+
zrzUOrM!1mUJy9JTVeyT!W_BxR1VG_>VEbG)gSDj*9zBg`0Mzo(&vqw2j-v;GoLGm#
zy27%3A0*>s%MMK+f~pzU%1q0htgnNSTbf!@f4M;ZoQhktJC3KFR*ezwGy@;^JSD<<
zzm_b6;4WYtNsTKnrGQKhBvr3(;-vbid(0BRdHgN-^Kn$5oB?RAgCCeT`5%@J)CHuZ
z8pKI`l+ at sSlR3%1Ix$@7VLf%M$H`^a_OK5uIO?q3CBraksPSRiMLKka)C_wN0fSlr
zE|C6GTkyya3Oj#!JzXy#Dh;vwTIF}oFG5m+m_9`1|3<(qFZdZa2ZKePaCY$L(8c(Q
zLCxVvP>*dJ?<h&i^@9yxA?1#UKN7c))&*e~a^IjJgoIT;4otq0Ttqv&ysa8dO<M5x
zgL$jr-0OJghCxp*fOe4J{Oz6H_QmY8ecAo}4Ga2z%TK{NZT_(6Iv75X-D7L8$2r8v
zHQ;~0LkS&v%Ha-rO&L#M=FrDaN)Z;P_1iLGhK-gEmHiXuVfP`r4g9hxp{qwm^Pj8=
zFgpkvP`O?CiaXBsO|IfkQPf09Jj47wB2bz%3XnHiq<P%G><*Bq0vIN3`JM}?`01j{
zO|(JY&$yu=gj)MSv`Lf0FqEEMB25o;#b0{Cf`C=4;=B!MS)W_=EKGZ0sA!Ydz#T&x
zykpmD)9e6U12AS33~MWz-!jdwFkOBwJ9^3z4uq~64%MyNx=mL-hL6DU6lBgm!3(4c
zcbwz9Umzi5<LHUPFS>~47p>CO`I9}moG;NC%4p+<dH|fG3{xnn7A1{!;1+?<I{;=e
z4-bOOP4+wq!|1OqN~&LN-|^;aQ!}gC at W_Vk5)F0ITMExjC;@*o at 1VBx+xDJ-A1pYO
zT6W}A&_!S{_VA=o4R~ISGhcFSJI2DiU0!U_U`aA9|E70)uowZ~n5}UpZOTWihYh+?
zx?AHTndA1Y9zgMm{)x@>DHYM3i(F-TCglCv;{BY2m#+H{!8bJx9|BKO%bIPlHA*pb
zlm*<OR{<<I$1K1p;>m|AGTA10nc!~q{4i=mWrGwvZ)lS>x3%?<bvA6EedLU9O at 39H
zd*FY~Er+3mHi}HduO<nWv^e(yf at t=G6)lb!H*=zQDxlZg5gtxE=Zyewr at MkRUIbvB
zf=FNW+`7j|GdM`JO+OTpZU<ULU2U4DoiL^s<>=a4JCj6x{{9_Erh!1^?v7viS$z+O
z5)9ZH^6<9F;>$460oE;5nkxH$rpW5ybmtnYug>tJn}!flzljv6<-m9|@MAto85HDl
zD5l5>&8lDAlEv|HMxrG8wje)U&Q0n|PXp#TUk$2n^*wjtL}Tf^vH3TP%`2pk3KL(@
zGX&-2{)LLJuE?q3c6kYWvqQw`*>7&3J0orcwf{<I#O?>pr3MRaGb!D1%UO(rOei*b
zb|&8>iN`AYJjnv&Y^9l@^v++S1=&PZr$1fpFD)af4c`qg?K~VmmYpo4vjl_kP}Y|m
z`;0mY2maubrjXmLA=I1o;=qjlxoxn<Q8+~zhf=b7JZ}nW`?f at s(zG(rV;H9F3f#b6
z_G5#-ZHxb)J1Ddu66S7Ylq|+7A8UOym!<bn*?EZFwX_!W7KFOT6iFALUh`F%=Sisp
z-<-u!|6kQL-Ker((jYI_zVY$gFolM8xdTrEI&Xnx0-~_al8$?V9OSnlWLSij<-meJ
zsMHWlU5e-F?KnWHE?u at bO@IjQB<oAEH60)A9MD!>azscyz_q&(YO?>KVlIG+JwXie
ztY~-8t4vT5_Q15{9UO9cuv4k+0S64~OTZdf?5QqpCEDqgHq6t4)r#Dpa at e}jufOH6
zol?`KPkK5TQCN6Ik1-nL`drU~dQ!tR$m#n-*$$~Ho&-q=wzu7bD>q6knIfaOkc#-C
zjg`Tk>wQ)nX|u#YiHv=qjsy%tN)LxQm6_cC`Fp1OQJxaTqIjj?5NS~o4Y*XU=f0rO
zVHq%)c(yco`vKVNEMlwpI8Lz#hKbWzAreze*Mb<w;q^-_CgmAC0=Aa3HkP}qyXz-H
zHS0ja?r(B^o<)Mqt{t at bK&%8Hj=!Z+>fG6$499CCAUOFKD at I|LxAUw+si*6U4*_XI
zkpY^lVzOq&sK98-xDr`X$31uO;=jLv!oV*i!csN>6wzry3bpG^f4sKqk53!|86Ra_
z_$Ce at BT3Ly0E&FkC#98`Q9{CSC;WL5xT!S<xWj>qM`qAk=X8%q4 at XedRV=59YIk=R
zx7PZfV69Tq#VTdF7b|pjGP>~)&jSmxHp~l=zWPH;f?^)Eq7~1x*Nv}QlV*}0bl3Xv
zAkShWC|Vx?e|O4ZyX!)X?rKjjkw$)SlZHb_IN|uFUmT!UsTv&phu0;Na5z<&mU<)>
z>Ye!ZQ2|%m;ouetLrHv#6C|ll-wgy71KrF+02u=IZdMvgY;OF<|H`YI$P4P5weANq
zhI?L+IYdb{t75 at g2CG0;P&R!P8Z8gcQ{wx3 at V77w?K8)fHh$0n42|%9h{Fga`^Qmt
z1w$~qvMdvU#imxa=Sg@$kNY5tzf!u?Hn<_(N6AGA=2KE{13Cl(!Z3PH at XQ+=ESh)m
zcg--(|E{Hq4bs?-#SlmZT<DdTKrak0k!)TLx>m_t7yTS~&wLE22DdVkQ27UeJ|q_n
z1COY9_s7pKEVGxhA3yToBX>;jxV-|6pY%NYWyx1C>qj>DQx1*uoTAa^Nx6t~*zrO2
zX2||QAOz9~q2?ZKi#^K$-kRt`S=iSr0M`IG=Qf?{9)No(e7>o!<#=nD|BLSrzYOOD
z>gb7QC1=Mht-E6vG1m4L7f99;`2mxkI at kBCNCFKzPZ}_EL2ROzh&*_ZBJgZedv)0y
z_kITC3qQi5Wk!7{87mCHOE>gF?}zFaiCj->A#E5~1o<xyPcrC5gfg^;;2L~;z=G%>
zFZM#i=ugNH!QV#cg`*D^v!u at 61BmDql)g5R25ZguIK2dc54c!p>4`(&AvL36erDP6
zmgH>!`~}c#*Wm`djUDSb5i5O*R~_Y*o;DT~a?)M$zS0G4;r5cGcSWSdh;i*re81hz
zJ<Hw?tUKj^Fjm8<RpSca1LRjO?fPK+)fFRj%>`=R_TFd%TP5n^+Rd-#n+xx5?TXL#
zhyeYakWRT#Qu-j&)dbw)U$X<;<1?3a{u*#TAJ0^x%4bQ=oL$`LH7}sYvuYdo_WZBc
z{!}|w#;xHKG at B(9&|2YUh#cj;;BFe{o6+<#J7mLa>wwr^CNzhHQq^0r_pw-XACh~Z
za7GRnsYGvJ2k|($@nbmMD{MB+KS8O2l!HXFPW>a%(3Wb=xZby>ovAS}{%{Ci(r+HB
zA`q2u?&j8*8%kEE8_E5{mROtnNHb>Te;1|4Q@~h`nUtrQ{*Wd?{HEz59fuD8Iaqzi
zy0gz6x6HSlV{)c~A2cJxQc`(9GlCUyV<r(a>Bt*eccQgo_XAOcQ(MO_^5o=#RvE^P
z4`ODFdaRrbn+*jY9sFRV6}nR6X3eVhg0;083J`~9oWUNA-23zB?W&MOKsG(x=-?4c
zO*;Jj=NvP)Ud$e$w+xst19ecwaa=CY-vj#DFb($TwfAHS0oWhl6aTy7Jm^(CTl)Oh
zpRlL at S@}m&DZkGN&{=Fbob62*T_)EZ#oznW<AGeP(m4ngj#Q$nY+%<%pP*xwReN1B
z0CXLX)gq^gY*H at 6+aB~5o|D5VG0`{vCO*g*49S9(-F^Pp#W at TlG#al(Bmzykb~k?Z
z$j?#GR-?P&01AzP_j9koafL{rkc#2upPd-zWkCCxnWtQ<jp`+X|178!KWh#ad=Ep>
z0MdLVsUD#_kqy!=keB2mv0b%-POS<mnW+}i!qINgd7hYQagyd@>k7!rL9d?uk32!k
z0c2T=`@l}OuEX&#N1i_s3{VFm at TgGdjj*9isN^U&Xy^?NzdG<17S8>H1|I)QJpNx_
z>2e3|%SW?m{;Dg!4U^WAAESxBeC40;<oy5_%)#@2)uT7^I=7tqHK3+VK02HN0`Q82
z87gUw?-FF}%V6y~#D-wTl3&0{*DJt2-G$4r6UuH_(QNy(&CEx46eslAgUcPIk)wRk
z5`%98v*_>!5(ZlQiWcZrEQu=C$oACOH>h4URCTUKv;ma9L5ApR8EQ&Wrk0u1ut=Ut
zsgVzkfvnC%E1wLG2swU)UhEBS%MKm#bCu`q?wVaul=zxJD9H)?X$9xxjp#6GXt2o|
zFHMVe$et`E!@{2d<$x|0Zk0g17#ZsxPC)c^b-Sd)Fr@=s@*r!db%9jh5=Nc$$V;C#
zOHa^Gk8Dj<x(;?qw<A at M=n|F1llv(bNIX#sQy at 3GCntoO)ISib5?0hoaJTR-D*2oX
zra&n2ujx6o&tEpu(*_W#MD;Y-+0znG1_VeGSm?i}*z%{OVup}|cCrhHVy&hU0$}^r
zDnX5i-V0Q*{=3L|g^weY+)&sP=LS_mz`~&599{<}W{XV~nd#QUIs4)ra{HF8MiC%;
zg9PAVbmhoD`X&r at MFFA;RDvGSAwPWpbk~48q~8EUNnP;&|Gy4{wTJwkVXOHUp6o#g
z{D}f;2>2d-&1hi|U5yy5LF?fUqUNq*{d8^+YXV1h`HgYwDSKa#3;r*)Tzf3vo at 7{~
zxuG{(GgEC&EAhw(F;d at 8cNt)(z}^PA%hjkH*Yi7=h0rmlJ_F!DC(dh`0DxbVRl)_+
zmG$4oGlquw5WX(eEI9c#>py3PVhrdZ at C3wTyIgP;Dk}b!HMJ3u;OUt*e=gd18IdUX
z3h;B#uBVQiQWtJXTfJW+fpQPG%6*?Fy3SYs at 2l5#+oxxsT2CV=`Zdn8`ZYP7C#4<&
z(R8O8mV9`)Z at 2yH&8xYZ$sh|cyn4SmLOW_y3aA(m@*5E6)c1p_vI3-%)wVI@;<}~E
zY%FLW3-AJmraQ-QZg4T6kG1VCgdg@`%}NLPX*^%`pc6o06#}<Az3vj<ulAfu78S<J
z)NX8nrW|cnP@#sR0-pj<hqY0}xzp`YI^$IqIOpFYpy$!Y6{K4NilE;YKq%z+kbQP6
z=woA0jW9|?f&VuEFNGdkflTO+9P$1E`{IKWPe7$c`#%{92!|eQhO}k=37oI)Kkg0k
z9)QdJXJvqF8DuVyd_gFn`zbm+0wb<5fvVaT!@u`R*FgF;dq2W?yKCev7bNJ{TdH<w
zHeb`tQB>`%66$Mj;~cIiO(5(X0PpBQC<lU)Go(4-c!Lsyoyr}0ykC)^po4mGdb()9
ziRT{)KnCH$58vTXUDIOG%7#~;9WE=YTb@}AwZ-u)3g=>GOOkBk?;GDl^}b(PpS%$`
z6Pz?_D;lhfEe~Mx0o>a6pZCPTKnGxuNd5m)+Iv7Xm3D2zIF3E)prS at 8BPbRGH4#Lr
zihu~%rI!aKMCnQ=6dg69Vh|CK78I~irFWPyDuF;EAYiByktQW5(xiR+J^{z)eV%vy
z-~a#PTC+6CIp;3>-u1fn>4$B4&i<6R`MxZxM%mmovO8nAFT7j9EMF~{11BsVvf%kN
zy(M^ezbhy_aBfg#7~kr@=&gD>hrXF1lXI|Ft!F$67RCT=(d=4_pCT4zM0`7nFZpiu
zh*V&rZ*Q%3Jeb!#lJ|Wh(^aVxX>ow*!XIfyZpC0ggGVaf(YUkK%`XlYl)Bx6^OHoh
z8c?-ch|%WM`i{aOI`7D{Q<nF at 51ubbE}^YMWPo1%f^1{Aln8r{YE?1V`1<1PawooO
zqwp8bh;$1jmd`C3mR|mkZpeMW+x3anJ6%7u1cRqwkrn1wVE7clVF#%}^o89QSIwS&
zb!4P~gan6|V2 at ly5L@h at dbcq%JoitPcB9GV*zD%=U}<5z%#LO&Zm1LpIr5yq!hksC
z-Yz?v at +Ef0vTj?h9{@#=uK-eqod+k8Aems*5N=Xe1Si<4VZl#djjj&5KA2OaO*Mz8
z<<oK%0 at 2#&lk7aW3_P-rm)v}}f}q&`@wDGaNT_5RBWd$~C5aljNSz=ke!|GhegV)S
z%2D)JJkPv=B8R4Qgdtyjbu6UDuJpclG*++87%DLl56-0#eSG+1PCA!$5gh2AmGW9Z
zVf$=)vE}NNNKHGc(zcmL9k(vHza}(Hhl%+U=($Yi+=Lt-wE`R-!j)ayr5PvOK|0RQ
z1Axz)#<rx+3Mu3WCiR$X311Uph2jIjARcGuN=2$`hig}XN+FT&St&l6C-hK~AuA7l
z-daL3`0wCPy%Q2r0eS$WQs}wgq<x2ti*=Ua4d4mVj1?Dzgs7}RvGYriI}SG>s9Y+$
z9T4!~?bkV<93*+3kn>+i+cICeYzCJD2i!w(v?J_bq(p>-mU^SDQ`Y_iHbqEi&9~Oy
z=a$j>!~RvEW9JJ!f at BULK3p~<10!_cpi=@a_AbwKBYDg=kk@*Nn#q!am_q6xJnPCI
z79lw8j*)G7WnJXj2PK6Hu}s%3+jq!@!2IAD^M(HY<2bc&OLoT)X36!v!4y-`orQ$t
z#;o&<CMb1gUI|cec9Azv`gH#s0oQfp9*?xq=y1up0|)u}gyz!}<+yPdSFiVQvfOFE
z;#>XZ2bow3duf at Sc>HKo9IzI6AQeC~a%9dkdh`g<7lHQR)mjtvt&ThlwnH$tJ8+WM
zeEYG8*d;qbW>3760?`%xCWtFny1!%}#m{hvo}DW7EXkqNy#BFAzLsA at UE80x`%g!<
zRX_m`WxP<56%E(H+B00eyKcc3ne7j^Gcrk(C%A^3wwCO>g#*tbn)*Lej;eo49up40
zX&eMXjNqCSK;k{tH(2{hYDg*Mx=EGEx8caV2eye)lB-|zsG;fsQ(>p9uAM%~HP*}_
z-bD9GV*$A<mg^|%@022GnsiW_;r!RAhYrMNjQy+99`MY|#+!|)#0-%X60OKx+J?+Y
z`=nf;B3r9zUFtDSthahQ?a;Eam{nU7xv8L(x!Y{e;aXvoN<+zzQ5e_POS_7aE3rds
z<nNa6V%%}%w=q&*PU1 at nEJJa*4Rn&7A8<Av{I1oo^>h+mxGR{&Em*<zC7$j!bc_}D
zAGKZ&o9VeOUxl(uM#H0`9a6!2*+YqL01uCr`mzV_cZgo2r(~iL=^$<1C{6rTmJnO1
zR#6{a-`Q4h-21wpYrl6AF6e_=rt%3XnAXfwT*KRu;_v&EsLm-ldv=tAXI;s+6^k39
z?^$u#J-M^Sz0bHSX-d51W_-?aOezeBKIe%&^$nTwVM&qdqX7-(*`>wVO+?TQ$@l at 0
z*1nZEG{|YWv|rngDsU2>N<ZO_YLz>?7t~zNvcFb2I%?nBO$apW3Z78e at fH&WaPLAW
zA*~&d-duDt=}G=*3HR)wwx*`9JMr|E*U`B7OTEF8X}S~i?Vz04J at tZE;__Z8)uOAh
z?N6qI26jS*rHlU+%{#?;C4*q$eB;;)PBqp2xfy_X3u=P!%`PUC6i#gV<};THJMr#L
zg>#C|z-iK0A~97 at pX7Ac<IHXCCHzV^_TIaEu7awV<6rw%NrdxSrXP9W<44N57dJM>
z9s+qBJ%$(GbO_)*+Df0jO{)gG-7HSZq}U*-_Pp~8`6<`!qSDvHsKT+-n*#iu2~F}+
zQ<jf*-A8uOu8{$ongQ%&I-g@?6=~5?fDcE1CX$!bnfSyaz|>oe_I`1__wOZ<PC5H}
zs_!c$b{6O6fA4dnjX>RhJQC9>>PM-Z!yX;qZ(|3o6QJG4km>>JZgiNr8z~k9$U|r5
zS;fl$pIw-8>Jj;9KjetiMG}6kusj2O7{)0lMuUn0&<h$z5FCD_HU^(Bj|VW*CdP?(
z6Es|IU~m(q?b%{X0w7C({ge-P5U4-qV3M`xr-jmpN_65K#l32<?qPcNm+MQ?XSIdk
z=u@%~c_+)};TnO0k!Gl~=w800P1CmfX;pujmUw*nirv}Ct;#uR_WS}K<u}$drZYd|
zK9rAs=vbJj;?5XD`E+t at T3u&O1#r%v^!Szb=HaS`C6SF?po%4AU}oxoY9FO#L`+Qv
zn6!kAYc}YD-}aAoE*+!uT1`Hz?Gbe=<>T<ur_sg5sFvw5Q*sR4Dolm*4upI>^6YGN
zmuief)dL>W`xaU){xQ78p0(+Mb&+O>RYjZHMnH+b^~L->VB**LVE&S__ABtqmq7{E
zj|(;A%zjAVhYw8E>6xIN8tsS#cc4#n30S3&cAP}iss`J8nZ+l`xgIIyZZC*wdQLU}
zra2L2@!vjx7#5R)oDg1HnBIUG_>!Va1imENKT0vscvhik6qyomN!G&978Ex?=0<DG
zKAP7!_KJL7*i!#^<m_CnVB4?!(ONIh*y2 at H)G&k>3~$m1uQpPtayjpD<+ot*ICA-`
z?jG-kEfZXByYj}H5ok?0A-u4s^|l~;Xwf#375C$6ao~xX3Ov!RM|OaDg<DS(d?qi2
z&Dt4h#uBdyv7}Mkz}DxxhXcDzlk!vVUJ{M*zo<%iyVWt`_(k;x_58k}YKQe)iR?Yk
zOmjf2^8OCt6-NO at 3zKn9g|n_pGo4d!{aNp&t|T{OXK}6Ovs-ee9KTzRjQZh=Eo#>v
z;us5JaeOGzQZIo!hK@!GDG!uR^6Qbk#g3t6#`h`VxU>%orAA~0quhXJk4R5VIOzm%
zyi<`^kJhgaXBer<xgcG9ikjxP{z62mLCA&(&PLK$D!T^T&NDz`at@%+N`5n!SKn<@
zlWFT?8kX-7Q))nj)E(&Xhl|lUO8`GY0(d}BZj;mK{o3NiaZcJ<a*#?KT at 7C^Q^Wj;
zl~`Uqyu!JY&NFeUNvTS-(<f5~E)MkT7i0}Q;b=E_xK=saLC#7-DYdh<0Ma!)@CCrJ
z7`oO^E)C(42$Le4e%Jc9LxIEq+hr|+{Whsh3};#vig7T<Qf at 3Z1uy;jM>-Qp8w?rq
zW{@OfDrU{MlFf|QbKZ}N4wNv|Eb3TJuHsx$d8#(QfcC*awta9w%{?vsMmfm&GaHCB
zk*1M2Nh~rkvSB(~2e!44#$-nig4c at M)}39xd(&JP<Rr<+PQNI1o|i-8Z}d%(HZwfG
zg8WvBMw1uiT0H47&CzvN;pz4JyGuYa6s`q;t6)pZSkC(H?87~_k%2phj~RyWYDUT7
z`!apvOP%To at BI*o at +T)`td>x8)Pn2_&^-y&w$}cd0>A3gWpEHd1Gr%^mEi2|gT&*_
zGsM?B3E*{sEQ5`D-pH at -KTdtKK;$1)62hA&&&aghuH6s`kU?X~f(#5n1Og98XxMOf
z+I86QefN1#-aT8>oUtOlV~7RxYxN9)K>M#-{0oQ&w%_}JzQ?c1?n0;(iY1#yREdvp
zO?cL&N4Dnn--oU5qIcJP7p&ZH1Ewq&LHOsHj%(W=h7>fM5EN!~9huVv$X&&JFD$t&
zi7eTy`-w7UzhP=&TQ_3kIn!RhCHN@#IlQ<Qm$~8(=0B#vJy2QuW4b(}`ipy;B;$$1
zJgvP!G{1%bdVu!MiQ8@>aP42Y%a6=DrB1&y3R`5FWonV^XdHAJb@=^j=bvCE$G#BE
zO!(dFUvc*UvFbhX{7SN2e&%^egb)A~FN91~X`W5qW<TNW$+s?zj5Eg{L>i6C<zjkH
z2;Bl|!l^ApmBgIACd*V!j!NB+Old(n4ivwTGkC9l<5<!Ng2Xl7unUZc7hz*Dqb&5d
z=q(`D8oPXaCZb4oedJcA%J5)0ceb8`1>4p=?~2Q2aVdtAtaDB?(MQ{<ri^djzg~tA
z`y2}Cw{WZw>kn_%F7<}HEFnx@#FyCZv=YwOrrw>uWcJw*1{!@LLR*qwem(JSz7Xd9
zLRe-Y!!XR%fWQE|5<d783Yr}Ln?M90VSp=?`pt)DAE0(sIQN9#61nlsxGJ6h+svtz
z%`)}s%Kn!)FYn0CO{Z#b`6_u`D*yf~<Do4KKpqPQet_z9kJso~9DM1DRQnXYYAaBs
zmZpV`e<ntle5Hev(f{DZi>-`v(N==rL+ByCnX%=n>QQU`y}BRGP$1SlqubV!k<6t9
zdUxr&cQ|xO!*7MKv%3|M7EjqJ9i^JqI~{f^sdfw8xoA5az8_N$0f*{*N;R;gj=zXc
zV@{~bmrHH-{1&t at 0nY#I;Gu^GmI at TEiZ!(jF-;(T7eht^EC{wVfOPpR-T)_LM@&3_
zHM^N8YVN-Z4u;_CdyttD1+eJXq9^-$>{qgY;SbRVlXA;+vpEv8l`ztIs4~VE)%DzZ
z>Gu==2!%8wEsSNHU4og<*^MbG-g)6R-2BH*35 at IPw?F-Z*HAv_bebnpBN|i2<lVKw
zh3-8s9&AyXwu&3e{gObIr#Nv9GN~mSrbeC1+V<h8vw|GL`}BQ;SsgO4U%dF34Atzj
z$k)Ez$Bs8jD6<BSjlM5 at bO;+Vm}cigR8A`ZI^^oMY1?fzeM^w at eX5{v$$dJ4#G>Vz
zZS3{D4uE84l3U^}clQa+QSFO(1REYbH8BuYnuhlenOh>{O7xoUFp3rVD3u+EPw&6D
zv}wXToAX|6oq1|^hPAbP0VmZuF;`(kuhOJ}@?NbkhRknc#QfVGHa6 at txzqI3B5Q;o
z#YoA16n|Y!GDdZ1y_^4+=Z_Nxe)}t8B9lxnOrHPKOt1DfNnVfGkaYi1_TobvkE-V_
zt(sJA50zn8JbUu*)#Fj at os8S1IzNfatzoh4mu2jlB<0_L6WKZ1*Lb!5G|6)~NJ?f#
zy8Iu3SsBJ_8Nkz0Sx52W*|a3!uPh$|<Z{}W%8wI{XxME4-%EM+5qzfXWAqFbUgT^2
z(?TibceiOoQIU at Z>7p%Bt~ODcQ99b*-j2rf(4S_!a~;>p$71~0WPe}!N+C?1Uu#<{
z4&8ie^Y9(B?ahkn$$LMGlH{~Ib1>n~XaH$yidHF0l<IT~E6f>YdU1?a&MBem$TfqU
z6o>9~$1|w8-f&1%_9LWjuxt_dVbKp5GJBLu{0ySJ&oaD+TgrMkY7NA;b`{Vb!x4?&
z&3*k1sFW at dZg?=?08|Mfu!=PH*`nN}>&%lwIxk+jDO3e^x+C=pfvL=26>1VwE%8rT
z(0kx}-KRq6<}tJ(Jr)k#72J6jyrZw|ch+b(R4W7e%!s01yDrl<Zpx7YIR2z<c7kf}
zZe1$baWxG6cLp$`w3QYninwO at 4-)<Kk>T)Mgr5#AWA5de)Y17eIu1!=;0Ff?X*axh
zHnK0Hc<v$74lDGjn%8lhV4lUiUg7deSJ__*<8kCsZeOD%cJB{os8Xju`vKLyd@%88
zej%uFc(PL(okA5sLv4RdXm$Z+8LW?4SazeGVX+2T>AKRybSB>vz!n$1Y|00pdu5ME
zr#xB&-JDhi^G=Fg0FDlXMspe@`o0<P_ZMT53DyEAY8Rt<k&qJ)BH2>z649v^D3hI`
zyxg^loL@~3w at MtCJBKfSQGjd=(jy0{0Je>^_yzJem=Qrh6_n_~EEF=nLO;|7I1T@(
z_VV4%oG&tQTU}u-h448ge|E_QzSUoQ-WrmF3z+~u#d4j9dZM=?WfxXrz at QeFj{wpe
zB>}IXqKyXNxJ;=*F)PK|qBhAG8gDupkC;gje3N1^{)gk$!!9xNpwkudSFXQ){H at VG
z-9*-rXzf|A)c+Faam%@1JEG=$J{ubY<RKGl?un$F>Ngu1t|7d)P1Jogt*n1Ikyfi|
znI!A)UYPy9BKQ5jM(sIakxezzc_tDtJFIXv|AQ7)_t1S`x>vv6QK(0hd$@XeKkIFA
zjL+$*1U8a1At-=pE4_T~*I*kWPme0pif;-q7A`zZCBMf7HPfYXPVyB_6X)(}1Pozz
zj at Dib1gTLeiGd*TRX)>pgy>MqACERdga_7$Ldbw{KE8Ii{&G%oFCeOh;^zsNJ1})u
zu~G=|J at UzlUnkiVDlt1UMgKX)``5PYh%BhIV0e!8f7Z0`BeDlC72Lnh?nAbN>`MU8
z>g`y6zrIp!$WXVJ^{;szMw{Cay$~e<|J2xZsMM?J%S6H at +tM8NN2U2fZ2#XG5)XJu
zl&ZsV5pMGud1J`o7#*J{qZHKE1Dy*#c>o=Sn<J~g2-`lZ8@^u7vZp>NPwSoD at o@SW
z at l;LuOU0+LL-XsqJB+fA1-nH3qI^J5WD5(b7>wwn*ChlNJ>RePdQXdcbG={mj=F8(
zwwjr>=5;w*CB0)N?$g=OM?f$@2)&(MQgogQ^^E-%QLCr))#95`Re%G_HNGTiB%%-C
zih at BvO4k!0Db*_vSlrfL?9^!%44!4m$YQ*NY}e90!M*nFvb5P2akAGp)O;XT0PH<~
za|GuQZ)5a&rCCZ at 50_&23q6>}^f=5}#^rx@=md&0HuAywq%qscinB5N<ggGtLB%d6
z?tC?^*)j>EBXK?-up{+5 at x83Hh&|7*gb0Sjy9vI3<Eg6lvkoLk#tnvoEdDa4te^69
z!XA-<UYRthrDT5v;QtF7!04!)rg{{T6(yf!k|0wg7_bD);jZ;3ug+}Zc2$bsmbU7S
zo|sgR!t4MCV6<!uI!M@=;TO$Q1~$p^zruhdSWoeF-_KDCH{Q3v9a|UPqIy8?TG<iX
zEqZ86J68~z3;VsJ?7<Hk#mSsWZL!Fa6--bA2-Dp90Gpa8#~x{+mI}c=w%ObW&gkv0
z;iNqGAjyNP2+1dOsPoD;K~8+|rA<vr8d>>KK|Hihc)(uMT1hV1!FbXckfdzeTRciR
zyzHv7QkH4UX&+Z(=F3AJ6+`cy_XsIEU4=Tt5>|N6zhQS9o=bnQ&fCc#$4vLVxAQs^
zXeU<HFU=rQjQQqaX-m>y{SGPw<)<$In8h{t&_o~tDp2aT)&luvp*@!C at ++R7lC&q;
zu1q@%Pw98sQoFbG{W9;K3Ei^#WcmkUn^;N}oBgbVABB^_0Zakatz&mg<{LWe)z<HO
zO781yUAwqgeITo%znlI+O8q)%v!4yW*V at SHH`ofS77=HYck*Fe3QnuVUriURJvbR@
z+}st=r)gxRndLG}%b~o3G{Xv?Dkf3=w9BKy`S2C;=<C)RneU&+?*Z~~>8OzCE|k6c
zG(-?pRkNX~7n at KGzrAjijFx%ZiX3X5_?7krkT$;q)bY$R?Sv(lQ-+>#M{z;+=b9-J
zuB?}KNu7ve_exc$Y#DR#Cduga)P?bOkMPz6T`@D#fRlL3YD!Mm(2-rkQj`$(fGGiY
zgYxH>U+(eNRlMAA?4+}W%jEZ{^nTIW6M2iUvB0ws->r$gXF2vu(6i9xNioFgfBtCb
z4$V at yZ10+ZdGKU3&$z$AzWsBfJbz!)+#9b-wkayB9cID^|Mt98bOon=j7qtgcZ(KZ
zz$&JY8D+^9Pir1#EM)_e^`9qhP31rTVxe1Ox`7x9#s^w2J*1)=AUqMYUDLZxuER;R
zsZY#AC~7|${ydaIn4Ivt7(rlNj@}ACk)&PR);yoK4uqu0)0dopH3TascMi!iQbilK
zBNT0iDU_(Q5AejDi-fE_b at 6f{@3iGC&uqwyy|wg0 at A?GQuWE-Xp`e>K`FoZ(J-(z@
zcLBNU0<0WiQVE)UT at CtAtSk!C*2EHHlW1F^6oR(n8fi at Lwjs;;j0$AP_^FT~t9=PM
zwqsRtK|`e`(p4H)_nh-mX+2tI*y9-}-eef7I=#_&0MB~iyb^;TPX2j`sw<{fg&-$w
zQj9{gf3cT#R?p1u4(BDE-z`~P-4Vcs`q;b7XpkgKf!`Ux%T<+*-0^^3A!Rmis$1#t
zs)~T*JqbN~+81;lNjb*KvR?l|n`+u7V_xV at 8w!2}jR25EraD1{eyE~OGxmM?Q9!NK
z<wuT;`8>e&8Ux2uwetgev6EAk^Bt^HkQQtDw>{qI(5wclWT$`+iy6Q>%Kkd4!ePFg
z+Nt#B&MngM<&Ii^V<_w!xOkHPWV`yzrVPz!2 at n;758;~f40$W|d-i>+;4bE%7;wO{
z?%6t&Bd8Wi;lgk<|MJo~7>2vkx0NB^Qv~hA>~%$ob*^CrP?WIw at MRONXH(6SM+nu0
zT{EeOmutD;KkWCkp-Y)6TOrqejJ4NWTy??@^zixRr&w9|d2)5rfX8V3GW?+ZZ`!a?
zag_}_&E3qr%4wt^*UT{fJaF)vB>Y9*eA*$CaN)hHM{-%qkV$qdJM1x8SyBBS&#-(j
zxiul4AR?<0g4$G_UiOE_dt6$o7u`*?*-MlY#y1{f;Vk!g+m8e{)IIaqtw~M492N9{
zZB81a4J$@*j;TvlMw9y&AqcOf3?s7)ZvkB!<VCa7{iGH!m_~n9dj&neaf at at`eOO*
zl4I0Z06r?Okn|^$S<xv|f$Xgr{e-3rH at ei@U6xbrk6#JnwPqA{h30#2PC6syIcat=
zGV(+Wihm7GaUlLxw(E^Gf0pU6j*Cd3!%muz512H;Tjcx55~7W}E*$)p9N~U3vc^N(
z&cbAA+7r_HV!dDoajs!;+|2buI>-O&7>HzV6<wr?xT30E_bPMxRGo&Sw-VJ|5%h2h
zFm2kyC*@<vr at Tid?IZ8^X<EyfXmB&dQ&@FhxqXPzDl1<K3M>TTSC!9d1rdkV%X-r8
z at lK_j=vBQY8`m^+UW?`D!?^YBBB7}L(z{G?*+UyuM*~$#1J}0FUHHeU0B?CR9CEzA
znNTD8r1j)-7;bd2L#GATV%##{k9Zh)rv#Ne8_x$gOA%LX-2<*_*?)NG5<B_`DfZGa
zp&!BF=BAB#Fb7u$T{Ez<S6z8nx!7bALzdO_wKb7K)wH(owjTRjh?%);x88s695k>1
zD{rfx0cc%{je-taA!s0Fs;YkBXfx}DP2Qx;^f9qR{obPQr>8RrDv1iiv`Aj{E6Por
zM%C_-G&o0F=zGjrQ_050qFZhfQ7 at sp_G%aa)DO}91M<n9Q>qLn&gv)~U|2cpQ?&u)
zzlEWCu8lG=AC9!2pIyB2?00M7yH<TFg^w3MD}zC#=-U{o@`=H8L)0~>x)=lMX(z~g
zw|&}~f12oX+^MEeY*C8-FnJCZz28p@>M2oOw03Z{+b1J0kF-__V1BbbhlKM*A(-sX
z3~p>Pz>63AMWkcheHi=X+FHD73sf#fl};J at l>L?YcH!Exz0ASXrb*hRi+s`59%boQ
zQ&3M=WUc;i`G|fL9qCjSbbf>N*qw=MxY4_JC(a0C-?!zJWLs_rX1F=E&DEzbqY~N(
z-Gbjin~2ju&sg&9 at a*q)GMo~}S1st;DqadY{hrlCyKL2!4l(%;K;8`D?Q34Web#Uw
zg at G9%eL_)UuGvXvKkvUZKiSR0Q|)dmwzZQ8eJiKwm(JWkHK0p+*I;*EK8LaHV*z7E
zUSPT4@`aF4?VCJ+&^SvcFmpEhA&xMK2eq|s0eKd31LdoGJPx4R>x~X~Ed#F<P&gPK
zmsiHxy=Jp}Yl+gs)sPoljw-)MLT^0K*IeGV^SQZLDYwD!cIBo0?696b-;cXeiR^UG
zn>bD+Czd}oHJ#}dQ_R09XhL_Wf?>B4x at HBviL^#_AZOYF!TQ4O)(`?4$_FD3V4d2C
zHIWxn^{H>%7Fv%%+v6 at X%lnNo<tkVwp=x+Mf_ntrM(qQPflo3zAtrn)Wr?HyJ&(k{
zPzKouBF?e^oVMCJ;m-ko+t at z7wQKG<dWv$y3G3G-cbYefhQ4Q#;~?$i8i~8p8|bog
zB%Eho<!oRB!Mju%Hc8k8b;(!PJy+tz#~T;p;e}7J@@_OWiRw&w{MrV5mr<WABiN=!
zR{uE%HRl18)<Z~Lebhv-;ZJJ4KYF)8Vk*^&f1elmgV+c&u=>zxt+?eOkp!$>Nc2*R
zPgAA7DwzQHVdv~<c^h}_AXkOk=|^Xd#)Jtlz}%bsVBQf(j0hmlF4`F6`FF-cDMof@
zg)lGKEp>RJv98F3;wLB1z=#zu4^_l1n+%-LA;vXJUbJj`c03e=t^^`_f8JlnMgf|4
z*Ff>dCP_w_Nw+vJXBP&V!%wH;Rtsh&lc1tS<wR<R at SssMBvT>uwqBn}Liupy)@|xY
zCy1t`Z)W88c&sNwBI6qFd=3V&)1!)<V!rhC>isIbS+L`<L$I!MWeRrsdT0caLf2Z#
z2}r*_yha}zP3O8XG4BvIu$J~+L=uWdm^^WVLdsJpfw~d8e(>(P&`QNp!&o~pwHHtJ
zU2KOHMVWFVAbD02g;kRt7jIA>v-jaOK71<>8LMqaK9nHQjy|7$7Z;xJP45rN)7ge@
z8V6sEsHRk{^P>DMdZ!B!{nn;$L6}njB_H{7WPwnZQS%OlVGPhtW_S4&e5hDfVn8*$
z9tuVrR$=|pRXMxhvyXcK5B{zm+ET&3!cb2(TMj(S^o4A|`6p1sL-i<MA6b{Sbm-xN
zz;4p^hpXUbguoXBmCKNY##V<J*}qJPoy$%_X(2EOfx at pAHmyS`C&5k2cN<@WUs$h)
zBM-<lc>3uZ%i;0J&)S6WVMYgk!A5iL3NH8PSH1lDYY31#eI2JwEfDrP3Vj_P;)047
zMf?U}9-bj<@Oj7TeB!as00{yb{gXY{q}mrssCx{HSsP(K4wjXN8OZ$H7zbl72ofFV
z^Kn6bX=iHD&Z0S;!qOk@)dU|wyTNj3c{ApDNWH{kIHGUwlkw*4R++H0Z{|<N`?FF2
z-vTRTwywS#k$%zX)=zjkVsiMNwvV90Q?SG`TUKUM8!bc$07_|0=Wlc?u?tJkyvGg_
zM9t|ywK35(Nvcyzn&<eUWx$*!zJDuf?v{RxstxquBz*;-<)Vy0RK;xTrh522g>Tzf
zL&*%^b6O)UVlRv#5XlfGoQ{bO_Mrt#)%=tnfLT*rePuzuVke9e_GI$UNZzTT_6sTf
zVg!|QcnW{(EY)Y$<+HpDP}m57!m5}63;3U{89QIB!zm!=b at +W0CbZP-2NWj?uRu${
zeM_BxYP}Q;*^Pnt`m1YaFUFn=QjU@|AjoL`ARbt<W0pe&^+1?*|4O(UHb%kj{Fs*D
zYYfZ?5W;NSog(P)Nhlhc{_UhA^!Wu<1i024Qo<)cfIz}Rykv%xQ0Mm_4~Ac(k0CaI
zPk%fgYY~m5yo3;@Z1744tEA+VCykZv9l;Jeh^!9Q`V^RQJ|p7jGK8E$n?7laS6f|@
zITL%!<%~(1TH6jrDL*`Hd*;qEFDMG4bR5FiPrpR%ib6P*U77OP<hUrWUEgC6R8%mA
zUE#dI1TD4IBJaX%Sj8yNK^q`weL6EtUy*fG{tdb6PCO?~&HpA&yB>oA3&!&wFjBY*
zo(IeWyU}J_3`ILT&ZBr5V5Iu{_cvY}+5y>XSlGGeuMESa28N38bm%m~U1nEoZU)H3
zpPRG5w$HA}rD7ckqHXu%{~Z`A7?Q;fMhZi=YE9MILn<0nivJp;bhSc<eIN_imgL^&
zwSBoBB!4wK@~@;Xz7#t%j+z9XtVo!t at vgV%#pmYl74+x{a)j>a-CS|QA?AB3wo0%I
zK%X^@Y#;H-kv>Dde0EiN7^x>lPD$UD>pi0Dx-r!(mf3|(7M2Fu9|ORcyd~#Z&#)fX
z`#vhRr%WVtIZ at G$0)K;71_6ZqPo?$M8zVTUtrZJYQ>PaaVrao=XW*H at 84dFE?E*$C
zX~4W|YsFx9<Ynyb0q7nMB+vJ%3 at +({d5JQR3S4&#F96)y4>3xIZYSO$jt&OqcG68Q
z$6cT!&=WT&hp$bPAos(Q(0FLHwTq(Qgf%V`EYA<1C**jreZme8wj;Bg6R=3LGA$8~
zl>DsNV=!{T8qdlN68rzYncykH#9&824zSWZx(S+&ED3;_a56EW1I*{_gFw{aBXl~j
zR~?|MKoJNY27prd3%cEv*`orYgnfo7DC~FGV-`9qZhenl?0|hfxP8;?&8^o%9teA&
z(Luat=5N^Ul$ucemz8oy;l}9hys~oVo|)i_^NLOfV9TOjr&sVz4ZpBt(`)S7*!#Ss
zQ3Hh#8g2-cIBn{(^-8ii9uw6kCa311&cLGF6*9KenKqB<2LD?D%=ww8sM_X*n&e1X
zfB%_pA3g%?k<eURQtbfg at x#|=4JEWS?>ivVm=EN5VPVizz+;{-I4`r>7uc)NFaADG
z!ler}nseMV+@=(*xb|OLIegpJ+NGc7|8F?M(NJEJ%V~bU#*@cObsHL6-EJk5I~$Kv
z%PI!BBWxdqA(c!VmxSMxYB*$XE{@pS+R3}{t&grK8T)AIbkPWAO at 4*_P39xDmHqC+
zs!t at m4JH?VG8+<wur}^VkIgQP7j6v$q^tWXoIhn7>=_uRhf0c?hxY|75GccfU%T{H
z*~;5hH`skVmH2`dpqC)Xhe|fR%-WeEA6o5uIs2}y>^$3EdW^qKVfJKk_HE?v$pR5>
zi<`Xp8MVxmbV=5`9bMLAYIxf1kFi~4Chu$Zrd+0vvs*Xt#f`zP!S4xY{x89c8OLL!
zn9c^G(Cf!;ZA>svPv23?UJ58bgPGQOBSi++nk5<4(v8^;r$bz;66S#riEML9!?Twj
z$?D8{vcGq6x#%XwmhJRS(0^%Dp_9$hsfzy94tM|dX$KUxgB>JL-s5tY^1COZD6C(e
z`7Q|DDP>l9{#%h2%ehCb1$EmvT$qh_v0F`+hk=JhDH%#K@@<l;H`Le at dumEzH(dxG
zx1L^`DgP{cJa-^O{IP_2Ve1ZtR1T+a#rsc9@{C|wjuz8d_ojt%#bEN%D-mr|Pa}C2
zcy@)i?oBi6^<#OsHg1-76;!}4S&|HVv>SX<ZO=8=%;Q!zwzW3)<Es+1AxXT{Dd(m$
zkVczb{QE26`e28YemZ0-(!y<B(pmvU*yB>x*wJ0oCdVkFTr;)1>-J~?96o53*%I|l
z4&Jt*9AF|_RXkdiy6SstYZ$qFuur;^+vwi42%5aBGJ at H8TDL|V38KMuOiBur{bC~A
zBDOH9CtM(1#s?4s97d3Eb({Ztcw at nqYq&P3lqJ+A0{cGKr_GU|l4JumyCHH_gZE82
zouO^`RQ<N5sH{s^^$2?1xb~f^a?osrCL*I*83)c#)09d!$TG4!?#LMi;naKf*y?=>
zWi7kMTM5&ZJoVWseWcg9KfJF!tu>x<X|u>7Eavnp#gVV?lVOymkx7c*M at K~<b``?6
z9;2E at Es05S`lR->#xCN{dI&9%2^<`S&c{bgu}<utDb(1Vuh3M3?(qWm=DI!<4&_;F
zk`|Ff>Qdd58n1sB;KgDQek3R8+X%l4L1B|HAk{MN;GE7Lh~6uQs7LU$Pk)@4s2je8
zkQJP&3cFYza%_;T=DwrUH*FFJsQbRVWp&UY(3O<TNQ6F&@~5g^M)KAQvnR!DrBiI+
z#=H0jpc7I6(;iPhc?}ZEgBA6Qko~oWcD>#qYlVYf;yCtfXe=~%6tC8MHIj<j^f)Q9
zoeikEzyd^cBT3224|v?s5g?jF8>5+N-`W#MUo5it&E3)x2KLn+Zy_RC0PU^z?0xV<
zf1QL^bAT7M2+OL|w=lR3;cF*X%=$rxKivV-X=%AVu&hIoGJUw*gEMGW9W at ROcqL*Q
zxa5J!OQ7tn$DnSEc}bFS`+ClYn1d8*gZ`ob-6)JCi5>qtcF@~47Iig`ukjupH^5K(
zmS*WikoL1fVA_|ctW#biGsH`&I(Gd-C-G{2bR6H<Vn?yz{mk}>Co?lkJH8A<v+P@`
zbr={1DPO0}|H;@1V4k+6+R49;=rJMXjkKOL%8cdIuPr2xMZ}4w$lqmRor at eDzBd=>
z4PX<t*vY`_+=Y(lk7TRDC>_4nAKnS*`yJkwaEIxvbxJDs7C`)JA!Bz8y7A)3Z-$^7
zZ=BM(2qv_5Dj)ns5Mckr_z?~Ux8Tcg-|*(flLjxIjwQcv`8FP4MQ099SS!}(6+Bro
zY)mA<@*uSp^*ZxO*!VysFGgwkYGJPooOaay-1oo_BbcqOFu*&;(6CJ^Ju&Or0d|Vx
z{ZL#MT1=EXYi-kp?$C=&uyZ>01R*#@es0eYz-%BX!kZvmyW=l7y|1?G-gx~XZid*5
zHQ}Wt(~9?pmt;PhpVCbT20;qpEkKfM?fEuak2#3iE;RqWOC6i#%YcAxeG}&3TL6`!
zu2#rT5Z=Rf{<7g6kqul7F^H*Ag$;%cB6bkpI%Ohl?Ws8 at QQ&z9 at -L|ED4KOV!Kbm(
z@!dNOE<G+S%*uP7%b;s<@BOL1zArI%%i)A#u?Q+JO&-NNiaB0<dLi|G3ZBqB5&!4v
z&7sI)!2((&0?0WiTdh`aP;a{{?d at oP$|cnaAM0oyb5gh0n36(n?yNClSG#TVRV!F7
zH4(4S>DsHvfn~gb!;S{HkukVj0h#D2``5z%NhY#4kFD?52mnYUrdZMFC7 at M?!8uB#
zMQ%m=&hlbis-gWg;R(o+|2(Q38&49kClr(_;{eMwJMul#r*#{{!!1l2x!|BLFjZph
z8St||nFfq{Xl at 42z*c#1EB`;ynSvi^2!3!14-lm}0#VOD1R~&1eWw902`bDJ8fA4p
zCgB=T{kdng;V8EL;pKzmrNK*UVHq?UmU6d3tK=`Ei?9g-7 at K(+xq7g)NXsG54n_;W
zO8|HO_!N1CXm?cba_*5Yb!t2MGOQcoJ<PT3lfo`}dPo#De0T-f7R<f-Z=lP$+XjUJ
z7cnb1-PyEk^lpj4>eQq?H;L`S+GQJP_GvZWWSh1q)19A=s28pjL~lq+|DSP|b5B;6
zWh8xas~^2PHeEf`-y)aNyKbrwajygeQ{Tie6gyQV=r#%sRl_=4<84b#bJY<(Rp0{u
z7f|Jo?-o=g80xsNlmf#zyWkCDQ%qP*#1OI`OP{6oi1qvKS7r|e+SCNo>BN{|Qm!t*
z>gkj?-ChKe6)Y!|;s7o7UzZm`uEWg1M7xN-5RQmSzl*;=+6pJYn+SW+aX|%P<r6G5
z;`H=%Px>2yGkPcBXYpyW&ik;}CPezZEbB5kWUvz6vBU2h`PL3U!h%`o?{@`qu_Xs-
zHsyon8R0Sf?#DMVwjwh7*ta3Ps|2%+nF at qsPAo-6L_=JLM|NfQ7jJFd&bkkO1-sdE
zr7;LlL6~{A!gpWw at 2bJjD|5poSsJ*osst4SDrdyMGc%$qg2a?#ExsgMl}R#2Iz at dK
zLjF~l{Ri?-x;j2bvtOB+3RHSHS^*a>7I0b4KE+uos!%?2In*TMrwZ>B;+`B*N!3ky
zh^ZakLLCQ at LP)1%_!Tes(3n$|eBQ=O2f*==sOMOJNnSf_TM&RFcZL{K4IsrbTJEgB
zCWsUC)hP1mSvIkaYub+4U+cWn;C<9bo at C)8ent>pA8g23y&X0lpo15d_Znw*2jX(;
zKWWu>d>)F_Q9n(!<JieFkuw};-lPzzgVfUT)Y-DbH+mQ3 at K5ThWY{R0hUovH36(a2
zS;5U*L#nAQ)$~SgwvFc*{V$hdW2gUC&Iokg6I49}{?C&MSESsR+q>euA=!%A8f!#^
zD$$5EC0+jJ`wAFkK!b3IvAl~~uonZK1<ZosD&?b8vd?IgEtNu2l<AcfyDZS{kZ_s<
zE+%obq7LM~r)vRmrYKyoHq+f*`4(Wsp!2o;G1Y<*kK7em5cM9FXOe5_#p^<OHC?o9
zR<&2DIW=f>VQ&3~Tvw>~Ax(IV;L~OF%2Y%_qyR8g>fgb+CY!|{rtHJhn6{sa4S++*
zt}H-I?Wz1E64v4qDRt;Y4(&()V>MX>Wsi2~I;;Pkc8RLZ8cc?kKLj(oqh`Hg1)Hnl
zt at 9LoAxeHbTkSU={kjS<1kR_CzK+TQbM{N!1$fJerE5Oaj&y=f%IC<0uftqcbPmGG
zz<hgVLQ&e=fEw at bZz&96DfV;})3F`_o4XBO3Bjuy#i^sWCm?GsO_(f=lyj)@@%}WZ
zMWh~$+!J&ptu6fgfrTSvca<I{v{VVdaJ+ds3=9-6x7<1F#TTeVO4X+I={E{aphvlL
zkf>@8y}i0O>m2im#ip6k{uZ8NlHzYv-b86{-L!JzDixymMh$xI_XNkNEAu>7I=%hC
z&A!d|T<DX%{xisU`Jk!wSQdpIs6x)somKQuTkjdIc5}+KTVvQjDDmc8aQN6aO>|(T
z=Bk+V=4nt16K}^?FEI3dc3C{WVT<>`H&XA(5Z;GUk;}*ElCNS2JHLYqT0W?N7jOC9
zzW^U}22UiM at G@`6(c<HacQvM7FePMcD7G>DqfzxbWn at hGdr*l=Tka=gLi4y2wc=%k
zv*vZ;)VtjmLorW5YU{h(1|>U6lg_Ls-~7}4Xv0~}G+q0Go3h$TcSA|fwdyL5N+f=Z
ztz7iW_l(E&-~x(>h{Cpe(9~diP*gFN$4!tq^zem>=2q3j=1OvIcATW=Z5(GY+0FkM
z^JR%1wQVOu<|Yw!8az!^uR5SVyATTafi?Nu+s4CM{vGdX63v>oFg%Vus at w15srlxt
zC1}TcygJUD``c7{aT_K(YDcNZDQtrGPGwSF?|KiGbM~v~m;-iYM8<al-mehHUn;Ds
zP5t2$Tk1Lt?e1X~WGR#Xp4wY}+HGO$@&2?*q3F<u_9FYgmh}B<Qtd{~)Oe)sFhk=e
zlrBjviSA{^5t6Y#eb5=edh7z8UflDdb+X`MSZ?y2q+NH&)ZUpel7GqR^~8Q=3HY|b
zJb(XO-ERhtqx=zNnYJ0n_NHm18ZD(5=KEBwjclk^P?>L|>wj<h4ZQ`2Y&}-X2S7?&
zi6EN3*4{6=0&w&sBg?hDIF12zW_r5T-+xutasG^SLj*Zos%h$*GQo#GRa3`L{nU5*
zjlAS-e}C~QV}rPvik`N9n;mb1-BAotYCtu7z5Gc4Q(1-)zfzZ&mIR3{j~U1K9qIUk
zYEQiNp|$&|YTFBksZ#tqi-+}Yc(|9!B(l&>?f~EJt0#V7()ciycz=V}@iSBz4S-ib
zw=YwO$2)RAJ9NG5JUJ29gk?vvab)%JQd26~W=F|TM15a+%o(?|)SxCehd`Czpr`T7
zw915&mTO#c($O!^9<!_Y%3)rT3}F8=clT8M_W3v?=s3Is!U4q-)7$aWo8N3 at 4OS}U
zY*nA(W*hJ?c3E{!h4q4p2(@B|?jVAhle(2$;XLd{#guZJbCFB~e&Bw5pGii9yf at LV
z&!AzZD)pwRF at M<fiI;oT$8PVpZ6nI3JGL++OQjgGHV+5Fc(jT^y&DlYXca4bvM-ER
z at vFe$_WVL*7*0sY8vZ6WZTe!`9a`FKx@&NboI9n1lL1?xZ5WkV*B8OR1<6%*rL=0|
z?__d3``F<Zgh at KQcFegWAde>9 at LgGVs7^sy`dtNETGe(VNb4YUBfUJddfYhc)rQbW
zz2Uv4_|z4;^cMHdsR%Nac#gY0k-N0;Hr&-OQL$u?_1LuAHUDu;=8oV~Tf5;c96Kn6
zBF%lf+g9MG>j%!piO2NG)DDQi%RGhR33`!>?@Ye6hlV^*QA4dUK(d-ho;d`caGb|k
zGqQD_lAaHV<oWcR-gV7n;0%o&hTfjoq0Q5$7Si$J`i<|W0v(?jxvOYU;&7B>MxT5M
zKHp18ho~NBsJ;SolYvWnsINpc%RNn%A`-Pr(qI8>%PtUJR@=#Nc4^<#2~zv*R<xbn
z@}He%aD~oJh!z5a1jbbUau<qR<4JiGg^P!}KY)RO at Ip`U0Ew-Pqz1h7b(%SNrO282
z0Obhgpj}XS_pP5VNAbv9=z&(~A&%4b+?U1XRc)<uHZz`|_Z5oc66UL93KhP!Fy4Du
z)Y6P0)BcaI at 1H;@G8Ii^?T+yi&v+GW%s^f-7JGzPS)xS&KgJvmU+O$j;lhdyf3_ti
zRJ&K^>@OVonmc6^RIEWwYfS&DWHVBHc at 65sAt-PlH#WRt at JNmp<8nMf<$m7r`>u64
z%u!>jqDJlPD(-E^hSA^=k29?v=4GGvkf~v-;jJQ=LoRqGw19q`SnXiY at pOkal8HYQ
zn>zda$d;#zbBORt05O>^wT!zFZFeSb<5>I0HSuewRwAA2j;AdpS?Bd0Ib~?DR4T-m
z)L49on#rK@!+2s1dt3&zedT5H6O8<fQMMUxfVVKi(_hH3na<&Q?ks0*`7t;NslAFr
zyqguULV}`6ItQnHQym)g^F3|G*j6=kf%6PoXs^(daN?{@h<JAU=MPe8DLCHU6<5(g
zh&0YmiYsVWqOqq^xv1?L7FLuRQI8vijK1jiuJPK>6D^?4x#{J*Z%H!dd}~<#=M`Qr
zRJQgi-JTr+1gHQ0H%ua4;3G?`9u=MM?iZU#!!4n$a7cxhNk)n&7jQmT)+$p^@Qa?t
zWF~|7VYzHSFOp}jV&Ln3x!{NvCxeID5-7fb;+7!m|F;q&-pw<q7pL9uajKriRnTUi
zwC-=#6Uo#49~&$Pmv)8ng6+>zo3w6xiwd;V={a&mdxDk|pH#)Q9jP3Jt^#u9t_^O<
zMRJWdk4IcIMb$85o%IRPVu_J24j6oz+t?4A5+fQ&mbEAG^iW=EuhIU|V28>{i at 6I{
zGM&$C%UrGKyRow%@znYV!8wl>Q-GIQ^7CjBF6y6?jLWyYL6He)Oe<)dKf9#{Z{5#O
z3uWGd#xG25ue>R-12LGeSg%ZtC at MBRsf90TkKifa)S=j5<vJMPOKw8Qp|cVC-tTEi
z=YxuJ2-o*1{pww3UqckB6KlBSI^a=-UJN0Kg5D5(UPTricW4M<vzBzdb6YbTH0n`x
z)*$C^Hn4nn_$*tuW5033Ni-=`4?ynO&wqmlqkO}UEB at D5X?9iqU;lVE+C$1>ZVe#b
zof`y1#8}}F&L46s1)=fW-^OlQkIlsTvMM$fq)w&SkA7ac(w#okx2LUo7okhKhVCEK
zL9<hB?5y-EjxRQ!Q0v#oXP3mN-h9%#0+YJ|cvGL_DZ^!U4I_Y!x)|qtG)nTmvUfk=
zv?z3b-&Vi_`ZvuD%IeFQsb-*oS={Bz!>!d-)=%#%*0Sq98ejD2oSZ85JE>z at y$j4x
zo9~PR=XsE3YIS$x88G{GC6|kd6Kv6jz$>&ywWczunV^WNCRX&u*)7<0kLR?HFKnF1
zWY?)>o(di}&#^U3(Q?mKrc at PJ=hf_r(+D7|Wd&r}y)Uzw7*ED=%=pzef8p9GHcnUO
z)5m9YhaVQs#8yvT-2khDblWv+Pc7z-jF6P2>;SJa=Xcd3g=~$6 at m_Rk>F43(73Wjv
z at keL4@ZwFs{Bu#tYR^qBRYs`QdpXW31CT~zoiS<e%uwF#<}-~o^7Bq*ee{;sb9veV
zaYT}3-#uRSz2;{X&Iz&B)TbO#mrg$A%_3W|vgoNMc%$HKfWI>8fXq;zb+~mZJXr7Y
zdvkniHJHJoI7`>jtF%qE$CGi|sa^0^x0bS^cz7$3KyG;eFd;IC8lK8c<L}ATOpeLG
z=XJ{P4rs6H&{sJ_<C8Q8w%oF8yN6li*#n~+_DBACg`U2bO<Zn*hiq}CokEY(AG?VY
zm%89+lv#*Lt12zx8sE(11O_!K-EZgOtCgjnf1dvP at z>mHugdD_eV>Qsh8)g&mU2sm
zoKl-;8DKv~fpY+I2mVh*X3*Ct$z)4R*MWxfyMarK{@2mgt*^e{KthR at -EcW1iT}$n
znTf;A#2l1Y${b4N706iTUJe-SD=0E|cy7U}%XCgNE3hHWe6xBmrwSu*ZR17V;1hKD
z6{hyDnCEjF13n2fVIGd$aIz}(%YJWPYv1a=0!C(kP-?hxW^8q at Oj)>jkbI{2rKhrW
zL&B<~%3Fv{ix8Ydpkd)<zV}1>?)n+TmFSG^+fQ4pb at phgMR<#oje1LyX&tq&v8FDE
z_P9P`1m)2L`K1HMp#g+f_^(<EUYJJ8=&o>Ed}cI%<5^D`##QCUQ~e$>90`xfyZ>AP
zW$+DOH$V?pg at VmHGGgs1sUsp{N1L~NsvG(+yosS_x}z&zgBpKM0w1OiIY5El4TAoL
zn{^8lqhyj&s%@Qf0|va08#F65u4<uIV5kAKx*eEY$k1Dgd)=(Zj2Q_;4$ec3EH|g`
z9%t&1Z8ovlt<e#6UhnI>ldEDF2~tE=va|?G+|pg4hh|k{=<uTQ5VU5LNg&p)LvDs(
zX}Xmd&swrV7N`5A&Fv-FY6B0ncys%i7R*cH0kG!S+WEd3=$L>-_dNRlLs?!E)kg)`
z5}m^b&j{Ax|C8eU8%m`STbYC9Wlb$=!ou8*LPCSTAuWkAXdu4GO#r)s#*6+hsNte%
tWB)>85C38HV=zAd`(^*_7lUi3=i5#x(=;SjhN8RZXdXM9dgxz&{2zIsC|&>n

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded
new file mode 100644
index 000000000000000..9b9d8275ceae622
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded
@@ -0,0 +1,2329 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 815,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 75,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 75,
+        "y": 120
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 275,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 45,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 470,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 57",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 560,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 765,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 58",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 75,
+        "y": 180
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 215,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 150
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 61",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 20",
+      "size": {
+        "h": 50,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 100,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 560,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 21",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 765,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 62",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 24",
+      "size": {
+        "h": 45,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 345
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 25",
+      "size": {
+        "h": 50,
+        "w": 90
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner {\n    T t;\n    U u;\n  };\n};\n\nOuter<int>::Inner<float> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 600,
+        "y": 260
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 175,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 75,
+        "y": 415
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 26",
+      "size": {
+        "h": 120,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 555
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 28",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 590
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 29",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 645
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 31",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 720,
+        "y": 590
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 30",
+      "size": {
+        "h": 75,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 540
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 67",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "loc": {
+        "x": 75,
+        "y": 535
+      },
+      "name": "26",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 26",
+      "size": {
+        "h": 305,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 115,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 32",
+      "size": {
+        "h": 120,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 390,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 34",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 390,
+        "y": 785
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 37",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 550,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "SubstTemplateTypeParmType 35",
+      "size": {
+        "h": 60,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 785,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 36",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 550,
+        "y": 785
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "SubstTemplateTypeParmType 38",
+      "size": {
+        "h": 60,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 785,
+        "y": 785
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 39",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 36": {"syntax": "\"int\""},
+    "BuiltinType 39": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 78": {"syntax": "\"void\""},
+    "CXXConstructExpr 54": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 51"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 40": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 41"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 70"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 42"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 40"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 40"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 42": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float> &)",
+        "ptr": "FunctionProtoType 71"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 47"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 43"},
+      "RD::First": {"ptr": "CXXConstructorDecl 42"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 42"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 47": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float> &&)",
+        "ptr": "FunctionProtoType 73"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 48"},
+      "RD::First": {"ptr": "CXXConstructorDecl 47"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 47"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-inst.cc:5:14, line:11:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 60"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 59"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 59"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-inst.cc:7:16, line:10:3>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 64"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 23"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "FieldDecl 25"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:7:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "39741511",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 23": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 23"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 27": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 28"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 27"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 31": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 28"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 31"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 31"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 68"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 28"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 33": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 34"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 33"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 33"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 55": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 56": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 57"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-inst.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "VarDecl 50"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 61"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-inst.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-inst.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-inst.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 28": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 67"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 29"},
+      "RD::First": {"ptr": "ClassTemplateDecl 28"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 28"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-inst.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-inst.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-inst.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 31"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 57": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 75"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 61": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 76"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 67": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 77"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "associated decl": {"ptr": "ClassTemplateDecl 28"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 26": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-inst.cc:5:14, line:11:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 66"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 27"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 28"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-inst.cc:13:1",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 32": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-inst.cc:7:16, line:10:3>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 69"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 33"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 47"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:7:3",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "13130457",
+      "PointOfInstantiation": "in/src/ct-cont-ct-inst.cc:13:26",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 28"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float",
+        "ptr": "BuiltinType 39"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 28"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 28"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 28"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 22"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 41": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 60": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 64": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 22"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 66": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 69": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 45": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "ElaboratedType 51": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float>",
+        "ptr": "TemplateSpecializationType 53"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"Outer<int>::Inner<float>\""
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:8:5",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:8:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 25"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ct-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 25": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:9:5",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:9:7",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ct-inst.cc:9:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 34": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 35"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:8:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:8:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 37"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ct-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 37": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 38"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:9:5",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:9:7",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 40"},
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-inst.cc:9:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 70": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 78"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 71": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float> &)",
+        "ptr": "FunctionProtoType 79"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 78"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 44"
+      },
+      "syntax": "\"void (const Inner<float> &)\""
+    },
+    "FunctionProtoType 73": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float> &&)",
+        "ptr": "FunctionProtoType 80"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 78"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 49"
+      },
+      "syntax": "\"void (Inner<float> &&)\""
+    },
+    "FunctionProtoType 79": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 78"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 72"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float> &)\""
+    },
+    "FunctionProtoType 80": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 78"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 74"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float> &&)\""
+    },
+    "InjectedClassNameType 59": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 75"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 63": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 76"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 68": {
+      "Decl": {"ptr": "CXXRecordDecl 31"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 77"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "LValueReferenceType 44": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float> &",
+        "ptr": "LValueReferenceType 72"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float>",
+        "ptr": "ElaboratedType 45"
+      },
+      "syntax": "\"const Inner<float> &\""
+    },
+    "LValueReferenceType 72": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float> &\""
+    },
+    "ParmVarDecl 43": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 42"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float> &",
+        "ptr": "LValueReferenceType 44"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LDC": {"ptr": "CXXConstructorDecl 42"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 48": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 47"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float> &&",
+        "ptr": "RValueReferenceType 49"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:7:10",
+      "LDC": {"ptr": "CXXConstructorDecl 47"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:7:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 49": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float> &&",
+        "ptr": "RValueReferenceType 74"
+      },
+      "PointeeType": {
+        "preview": "Inner<float>",
+        "ptr": "ElaboratedType 45"
+      },
+      "syntax": "\"Inner<float> &&\""
+    },
+    "RValueReferenceType 74": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 56"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 46": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "syntax": "\"struct Outer<int>::Inner<float>\""
+    },
+    "RecordType 65": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 55"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 35": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 26"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 38": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 39"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 39"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 39"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 52": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 65"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 36"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 65"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 65"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 53": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 28"},
+      "args[0]": "\"float\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float",
+        "ptr": "BuiltinType 39"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float>",
+        "ptr": "RecordType 46"
+      },
+      "syntax": "\"Inner<float>\""
+    },
+    "TemplateSpecializationType 75": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 76": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 82"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 82"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 77": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 83"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 28"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 30"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 83"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 81": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 58"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 82": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 82"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 83": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 28"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 58"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 83"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 29": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 31"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 31"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-inst.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-inst.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 30"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 58"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 30": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 58"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 29"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 58": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 62": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 50"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 50": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float>",
+        "ptr": "ElaboratedType 51"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 54"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-inst.cc:13:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-inst.cc:13:26",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float>\", <in/src/ct-cont-ct-inst.cc:13:1, col:24>, TemplateSpecialization(\"Inner<float>\", <in/src/ct-cont-ct-inst.cc:13:13, col:24>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "Template",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Param[0]",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 230,
+        "y": 85
+      }],
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Cmn",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Param[0]",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "TdD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "CTD",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 275,
+        "y": 260
+      }],
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [{
+        "x": 540,
+        "y": 305
+      }],
+      "end": {"entityRef": 5},
+      "label": "DeclType",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 570,
+        "y": 355
+      }],
+      "end": {"entityRef": 12},
+      "label": "DeclType",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 950,
+          "y": 55
+        },
+        {
+          "x": 680,
+          "y": 450
+        }
+      ],
+      "end": {"entityRef": 17},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 4}
+    },
+    {
+      "controlPts": [{
+        "x": 55,
+        "y": 520
+      }],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 5,
+          "y": 480
+        },
+        {
+          "x": 65,
+          "y": 80
+        }
+      ],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "Param[0]",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "TdD",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 275,
+        "y": 615
+      }],
+      "end": {"entityRef": 20},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "controlPts": [{
+        "x": 585,
+        "y": 600
+      }],
+      "end": {"entityRef": 21},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "Cmn",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "CTD",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 495,
+          "y": 515
+        },
+        {
+          "x": 495,
+          "y": 405
+        },
+        {
+          "x": 105,
+          "y": 360
+        },
+        {
+          "x": 105,
+          "y": 253
+        }
+      ],
+      "end": {"entityRef": 7},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 22}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 620,
+          "y": 570
+        },
+        {
+          "x": 620,
+          "y": 665
+        },
+        {
+          "x": 340,
+          "y": 700
+        }
+      ],
+      "end": {"entityRef": 24},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "DC",
+      "start": {"entityRef": 24}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "DC",
+      "start": {"entityRef": 25}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "DC",
+      "start": {"entityRef": 26}
+    },
+    {
+      "end": {"entityRef": 27},
+      "label": "DeclType",
+      "start": {"entityRef": 25}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 665,
+          "y": 700
+        },
+        {
+          "x": 665,
+          "y": 480
+        }
+      ],
+      "end": {"entityRef": 17},
+      "label": "AssociatedDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 27}
+    },
+    {
+      "end": {"entityRef": 28},
+      "label": "Canon",
+      "start": {"entityRef": 27}
+    },
+    {
+      "end": {"entityRef": 29},
+      "label": "DeclType",
+      "start": {"entityRef": 26}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 560,
+          "y": 865
+        },
+        {
+          "x": 355,
+          "y": 850
+        }
+      ],
+      "end": {"entityRef": 24},
+      "label": "AssociatedDecl",
+      "start": {"entityRef": 29}
+    },
+    {
+      "end": {"entityRef": 30},
+      "label": "Canon",
+      "start": {"entityRef": 29}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 45,
+          "y": 730
+        },
+        {
+          "x": 100,
+          "y": 610
+        }
+      ],
+      "end": {"entityRef": 18},
+      "label": "ST.CTD",
+      "start": {"entityRef": 24}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 120,
+          "y": 860
+        },
+        {
+          "x": 10,
+          "y": 810
+        }
+      ],
+      "end": {"entityRef": 11},
+      "label": "getTemplateInstantiationPattern()",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 24}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 883,
+    "w": 963
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b8c78fd235804b9c31a330f2a39c383e946b2b2
GIT binary patch
literal 41117
zcmZs?bzD^6+CB`nID!ZwLn<JMgfK{#BAs6WK|nxY2<h%pVFc-xRw<E`p;H-!p@!}p
zx at V-D-x@sUJkNRG=MO$Gd-h&&uRE^mx;Mf9sLEX at p&=n6BD$_1FRe~QbRGqMoUU8~
zSHc=vpAr#KpL%M(aDHlMV`FOTOhn|KvZf!RF)CYes{JTQ)D2C~){ly|_DgNQafOTG
z+)L{ooGO~9kxI58@}&Zz>(S|<_+eySv};xzCq-*>sluzWh|Q5n;lq<`jPdTt53*X5
z-2n}`*R at -o-)?97E_(%w92}`!|B@?mknQ_iuDV}?u`kNV2bX&nQ>cpRPovR4URUWg
zG<I`vqU)$d`E1>FMX}gxNRo6ul^oyAe)Hw&#IMt~r~Tt!Gl;+87?ykM{ct`S<B!6Q
z^GrV^JwLTFPkSy{AMF45;m3P5k<1=0<OTs_ojJ1{k4g%c1<?Y3>a*WtAs=ZTj<J8M
z?`(6Vxp+c3q|qGNdo71Svvhu(eG_xTq4HGm&ilF_D$&7iHAFh@(j>>V)YjLPp5XNK
zLq1E_k$$n2KWRAinODhhmz8(h%On#SoJw+j*JH~c=gqp+f@&0XnbB)}6Swe5P5GaS
z3iOl7ZjqAIZi|Q2bzxG!9rvsuqUJLrWN+*42N|<Gi-d>swXvpL7wEr!pxwPDrlFdh
zj1j%m)|W;r`&rWE-A%V}8y9pc|CG~$_4m;gsIgVpp%1hiaa3<d9>ZbM;s2WAyquFa
zZ~6S)f!U->-;I9BYmfI1RFz0s4v8=#hGWUN|Dn-MyQpM!J$B_ZiFUo1*K8ir%Cqru
zab!R&p7I|i&J`jh$nk3?Q at PdQrkSU6-wq#@3%z9fUM>Zft8?5{tx_%@p7gg48SVFg
z=V<D;c4}PkZJk|{`S|0bQPKmp$a`A#`T-x*+g(nmvU<GV8-1M9hz*WD2|02u<ou&H
ziM88WVET3IWcB^hX!n)d2m2yHV_OB&r+M(C(}jyqoYP}M3!VjzKp4U^OvSci#cxOv
zQ^RPH<&1&5+hON^{%K4;u$?*$ysRz#E)cCC_!TwGDhQR;3uE4Nv^RoOk~-y?F!5#h
z4TYiT97Rv5q&7-OR-5W1ajYu7wHreQJ)d8dSIHLB@|HDkMAKy~yHTrXk?kn%87GGF
zzp_|7r=e`4_g%<};&Qih;{E0e>1~MhN9jMl8ufC at 21O93&i`Z8f*G+&_9+}3s1RvF
zFWQQ+m at T?8gsd+IjalZs{j>2vVc*~6kCF3UM&rhlQG-p}rOUaDHw#yDvWlC^wLkMb
z8Tx~|HSn=Hr4eBq=(CjT>pt__cNyXS;Ar!9PZvZ(&g>{BwhL)Ev1TE at M^>ho>v6lX
zS5lLOULZl at k>?g!%x!t^`=%FPt#wN(4@}w~^>HllABZ2kZ}FP#v{Mf>ta`ocj9M1v
zY+?IOixG}X{)czA;zjh*<1ZfvzrVSZu`ndOF7}X9sj>7iiP at XFKa6CpHLrA7r7E`5
zCI<a)yl?TX4!upRMyE=)&-N*)WA(jhAocMRvMt;1jzXJeb31n_dJt)Ci4|SO(8YU~
zAcfZD7X+EpCmcMJHwvUyG9;C?SZN-|w^2*LYzF3Cu4l2387)gmsz2;o3Zpgr+ND}=
zMd_$-(72~Acqt{t^)3f|c9w?95qsBCIQ==g975s8;K?VW?9X>UwkqTZ+H&dVp at DSs
zIIe-)`1f)~?cqcts_kXuu at DJ)Y09f$A3O at We3_A3Z90*$`p<dqq?FIFkfEB*I<Kwg
zJY$Ib5X#&opD6<w-p7lf#hJ|N5>>DIOHb6m1D*C#QRw?kg$)sLrJ@(7o&;5k*1zN|
zI_F2CQX67M_K{(X@<M%x1r!sRd*3J3a9mVUC3fXUYDTr at vv9%Ywo&oDW1cMyx&x0Z
zvzm_{O|ht{?x;<*oiIFA@*%o9yT-_Pmr~p9(~LX%t-=MrE5DC&BOblg($Zdn4iCG{
zi4mI!Z5Gy17l>gjWT)7+>$8K%8krR{d$^HG4KsxwHMmOXOfMfFD_&*Bt at P<-a+EP}
zqS%e+ABFb>y+}g{ZxoK3M*8lB at mz{`xE$I^iPu82PP|9*UC5iwV?2rd)tjEZw89>F
zM02wJrc|(Z2~FJat|a5$(8`sPYVE7AZiavWhqr@)gC(R1Py9zP7Ok;CEOB&*H;kT&
zJLk22mysDC_N(}we;@A|@SgII{YPcvQ&P=~lFwA{uu*-yEPg3TQd<1t^BWm)xC;f4
z46~hxX6uK-ESQ^B&2jmIu5S;o%D+mfc6h*y$e53Jnf;LIeBlQUBW~=H8|}^x6H^GJ
zlj&w``@K}%n5O7TMAY-DoIA3PekRMw5&@Y at sSgVlAC^3CGuB0V$syiLslWcbcQ#qj
z59D$8m6iHx3G0CSIQF6M(gVCyY#R@~5-5*ZOV>=M>|heo?3yEN4h9oeciY7yU15Qh
zoyn$VALB+mo@<?(y?mu9RR}3hbj!b|>-s+@?V5Kc??$e@?YMhIJSbx{Vqz`swt3i<
z2W*KOeN5#ShSf|?sW>YT)2o|FOc#i5te+be9kh*f=W4y{pU2JGA*1yQQ5-J+=e)XQ
zJn2Slm|5Eo(W=WzDz--#FaF--c^jLEKBbO6VPl^25KXlaN at Q;>n9W`}J$xQl)SaGC
z^jVT#`cE2dtx$Tiql9YU=6=49&TZMJr)u0>re at r-jr7osb+o&K+{1PGCVJtA>lSV6
z_i;hr#H047gAK%<F{{Ns>l*q4p%G$`oA at L2Fnr<nAA34A-}k0J7Xp6C7N-j-ceU$H
zeZIJ8#aMOG`X*)h<ZmKU>XR$557qJfJ%{2KKljTI%84{~)V0)qLYeDLH!O&gp6>nF
z{ep|!gj${a$q7aJ2)Yb%&G+7-ReNCHReeWoERN%`^EBp^RWkB-8Z$e0n?>_@<S5N?
zez*VZxA)dvX2fjGL_!Q^lKYF?v0jpO&mb3BZe%bsL;R=N=gf#KNlQ<<N*-awo=wEd
zbiKfoDSnbI at jAddc3yvCmUCwag>O%09(kg#oPE`~f_J>UX^AG%{e~9<n&*O=u(m`s
zSwpoOL$QxzT|~cg*tZM68M`b3`DP?^I*S<*7Uc{noIU)}Oo<lFp0bjdTC3O(mLkEY
zZdb3oRbIcY!- at UTZ24pgU00V>b)Qs7$Nl at Y0}3Jx$%fN>lNptZ!QH}{b2j({jZF5T
z>%WLyFOC^aJ;aVbpj7^cbBLtR9Z?lVtwVy-dX^(}$L5-qm_$wZq<~bhai;b)O{OiI
zt1r*9Ptj-+C(v2e-RbF-V##=Pe%xp8A~UV%wT99t_IH|3Ju*E5(0LDUc|hlP?mnoH
z^WFTM-A6PW8&s}rP}*-?X-S$|Z at W|tv4BoPyBrJIsBNNhKW&OwBRkl_ZBT3>HuGd*
z<(535)bpDW<)Les__DXfO%zsD%+G~?IUbZ32xn8iN>ukZmGF$+ek(mH`{hGm9BJg&
zmf12RNxh+{>7%OahoMgnjneP(8=7ijv~4cP=P8`NY|y(V8}wq8T&-5d`J#S+>Rasr
zjYbaE%@`D$h8-`->U~wFOJh`x<va&ot~a*P-_<=d2k*$jT%ht_s?v- at AGs@jWL~yW
zyZNqMRM+ae*Q_Lu?8wFdqM0E-aqY5IcHgUxv58j&HAC|D-iYAXgB=a2f*d+_o!O~A
z#uMW=*+<3?|4fV8Wk)0RnoVjiUK+VL-niS=ms+GM|GjMJdD&Q1!khF=Wuu9==OkZ^
z)?DY9O0O#{*gm<Wv$|hXX|Cj$^OMAQ!tY*<O9|!h&yPp;4 at OVn*t%Qp>6*3?v5QR-
zKh4;GR+C+pz97t&^U)TQB at h(cvb0ih*-HGAVT3En<DZ)SA~pQ&TS5jCsyyjmZ>F-Q
zwG6<}B<_CP$JD6<T&`?e{3gm at q%<e34Fd|{x1_I}e?IhVvcRKP?hBE0iT1E(o at t(~
z2&EhGYYMk<vFU`>#|YNRH;5j3ix=H*FoLU(cjN^HaF2J;T_S6b1;XPVh}=l@^2;ZM
z2f0<CT|Y(ZSqk6odX^APTWB{`Tt3l{=+W=Eu|`Zj>%C-|!X7NEuX4e-qlSTY at X7XY
z-!I$HIkn4>v8y3TYXaUgY|Rw*)V~(u`RtufJ<-~Y|6Ed(T at Y`b{6nsf{%0>5=~bml
z;_-z&TRqW(fAodJ{rT>?nH8If2O}zm>^^#v@&{S$*$<XRC6y1_6Ij*h%j1{L1jgmR
zg@<Yeil+O042yZ4d}-v)4es3QzBwZY<-C}}V=fzXky*KMc46f+h+FGw-&OG$scpjs
zpLTM!)wuBcHl=Fm_x&~<b|}UQ>=w(77Wd}cdeLOPF)P!ni67O+>4JAs6{<cabt$}5
zHQTWl^I$Hk5uGIA$G7aEOa;_Z6XZ7O?dGIuUUhs_P$KEM{UFVch4}8~)#5c3S(?O5
zZr{`tZ_iEkh#B9?dZujqhdsLqS+nihYqinH7%itfj+qTJHeMHt>oo8Wf at 1<)qPcC!
z=U-E)Y^JUZ_|Th&Y?<T-xy|n(XoVz@#*@x7$f_^5oUu!Nq_Q~r^^A45(g<Ba7mbw}
zIh~QcC*J+G*W at fdl*8NNR+`A8@$<RDQYCu>VI03){-k1yP0aT~2S``M`!9i{Rn_$T
zU6}sNH at N7aJS$>F-vm2?>K06qPZ|j`*?lwS5-iT*#K*#)F{VCmetb=*gEQR<(TE%S
zWwL(YFR<=^Uql+iO+?(Pzi7BvD_o`Y_Cwg$%Z9x8KX+<OK5+}yy?<-?wR*ZNy@*7N
z$CZKTW6Xq#JCS$cmsEq`pOxPlo^2SEy5G<C30)U6s2{&DKI?I9+%m2p@<QGH8s4YM
z{}_lxs15$v5I|lHJ30tH7WYH__L%++`*x_wgH-dKHoV9%IATG!tuvn5X=1lN-F98|
z{2-ayTWC1q&h%#|!S`1sF3dI|nRoB%W(!@lmKs!Adc18!=k><zvi|+%Kg%MqCB;z{
zI+Kx&@LBUa;a1R^pV;jvGWn_LD%kQKiQ at UoA?4{)lwzZ#NzIOyS{GQ_Im)zndFr`8
z`C^HloDLHczZt%L$KCgFSAKK)w97w^7ey6>ufBU<7y2m0k>McEs>sZGz_W5HgNX8?
z?d#KKa>l|f7S`I+^F%*=N&WBezw&t#v~ZdH;rB+W&qjM{ZxB0mpYMJ8_>i~R at 6xBE
zy&Ehm*;f?(6<8Kau0PEtDYblSYVG90e{AwIoFw$4#^-~{qpfWJkU&A619vYGU#_f-
z;5xDilz8T+eFw*WM&sE%_u4dNX(wOgMt#Tt7p87Y>?lT+k?A at 2f;`pz%c)%>wb#uG
zKX5%}{o0EAAeN^5(6KWuQo*m at yGrHxs?GOy#yc;c88I!66_7L*WUOx?zH}Q2ZPu&z
z#nrsXD5lnmpUz~dp1y{kyjU at Bmf5x@lI0cDHP0j|!y&mY=9M*XkF$r!`b&IODJ-N9
z?OL(j7PKoJIWIvi`~Z0&PSGIzNqkFg at rRq^RsXQvwp7b~art7}#15r57boR8Ch~%^
z-ag at TzM=G~+M`jQCG|yVY<t5I9-_LfoF-aBogQJw5W!MLBsuAl%;9VM!qR~+L&w~4
z55**OP}9V*WBa{w0i3-?D&ZW9^aleYT2XD3hUBR4VkXJ)35EuR-uW9XBMfAH<rZEl
zuT=M5X{M6*<Q$a~``5A!`cLr%k-dvOjepZR>Nf=;A-;pl5~Ml$lQx09JhG}J!T;=a
z$Be|Rkg{kYl|@&eZ)dq#5s9j>9i-raNF&*eLW3S=2gh^{Rs->(fF2k})^m;=#V6NG
z3$A>7{L}Nw&zSB=jtnLWsXq`wo+**%gCrH|hvCmYAA25BIfxBqwtWyT6wFlQ7xC6e
z;8APL!8cBJ3zk`Ge_k)nsu5b&q#011(2BB1c43LG)Kxa#+<ct%I&9PO=4Eg}!-hU;
zQ8W7f4+V)Pm%;0QcH|?RY`;R9@<v)?Y(1LXg}BXne%9nzE-o6wWYsMKdKzos_XWg9
zMOA9&IB9YmC^1WWiO7f5JkgvNMOBQu;|t?37jR8ZG^?w)FTv$|RBC&UQd+~>@Bi`k
zY=a`BACeLK=2ttEw)zChvsBrVZYwducGS0QF`kV9yrI)3hA9cYO}!S_wWnQfPB+tE
z9 at oDw4>W7LpQ7#G<h4afbFkzHWgT8ohdr~#%4Be>Xn9Y%Z~w}F8M&!kP=?~TpO#T(
z{3GH!6p|<YBaGJRsh~awlh~~0$$O&8A7i>)rs#_vQkQgvyQL0|vr~MtwyN<d+tZ(C
z3s$<mccwi5r4|3_7UtqV9wV*WiXGPIO%2Pw at +3jaK9cW!p&A?|U!wA*S?fLW9M>uL
zgZguqJ~$zzPK11N4?Y<)q-6WS8#Lq|?e_4IC8c;;y#83hsjctxZo6*z1NGgRmQI>y
zqypskzN>}bUm>lw=4`LNL=%K8d?5SDnJGg28%nSE_srYXDoxMmD_p`;EU~77`0;k}
z7Jm`4mBkh<MOgtJtw9BsoR*fmDhVlCx}zZ_Pf>~8SIXX{)F-D}e0#ZaKY2PdsLs_#
zw|#;&Z(>@vYGrKOlD|ePZwp#b7VYrnk|Jw!*o%7_w6>Y^)!a;Zi+=5@(aXYF9qs;+
zNm5ONA)FgN1$6_N^TwAv7wUX_x~MZ<4X$v0IX at AI^yrVVPF at OqA^*l!Ki<{^rK)V3
zYvkfO at sGKB4c!Hi6 at NGEn9+9r43#shjg{HLkJ0ZK<$_#H(w_-g^YeAV7!jH8u%hd~
z^$S1go(xPyIfQHI)k)C=eo2+mgz^Yz1R3Pq7<Gr=nCa6hij;i<&)M57^+XHY_*VWN
zK1&{R%TCzZl>%?6Wu+yK3eok;&+|WI9)EVvPUuaoh^V<}RATAH6`xZVY-6R57SBLR
zWa4YRSWI1w)Pqm?squ4$8Q;pfc<oLX%bjams8qZ%$xK}!9x7VR3laGyxkRN|;lBs{
zLgs7*8kibBo2eYjAoF<2zMCP_It{li7J~5yH%t>!{Zo`xHzzb_xj&Ig>J(^w_E6G2
zKNHOA9TB5bMJXBmS+yx*;sc{&q8FFs!mXo^BNRPkRlHuzzMRzsveBXWeEsDuA+-V0
zLzk4K3v5Skel7}{nvfTnHb`myqCddn=HOE_y&<Cd?!j)kFiUu%n at VYj_VwAqBt65l
zm-)P>*7COmiY7iwb^epPz1twXdTiG}q!$qgnH13qT>P2H0i#GR5LFMH|E2Y8giK?c
z`laKC?Ys|MzvmtpHnSIQ#f6Z;-Ro2~R$(GGH4d4>VZY|yJX at P}+JD8QdBOm(4(_>g
ze!Qtzv2oXxcg?jjE?^u_%=<Y1#c>bjrr;GCJMPaFc-zy0Ppe6&=f7s!q{UKHn1`Dp
z%UoT*kxFRUPRfn##=fQu4Luo6Yh<ihr%a%+%zKn5GK?g?@>O8?_qlVyg<TU}K-hc}
z&T4q*#DeUqkqkGRuq6 at SB4Hsu_w?MVDPvH(g1RHccrS83qcbt5rPh7E><;Zefyp^E
zZThj5(knH4QDqus-iAI)?2@`vUe(NxiNq?RB2*G3s%_c5Djy2sN?fy7e}{O`XkxQA
zo>!nhJai0D?_Pbv^|DI0(ly%aGHd-~CvOph2Ja}|pZxr~^J+<T_rH&^L at WyUc8~97
zlGuJp&o9dCRETmi5pN9>KrKW^mbJ4A`Z~^zdl2V9kFPP4aQn<2mI^Uv!|aM?E5y3{
z&-*Q3y6DkmC^@Zf!tt9=bo<&NZrG6b^RStpD|dug{<TT`<l-Cp4T-CYKd%$N-O=>i
zBzpY_*~6!bBNlqx$QV{~0ev2O^@A!m#p%P+S0Abe$=4p>&;PS?kBn%>0;*Pbo-yMz
zSy1xlX*X=nzlU~rnPhAtd6J at CWA);&)0Omw+`ZPDTWZTWWablPB0Zm=MA~HfSKd}B
z2GO>d_7I1;2VT$SiBgN{Vbw_L_KJCMpnOYOWx7XR)qyf4TblBQBW?Bo5TUz&9Gqln
zqZr~<AWZKo%>^GnYa3plYaX95bYqJdpJ`LWb+W!4P$6EU;;5w)6UhB-cF+I4$I(Xo
zr&>&WdXT2Y6-6?5els~GgCe_{rtaWuhun+z+@?RiOozv=I)C05rV@}u4eaeCFsqFT
z^OL*DGGC(@G*KM+$PJ at VkUdDgRdK<w{2((qIq6e6QatLa$^(npN7G%hoKKjAZTiZX
zj7=?~v_3^Ks1{#l`D_<#9mKD0`}ha*WAwf6FWPRDvM#95JzEQidlSzqck>d{zzYnz
ze=hF2Bhf_c7q>elZARzGSik-1noU{!bV<fqfA;rmER2%f^zq8z1xubSGakONt{7;e
z#ji-m`^GM$v)-RsBQ^cxz22v7V>q*lOxdet)s^))GO6QR5+07e31m*yiV8NmBJ}+_
z2_NPgM-SyFMu?aFn}}4+V#O1Nr?XFI55C>qxGQY=>$i+iG~7W?b1dqz-_r{x0>7WK
z{4wCpdKe&IKHf;RQ7+4Tq4$mTWvT%l>pS=K0<;CLFAv5m)(t$KWp--iQV1TczVb_1
zMe7Pv?V85DWGnwq`f9h?J?^YrxgKRW7^ZBoqNVV*_!-sq%A}%&mGxtuN9oi1FI^_x
z7N+2FyL^&i#(^g!GE4U&<d4L+C&<jZkExsbzn0KW8NHHva6wG~^5uk4OiXOJVJ6Cu
zh{&HvLHdcN`^f6J5 at x10-V95vDRAmA@2<*6D;zD=fu;OL?ytcf<+aJG=o$ZqslM2B
z#aO>m`NPqs9cZTz5lJ*LCZGNB7*WJ}gq%qBn%D8N!yQOZPKu<9mJ1TTi^L|h;lG(O
zgEkBi5uONoa(Z(|Fl(Xk!n$R3-r&iJ->eujPF&Tm9Maqw;(LO#GGC!hB!d$AHU2U%
z?|a|Kh1+U(l{w8jk*ugF(;#o(EhnpV6$CN3VTu(RULWsc7jkC at gJdljHVu-P6k&ux
z2vgCv;O+P(zgF&$7<Ymh3W6<iJ=|RNGghR|9(~0Owe>h|;YSUdTIv7mkz_Rfn- at a6
z9r+wF&UZG*!vw4$dB~$%;q?_eRnHRJ+mTs<OFgGbon^Jzg0BhF49TAjM|9_Ge?+y<
z5uKhQ@#5zQ-+g5Hdoj|8 at QDb`bM^~PefI0`Dv8cEO5_hYPq_H_zsCCS#{^sP>5_g3
zv%@fccb_>gV*HzHc}}U7^~65};d_Rs2ZNDfG6=bXBJYPJ*M7LchlJH$PJ(e`jK~8o
z`a?p%jYLpZ)R$s#?f>}Tt4+Kx^z+xBGU)Bhy!=Y)@HE>2kv at sMT^GXBH3GG`ksHUP
z=`7#1SE7b7g?3;wP*Q!(h}%i at BzHt_yPFmC_Af|3Jb+U_UMXuV!+H!N;@XO5+%%F0
zwyzT=Ub at z<WAh`<!Zh8EyuRV|;jLERoZNo1KHt~j+?_#d at dX~a9mx<>F_T4=R;7U0
z;YgS6yK$tr)j5M?Iot_#o!L3UC>^)^dM*kdy3JQ1-!>0VYG2G>+}KhbtQjxie+Z{8
zb9yo>9BDL&STLZ4jXKZoaH>!w%57baOgkRfCnG%n)K4E{u&0;ouuXOD%f$eC5;5iq
zdMImS)N9`y at p_ya&EX}etBre8nNchx;zV?FBy at ffV?@|2!wBX2a at j<-eHjKOYv|3q
z8LX^*xGlPQ65lu-L~2V(Reuj<Ug8xy6V3S!*lX3z<__wwnGD91tGD-8W!A!3ZMg!Y
z$pe$9pzCWtHI1-(u$28|a6*F!^Ov*}z`K`#i@=l-$peDDeXa?IjZA)%9)>Tnn_Qd3
zQI?1&h;FX}dmH!lvd`OENja_dW?n>uP3fB`FywIDdStdkO|xHP?gJA?$XXg}@35+X
zM|h`ou_MK&Wp{gHHWxkM7lf)ikaY$zMnv$B5H-EYoF)PHU5RklyBHE4=t((PdC&?i
zQKS(p|3^l#e=|vEzYq#ORF56GQ)oA|R9(9K9y{V(*H-pzrUj|WT~xTc;|CUe%U#+C
zxEIx+;F$Zw>$raXOpk5zGQ|o;WD5_J>e&mTDc!r%2j$-(>2<!(V|2bf3om{9LDlW~
zD9wKUjMMP`;6Ma011#U4ndBOg$hEY>Thj-K8jO<mq|9sULoIST-tn)U-|BL549UQ3
zE%@ILUoZ_5xodw$YK1U?Tj?|11Mp^kl%c)`rCMGAp%L*;;J$uH$le^?UMVEKUqomj
zc!kzgNKGcN*jXZ^)qa-m3sd58{)8DONde5PjF2%Re*7MCI*~A+!d7TkspRct%KN}G
zBUxkDTPvb{hZ}jE4we`-CBe-!8RV1}X|&3Usu|~_i|QGMt)>|Pi*bUr_Yq>NZnf5#
z)tbXAMq*{Vs!VVRIcK-jQN2~)ULAEd6D1W<pz1E+PVw24K;hB0 at _VRWwM^0LH0xj3
zz#x`o7cd^v2baLAo*-&eGizLi{mSZx7qksh3ga^tPRa+iA8<u9p7XDujMYk=@m-)u
zUFi3+#4-BRrT5=PaUV-n*1v%?%v|n#*82vM0|p2;)Q+Cuz>YmbcqPO^I5>%3IN7AI
z$H_r41~cpN*wn(BsFi%exnq}uofm$NS at HiU3&HjmHJRgz`sd4A&6n!3mV6~wDk0t5
zOem0F22J;t>2yW?5-{Hj29qZTk+3l*@w^T`FO}ez=aGYb11nr0vB8d(jm&jTD|beQ
zWk95mH=rxpA66TvH{6<9XY|F05I at +)U-`85zPH_ at j0ID$FxN9F?wDMa7FL}NXQ|&#
zqN$pQHX6J at 1mD}_M=@I(>2Z%`B;|BO8r^)EfJHmy?cnlEgF<u7t#zvS)Dp1rYj!K!
zOkf_E*hY1fPSJpk;Pi+LBK4j0Y~md8E<}xUDmE#ujFLgtnG*IC!Mt*B4Mqp$D|Q*_
zhOK&0m8ox^+*9oE$HilVh~zpC#mgEB24kOZ-UXpYygCe9xdnU4F(mm6A$J-rkueiZ
z&W|$WhO|dwlZwlgz4%{=L#ZzQDI5F{RbZ#phX1OiCO#Oeds#PQ{wbmbgtd1FWOCfP
zG{;}#Fl)citf!knNN#*G>yyMz8aBFEHmBo61tIgq+lJ$d`hpq~2W1%kRk<s%7{4<0
zZ6A0S#2 at l72Ak(0ch6WeW at W+wlo?z*l`2!mqHI{l$E729pJOgG9M?cz1(N)o`UnWF
zFWGsCPSV&pz at o!R$*!l{YB+Qv6FFI6a)Stse*|UNA6wqOb#cdf%{HQVf*mzHF^r>r
z&#$|Q^c2^!Lndy9kiP3J5mSrC)-=r?FAER4f)a<uo5L%$K27ElBGoVoD|#)5*>o>_
zJ7}y2AG<H(%el0Ff-W9%1vL&NCin}G`wn)+qf{4Q^rkXi-_!1*qRhgh4!QM`TxHW&
z>TterWLLaR!rD-gX_|P2N~DpL9Kl$BqiHn#v23gTd|K0 at _$smqGx3?CdbNvp*hctU
z&c5|~&*8%-4NNE|kYpbtT8i&;dTS!IA-yG12)T$r5fk^)ZrGR}U&?Ep#|Rlv3Bi!H
zFA!F#%cZXJF}Y<Ptv>Ohf^I8Ibh(ejT6^I_j$}@`OU`)^Lz~TR7+tEG4dY_&_m1|W
zER&*Ju(6U__=^BgqoKYIc0C3B^6<UkP0tXBd4Pvm2Oj<BnVj+<EJe5TV}bZN54jHe
zHaFof{U9ISMG at g&LnlmAu(x0-OS9&Ks_#qqOY7+Oq|@0 at CgC-r$qG38PJ0!EoZzOx
zJ(Rey<a8QHBmklKLnJ@>^L-JX`+7+1w(9(qHHXh?Pu692bGxzexyA+qH2ma>`eDtS
zTx{NM`4%g^@VwmakC%Em at itKUK{pw2+>FEM;wyw8tj&c~jPZ%pIHib+(0}L~+YxB6
zj!Iaq)onoa__WvsV>JdMu5)^|7NZBxomB;{3l+}BNWGk=8S8?a9ab`YOH}(Bd`G at e
zhCe2uU*iC at 0kwl{@t0YS>U-IKi1|7*-FTjjT?d}l)V*ncDi}7_>k&%;FW_A8jb=UT
zP}ffT2uP<GW6<BLhTJG|{%>k4&K72NJ@>lP$CI}P;qJfp9}`Rrvc?^#uP*l4UEMc6
zTYv6;*<?5yi3b|r*;0(tq0<Av5F%O1vl(ah>6gr#R7i-)H2^b>U`LVz3YVXJ`JsyV
z{r!23Y`*0;aYtXigwcqbgh83WIV at 5?d&P!gI;7Xjn-|r4A?G6j3>1mI-HM+y)fl=B
z67KKsapY|?WZxPF6MMGVyc~+^cK7VyRpy**L`0))#c2vf8B^?F`ynQI0O`#NJ?QS9
z3&QY;G(2m&O7z17?(Txs?kK)r+ at OI#b{4HmuM64k^hdlhH_^QY#e8_ZVwH91ttaVL
zijM~N0d at gLB$2;6Y*o`@Zvzg at go6X6^O{TF3)aRfh0u!+1O`DDPh`rV?H at CBp7^n1
z%yA9T{q1WI_|SL$l`mc{e(U)(gTwr&Zd2fFV4E8b2pLZ)L}ws!XXHD()6Q`d78EKp
zo_-fH81JEpv;w&E4$87))t|bAYqIC(Slq{W3}e);v}t9|)v`!z8l#$0bZs?2xmEWz
zJ?h$)#MpiDTIDwqU96*wtR3F|7W8`&<Qn_ at 8@mL>%HkxmmoFO%?%u?^dL-mad%9_O
z8e|=ngU0)Lx{IwoLHt1*(mX-%!RTz}$JE;hrJK9C$cY(B1xzh224EE{YOffQzRe at 9
z3(9p2mOes%q3O?POu$v}4Fj;V2?sgrFL))0AarFtKQZ^VtO`gFX+B|hQBol4FN53e
zfcfRQju&wuk4d0SAFPz65lVyEx6~h5R*MeIta}t3q%lp(n0ZXxM`hv61Bt?t*2A|e
zy$tf|bI{d0++@%uW|@ySCfQKT>C9lz?=vo}8ho`OFSfY{zikU8cdAM<wMYLM+31VM
zt?{Gstm5Qa@$@SW0_mx~(l7Ws`FL4TBzzZ0l}z{cj`DHAkhWA9=VW`RZbQTAsZaeQ
z6_q5+JcSQ8N3MC>%ji1vhTPzi^{7nw-12tv_W2*$rj?qs?%sy4lad~#cCa11)Kc$^
z-(TjlT1nT>LE79Nj?Wt;fFt1F0Hk#AFzE8VjLGNgu1?Bk at gh$Q8Ian^ms at cxs}-!_
z(k?P|W!!h<TQX=7p(x0Etypq9s_Luz_W!;iH_<udpBSS+C=3GQoIZHt4>_$DP(sKl
z*lIp7Z?TW)lC{#3L!Y*8x2-aF<KiIA_sZm0anV?Y&tV^?uIw9D`7#d#LO9xQ2t^u^
z50YIl-CHeVfY#rvKg*gbkG(9d`8KVVhO7c15xNcJk{=_n)%dV@?4mbQS*-X5RjQ#<
zvjGR(z3%{kAqd!0OL3&pm^(L}4&RuDl9);LYF#H+$<Rntf6&NCyBo~&7>!RN{jA0B
zXG`AIv#FzFy at s}wwy~KPh1UIRDPtpjtIPXHuM*hP?bvyp!_W~&cB1k+HM<@u#Gir9
z+0>3qw at UL$){u;34;(9sV;wk+)4wt=70A33Apef>0TgS-z^28Q$<Ex$RhD2lA{WX>
zFpvj~ZcU|X#|@NFZJf=LN_EcpugZ2kWxKMLc6z4nTL(~ccN at E&s0KaHn0ik;a2t6Q
zU3aqcT3yu0s1}r=&Np$%`BN6pCUx%etw}1V#DLW96+!4k-u4 at Gt3L!M6pv4BLyp4g
zeU2x%QFc%Yx90C}3K+o}8RM`>vu^mFSJ at OurOgl9^x%8!D{_c*E)*Aki`s31M=12m
z!t%{N5=s+81)W_amJK}WTL{^84%mj1gA)8vlVE2eLizG?KXW1g$w5^BMdmC3eZRk0
z>q>UsNi(WbI8PKlc%7VnU)b!|cNs*K2(ei}nM(@x>tn-hR+|(fqQ^^Oxw7hgkcDvQ
zb|`}-2*fKXHdp^=Y{)rtJwVf_pzNrcGJEE;0DkvlI3BECCc70M?voyAL;&zlrmU4f
z5 at G^nS0h{^kN;#%DNAc6#fPzM0|Ybm1x)z`ut3LT$RHx2_MmoPH|l>s_PQl;zpCNX
zV9wgp!?(j;!BVcFTpeNFv4C4R at s;>#xJiGM7U7vKc}NO&%4%QCMLabFdzs7z^>yQW
z4Q6*cCM^soH}wR68fxG0I3U_8zeiN7hVZk}EV{6{d)hoQJhLF3)~5IfI-u-Xir+!o
z=Ta51@;5JJbedjVzpvihX`?d{pVT?fSslIKUK-^glOEE_4i3yBR%j at ms8|<K#8L*>
z+^$SO^-h|oRfcK$M5bFbmIM1uL1os5oOd~QjlQn-*)VNghhne6Rlm0K0<K<bP!0aI
z-d9l&b1MWA=CxB#&ZLBB;Kktol+85U%jMc;9cM-j)70m;r_~k7#p@>IY9lgw%~>Q5
zpZ>fLH5gV-0!g$}o(|Zz5+K};OueLk()nXpQR>kkw<Zpl^>C?t?MzxMjK;2Rq;bvk
zJIYCj_CBf=uvx+_9_nT171*up+y!3q<7fE=|6th5m at zG=ZE83eb=*{lNrDSDCZcb*
zpenvGp`jr%b2%{HW<Xb?2sogL|1ZKL&lXVm5V={GQb>jKCmE3M>6?|UG-d!6>v^M9
z1OaFVuMEtZ1TmSR-~p?o-k*6 at p6Hytu%Nr3+x*8*Zuf*xCGt&JdzD3cH=PPHzUGmB
zmJNME8&xFg6;pUj^iQ(D$b~xA)ovSprxZ~1?V;fiKjw{Cq8}7RHRMp%BvAY!5>uP5
z8wfY8w>!9r&-<mr-7`WqzHZ;D;)7HF&@kPrXx3-qgbTT~dp`>xI0-<i0D26SL{3mJ
zaf-I!DK=!zVh7}1au{T4$7*q$AH`((?~)~jh-)VnQ%Cq2G8;)DoSGqLe!J%a^A=m8
zH>~kgb4}{;Uf0FlYSTW<M-IA;8GvbH2$|BtsXwZ*cXZXW$?+;QoPn<_%};KdNX(NH
z+ub(z1Z-RhzNh#LcFMS&R%7Zuuo36W8T5f0dg(FZ6yl at S*`?qHaDunVT at +sgGVOEB
zdNj7%WWbYveVCv?M|l9{ZZT at J@;mj at IzOgfGhRc-Y!yx*A7iH;iQy#}>8*Ukj^)u5
z@=u_Z2 at T-AwWGX4z2}{5@<-5njb*%He=91=bWf3!ueUFa<0`z<O1n4SAh|9SK>9Q;
z)IE0bn5i_NQ$T&+K at u{zl;3(~{|$7q1nlBg6zk8Zk>0P$<s_CXKAp_*yqgD at -9(U_
zZ2byktbwV0^B{5tR^)mx01jI4@%*T)`Q~ojQBk=2FBpJC?)4Buml7F7AjEKRIgLN=
zF9`5ENyBR0twox-$955Ja_z9!e9=<;6^gma0o?&9V~?Uvp|je&a?W>}940=UhD~kG
zVnq?vv!M8|+SHkUgtY0IR<eFB*aZhlNI;CD7`%R+Lb}SR2nOFekqJyR#*B(`Kp^WB
z7}MLv+^m6T)z(1dnxL2+Rv&L}r^)XQ2yw7$0;EUVt0UyX?{RKigfa-n7r!Tf5GG(A
zG^k{-RV>&T0eBNg$$x*Yhy~ts_B|Nqf9K>QT<^q=bQ%qjdj_OJaYMOk;N2tWgbqUQ
zo=5h}l_w+bAbCJV;R6&<@+BgS3j~P$<ibs3u#tbw6a#xn!zTo@#sBfqPJe=!<NEK<
z|5-R54y}(KUUV+o?Po~<F`d(bk879B$*U`3t%47|`|Ixh5VCK89qQ(0CxTll`XCYB
z1)9A8ul;-bcr%zc1nl4_M>oT}|Ie+nBOnCO9TZtU)HacjEglX+DwO5GGx(>bLWf6+
z*ec!dnIbo?bWul-vpaz!Z>1U0TU>==#`*HkbCJQ0$N`MN(3 at 7e=@3eke at +{IaU#>I
ztfdLq7ts6eI)y>Ym at q!zIgDBW1Yz=$hLF31mQH$e$gPPU=Z18bmxx7ALb>yYbjAZ)
zr-0KY9CuEe{aRUuwb`WP7p)3Y-|p?3gj-^aK%yH$y at NFDrC}#@hp3k5TpDl?C~F$r
zeb+=+8uJt(gZ_KE?9jq~N<)6W at T2kGrG8~-czyz?wDi4981nxVRxx>mo~5pN(A;Vg
zHdW*X1(+8+eg&+ZfMXxVVv&cYa&7jV<q=z~`qjJIe6KI+0|Z9*<Uh0I(##-9OJHAg
zmdk`|>a0`>l~O%SJ!1%1Stf<~Ki*|{AH_scJsFMdiBRCfP-LlwYlUe`I9BVdM6T)h
z&AF!RANTq8u>hC+2=O|r_<%j^^6J-gyxQ?F-uAFSKst4E=;N^%9BYs9dq at Z<%4f0~
zaM#R;CG=MJD6OK2Lq*?KzvVaP-2*wx>LSl at T%FGs)0(or){4GYyVjlZlQ$D_CIbi2
z|J$XN5${`?Lk(uVM1HhwoiFx0`ZKWGxtQoT3xwF-p4UcNNd$lWYY;+a^;YVzkDv at +
zzV3^tU1vh^St`oec9M_Y?`gp<&QGdE8AYXT1X!h^lOwob-Worv2JR|%9tWr`-Y{z>
zbuGcAiq~)2&hW%wy^<6R>jp-ZtDW21Zy?d$OuaJeZejJOc`&gRgGDwVstQf|L+qGP
z1t_k%&rd&&iwrI4<HpNrp}yvPO9KnY=4SeibiDwV06 at z?V5)s9xC}iBfH2}#9*omc
z6_{2dpMFdg9jc;f6RsxB+KpJmvx>|+w+XPKHcf>_lef5cA#x}6n`v0|$;4<tb&i}p
zI5T1~wScR<V7tjJ_DU+P;q;ASx$jaZT&TOTD%m=V=(jLvnj2|bDBsJ&H)hWX2-0hS
zZPP at 1Rv>6%B9l*CI3i7Mp6=%Od=mk$L14871Rg&&I=fM5=BE~qeVz&lvsG0>>_%e+
zUB8-%f}DdFAh0FiZPC~?vlxyfg`!yCi$flHkch=s5b#9^ppsjxTwerV!@QFr5$?VV
zN!Td**?gMyx!3$C0x*WZsDFTJs<<@+P+p>7gp6JYxmOqf$AU4~XS<N1<s0+C^sBXi
z)9q4#`T<a+3>rTO-&6i%!2+JXW-8>=X<u+Yb-=8jLnPq!nu at 3CWzmcz&xmDwcKJ~m
zsqYq0rDX`21X$>-^paqbo_%mYj7#3z_;JX1mNWn68dgBYK!{l)*jnusHniotzb>u6
zh^Sd8TlNysLrmZ{ZD8ID#}(ZkFI9FAj{qavt<{=j(@!$TZA2PfG>37*hj_W95VTeZ
z?ZG>px`ogG#o0azcTS#~|2{e+bGm=Y+`T}%d~!+5=H63j+(s058YJqEAlJVGmC*I%
z<n+F*c5iIJvZX}#LP at k|dAoMHj^632NUBW at y8LCGFVgqQ-ZzM0|H1LGpLD1q?%}_Q
zoUq;sG*u1$m+o2JdigggnCJ#TCOJ`2G(V9Io!RUy2GaAEy<smR2Iee1>|FH<4I1JZ
zRnYdy at YLXe{zvzQL%_eSNO=A7Eald2^Fod~ZXd|_^-({wQbF8G0Xc>+9LO)vqG{t=
zbzo!6rQJ#W<Qol+$0dzQh(k*{Ir;x^J6ytA+-d)co0gYYUa$~U%O318{523vUm%JC
z>`EbW3mOz%X*8qlN4g?Ax_40-0}nZB;FX+0+Kqy`h>XqLs}^cuHfFw2HuOF?c_>4f
zZ+9oP10&zxkp$^_qrMm77BjhF2$wdoNmpN|dRA1y?wdl(lQE`GSqsP#Aw^R2R($9-
zZNGOCBqF!YCaONZ6Z2@>rr>$Um8pMIK3Ts at z?ql;Y%@7n-PaF4?OxCqpSlLMwPLM9
ziKF;+=*HW<1flDM(mpw<?D^gcVO1hjow#cY6I%uf8X@)KLjd5~&eNSy58LRsGCwU+
zaXYHnN}JhiUMSftDljxN%<sr44a3Ysbp#iP>lEZXH42Z%dy=>My}X)gxLW3dK=Hwa
z^-Yww;up8u!gG}ohn_K at 0-W6f$X+=5Kez0RC5t*9!$v>5t(w4UhZUq}xt`=FI?t8`
z6`LAZrP}tH_fNzehb~5tYHwEE9E}HB%_JzTp}{pXLq7&^qOhY<UI)D_tM?9GlL9;6
zlfVvS{V!MS1Px4=*HYao4TZ~EmC2#qaX!s;UnHiRFWw~-#EH9a((X5csE#;UjZd1*
z2_Yca3ITxje;~t`tUH#T_s)h=4 at fXS@EGp2jKf;<EiIPQu%o0uLK+kha*(TA(gc+2
zK5O1dO}ooJ3d%jmevw$`%eov^eqL5$=8s~+N!-=gw2|>KXV~EAq&Z<=``Y9^FcFae
z-~{VX+q#Et{UYs_tf~5!&+N`~1_uBmg;zSHU`0J+3bzYW0Bs)NeeNoZ+<mdTlSIGI
zP||j{6Tl&Q4Usdh*}~%=*!(EhbN)qRz2F(t?uU4N1+x%@<day)A?ANdDWP|@rvY0%
z1mdq78gJY2^)G4#7(12_3WU0zb$q;D!uao%2r@|4xI7}Hs$w+whnLul&ca}TkzMLm
zJ^tq&I?<YAsd{w;@+s*yMCZ|g82<)RvCg`Ps*XOMfQ<GFAqkez5iq at j)x|^fneqgu
z9+D0y$_{>smmA=myo+LnS3k<ehr?ddR_tRALqYNnm&des9v>eeJyPq|-}}4u0nF^W
zWyJxoz4wXlI&Q(RV`T*<W^&AzzJHkEv?j^|c6<jV`PS=5^dMw+(c~b1r<ld1jMpw>
z=Bi=XXFb}{N`VR6rA at 0ZLn3Ay{nSlaHbRzTW`tx~ES8)22$-zK_p-JzZR+muF5q7P
zNI^+ow)5TIk7{<-G*jX)A8tV6mZC;yHW*GZg&LVVBFuldM(>ZLq(J<hB2L#e?&a1+
zx6f>XM0ZmK!5=e`YgVZlq8*cTcIliOW$w&ES_iVcmaB2_KqqT1RFyVSd#frxCECal
zw8CL at -;QnKu<eI(X#9Ph&O+^#a;v)2B#569qG-0{FDVvbs!Y_im_Ee(H!J=yuw#}`
zXX=rmF5#IRm(6wcbP?wOI+7s9f&7Ji4`?_lhaN7(^doDV8Z;6*ZI?8yXT8z*3R58<
z^v4Y&cel|T(31fnRP!Llmc07FFIRAh0g4&Go0{&d`iPgrMq%S!mg4F{XU+ZYQ{O{n
zB!fmMFx{IU!uL3SxD7xmwl-=*AQ5{<X`SKDpZF~$Kyb+=D^xuCEMW!eRu&6N)F4Ff
zUl+dAs3Z8=yvjqh+vxXKm3#3crTo~4+6L3=MKb8{8lme0Z88rO+OXQebYxo5TNKoq
zyTd7FCJsL#+bSI;;CrL=7WxXdd5{WK(DlHt!(LJ(64-WOS$T<@huk=Y=*Isd*m{Oj
zCU5J#?0T|D3t_v0yRHNMJ;~0_DOhNof_a0U$Ei4q&(uBk7eFv#n?h|9d}101J&~^E
zI4u1-G>si~*5`yw4VWZJ54*zMBa*P{PIE!_10sV5KI at hS1>%wkNk%}VE^TZDUYf)q
zm)t%eQuJY~aZDu5rnF_39>8y3qOU5nHg63mz&oQ at WHTW?-94W?g*#8&sU at Hb2Sk5q
zD?kI*N7I0SrvU=KIHF)eJ$dK at R#of0FFn!o_VW&h at MmV!2BGb~Ap<>G%R0EmB$koO
zO&AS~aqiCyNZi_vlSs56{Nt52YpAbO{T)J@`-?Z;HAEk#$<+5N>q>Xv1uuM%1w(^;
zU%lH~(Y#B*BLpdrz*SBvA#w-_oqM`9V;LV4|Gv)fNXr&i@|D2i)MBv68J|pisD-P_
zYztoh7~bc3Lf?NLkNzGY7kZIEPkErK*Ph#W_p`Zu;(LlPFVF~C4L{%o^@j<*7Yq|q
zlJGJeic|oN3;v=l-4y~i$7`><o$=A8xsY0%a-kwqyhpvv-pNS=%W6Y!-z?r500_&r
z^l at 9AsCy`%hG+_)ytm=|Uo at H<d-D6 at htEhjK?ol&d=GVK4}DEbZ&)di4JrZwp;she
zqb*ENZEsZ at z7{+2xi{H8x0G7wR%2>42N+?|>@T at lFYw095AB;{e89XYAP1`B+Re{C
z5tikCn1p3ur at QOSd{3}i0wkd=ag<>^HvTYJW_A=t=TYz|6_lPMerR~@0N)tUQV0iP
zH>!L9UVJd?$x_XgZL at clh+48N8&2HaMHeR-5vje-a(MrLads=#)co(OYyQjO^POCc
zB2w-I8A7bWtkTtvm%ts_IMdD;CsuoxwXRJZ71e;NH5cl6o#2Haj>PVRSQs4e0!a<L
zP-8Vc;t8a&Gs6O0%9z8Uu-HD4$?UhAua+&igch&P^NbO|@c2J$vxlc(t?hc67ht>e
zz+L{E!t?$eVqnfo$?j`8>M%ly2<~3m7b&_Q4T+#ra%X$<CF-x6S&M>375MWSFad$R
z5j^j2OY`4Nhcm$lNSN?F({nP+XF!%90T4Xv at 3wZ^iqVUp&+en+0|`$toOSY)5M at Rc
zM2l$@T8ZmjgVuxS{Oyo!Kj2w at X66_pe$*E;>VMu<|Mq6uID8IWheo_W<8PZ*nv0z=
z{WI<1M;pA7CEo9pyC0oaM<rZug%dx~(_NSEa4-{Q{%_L%e~ADDNKFih!tx1+D>^$1
zf7uMh6uAj!0G~m2FInR96bL~GB7-9_OjX;<Pz8uA1aSlY0?qRn at je8en_aHOOnW>Q
z)hPPS%zf4>D~V8fCe``GHp<jh`2JOIuR$-}h{xua8eFxr>#z at jRB*QG{~wBhP;I?<
zYUmB2yQm+B at V(vrG at 7yYGBcp<IP186{r|}b&8F_Zx~Q}_Tg4jGOT*i~dnRJypP+d_
zBfEYk4XbS9+PP2=iCq*&iFDnBrPP?exU5S!IqgBWS)mB+O%bm!!YM+;<PcUp9&&a)
zi7P{?0Q9XNudS(6Yb6r|pCe}|!+5fDfxxg3IQ6~rFmEmYkI(tMy^mK<&8O+&2J&_*
zTJgA*EYnubHitAY`gyh6b2)T583{2jNT3YND7#ztX%s*zpNEMt7r<V6ttm_J;W`KU
z(t>U0%NETQ4V_NX80}=~W3&r66?=*8zJcBmfu at 6%5nflhyna1g(Q;P&8L`dl at -Yq^
z^RJgDw+aKRSN3eyj4D`mnDStXEPyzaZL<R1 at yzMqdp}`fCD~jf&$M#0_wwU~58N{2
zJ>wv912Xe1_G=Rj7B;rB?s}#}yPUR9hV&3hyVNl}1c8?@CqX-Xxn<sFuPLTynTRWd
zPUQ9$KSbNZ+k00_n;QTZ!{S=-!~5^f+Hr(uunA~;yO at gh8;WH#8XcLYed4Hsr&U`=
zDnPMo&_?+AQ4<u=f33_Eu;ObM#bI<yDk3AJPNkO at p2Nf}b!H7ab}uJbI_hTMLv1vf
zC>=a)B!D(xffhW<v~n)3J+HA|Dtn9zm9f532l}Yu<(<@rp1+*k@|%}!1e|=!^tel&
z*5pF9_&Cq at K}d}puoN3zMX-v_Jg9-s%dl81==~{@rVBM#OF|O$WYNW5;7c&e-^3oD
zAQ*Gvqn0^SsVt|{ZIEw{wl84!m5yXm*)Q^xi4aSOYeJf027F}~D282!F(<n7!qep>
zuv%F}r@{a1kYL1pIGbc08(Isf&}%L`Zkgw6Cc at WXWm(<Zi))$OqMW*}dK2AzKG~<|
zU}J2ktU>vYXOhfc6M+Dig^4LTX1o;yEx3qHaYbG8R{Lx-p&FGId^$FrtwbZu9`d1f
ze~1YM7aD(~YPG<ZNRyN^rcq^_xLz%|v3dyJLXcZG!tDHDpif%;R<$7y4aelT((U#Q
znavOOd><r%+Ja`qAQ~?Mo$#qAs&}jZd0y{M6!sYIt_5CYD3bvulsx_=^c3M`X(#u{
zZ`}r?H!7&rpFQ!6PfXXn1z#W7%ho?ad<XPd(_^v2GmxT4tnzz_8dsiJ`lhT3WZL2;
z-2J7|UcTT+P1678b%yj?Hn3Vd>{f8c3*tzC;nZ62t#h>9&W?R`exj~CnlZhJWgZ0=
z at jU{Etq#NLcTSFZEy1clFU|Kw)mbks%EwBUtUb%cayULpPh56~RX;h$0XP^z5CJ+a
z6N+mW(z$+RA)FM!#9vXT!lfsjHP;*(HIrX2?&hLgt|#}p=3xeAiBeVW=t{OfL}>EI
zt}1Y}*mHJD at A+$7cpfcJG|CrrubTBR!__+Qho+SamuWzNfLu=Cpm2BlwKaNrNZ2<h
z=26+IkFU(%*Bp3{rJ?IfSCr`VYN%8vc`lItU63IQN^S8KS{wyrySpeHN6G`r^O;xb
z-N0It;gvbE+pp;%9jhuLOa)P<dOi&+dH_8TM2dfJh^-K(O|rux^Twy2m&;L`Ql0Vx
zvCuleBK9WOR8Wp47CurrfJQtKoEn at Pka_e)&Vv`SR^cxQ9Xo=JLD74Oz%j7OQVz8g
z2bqKrR9Qml-#ai{f1-h=yyyz!4Ce~e2sHMm{0U59$c*CW)hfRIKi7%Ey(UEoq>E!H
z<eVs!syV(fSBjUYxek{K at smZ|S_P}a at TU6sx->g#&o~V>t(L2amIIM(fp%}A1)pK+
z{(B?XTOVN+tpHx90IMR1Z!y?FSgqy0bRXo@?v2>tX`+yMCV%ffJ=E2jonR#UF~G5~
zAxqM-?;#2IHkZpLJA>q{RqXjp94QQ8`S#!bfkZM9hR=ahmoJQuZU^UHHPcjQ#s#<9
zEA<lEdZ}K!$wfho1##OzdFO#ns1HpwQmoz2)70>09q4Y53#9<(UhMR%e)CxJbXQV3
zTh>E%7z(VIv9IkJi3I^H;AER?3XXh8_$@&cJ at YX7F8EO3f-6*F#mKW1$ndPFzmo4+
zLw?oYfT=NHC@{w at 1#3dFpnKi1TyVL4KeM8$>@3IwA)<t>6H?oEd}GYMs;r;euV(<7
zvZ7A^G++u0btVLlUVWy^SS2`fH)msjI~h>k=>R^;w^u|Q2G}o{GFH{XhxRX>xe)#R
zAyq^~XXgQ6!)FtmW?C96;f{|_CmSL<_50^#Ej=?vAHmY|=KK`bfV?ws9!zEb7Ldvp
z=whdbP=>x$A*N5}jb7WjW+OpcvcJV)>Fq%8TA)1}F7*yUj0R1b&w!>@${{iwJ>Elh
zIUhn@>xl`mFm&}M0r$jUZ at 1v(-?X>dXKLgR1MMRG7rM9v{2x0MK|v4!rNCLV;4?{c
z*S`XZrorRa|Eughz?#gqwqew<M;*i#r6?$<fF%*71uO_EB361C$3Uc`bV5-_Bcf6T
z3{?eDq(lj!7ssds0z^Q1Ga^k&kdCx(?SSRH-}`^(`n|4mh9pnfW$m?Bx!1i1vPsYd
zq^r4x>EHBsa~RQ&=*+>nT)o1);R1fHK1zbsPbbQgSM?pcV)BaLZT>xNO8uBK#XeWn
zC{foY%xdM)3*gfH){*p~vc~TUb<N2dvb5&7C_Dbld%Z1dkj{sQanh|mLE9Ftl0O8v
zPEulaGXIYJ(bFP(r|<OkhEs3&{Xy2<j|S?p`>Dc8OHp_l`P2bF??AIQyH{^v7H@?m
zg|xraW)uQNQEeSb{t#uJy9x$vR31ssu7YD=9+>l4_}lcjuYB0{V7??Y8o9ETSar)Y
z&s@*{s#Slq=+<HZtV#qeT=NV*>EwL=JB8wUm%W~qL9^8X+zi-)2T5`i82$?9g`Z{<
z2DqiHe(;k{I7++$(cf&ND=;gU((sys6m$8r4n5bLZ=@N|lh**825$DzA|Fl#q)Q8Q
zEJ2M9Iew7RvYGjGRQ}Q2{g6_)5F{MMIbjh)pjGrA`6+i7$@M7+1MT$`(;~MU*W<AO
zwX?svC1PGTyqP#=i&aTX$bFGFIWg0krdw&07aBF{Q~$AE at o0O9XEf#rtTR_UHsyHg
z0{2x{{^?zI4Q(RN8%3Y;#zsRns855>E156RQI&d15bJd**rLYJjD!|og?Y~WBO@*4
z>xqR+uzi8tGl#LplzR||u{E@`l3+&*)`gl$G0P4h1;-qAI><BaXBgY)=C(dju$+k+
zuUqyEkSmFP(dx)=Vfa0>6sLldLt9%K*RuItN>*_h+_)jG)OjJrc%MHfY@|1_<_XTo
zz2%j&f}-86O2ETt_x6 at Z7A1?<8B9bZudua{Og66_7vZnQJDV=jjjun#Xb|NF3;;Oj
zX|9&P_7nj7WKkp?lKBs!kP~UG-LN+E0)_rr>1=utlJCk0$1l9l=m=UfnS|hPH4*#f
zq^GJ&tvTpIVOnl$PUH at zZa3b5Vs&Ga at vd8yd1keG*=U=9S%}`sj1ATPQkL}KV#9<;
zOWTWZZfBN4<@IV_-oMF=_sgCkbDi}Pv^Btd?6#Z+K|K&-NWPiY7R?Qx3#XtB4!)PJ
zU4C7hna}37c*iAtLq1hyw^sO1<+rxy*1^DwEp4P-pX?f(XO{|0%cKH;SaOB`GtvD$
zsbbQ(UPn8Cn^^W(yyZyyM7>)~QHnISPpL4NYgg2dar48deyk at CJ#X`Dwby{Rqo^9r
zL;rHh(r-zlVD8aFcMn`TWaH-C;Nl#@T`Qj5t>W;&45vKv1~6X$8_3_7ez|QR=r0gH
z7}$O*vrI<3b^O7Mk3rRz436cXfn^3c?9zjqf!uVPHB-B2@#Hru4(XB5Q~BLY#w$<S
z^nJe?!%e&8cNXammX`1=MPM}f__2o=sbzIfEi5^V>Y!?qobdhiH=W<(RE%%J0x9Qp
zTTEcU80ZV*O4lh1vBMvjn{L|1tm`reJpvCvRzgf5*CZja$+T|gB7)X^lCPHb{kA^w
z$v83v(hGePC)rcws1>`eoyoeljCTr`#1GW*b;#}{>@K-&rH&qH1{4jM*2<$}AU=V-
zfgKYkIfQmy5&xnCM<_Ha&6r(G-KZ-GYe5a8nG5Dd07Q7(B55lM`RPc4_~d&qV62>Z
zwIoY|MIx4R_{u3T=nP^`;~OjQgrT(rqh`8=sWdD}=#EA%zXr=uQv=`zDp*k`PJh(I
zy~iPsPAjWZV!>+X{VM`|E`wEo(@;Xz#~y6HTO>CJV%{Sd;e-pD>hSi-OM7iwaot+(
zJWmSd$YWQd(*6thE&~qxY4cO7m^#R-S9w4-oxk~^*^)BT`?3Nj!y{xI;a+C&J?q(y
zfOhK1`2z+LWrX<e0?R31^BRN<+pVSl$9F%r<)W8=KF?Y&Ux>j{-Uz~-J(<W)-3=MT
zjJPy!f8}_yDVL=I+=;%J`(>o3CA5dS#O*uguCk;YO at E;kxkJ|vE5|%750>@AAH7^x
zcj}RO%|1nQ)}A$f&H-HdUU#e35z%LP;qm+X>>QgJ-+T;f at Oay+3Cv{H!(w9Xl~rIW
z!M@=C=kp7%@`})1iGacQOdArJ$zRQ6wIo*_CEpR<OAB at KE$%- at W;pw8L*^L7xx&HW
zCvF(Khw)!s+=(L+GtWCTRGiGd;Am(?iIIF)_KH6|V1q#v1f&e$!G$G30HaHZ at 3x4K
zG>#7`jf)Zgbs2l{AHJ}jJ|)UA35>V+c=kU3zT~OW>P3(c(814*PYAbXP<nY$VVhpw
zNfLYWd#u;jz4X at Uq=WNu9@=<|QP2)Qx}+K<2$}TB&~UE7iYw;X2Sflm<C=~k&89#c
z2CK-tIXgB{Zn!!ktrdCO1)1h!W8dp$I9oUGOs)f-tA!I4IJ3|;d2QUJ3__f5@}ss+
z6z%CZ!g|$b=0SdM6b55V?w70V5jE>77t;Yw=`o at _kbVhjU-)414a8bxy4ybrFgA!`
zk)JG_2sM9{CyqOeyNOZleF(q|m<brP*{hyfkdli?n*UCJopJ$>*7zo-VD=h7UI5x3
zK&$flFa3Q<n)mAf+oQdDF{me=Ye~SxYapA8up at aOxkfu=YAjF6K?Z&@_YwuOfEUcg
zo{bWTb$MDlE_fYA8`hPwF-3yVs!k^RjU?rqplHb6?bQ0dqp+lGf-!$7NVRhe9-4)E
zxgWc3Z`n(D4lDp~Y|8y!^01v_Zgaiszjd#Ctu9T6HY4o&tk<FU<^ACG*-O`BRfNjv
z1vC at sJlcqXvk9Z-Nesjoeq4AHGqGzPE;8tg4p(F^t$a0%(C<H8_b;|jK0Xjk9DCTL
z1UYuUABX_3Y_<zGZD&#?E486;;Kc4NbDBjvkV`kU&{#qESkc}4wb?Fqu=r$6&aS%A
zGSNimj4foO@*t~MPNo?4eFJcf9)Rj*#S8ZI>c^MNecN{mQnxVkRF^3qI*Tl*?Q3Ys
z*nCS#<L+BoA9Eag at fyqR;vfSJHU!$wn$;=Zh3bTAoodV7wD(%Q$yW$uZ;0cuCN;bD
z$tfgEeMM$kxzqMM)$A1#EgCkHjn!A8Q77k&V5D7~0beGZ(UB)dRTSz8I+iY@$#X2X
zc*3q8%u~y_*!?}tHm2JA3rOe!_#cYu!GvTQLJzQIC#<zAyLH?mw`D>6*4Jjw=N!*q
z40{q#jRp~S<}Q^VYPy$#;C1d#F{V>{KH!X#CFO822a5ZBR=&U1L|aUco8ghhuV4SU
zb*{pBT-Xo}DWT|=Eb~k=D!FFdN{$&`{aJc_<C%%x63&QmAmpk1$jGOWCXQ`?m(z at o
zG^SLy<p7L8N8jTgz|~7hGF>MYj*fZsE-s<}Zkfd95i>t3z9wYMnFP~2O6~#tsXD^Z
zivHE0vM!n&P9_KMN+x$rl at E&;;~VP%;d$FHaXf9;V(j}c$e|<#))+ty4_;y*`E>4W
z42cMEAQ0!42{ml>(h~eYo2b=rW8&h!KPBKI*R}+vYEfc#GoNk*<XKsHf8Hu^JS|V~
z8eeNC!B`%q(EMe~BZf|5cQsYx&d%8^v5 at QvhRCI_^?Kw^-otS8RB$q;ffpMLWoMAh
zvQP=xEdGy?&7#3WS-Uuv^S8WUZVmh8jl4g%!?w`aaic*Z4qW^iVl9CmhTL%j?3#j8
z;DyebCQ~*496Q%ag-BjJvZG)R@%;pgn+7?2GMGNKE_X!T(mj!+6cRjmNbd%4KjK2%
z?ft!UEV2_H=c$jbGc}|{Z+XY+7hUhwFcpEDblLd#NzhE`cljn1B*&q!#OJa_b{+cz
zPE-!tJov;er$C#c;Y<Jhsh}=i9KU~ZeF&%11IPZbvxB%{**nm6kYe4;<Qt5TleWPL
zCtoC3t&0lep476{v9>A&?AaRM(PaJ}mSOy(iH~tctKXPlZ4<DzYn!cQU9{;}7OqBy
z{Esbi{B)^(Tx_x+$o*qo|LqwkrLMZ5UY`A9c0(e%24eiJPZ6?54!EmcO>+RF;<YkX
zWkUFgEDQqQ@{%ErLEpYcbB~dXV$~vGX at K20r+xsR0Li7e$`^qsMtZmU`ns1ij983R
zDe)mcYJfZ*=aSq>*tqTWDR%(na<m_5Oqs)vgkhsNjUsbDF9eMnfUs74y9N3Hq4dol
zH2lSnd at 6WtzYKP|p-$xDR_0u^<mi%*U3(=47X)y<xZ_$x1Ch&tKl=uCP=OuG3h#wq
z{InFOoJi4U?b$IO>3+R0^XALN#+UCsLb<-1g+~6z(?qwQ#z!=veZ4;<97)=2Oy;QQ
z*3)#}A*VUDFL`u!Yqs8YI`MCEFn=rPYp8MQ-dE1Jjf_>9C+4;2;fq->F9v)`zzI7o
z;u}^)FIh)Gm8cY4%^`+LC=sxW`jWAdZwIzQvRRvx(o!gvuaU<uafD3OkYv*iCJ7{T
zc38d*bcL{@i+ZYBsDN|sFor2UdJnJsd~PRwJKi&;do?P{MPVQd-So)~ck*5vOy{-)
zk*SSX=jLsw-@|fD#>USjj{KnWDBfV(ehF62N62m-EQKI0OO84><v{`5K+aL3yhH-O
z;^S%8KJ23C-OQVM`3RFcD;5>onT+Mc?!7`5BOd$zIIjapfk8FOJUN&$mmvQ-z?95d
zX*dr$Bu5o8KH|_w-OYs>jaI8dZ_OaXui!(>iJ0s4x#|v$kC at Sqdx9_iwHqt>eqasO
z>+Tw~gCb8<2y!|R at ->zL^t>~q^qQ3fjoG1}GtKV;I0fopT#EMy{xT8gS2>y#`=s at 1
zQLg8hjoEdtyejomuK)PzIAbDL2CLzdU-)lpX8v&IB?FYnK!IS`x)DkQE(*9<`uO*6
zc&kt2lb&7vO<<9I$_K8^iU+94ZT$r3#&0rQ>#~%eR-6-ZzUo<;dxo;~)tv2(R?LX;
zd at w$LTV!bKM)3o*4T2th1YX-}*H;)JP_sW*%Wp5wvHcVXJFB=|k&wSd7BA<I=<Q6k
z*+r{E{&a1Tz^7r{<mh7Y)lx(~erQYS(L4dLFu`i(`_nye3Cz_0_DLSDMCmMaU+sFR
zr$QapaRx)^9n^cFC5xQpd_4ic^54QRk)FP|c%J~=1CfL%E~wm<muG*IR$_vgCN})e
z*T-ja5d<c)u7NNt5cqUs6?#lrAm~Djz_sNnXzV+V!Ttwj at yp!NgQ6tRg9HS&cV350
z+S%_97?l6^>0$sz>~?YSvJaR9gT1^audSD-R;njA`1CIAIEJdtjQYPpi4|E^;;75A
zwg}>wi+*1aSl(rUFqcq>zc5dmWq&@%zY>CI`daN5dfRzqgSUGWV@&2H%T84JFD7(*
zc+Avw5ZgU<WeXgxJ8Wh3SFDf`Z(086(QRX*yppkn!ig9x)wFkz&a=~}1a?O at jU+di
z6MNHsT&!&AdGrhR%As2~M5ASxa$6$Dsj<~ph84q9RHf+*n^^N&h1F<d0{q^ZA(p+y
ziZ2%`o7U}M7n`g5YAofIIHeTX6PslZpMvp$mG=^g=nfw8#~i4}XefSlH!SV%bTT<3
zt at Zn_ymP2%#r at +Hy*#{_I{L1;>E!nv2>gu31m}@z?B(ELGcuXdPOvi8IHlX*m6LRY
zclG{cQljTy??!f%+O at eHqdb0eyACHTLK=IK(F!@$*lmnwm!1n&WLZYV0u;bKzxsM8
zj0RN3Z(SMtj`YB>5A;T_i;GQbN=s!)uk*0NQ!#g)$t7y&K~*>z+>_AStk=-hu at Iav
zwT8O&qh<9IPR-k==g)}<Qjckk)_FYP98JGyp>JTdGq$CuYX1wyAJ3D?&ePQ1>eK>;
zZ%?t9C-`MU2PtiL#3AT~2E#tpTy_B10PuU2CMHhg$FeJN#%d$v4%JH{<{kyfEk}3*
zX+AdUjYWHm`T-Z+y?O<V0GGqI*DN(iYfpQs(7mKccnhG~qai6?y=9`QWX<=GhG%KA
zeMvi<(TvRsDGb`=BPiM3SOFNSvmGb!f5_ruPLj0i!Yk`14GV%rAB!31H1A|eq-*o0
z-V!(L8bjjD6<&&)yaEU*9zBCPlvH2bEcsqmB%m~DsyDeQy8NU&v9$j(cN_EC4N;Ug
zE(>(M2Nf at 0?)WUl+J<Er_hJ2<|6~}1lX(%w+lKP;WH~|HI<1nTJ&zt~AkF2lRaBap
z$GAt#^p50KtojoQ&H<f9S1E6fi*2wogAygt3_Q$~qBMIKDZOi)1$ef>ePzFHXZ05n
z$872>HhovQg*kF)6>P-tP`)Zcv7Z0(jW*=FPk&f|3>WAp=u&`n|5(O{D5{{Q2J&EC
zpEm!qW;+^mbI6cw8oaq8DgLBdDKuiS09u1FJM9sK7_+@|-ZlQa*Zu$g0Om6w%!?0u
zSm-4tM(4#Mh`Ac;=Nnc%;C9v)E3xc(sX?&w!(a=@YutbU%1g)4_j)R)OcP6OLO2y<
z&B`gS>MPhM-KhEidLr-%P2XN at N}ltB(w+&8k6+VK@%n791yGOHx8NHMmp6z<#rBOx
zfyO at Z>!o5{2T|gosziRkMf;g9-b_B#MBMJd#r1|iJ9?@)vB41Fyb0Awvw(4`lkNAZ
zZ;N3}(bK`4>_jPtQR|6gfcYVN%LRwhiu?67mmEB_N+6Oi{0H}N6j{YS<_R_JJtHY{
zS-YItL%OsKAkN|;`DR!8+>^N4?3X^dhLodfYHGw8c(4p$YPmIb0``9Vu#4a*nre9D
zJT!}Hb`?Kc03YAVGk<=J1Ppt8a4cn0 at kz0+E$*Q*_o7o=jQKch`jv+*JARJsCWC}4
znNO)tvQDI%!?^p;*A6%j&z`rCfZmDqVqj+cs>pKccIO|uzaLDlGOBqm?^jlk7ENds
z$|!j at M0ilm>zOLI*)XnRdFfP!HEf5d5op@%b}(g2uaKJ!gA?%o?z%%{rw*N3A0?S>
zO=!_{+?1Z84dqL)0Ac$0Q`A6&d@?ub?a017+mJ&2AaWRnR=Y?d-|+Y5+{9!!v(jEr
zhfZMgzh8W0mTjPANmQ|Wz|B$Al=#`HVD1*2^5^j=D=5p&a)~NH+2^0{(J1PFPNvY=
zAF at 4Mn(>W0 at 7e`$OQzl)2Hl6`97($7EHwH+7eJ#K at pQuIzEQ|#8jMy<#C9uXn`Z)1
zM9(S_-9ZcEm9yRLIEIAG3^%!U%Vu at JZOn}xvUB-MjW3`mN5S7X1dwX|v5WlQAI28q
zJgNu3y)f~L9c1m&bSAjhIK54`#NKupeMLqkB|jeDtV7}D(wr$!`!d#KOli3)hA at Rc
zR*fn|q%T#fzkg#R(sJOtkyd8Pd*QNs8p0x0@~L?zDl at FZdR*U7>t}jk|3Hdrc9Hvs
zal?Be?^IOn!|H#9P(Sl2hqKGhd|chTImzt#6qpphu8jd;`+#Eipt{F&=lF;%z)kP=
zt%r{NT#-w$`CkJpDG!gf3sG$;n2dd+q8BEbvZsn(W<EOnV`=nX3+L)H9>iK{k&60d
z1daKHaj<R9t(^WF<`s!?S!N>Y?2a&i9C#74bScKxvy+8F1F--rYLNxshiqErhgXiJ
zI>tTgI7uSb^#%c4q$9es;(IWc#Omiw&zoD&{T*gwWv^}?CFWydnjBXBT;|~5&_cL)
zLFZSnn}7&^zJ-(V_9g5FE)gE<rH at bA!p%(ANDRsHF3^?ugrhdTjCqsK$I`wfpn>ms
zHgc|Z6p}T&nfUPY8ADr at pGbXH3je2DPJc*p#rDpBy_TV$#dZQ8iFBiMC74|NMcec2
zCGR>$%53ZfCGBbOtwamU7<{Y(WQ4=scis2f5-GA^)Y7P_r<Pe~(AV>jMbwMlg<kiU
z>MhSzMER}Watgj>4qqJTP&wr#xFhM#l at VUx;10Q0ea5zY9nF7l|7EP-k}ux|@k&?J
zJ;*Elq9Np66{>FaSVPm|3%Rt~7Wwu3PF(X`MGNF!mO5z{%nkKRfNci+!nxM>L-pFR
zZ(#sQ2nO6ff7R4#&zlh4|9}e*Y!PQNR;Kl3k|57i)@TU7gRt^{7X^g6;s<wtkGTv<
zdQO&9`@Iq$gp9Bw746$Flq2U}=ik<5+pAyY^=W-if%)O at YcFHwj}WZInNP1!Bp4LZ
zpwGRdM&y<f02a(GrimRr<jqW)?9a_<b_(W<uU|97Ux?SH){GDWxT{$G7qly+-)506
zCyGSahq-?;c{N=(4$;IlLjto8w4~StJlDs0gsmwH-;Mgeknq}T*@Wmp_?}zuniqKG
znndeVG^!przl;WD-~_6{Ky)}avG+kjf)tn(AfdI|7h6zT_a8ulz0|mqbjSR7q!q9c
zt)KGlq8o<F(f#i|JW#jx_h*Nq+JFQ(k!?)b?wTCCkLfnf3dg`P0U at 317b*<<s%OP7
z0QlM|J>agbHLzr<=v3^y9lu%$Qx?4$qRSZ);i?%QB{PnZhVUOzv~<nTU#bhyfQ27_
z)_28tTWNBI!gm#J34vKYEcNfNR<qzWen3_+o&zje)~nc1O$uOo7Wt0hR*28SCd8Ng
z0Pb}t?9h9obZ5bJDAf9`k%?_rb&_d(bvO4yqAOYd!x{(xfU5a1Fyg=D0}0tLSv^QG
zm0}iX-O at eg;3z6_`#|{K^A-2p)ZC}?Pkfmu at slDX){)ui;c`P&ol{)DsfeE~g3Tfr
z>MAs}vpZae6q7exP0(f0nev3LiCTS%OZKzog=?3&&q~2XTqL9oYG{`CHRX!S>x)8P
z-P7bH+}DbX@;0waZI!KguZV<p>wsmH<&&r;uX0{&8V0H<noKQYno_+>Yo#C_^g~>T
zfQ at 6^7}npSa+dv2upv7BWnRn$vUaa$d7JMpO?92vmb#FW!`1Jj at 91~C`+r|a?x at RA
zZOqaR`fX;RR#9`c++kNdBMghRO<pLnZAh at Ihg$f2;;zPuZBDnBlufFT+q2k;zllRe
z2-n!TQ>Vyx*~R$xFScHmz42jCA8(oA638tV(IyyE at Ty~KBV8r9r2lBHA*<hx>q5ec
z?zk##)gUhSE|KWk-qBNkz51M)>#)Cs^yu-QQpxI126&y}cSme<Z#1_vI|=Gnx-%gK
zR<j4y2>Xsg=wf#HF2+rs`;@zJ#)*XW^V7^pJ<w&K{f-K at Y?QKD7=GuMWGxpB=SOQr
zNb)=1CjYGf%oQd3 at 9q!w8yad%RsPRc%Hk$(_Uuuic}R^w?bw2!s#f^|WyY&r$cnP`
zK2*-V;{8+|@NOW4TY4W=A}AT<YRGhdGg5ZQXADl4*qBcA1P(^O5(S%gE9kb}P^|x^
zJlIT6jnyw?<~rhG_?G-7JwLpovwJ0W(Uy5=dBkiap`Vv1<gTW-4w6(wO{N~X4%ZcS
zahhxJEv?FUoX2o<{dZ$eFC7ZGW9|4ZiJ0U^ix1DQ9qr$X6}@s$EuuLDs%@bz2Ex!w
zbw+sQF$Bx(Buqw<sa8Ju%YHmfuqF70=#r&>frb#hdN2*pju3P_0VH|rvc~-XYzPFT
zrx(MZBHHQUHYPsf&W~%OuO1}wbooz)!ncq@*1kG}s%Vb%aht at k(g%nRsV3ps$br;6
z at V<@-OdzPox<K%vXxD~)i00Yrt~Z^b&|B(y>P;6C{#^ZfcK7;H3A_to+&}<mf#cGU
z*b#m4w_l;UZrYUG_rj&~<n7a>81E4`0P*gU<v^N9j#k|qxAwO;>9W!Kp4fr9743Df
zQ_BGC`=6_X7Iv`}dC!!&y=&|NhV#Hu(9K(5PP;;DbzU!msKT7KE0AP{o6HyZ`2b{H
z{FhHZ)D2uYDqJA$et7Ycr9EVnaC+Ub>)v~<b(e?>ZvHVsKo}2xgymYm>?jmLxCtUY
z2aln)qYMiQvTWGA6>ZHB{lb7<?jN;E#57`yw66Y^6S2=C7%Qn9gFF$Em#Xf>MMn{1
z68~Q4!=lp!FOJEKr)|1k^12KxPT4BTS&yPr5E0&=U3M)%0QMkw;G?dw`_&sYEc?7n
z at 2Z#@Pz<!3j at NoWOITWs{OhVv)tn{+%Qi#Hm*jMk)@!T5&L%O5$}G4a+KcZ0>p3Qj
zD2o{O at H+@|KDClD&v_F=i)72G*ca%gmab3Rm-E{luBeJLegC)KwQrv*_ictcP71${
z^Lh2gM;YT8-IyO^B at n+KC^C{WsE!HrIPBl+sM^GAgVM|GQ>GzY!O_FNKU1Gym-)s)
zW3VICMjoNZe=H&>^NDLcQ2ATY<*{eRd0NlO?tgf{z>v}x{~Rx)4Y&R99+4?qALHj-
zV^A9stt}%Xl2KhnZbQnr`NB=@btW|6vEVNmn9cUWV!LMNNfoDDgYo9kRe!Fo9R*UI
zrGRgt3KkKo7hb;I8Ub5gbI0POPGzrW-Nq?_F>C8WNe$`yL}nK`QSYLusL|au<M#?G
zA1sS6sJ!>U5g>P69h2AO+!b_^&wXhe37N07<vLhd2tu at lxt_75us~Bz+HX~$6EFf^
zd2v40=*8O7|G|$Z1Wn=No7UkPjjV!p98^?MYli}@+;s#U{ND{YK0}_=1R&aeh#o|K
zdx?5#sse61M7QKp9gaeBpHVMC^hkrk=vnc!Gs!PGjf<_G*qPI)N<~EyLzt|JY#9hs
zPQI=Zzo|PvI*`jEsd1LqalYEL18!li-KwW4R;{{ap|`890+kxnMmWmU*XuoV=?P}k
zZ^Fq8B&|%-sh%E*UT=<S$mFq-vl5T0c!>4*tQS?s)MIE%O%vi3#jgd1_tD4IV%W>9
z(j_yFvS61vTMG5%Zt)l%5J#z<Ah7|wyA;+NSmt9AkU<H&HyP#Dck%>hIzNavM*s;z
z?P4uC71FBvMY9#t0t75JOVSZfOLI4!?KZ+E-<$2Tm>#}S;#P9$J at Qkfoez~*{UtV#
zcm;d$R`Jv_E^z~YX`+TE(~|{D<20kr&eGRZR$0>VJUh?(m>S-ht;Y^i*6u9Yv*mj0
zpU^DV;;HBQ-$c%ABGAVjXb;NPncyZ1{I8#Ncv~gH7;c_usyO`D?UlVcqie*B0o->w
zYe0FQr6SVoFs1!B+t@?@Q3O%*T(TCbE}5jL>7I{PZs+e=iInzAGVx at 6o^dE`>8m%J
ze=Mng-eXlxt>2Nx>C{pjaN&F>LVo_^wfj9<+50&(mq$)=6sO)XpZ%9;z0%b9 at uwyq
zG-FH^)6Iw9MvwPgwsB_b)zyKaBaOK+xBe#+-o%g>7Vfk0yyX7gw$JAJhl$oxiH&}J
zcL)PV^wd9-M)D!~w&)PjXP}dSYtB6L%)=+i81*J^6~HjNsH``p)n%-Fj-4J^Wn{X1
zZcQLT#|ejW>%R%wxO+XrX#C;otlcA<_k<R`3UJ&>_I6Y-_tCa8o{Q1&_oudM(?Ypx
z39mAibojo?fYq;)nNb4UEOK!@3 at G$Mjku*(lLw#GjY691??$qiBm1RQBBI)R`6kb7
z5t0?L(2Ie)oBa2G9cuz}^Xy_>>O_Rb=-cStapellDTs#ATVw$~l4nL~1s`npgNt&J
zPd??gk1;s4&VCl#8-Fc0R7{*6b!p?WQKaKROG04eUn=IVO~=DUSpK_Evu+ID^)nSL
z+_$E0PFB%(c<j0>Cy#KW=hoyzO@@=<_MW>p=&eU?Vx$`l&E-u{Tm6Hfn$z}4>+`;=
zyym+8y at _E7`{I*+yZal01_C<x`8N~I3d4=~5Hz4NpC8V(AKniJ2wpJy|5>hZS3dqR
zj5OC3K^5<sxvKNI8L1xT%`Lc|;ww=&+ELYWz+)<Ix_nKaEM9oG0KjM|nhS>l+3Q2z
z_mH2=uUA}T;h*dOrvtE}NUJVMj_!EQ`F<A0Vgd4iYKr<<%RSO!lg?^=)0cG^;vJJ6
z-U(z0ka0M8=$pb|*3R1j7uguTw+h02HWx~YKi8dQd$^SLpNgUov?wl?&Tf%2RX7XL
zW%q!G?VFBb{)xg%L$&$tyl*Y6s~o*kx5$U*^CiXWlRWe3%6Rjlm*y3`K(6twJ*0($
zoip=>pq^^)hQQ9wt7;u}S8Y4>f8Ao@$g#JWW|-!ZVb$!H_8S=y?)}#-1c<8E;e>bZ
z(XezvH3_d(aE;#$y6USOBK_Bx;H;^K_;52VT;theS=pVziuyai2~yOp6rB;>#&ln|
zF7LR%LOT8pisk_xoqd=h>%h*wvjG_c+ at +w<<svX_;QP#2cY{0)$X%YkqwjhlHk7;E
z!<41~ZOd|OdWmfJ2*-O$A{AwafKO~9^|^VbWC^uiA9SfOzr-bU-PvSWeV?a*P(~Re
zwDdmZ#%<Q5932VfhC4Qc#!G+d+Z-ngBF9fkLWsEah;ZeRKhzK1)q^5Aez63%u*kkk
zeIl_2pQqBY*ZPbz*2N&ce6Vvo9~8Ap^=8J&2*FQhdpXOnDI%uY3M--FzN*2xebTb9
zs%p}lMrJ$7DTeO$*@m4yw<b6-Dd5SO%BEMME*z_>QO9%)wFa6G;XTe*EybPZ%HQCz
zUIiFc#%U*w(*CdE9r}g;MiqXu9*>qQDCu{KEi at N%Gxl^}e2!R)qZv&HR%9h&T3(6j
zp3P)CN1!78FcS&T_)a)wG9pm)&|#k0)P3OWo_qJ!3Io2>;9=+3yTJNKP=7FnP{^&D
zQ)8lJ9nweeiZQHowl%xj&2K}2hYNPmtF)4tQ;dUO1CtUFE1SR1nXaj)XvaD6wGKzJ
zBE$~fv7RmDFZYB at AeX~}G6kzZZi%ACa(7Z`nr7t#6(xhginIMPvdm61U+Y1ZOO^C@
z?d=bS))@7rba}kF at _{az%&u}+S!B&_9 at OEu;RY^&YQQ$@0#E08u?v-Ml21wAF<R$>
zo?kA#bT`1fI at T%6pgE!m*xhJD%wvwt$QIy2Ezeh#Z0g|+vaWtmyO(^roA8h9lZL at d
z>g>@micnW2(Y3Jk5s6 at MbH95Z*3Anmn=9MVOt(1*5;_{jZ3*?H6I~yCQGa?h6f?TS
zCe7UG<|NHX6 at X??<najTb1<fBhtxF>0vPrNNfY1JgG;uSjFSDUK#RihdRK6S65}d7
zw2x<_uu4rS56b^#*$ooKbSuhHqKP|k>?>WJkE3<!{>6-`Y&pf3STSInFi50o1<^}m
z$yVNU#=nHot1qy-W_%0I-9DWox|lJwTbdbbd5#B|@U_iA*6|T at q_jW75>SeFNGHSc
zMzfBtGgM05c*ZaSaPqX6m1*$Y>F1b?k3Lx>*C_(ijwAFx*)m(m6aSE*>oG0$on__~
zN{zq@^RB!!*9EjGA2lb*Tm_7V8>^0S5*fhHR-Wh1Lq%V4a_%i(WU|iTJpgx}BeFPI
zYnU|j+Q<O0XDWE{i%dHFS~36V1#t(hitDUq&By<x?w?N$fG<Of5wJkP1MyC775lwo
zF{<NZwKh~;pw;xV2;drr&G=oh;0ga?cH?gs4xe>B3jd7^w=49&wDIl0eVmcu0o<ha
zIjw=pqx}8SqxE~W7t|aNIAOgizrAAP{5xg!g)5O2WDFdeg4Mxu*U>Qr3GJF|B4b=9
zedXg1$rSY)hR<UwS-ylkj1<!@Q|j!RNK_265xtkceMJymFW6;0`7}9n<1WyCf|4^n
z_jX(qqLNCJgx2TFP;J%chl^fq1 at 2oQ9mMAALwOpI5TTtAw9iYv5{iQ2u-j%}?xLq7
zUYAfRiUuL9k2Gv?pobtSQVZySEr5Uli0sMaS3YIyXH)LL1$hh7!m1_|?vvcXk*a?q
z!GW{dz`q4>$#K>@Eyv6scYGZyRVg at 2^kZL1KS`nqd0&aT;>RfA1#tBT$0xE1V!Zd$
z=rvP+^6g at sV{WeZw?Rzym0s{keyaHuT2yGaE_!(ws3E(7rergpL=$UKy01o(`B`xR
zZt^5{nw+xxcy9<%G{#>gEaWm=51GY&4IqUK<|bikOeUu8`Mj<EBSVs<RQ1<#EX6?v
zyNi8EjUvIjyTnP&9?$sj7NMumd-g~Qhf#UNw=V0m4#@BP1+rLIgYD2`=NA0rbrW?1
z+y=jOlY+q6LT2@|I at H1Bgc`mC*f<3VhQSwSJ4<HU$59<Mg}&0wEBFW<sOUK36$oe?
zvGJ&3mVFx4L32*$PwoPY{f~NbgejodoT8k&p>Pf+4^0d*ybv{;e~=!(u}Ex9&O<1&
zCS0DxQ<5#Ek6;;X10wkv6bVGO#0O-QiR6_gqq#C{SHKxrr3ed_0aaT8$G9|+(a~`h
zZw- at -W=tkquPifWACM;ojSTaK5|E%Al93%ehRwg!_!klZ;#k}IQIl^rf!s^7j{f!&
zyZF&o>~so72t<Vc5WpXE!jA at Xvv3|zqY0k!+X@^f^dgY8p|QI4ps?6J?R^lYBfjNg
zBuX3pZ9xU^0LdOvZ_6!!LfRRt+}H{zgI9C12tS}Z;ZhiX<<k_70pb3dXu(TMyLa$0
zD%{fDp-Mw at 1sf=_f)>60=<?CxS)Mg?H+R$SozyE{wB{N`kF&t<_#R#dO#_6ky!b<s
zxVz2~^3U3B<fp>VV{ebvjesGQf`^ujV{t}775JrnRA9zJz!MD4dLp{I{cbM79;BHQ
z%w<{0{;dhp15>6GaIJT_0J=*DLbAlWFmWhsu&X$IH()mkbSQ>5Lw^5GzR;k(kY%rR
z*pLSo at +|}PZxdHlqu?oMUwy!3$pg1 at oIl5`PYH^o`OUj||9M?Lq+MhO&+{qF_yf3s
zSUR#$paZ4GX04D7TdZGt&by{(U_NU*fP`27H8EcRw8DY8LEmuh)(U9YpPF;)Ir!qj
zrM3BxnX;lTX4xlh<vg$=9D_b{0cAmazA5n8A1K+=UrP=Eatshi2H0LIfl94$E1`;{
z>pu&ak7nILs|vDg07fxuK0%=o_bVFrddd~S(m_}<P-TEW33bcD_<Qjg%4TsiXCeN3
z4Ww0r-M at Ek!K at 15wl19-tFI!bRz7HVsBx$1<yVlZ+A{`K7QiDQ{NU55{x)=Wc5?6h
zX+l^p_(hPHWk?~(nx1#0eTjq!5m*tUKS|4APR0)5gpH#w08;ODD4b(4a}sCBFF<&^
zN(h<^CK3RvVu7--N^%oWSO6Z1tM!9dFR>~pJ>OZ*ri)R>cHLGU4$PZi13H+Y;wq#^
zBGjaDp2xr9MkO`OQZJk~<dH>R-2)bK=oXp_)OqhT^URNv@&;Dq+Zca6bwnrkL)9Xz
zq%qEoRBGRiQ%MNki+=l|_#p!RA0+@*9Y(X`i)06>J@$KSe&T_y#IhF#?@>8)+Lix!
z?Oo-qr at o>&oLzJXObg^x*3|$0nO~cTayLIaF?Ixu+faZS^_O)^K50~ghXPznj=4-j
z{K?CS9efHs at Cdgsmw5?%id at 34pF$51D7%BIk@$-c{y@~ve36AeU^0IS24B*~+Sssx
zxc)2{e|bYpKwfG-QbyZw9wQsk;?nyU(t<+s;4zby0JhGj&&1quIB!5}ZrRB!poN9*
zpvx4xfdQTL3DTMTS5Lo$Z9yrRQ!+u9W00OixXFH}LOfs+@~(m?D7ZU}doNDCS!nHt
zP;++PfXd+#pv)Zugo8Lb-eG1cdS%)Pxp$<}yRqJ;c{3|#U8IGo0`{l=K+B`hOnzsy
zEThDw23XuJpkNrf#qW(4&M2ot2XFD)kZ^UO4DUeKWjju}XrwNrq0OM$>t{o~UZPbp
z`(*TL at CkknK&Hli%{-|Zu(3gz at y8K42RuSDKfjC)Cc#b0W6K<;<IGXQdG-rM?5_K5
zWEXr_OM5*-G?d<Ak^ZdnY~?rV-*WER%}z!6E+b=Qj5cA$svoU}lGx<dvF1DviMR0@
z`*fFn!(jWS&iwW6drx{3fAXMnySoocpF5WuixIPW<xexSdTUrX0<Zv$z9PR8fCVr*
z+~3>4dxec}L$<tO&w%HUwSVZ!wjZ|x968jyQVCE!4vo>H=86(Z!C66R8evaevO`yX
zJmEd+vAf(R^Qz~Q!UcRPH9pHZaKS*vesx3TkbAr};W$Ot`k!iE94Q9s2;dkNP_-wa
zf;CHXu|YD9K8Fn`Gl);DdaK?(xCZNI>tFxs&)x@`AUmiTu(n+ at R^BjY_4{<Vq(IGe
zd$W_*6O4b#4i^rRP$ZbHhN#rW-Wh8U#w#NOJL~6y%}^<((+_|THPj}%ZA>aKS>+wi
z*q at jp7u=imEGq+uxU)0%kN4(jD2Y#l9w+k#2 at x3(AO9(AhQ<Bs2ilyxyGIjX-uY9B
zq#E|*S&8E>4-`R}eGd}-R!|~yQjb>EPl=gb*S{`=dH*H0Xo>%7>u-0>t;Ju<DEBGA
zLASxG<qstAHNl at I&L!#{E!mL;yomAG)+&+$e-Wa*ezm}Uf=P^hqaSR%9Wt}bjF9#-
zYFP3b%9CD<q>XsAGw3s7&+e+Yq<a84$*v>LgxU29umuQ2%qz6)nyD)=G>zD63~1G)
z+q26IFa_6Ed|HTW9Pm(EgQq30t}gH9&Z!XqBnw1{Br?k4a2)?2R-&1&^G&(Klvs4G
z5P!VpZ6BMrTmBR|T5Jn5xipUa)WcCW{pWK7R(yJln+zd?^O6ZC1 at Sc##v}K%@$zdO
zMg7#1>M>$<5ktHJ35do;#z2;S_KHV_KJ#9$T7{M}?885#msq=SzAOFD1=k#69k!rF
zigE at ZfUx4w&X0aVBF6vW(d^1bN<ta%RD<H;yt at u}c%wG+w~2cTCw?|Sn7HrjYiFkI
z1jkRCM`@}@b*o7~37z7_%zW4QQt9T4nR!;Yj!*Z<SFIo>XeQB1VHzP>ivF6j!V!d5
zkZ+j%c8TbPKWD at a@WhsP1$Vf}@hmF#+Gp2~G?<CFhgp3g8TT%bPS>{Zk}hCMu^<lf
zeZqan0RRx~a-WSv^f{rU!QA~=6|Wj>)@8vUx?6flfrhWTmP?^~BY}3IrLqn;WPKYv
zsk;5F+yjFy=Gas=?ywQ9y)IiBHI%yv*m0Mc7x!D&ne0GdL$Xb4{C|KAht#kpTb?}a
zGT+VoHlAp<nRyAZ?gpmHU-eSrv$ogl&yBtHFI8aFLlpo%EQjR38wVAnkIHB7suNp|
zhV{*1SE30i=yak!q)&vx&T2WS5yj=2NP~A&*4I&<npq?#-1CysZFpY2`cZmc-8d=T
zkUd?!GnKKC2&6W{-!H7_u5uK_mX%1+F;u6sc%Y1+<E~zicJatR&kRczOuBQ%qV9y;
zy*eNgtWTX1Z;(zsMQYfUipbj?y|*%*uztRup`4rX{HcXOoAMx4!YUULI0MlPE;2Cr
zvaG|G{}<YkXo&w9ei+DifGWr%bh-?%5GrTNQ>vzexZ}VE4dZu8+<Wv`HTClFF2ioX
zJpPJ9?9TQ#kFW{mdQ^6{w#b!R16V_-w?17VxZUS9-zpI^!bh$RxLj(X=};{gq;Qy`
z86<b4Q$6X(NDg(!kaPwoMXNF9DyRS0T-^fHj)hLd#@6^&lG`;*j_hjR>uy2-Vjn-9
zuCErK8^jax*v?R2zQm^8q|O8}%O`6wpdu%~)m2!Q`E<e&*itoxdaKP#lC>h~^R+>;
zhYwE;D?g<=rcw3*+h>}V`4R)73YE9r(7_<WyW6EgVkp)MYKL9ljucsIfEuj<h-^Ku
zImn8*n?bcG)k&Q~nmVXFNC)W7<;NB_pACinci#F7xLo$P at wjlV3AU`*UGugPqQ>;M
zTo!K*XQLs;P=-Tdxaz1+jWMGjkI{e+KklCdweBq$&n)DyWiDO}2#Y_BP3a`OksxRI
zt?}VR at 2(Ox&RZvI9oFoUWb9X#(-F-rXOJZ<g=ga*fv*zd3neURWThxz?80^*_}kbL
zCrsef`1Mvh9PaW2(99)=wrYb*s1O2|bf8O?_n+|4RC!Gb>A+qoCMO4Il(041%gate
zd5}cvMz`b(6q*X2zDt6b=~&S96$-aPhy8vrCN`3x{1d0#nkkcKmkza`9AjB#9s&!4
zE>Kl2vriy#Lm+4}-KQUO8O{~y%|I!5{|0^vJ_J(m4MQG|z}YdJe<=w#<O>Ut)i@;5
zit!KS>dP^q;JHHZOhWJr$i-0OE6bZ7Sb1jvSZBC76q0dQ6`maEswYb at GLmu1?o+r*
zhV!GUtI;vv7St`lrpRqe8D41|)P4r&+w(IHShS)>0n at dYp>sVYU)${khFuVEEd2!M
zQB__BK%_OH5)gyq^lwUSP~`2&AE>FJ0r1ujHyKy>d~cxcuH7vA7mr+=QnwF3(ofWS
zUUgpBN=|)r*|BI8lYrjR-$a0;karU*lAz`&m^%^LCfmY3S8eAAHExYkh=Z&^onjbq
zJu2DmiwdK{feK*-WQIP(kRoI`=!^j-9=TzovW1)S!=#c;M{1>*4k${))n(hWznfPR
zb~5u0pNxk5H42StL~KN%QXCva6?Zg$Xu<I`v(~C_Ar}7%DoA-GP=|!Ji305lRAxYW
z8;F^LxJ}>7H#EJugSl(O?)U2u*mwdo)<3()7^YP*zzRH&SJJ0 at sCjs*%-T%u1O-s%
zIGK_4xXBx)1+cClq$8dKw9L`kA0d=uo7eQbLuV^+ElyNnYWyxZr2?OSzlPEWU{y>_
z#Eed#g`J?kc;hylOlk%u%<lqv7o0>gEGa7vK#%9<=b+au<+(wayFIc at QsK@O;FXOX
zZ3Qp_56%n|#O^P9>2og#(*J*gz<Si=QHXj(Z|pQd$6`D5MJ)RhFFzkDS0aEaNzG9V
zJN-8+Ab?8}PTcokR`iall>);zG#YAd_{Ai-5g1a8sezBGOyO5EMZ-maTP?I3XE|?|
z*WBRGzA`c at w5^4}bTGTr4(9-PIhv4o-&%n@@;iY^Zyy|W at K#k-q|rwk$Kgv*r<vlj
zH8?Wv!Js75f)B#{$1d!l*T6Y!vTX20`i1<eGK%ckIA}gF&7A%J=7G|?hmWLTQ-+hg
zop at KY46Jzm#r at xaUx(9e(Z#6ud;pA!tBYqD6^#?Yd=Wx(DX*h>)!8F&XvXxhvWgfS
z4^qy6nz-4QnQmq>YRbOg2dAyIda0e}CU?E!Sy1oox1YQT_PrXvH{qV%oUy(>te4+*
z4J$3kiMpApJvWR{$=DSP#MHux<pz~L7>(xjf?uoSImzrVd`?s`NPqAtQ<h!Uq_>&4
ziEU{Y*AC`(y5)=*eQEym9C<7u+|c++;#d?eG8xXR>8P7<S95xcTZ#o+79C0O88WG&
zXGC6|<Zs8NN*{Jst%;G_?KkZ?Jgr2OPu(SM7siFI4xXCJ0-fuCGh!%i;!IvJ_ZYq_
zRPv+lkvdcj29<CYl1&vizb8>~Xg=UXp+N3)*YuCL7Gr$wxn~#AlP=>sLLvG9miXbi
zoy_D)R5F=WMoa0V*;q^~zpy~iRN~mBIj=|%C%m at gY%dMsWUe~+t_$eQfpyq*rExPd
zVcbv at P-a2AQXUH1(lR<OuPOt0(#KSv0B$;<0P_ at T{>c2e$!SP<Vi8or&fJWU)_BXP
z4y<~0pre8`;`nH-vE&w}9nhS1jc5Jm*U-G8{`Y{YCc54Pcewc}b*T8tKft+7#&?CZ
zF7h4+n{3uwm3M7UAt0*9N+32|j`gBI;0xUi23MelAK-~yHGmZHFa>-NHDs5;Z%2u~
z7 at m8I5H9xxHEjvjOC4|V!+1l5bbPm-{{`?PsMx3|T<&~qtz8a)8RK<}wCBopTk0N`
z at aL<^%(c*u;YT<PKH=<5N5IG5a*!~K)b5|L;@LU~e+-dZ#v5Pt>0U=kPot@!<&}ST
zg|Yu)(G6%HqyF5p^-rA%tC5)bc6>-T%9f0|qar6&{u|cANlN24{TU&7_3XrPPm+}p
z$3%=ul24tg_8Jk5pk`#rg*iBi8PNPinXHNO2nR(a4pdQYVXlRmkmX~RDxc`}jV$4J
zb8#DZrnepiUwVaP(trTpws(l}GIaLQusfkP?Vfi;nLX1)|5Y$whbg)&L}ee=otGk&
z_1oQ<oc`x;%l74!6}Rpz@;pJ|$uC;VlLfJXVz%el6pxe(z-*7IzxcE0UxjI at JNf+-
z;J^zHnrE2+4qVCf0r%M=z=8Ao*X&TpFJ+vYopX#FszF7RB?WI5-PB<U0dklV*P3u{
z$<<$N=*CB`qhAmoBgSx(WV{YhG`<ThhYLL*7(0R4bWoG;KF#)2<2z<lJ-BRtVxL at 8
zR9B_4Qn;g4iy_Uw&(5jT-g#eFxwoT{jg%n(#G%7%`{BzKdG*9W5V{dQ+i0^M#an%e
zPhbEy)#^@<5Q at OM5Om+UESz0ncRfykzl0(vb3%to<{`Yo*M|U1n}aIx<q-m=sN59(
z50 at K;IiOT;SK;WECKEfcH;1;ia3_8hug_sL+z|XXezX9ZAJ%6#qBnH&i|s{yAZJzZ
z0_YcQ=pR_0bC4%cxkPW$Z4J(ei*~m4EThc2anD%);hWu-W!%7VpIC<#8h*M~<0V&s
zFxxe5#CwP^%Y}>JQv7=p+n2Ff_S(*6YF(C8LH%&!6e(u%uz#paoJUo+;RQ;wD!56g
zDjWc!@P|ouL5L8E7QoH<;#Bp0XSHcwQ(bFNQ$c436n|Wt1!;lwKAp%B$71sh3YYD@
zYb}-9xD0r{MpIr)m5F-eWNaVy9|fnV#`zlTnE83;t`}s at oRYhCVokO^aY01O;BCWc
zXs%>9x#06NIL!v{5w?#s^4LJdTc3iT3Pi_u at lPhJFOQQbAgKrY`Q<As0=&_ at A}}yo
zW0Axr!milZ<D8*8w!Nw_N$6o<W7tM>r8-t4<SHtuE3&6^?5!q}+xR_$OR!$|0VCnW
z+l%HhF~#X`wK}N+tD|4UI$n&WY-SehU=|j}7E&Ji1^|ty)4&w({n{AS!4h9LO3M|~
zNikK!$=Q&=j}YE$N(cr2hCA8Gf#LYl*x2qD8}4L2>2c{vTmrJn4;+c{m&hVquAwPc
zpE_&y%sPfs{O48T8pEF*P`usWDV(W0_|>nBplrY<C`#er0g(myQEj}z@?o`TD;scA
zMd~=s)4^OttcqxZU>0jhQQdxgLrmb47j4nC{?9U;Y9<_YD1jZYS~$&Nfi- at UDrYI>
zspoyVtM=2|z$FF#XCp$mqxL6*&+7x<L~rn)Hpz<85$dkH3iaJrt|zT2ufCedwwHV@
z?Y9`)x7_rpjE=3H2G;9u)o4YEcG at 0!+d*DSa);M(iiE$}J6Cgpi?6+-srrmQ#Jmi!
zCIpUs9LN5GjYZnJY=aXLL5c=Bh~W_M>pGwkvU~t at LW;xCD^60n&0No`yEB~g40023
zL!ppbCXz`FcU1Q8OrW-|S1<|mR8(>fyyP}IeN@$-n7NyI=FH^i=p|W8D{4}te-b_Q
zJsbebh2+ at R0kesEewKa=%D;+8-J at q9$RxG1UKhy1N9BUcK)*$*dBp_6*<azZhR#{O
zQ>;+w!TNIa?E4<-a=|Gf+-6?h#xM84th_wxS4!Q-*J_ZNy`U8h=|2 at _UVZgFs5AgO
zSLqzy=v&m4Y7xo$@a at AQS6|)#YE#Ox*OX5!Jx{V+PY+TwOqU|Ms$Y&3*V{7V($^9N
z92t at RRk+5l&kSXOG@`!FyhJ~cKsHXNAP%+NaP03L6{a at 3|5(f4P*rY<7sg&rJWRna
zaPQp?bT%DWtjVjswKyZ$eRY!g1a2Z62<GfQU-8@}rPREV*Cs&GQ8nGPjhPb}WA_3Z
z9l|}M&+)OgQa~bS{}^LB3{$tSt5uP{;L_1_Fj6iffIpW}8YgY#EPd0(Tp&4zIM(y6
zd2BU_qqU;h^-PX%lk<5BDWXw*V!EtazU<>_nx1Xk%<zTER^R&W;zQ4Hyh`7xoJ#`9
zf%-=cI-EzsKe#smb8+nfc|)s6?7_QeOUOM&i3!(4klk~h6p4SXT(~pR*;$bY2O%W}
zcBJAw7-fN;2|yj^U70h1Ar*gDi{VDg=<p8|BTZmbcQB>P*wx)SZ2L6tz9yV<1F80M
z1q>EHs?rvFT%&zBSyU at KBmV%LI~~rw09zm_Q|?$5>vDyJ*0b2y9iv{Hd*CV6mt2N3
z#gaB?WslY$>$TCLB#!d at +$i{(@wGFX69c#==RP-gevq|*L!Fuj=&{Em_>9?LkN^T|
zoR`Y;eU33*k#<g&85q%aEX({m#(PUn at 8HTo>6!1-rTc at M&rn*1&dEs)M75!f;>!ho
z5<+=<F7U$kXg*AqD;t8ZIU#M*JhtHoEgQItqJ at 6gEntLf0zUr$c<Lz8)hq`5Gb4rk
z{`_2v8Fh{)E>~yvd?f%UwR;4*G{)_=^qaalmZAR1HZT6GtG}rB43u9I$0Fc_K+9aq
zeO;`9MD^fx<4?T<)FKX<Mwv>;%8S?BG_{nRQon;JeniHz4E=P9`p=~v$Zq<&gJ0(X
zrx>|>_EGjv3d4Y*TIjhKxgwxOO(^8SVfFTTekG&i^r+5DXX<ix4pv#ITiR%Br5}iK
zuoA-;A~w6PuvrFY_}D|#lBLvl_gx3FYG8ZS{L3F#BUBnHKbkJ2zw5h;RTDMUZ~vVX
z#dUd30mfZL_9Ke1=6a>}>Nho19Kw&^&5bqBbV+#;d;tikfvC_d^K1_s&{Q&AT6~OG
z>(|qI%<cFq;)EG2@?6dPtFi0qfPkcf?>F%qOIuWJaE6VoJ7x8V#u~)S6|G%uv}H1{
zRn52UBqcFi3;d8twZRj7e=H_y&QF?52<K7_KCfjTolqv3Wj+bbOf`2+lZ^O-ePzf5
zRu7~wyj9u6W2}Bvn!GOG^&*aSL>yP$QmRi)>XS<1yzJS`ls>FB8pt)pU{~WN{TxCl
z&_wY4Rl^;>jDqax((doSUiL9sJ^Z-t$Tm@|K6yy~4sy+s%=N%Y3!k(7;B+E|uzsD-
z2Oq&Y_{gvw`lfX2N}O;k8|c4AuqKQs?;5g^w^`|Ei<6O!HmhIvJBC(YR?tmIDM)Rf
z;3=l0^Z9S!2!jxR%-!<14p`Ah0g!B8a-t`~fp`TD_PksH)Phxr$OG2rWPNzGPB2k$
z5aVA1`Eb>ViIb5W6Yp&`5}sia-2^faj!k&hyQkFnr*32DK5_L>{$BfBO{{GwvpH~M
z>oEl|yuAjDY>Mji?^~&@@%Psd+Z56n8!1|&boP?)4k-{f;@Cg1jwVKs>y`L`+w9<7
z6Btq}c&Pd52pnJG8Ftj_2y(uR)t-|qT}c@^Pn`8x_V2PbCa<{9vj5^F_&7R&8`ae3
zTW^Lm8M5=QVKitBd4=Mh|HKAubkjOd!D~G$>OWxSnr7~Leml+5PC7zvw0OPo?Er4n
z|MewW0g!jZPJ7E8ir5#E64`wD-TC9v>4MndiK|2JUr#6~#tgkM=TR>)EWajx<uHX}
zc=s at 3V*VyBPZpRlEPXlQiW=UuhwXPT-rDGRIK0+#T6`7GBw0XUvDR_5L+4ZL4pC^u
z$o(xt4qBAOVbAJG*Y()^oycn?x&i<{F!sQ(LQ3;9rFf(8wFBi at zAZyuJu;A1OlZ-f
z#Fj?l8OYlh-HMZD*0t>e at +9T`V;2%tZOt6ol5Sc8jeb$TKMN=g%iZiWI<}XUnKim=
z+1Y+B at AZFR<Cx#pY*YyQ#I``)iH}0P<*n;IRSnF1gu6RCo at VrwbXdJ3T|IzR*>o}6
zfFf;4Az3~w>W?ms<H0%;Fd*vf3!VnD&N2)fJ$H!W{SuDg$hs`s>Qh^`?^cwtE>AA6
z<|uouEZZkZy at f7K4NtyL5Tf^Z>E_+0H$+Y;E00s*h-``2<D- at V8XB>pS!MYaUoPV!
ztt1J!0S7z#<ksz_$xb?$M{<hcjx=kqu5JJKUyyimZ!h}bTm9KQ`fjy}AIm;{UD}CG
zi3$b!{TI{kE}T0~*m6U<g+sOJOI at V|;A5_F`0*A6J21)04g}{rG=DOk=11OVc-|IJ
zhr>N~|AOWR+>Jf-l(me89G3m?>vP~A2YQdGsZ>gsWwzqShc3f$mo6a)D={X5J2|U&
z8&*7WBK7j_eMzzm3J(c-MjT6-mj;FEE;9~a$~a#tk?#Qd{|+?3g- at 6QEw__q<_u%~
z`rsT>BZj{V+umu#;7U&l&vmK+d>gAMu&6=V!43O@=iClUuvgWC`|h7t#)UiD1w1Ri
zs(wqk!7<~iKys%t^URhqUo&u3BnoBfPb%Un9O9K-yd>vb;)j?Cem_?g_g6YRE<Vso
zrx%e?93HCa{1#X-)Ng=;;x+3c>FpPKmN?ckYrNWf<=upOb-qyw>k6 at x+(H;wmeFh7
z!Fe%N?dt8@=kO3emN9=;GWbWH{ZBuUza<~0h$Z|_mk=I}{Oqx+SpswZB8KN7Zwc0e
z>IHnHz8{Pse8tyD5Ci~D=W1YIz*`H*@_WWN!l3LB=_^ZY3T*hg5!TV*^8V<Rn#xvY
zsx~t2n}?0owyfnpNpSqZFV~9Sy8r5`O-5s8&KB~TMr%IJ6JJ!yXYg2L{|}~B<iJ{i
z$i&(ESuZzP3p7MMvviyD1Ti?wWZV*=zvmnxVCtB2*aWce2XT|U>}X+ at RQCO^Z91YY
z1>LL%IWI7Eqp8_4c{nd)INr*`4!cJC?I^e at uMz<EmNk}*QFT%&%gun3S&V_V at p{Xo
z*8*^XOchlf>HVXWiOiC^72{P}?sikU?2Iq%dJCHBP12GA2Qt#hBd+F3d2RTK^=_q|
zS4tmjBP%~CoVKbFXTX`Fa7^>XMi08Zq%>jg{blEfBBakkvghKHB-r<DU5HA22k=>O
zkZi;z^6Sw};6`oOmI^8&aqFI)c2yO^gxx!fPs=_cDBQ0;ks<?_g-?<5;EBp`B$y<v
zd|0FU%(gRuz4t<&F_Kxhx{aef)5&8R8a&VY54JhLF~!$>9ooAbEQf2?;%7cM+RR7E
zxW!Mm8{(CBUY8D6^$&eEoE;+WUSp*WTd+*|Fc37;J4&h^E;Cge<z=7B-VgNIyC^Xs
zT&eFE4X>6%;kq at K;ZT%Btn>Ya&Vk&{gLeuGHKG$m`@iYspVW=^odU|0do?XGL=B0Q
zjR5Q?x3`NcS~}=_aQ9~v3yt4aGoMk{KrX>CeOzon at WmRvM*|bG4xU-vVo?{^_lx_B
zZTG>He5>Eo)6{GjBX_UyL*T{NPFtjz^zKc)29CE~b(hnugamLse~%?Z+-izAIG%JJ
zv*2MMxB0KL68^f!iEY>X^|7MZ&6SL$a7^{y$vY7X&tA*$2rZbb>(5%;&Y{*BwD?@s
zS at l70Z~tHBs!wXfY9s-H^6tZm{Q at 03`{zLwnF<px*Z3XrPuqTM{A+=I%6ze4E}nW%
z#Y7=|sPpwdg=Y9c%qFdkAgCadWfxv6AS_P4W21}!Tw8_(M>l`6BG6^gHJDTQ?ciB}
ze%SWR>j3r`@T(hZ7x1rHB#`-PaU>o_3?pEFX_Y()O}>D==cV1^i+uioNd}J at FeX4U
z1ONE`I{#Ai38V`Cp at +dg$ho5b{P!yWi-G?AKOTH=%gkaP?{kCeU9Tc^>G7kd)KU)r
Hb>sg4F(8Xc

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded
new file mode 100644
index 000000000000000..d324537a90cd234
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded
@@ -0,0 +1,2247 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "loc": {
+        "x": 190,
+        "y": 25
+      },
+      "name": "63",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 63",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 175
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 165
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 240,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 330
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 67",
+      "size": {
+        "h": 75,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 610,
+        "y": 15
+      },
+      "name": "Source Code pt. 1",
+      "size": {
+        "h": 145,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "loc": {
+        "x": 295,
+        "y": 65
+      },
+      "name": "23",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 470,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 335,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 25",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 335,
+        "y": 175
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 72",
+      "size": {
+        "h": 45,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 335,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 130,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 335,
+        "y": 320
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 28",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 820,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 53",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 820,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 54",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 610,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 31",
+      "size": {
+        "h": 60,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 610,
+        "y": 470
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 33",
+      "size": {
+        "h": 60,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 425
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 55",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 490
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 56",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 555
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 58",
+      "size": {
+        "h": 45,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 295,
+        "y": 555
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 43",
+      "size": {
+        "h": 45,
+        "w": 235
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 530,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 47",
+      "size": {
+        "h": 160,
+        "w": 270
+      }
+    },
+    {
+      "attributes": "template <>\ntemplate <class V>\nstruct Outer<int>::Inner<V*> {\n  int t;\n  V *u;\n};\n\nOuter<int>::Inner<float*> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 785,
+        "y": 15
+      },
+      "name": "Source Code pt. 2",
+      "size": {
+        "h": 145,
+        "w": 175
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 32": {"syntax": "\"int\""},
+    "BuiltinType 36": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 86": {"syntax": "\"void\""},
+    "CXXConstructExpr 60": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 56"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 37": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 38"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 75"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 39"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 37"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 37"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 39": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float *> &)",
+        "ptr": "FunctionProtoType 76"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 44"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 40"},
+      "RD::First": {"ptr": "CXXConstructorDecl 39"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 39"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 44": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float *> &&)",
+        "ptr": "FunctionProtoType 78"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 45"},
+      "RD::First": {"ptr": "CXXConstructorDecl 44"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 44"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pmspec.cc:5:14, line:8:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 66"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 65"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 69"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 24": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 25"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 24"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 24"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 25"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 30": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 31"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 30"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 30"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 52": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 53"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 52"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 52"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 80"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 61": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 62": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 63"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pmspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pmspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pmspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 67"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pmspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pmspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pmspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 25": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 72"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 26"},
+      "RD::First": {"ptr": "ClassTemplateDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 25"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pmspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pmspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pmspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 28"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 63": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 83"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 67": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 84"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 72": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "associated decl": {"ptr": "ClassTemplateDecl 25"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplatePartialSpecializationDecl 47": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pmspec.cc:12:30, line:15:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 81"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-pmspec.cc:10:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-pmspec.cc:12:20, col:28>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 52"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 54"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "VarDecl 55"},
+      "ODRHash": "9958786",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 48"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 25"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pmspec.cc:11:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pmspec.cc:11:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pmspec.cc:11:1",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 82"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 80"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 25"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-ct-pmspec.cc:12:8, col:18>",
+      "q->TemplParamLists[0]": "\"template <>\"",
+      "specdThisLevel": 0
+    },
+    "ClassTemplateSpecializationDecl 23": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pmspec.cc:5:14, line:8:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 71"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 24"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 25"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "52499103",
+      "PointOfInstantiation": "in/src/ct-cont-ct-pmspec.cc:12:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 29": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pmspec.cc:12:30, line:15:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 74"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 30"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 44"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "15998492",
+      "PointOfInstantiation": "in/src/ct-cont-ct-pmspec.cc:17:27",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.SPS->PartialSpecialization": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "ST.SPS->TemplateArgs": "\"<float>\"",
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float *>\"",
+      "TemplateArgs[0].IsDefaulted": "0",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 38": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 66": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 71": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 74": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "DefinitionData 81": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 42": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "ElaboratedType 56": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float *>",
+        "ptr": "TemplateSpecializationType 58"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "syntax": "\"Outer<int>::Inner<float *>\""
+    },
+    "FieldDecl 31": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:13:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 33"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-pmspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 33": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float *",
+        "ptr": "PointerType 34"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:14:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 37"},
+      "TInfo": "Pointer(\"float *\", <in/src/ct-cont-ct-pmspec.cc:14:3, col:5>, SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-pmspec.cc:14:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 53": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:13:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 54"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ct-pmspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 54": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "V *",
+        "ptr": "PointerType 50"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:14:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"V *\", <in/src/ct-cont-ct-pmspec.cc:14:3, col:5>, TemplateTypeParm(\"V\", <in/src/ct-cont-ct-pmspec.cc:14:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 75": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 86"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 76": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float *> &)",
+        "ptr": "FunctionProtoType 87"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 86"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 41"
+      },
+      "syntax": "\"void (const Inner<float *> &)\""
+    },
+    "FunctionProtoType 78": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float *> &&)",
+        "ptr": "FunctionProtoType 88"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 86"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 46"
+      },
+      "syntax": "\"void (Inner<float *> &&)\""
+    },
+    "FunctionProtoType 87": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 86"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 77"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float *> &)\""
+    },
+    "FunctionProtoType 88": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 86"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 79"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float *> &&)\""
+    },
+    "InjectedClassNameType 65": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 83"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 69": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 84"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 73": {
+      "Decl": {"ptr": "CXXRecordDecl 28"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 85"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 80": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 89"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "LValueReferenceType 41": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 77"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float *>",
+        "ptr": "ElaboratedType 42"
+      },
+      "syntax": "\"const Inner<float *> &\""
+    },
+    "LValueReferenceType 77": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float *> &\""
+    },
+    "ParmVarDecl 40": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 39"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 41"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LDC": {"ptr": "CXXConstructorDecl 39"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 45": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 44"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 46"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "LDC": {"ptr": "CXXConstructorDecl 44"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:12:20",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 34": {
+      "Canon": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 35"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 50": {
+      "Canon": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 82"
+      },
+      "PointeeType": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "syntax": "\"V *\""
+    },
+    "PointerType 59": {
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "BuiltinType 36"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 82": {
+      "PointeeType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "syntax": "\"type-parameter-0-0 *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 46": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 79"
+      },
+      "PointeeType": {
+        "preview": "Inner<float *>",
+        "ptr": "ElaboratedType 42"
+      },
+      "syntax": "\"Inner<float *> &&\""
+    },
+    "RValueReferenceType 79": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float *> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 62"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 43": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "syntax": "\"struct Outer<int>::Inner<float *>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 61"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 70": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "SubstTemplateTypeParmType 35": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 36"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 36"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 51": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 57": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 70"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 58": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"float *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float *",
+        "ptr": "PointerType 59"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 43"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "TemplateSpecializationType 83": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 84": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 85": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 92"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 92"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 89": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 93"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 82"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 93"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 90": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 91": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 92": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 92"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 93": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 82"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 93"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 26": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 28"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 48": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 47"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:11:17",
+      "LocStart": "in/src/ct-cont-ct-pmspec.cc:11:11",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 68"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 27": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 26"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 49": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 64"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 48"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 64": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 68": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 55"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 55": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 56"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 60"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pmspec.cc:17:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pmspec.cc:17:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float *>\", <in/src/ct-cont-ct-pmspec.cc:17:1, col:25>, TemplateSpecialization(\"Inner<float *>\", <in/src/ct-cont-ct-pmspec.cc:17:13, col:25>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "explicitMemberSpec",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "PartialSpecializations"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-pmspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "CTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 250,
+        "y": 210
+      }],
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 150,
+        "y": 5
+      }],
+      "end": {"entityRef": 0},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 200,
+        "y": 150
+      }],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 970,
+          "y": 185
+        },
+        {
+          "x": 580,
+          "y": 395
+        }
+      ],
+      "end": {"entityRef": 12},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "TdD",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "DeclType",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "NamedType",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "Canon",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "decl",
+      "start": {"entityRef": 21}
+    },
+    {
+      "controlPts": [{
+        "x": 545,
+        "y": 190
+      }],
+      "end": {"entityRef": 22},
+      "label": "PartialSpecializations[0]",
+      "labelSegmentNumber": 1,
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "ST.SPS->PartialSpecialization",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "ST.CTD",
+      "start": {"entityRef": 22}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 615,
+    "w": 987
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pmspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..670f1e32af37d695a978bf8f9dd5e8ee2500899e
GIT binary patch
literal 34570
zcmY(p2Ut^2us%%h2#6>}x}bFF(nTSN4Ur}#fC336fYKp!RHPe<NN*}ijg(L#UFi^!
zmJo_cFCo%Ghwp^nz4!loc@#8f&+hEb%scPQY|NvF2CPiHOcWFptcG{=9#c?I<0&Yp
zpbT`tH_ at b<5DE&Oq9D^JKDRyH-JLvqC at 2E53E(&rJgDx}LMc;Y=569_8C;cPT?b3V
zPX*!MajeJdFIhxkPe;0wrFz&i7s6Vgg2_ABH1jGLgVV$nAwtFAmj7ULOOMG+ at Qo_|
z)sbxLO`+{{^LwbtpXc1A-qPna_dvK0NCOIbExo7JidzFeroO1wg8T(cYqDLCY+{kB
z7VBw!!CF^5=gkYh=;ULu2fPAklRd2S(}$0?z~+d8MQn<}9*N<u)%y3y*Oxs-*qVFn
z<|7Jg9Rt3&&RAE)S>E{-5WGis7p at v+mGZA{^!7EM-|uy=qZXLESjum^{k?PdQY;;5
z=A!HVLxJrHnSDy_pQFuTp30K1FYnw%E9{>h6C0E_jwFP^&=ijv`Q;em4qolWj(VX8
zFUz at a`;*>cHe#n*wM}Y<E~bxzsAJcwKYpD5px=VK7t9&g*a#X~U(na{#V^;4a}C`c
z;!*KQcvE6Gb=CaTY_y at Ie38GzYKdP${FWr`@;Kx9Sfy#S7d6EX!)rOZ9CinO^LHPk
zMt%qc-R<K?SInP!&4- at SR(rc?3`Q&lXxE&Cy_*eSlMsM24P_?(elaI=93#e0q47&(
zGA&i<IQ-5_%8;n;5f_>#2Fz~HvJ#K$cqVf1)gao==?hN^$rMi+5jf8$uNN~#q_slP
z2MhdF!vzX!6$C_b30LG8XxWp($3bsMagZBV_0`b&Q?O5IG)|$k_vQJI!w-43K)B`4
zX#<i8adh;TN`EyEl at XIP_ymdyC4{*p2OK4tDN~|p^L?>H<<_IcxsNGwNW4 at _C#_U(
zM4-Nvwv72j*TFZ-FLR-0Hezt&tE(*?J+rDj7hG(I%Cn!?WNOP>CGhBuJe<|LYEri`
z8;RRkBbCOUHaScOXn#+Ua5ecAgo)uV_o^63Onj+4EAd3*Iv7)X^;62M{M~D%iiU;a
zkdmwiS42PYChZx1O8nNN at b*!U58D?LRi;l0Sq00{`5K_e;Q=3tGzO9F_Ce0==&Fzp
zefN!4Eby$mbkvj92Roa^TED6zqaW`vA1psUa501%TX-~gmd|Dgk5s)1vTQ6!BULHH
zxRj*tG>GBXbLQ~{%g<U*wliuJe+Y_EJ8>QyZ_P{-YOMbWCTksIHM+8c5s2@}A5)tr
z3d7Dj=^7_B6uvb^E#>JMU*_F%8uf at fF-+C^3iU7e?(uEdO`>G%SIU*V{ZASWO4AXq
z3%<R(k`b$EZBC?Qb-hRYSYIuzD#zIEk`{WkV|uBtXnW9dA?8ugUFNC_LV89Q1Z9t3
zb)1hrH(AhbsQwz2W$|W0*~*IV#OQ)%-KTxxZQ&2BVrB{nnmF~}YOd(16*0H#%vH<$
zueRR0a}i_ at Qm$oEFgrFd?i!$uJzO*j9<W=v6kTmA;>-Lkwwb2cpm;3B)0`qX)|1-U
zOlM(g8fE-=;KHlO_{UB6CDsP^y{tZAf3dD*xIGZlrUapu;h5ayXFm_s{#~PMI&J*-
zQDEWZr`3}iJW+p(bK at vTEce!;2oDj0!S&i(#VEIfq<^l#i7V2<tJ5ffpVlf0hB^e@
zKl)3G)Y|OcE|K72Ih)XWf!tYoO9iduO&_1_p<~9IZ0)$?p`B-e)IGw%e{)nrzF+ub
zq<a<qM`lVw;o=tuWELD69pSV3UUB4IztmTFW42%`v8#grZ@#_o`xN}=TPGWPYyViL
zFAH38mLO_S2SyiPW%xMH|D2y0cb!M(#%ov7caXZS$@z_~H)~5xJ{;j{+17RMk`(47
zWEhTKzSR}gW=L8RPV>tJ9|&kT+->Og`@p}w%h$70R>|qc(dnvX)yVn1|L5*4HaGL}
z>jq=x4L<E`VeFl)D(ev&UucFHaNptnL5bmM-)g7wsKYk5t^{jPCeO6D#064RP2}9C
zi&cMwsGljCZZD_*IFLnwb76iQpu-@){I!1S<7__0z)?R)ubn9o+~p at DaX{%dJ4V-Y
z>~YJ#<6Hqe0>{9?*VTrtBkEfJ<8-29CUL7VmMj!Ci2M?c>SQxAFr-%#e{o*F^GUZ9
zb(<_zS<<aLYBc*gUp&mNiW_NOr8r#Z7rA)pZUmP|5vN6G%wmY8?CVk$YlRFo>d$Tc
zU}0~KA6lBOuNeRGR3t2GX=u_vm^40(^y$wwNh4B}{t+$QIC_4)HAv3G$be8#b^E$Q
zM4_m(@df*H6%t1Y%XLN(EgMVRS_M=(Tf-uDj87pEtx=3uqQ;aI+CGmBW_=UL*R;P*
z`qRxzX+m)iJghq}8WrKybrZ$-E}DJ2dv`&wd_Q5{K=6;!L#B^k^kFYz*+SswNY=Mr
zYzOIcY=(75M6Bgl4>OkW?yxs=S#U0hlw8+;Wbk2+QbIZC+-5d>_ at hIPR`^Fce^TVL
zzpqx?QY7S#wrM+z^m_Xe)w15mbDCP+y~_S8Z2AIi)^r at R%673RM(28t={5qXBy(rN
zcJ?Ra at 1r_v_Gs-|ol41$;XtK}<L(ASAR&dFAEG9w$_h;&@rZ63^F!VY6~2rr`7bxF
z at l@(AD_<LBzRSUp=I~ZrAnHykXRPjrB{!C!1l<hoRNMJ<MjhF&9G4Xmsg*7-K5?e)
zFHaDmQDKbzO$-iah>xNX*`NN%n(A at y)@SAGbWFE?Mr{apEf=Mg%?uAg*Rni*+f#xm
zgg;z}SaH0}5ho}``P+iSEgIrn(fmGCcIUb0E6NF;h`)Qr;U68mNo at NO_t$e6USt?(
zE|mOKW`D%T{UMvdFY1<}y&BcXS0qDZ(!#AEWQT at f+D#^Ht5-QUjWs82SoJkPX#9AM
zia&#d`%lf_{`6SEN4If;q4nC=!Ef>GFX3ys){1%>pQVkRS+rFPnZ<ZcDA|&N`=}%u
z*_EK5)vq1Afk?(9b~jwJkFokiBz9|r2jctlyT3aAP#)i?^%yc4`IT|naxa|4 at fq6j
z*UN}Y8{b=F)LJq!uN~#dNYBuKU$BdJ?xhBbF>ht3G0)ZC;%{{_{Sxazr_&(Ysv5to
z79N+<O5qeydo$kYWmb36tA8>NRrUj&!Q2iTxZpvQ_%o+r^ke(K!X6Lu6<&t-UZau}
zP7Tt}zp5u>R*tY!ex(!g;s|&1WV>TFPW#csUy33&^?_Z%9goWKF%6Lbs(0eyS8GPp
z10D;v35&{I`uOix*aGku_3!cZAS^|zDR0K|H!KYFW-I;u%xA0PBhWmX>HNL&teNi}
z77{wvj1h5<8g{bfO~o$uuMier8pX6@*pj^XD+nJozCT&LHOBUiLW|?dvAqQ1(WQG+
zuuJ!@)Bn=IFggTG?_8EI9uC!3dvt1-MeQDJ`_Sj%S7}zsSJ at -ejg3EtUE*%C$?ODI
z39d8!+a?u2Uz%dn_<ngs>ELxgwGTWxr3;tjY-R3{C^z9NRw^(Sbw4&Ps(l_Ce%=bZ
z=@(&c65h4viTA`CzI;|}*6B9>fW0h;$yH?UncPK`MoO?0@(AuGnKJdbSoB*XO*8Y#
z%iZw;wYc3YV%ElSRt>6^{2C0LX_mM5*97L;CS|&fQs^~CZPkQgwN4!`=`#-g>B4TF
zNLey)YH<j%mZ)W#(7g#rc<dVT*pzc4ZcLIxrJgzMhKT};{h!p!Z1UFe!*T3Mvw!eS
zMQMdUE3Y1|_j5dn7#9PZo6h^F2|7G9R%8kZkeyECF#CF9HK9GBm$jp|t at 7;QXTy=d
z+i#=Mj*zIhi~8&)>&InJJ!~6AR)T}dd5R%NiE0ux(>DxuUNGqzJZ>l*R7+vIl{g~z
z{6kzV{}+18dz^_Qq8X1<5=T0yAJ8W1eQH9 at -zh;=h%UR{cF16Dc!zyHYqjA%D?85V
zr)I|KtM+(vbiTf$B+Vv~-enYgJ>%T1E#n#cnJ%mRDON~Qfn&)1HcNRrKPr{F_{2~9
zyAF*A8mE3A)}}6Nmx7xM4|)%NWOMZfaNhr at RC{+U?JvzhVQGT}bEQ*FbJLT91FK&c
z)|^X*Er*W3jJ|yl84U%0Sy>@{D2cg~hQ83yn7aSYX6%(^pV$ExIP!OM{w9+I)ZY*B
zc((|w<@L?7a7ceYR(+{vxg=O$v~ROc9xiz$Gg9|^e`7H9ZuyL0%ao`kJ+y0VL$W>u
zDIh3xmyu<q_60rbIIZU$iI)=T{F$huAc<p|widB8iJP>v_cfvUyl@#t&#nj}#naE}
zj~hqB<9oj<enZ(%vbe3^ypz+u_ramKY=EABY$58`2Za}UcCL47XU18kmU`NkA(x7E
zZe#p9s_|<9&@uJCs$U9gQif*tN}1QAxD)(ejoE+D(K`;+Jb0cn!GW4^>>S9K8z0Q)
z`dIKsaOBbOtj_0wNMY|Gg4i}(iK9LlM?J5X98+cAf$o`o!Qkw8Pj5ohL>5;!TirL+
z=M&U+5RmO^9~M3*xOkDfIoIQ{{h`CrXYL at dH<b{H*DYwlByT!UbRl_pg)2Q+Nn`70
z@~KGk8>=5D0ng~4&ZYd5&CM1T at JUlISiAeKAE{Kqd!<aWQ@}-GONM1e;+yb#gw^{*
z;@a=;jdiV)6FAev96B?*&9T;Vy{ztu(hKIAGQ);eAj&+C8=qvsnYg!R1xNj#8njZr
zcV at lM2z;k;Rk;>VlyX-x?J(5uy=*9?@rT5E_t*JQEkw-1rsK<a>*py5=aAc0BBLEI
zPJ{>8KK1{Ow})AO#rj!9A3F`!+emFUmzfRE%ljl8JMBdJ9kuo9YE($@)>sZhM(J#D
z)RNW=v6!bc4&~f9uqY_GHY!rSYCY)1`WKN^{r-XNJ#=l*(SH6H=i}xfLaB1pC+$Z&
znZ_oLCFyoX*Ig4|7uCW0g(Dh8D{BUV%R2h*7}mf&p5Czf(^&rKeoNOHqucT8j*U30
z&bXra=ilSfoyKsm5!<-Lf!$UqV^e{7Md%B*=0DLdUx&=73ifcUIS$OMw0gNFec1`k
zOT{?$*quD#|9mvaQuh6;_rC<VQ0zl)edrM7ym-B$I`K`mGe}Kz<-37Rh-U0yy`<Cw
zquUM^k{$tRRTt(TaUUiLUFOIa(!BXnqA;iMp~&1xlz?DBT-RE4(sa`g$vVM&>V?JM
zIWNBUi$3pMnpDx&b=iRBRSeH-R>i37?<nlU4_?;BwQlO0`e(>j-_t;PUXF8dR}wtB
zLc~Ctl@&MsSl#ZbnNoztR;zbUE|n2qghx9(2n%|q9n{CJLzVR?b<#Wk0J|&G)kuHo
z?u*L?+24 at H&#iNY)30^Q-uyfFOEqT}&&em${#~&{X%Lc1$JkC3H{%fyq8 at NiGb^P!
z4;i)k!p&`G_Eu*x;--Zy6+6Q`uJY$UCf3TIk0^N?b(oY!c3(G!{|ci`4WrFBrA`*M
z^}Ju<AZj#dv$!EtctNM(IbpAV(WUAd{j1*(DA}9Xw+mqBk0F_-9p{L#5xoH~)b3jf
zZgK_MBA~O~CQQ<gxZW4Pjg0PjUIf+V_`w#T$?#BNx6F5=m8m(U at ++lI;~od=WJ+}r
zM at VsT(dcziUgqqDbk at p^febF&`mmu0{SV*gS$O0nb?GZJ_wGKUkOaSq*O(_F at t<JT
zaZmQV7J|#{5h#de%-j9Zm{yZT=jXe(Gg35SDVMZeMieqvzQC96LN3b5P5tG0u^_|B
zap at VlWJ$!j=3wmHkaU__oUEay_6>muv;0e5KT6N5&t3V*d$no=oPy_B at _NQAb3s%7
z)qTlF!jCD5KQ)y4-rc57**E+7F>2&XlErmJ-xP?s5`K7D+s$OvV``)^%J$dDJ2Rr-
zNQ#PqSd%x`a{lCcxI>lABkC<a8PCXoMlq|QCe9h6<WKX?*HXM+&3oS9^+D2pEd4E9
z3imK?aI#*>G8c?qX7iqM<E|<+-kUZJJhbEk^8|SGFO}Fkf3p;(&qz=ElN^zno^{)B
zEaXS)nA#Qe!|vvjI7To?E~T%k!tj%&^y<W2Ka6l78^k3R9IX6FcXxi|FEjD=%@zZ6
z>fcz-1^%2DCRg|9h<lQ*$t0=!#$T<2I?^(XuPIWxaK-gu-_(04l^y6y8-7iY#4s4$
zdENY4K3xKQ^ZP5m{8d^%p=Sh}iiCvcGS42rS{XUK|N7Paw12%#_ox|UtZ;^7NqV(e
zH&TVh-2{nT$yhm2M0Roe)vpJG$CFC~`ob|m#i at Ely60<oukgCl#h4{WC``oFHFJGU
zQ6 at x^7^1VgTRXSKDWm7a<4steP+s$p(@D%+Nat_bD_h~txaaHwF at 5kP;N?WWS?9Gl
z9UX4EF|U<`TQlBJB|E6}4@`DW+N!w)5Ak!(lb;30Az`55rj8ILuNBM&g_bDhQq#u^
zVmscTU-zap)jyBv=3K}NbdxX&UiFAc;tcu|_4e(mxP~hub<Z?se?5<n(#FLx;VUiv
z&=cH19=)^jb0xkX^~ydzH`$tQ>VW0IdfEb^7kd^IRr6Jx8y({!^OwgAH*L#CA*%l0
ztlS4(heaFK7 at jm^^Z4#PAFUVhR!R=m$V&d+kz*-Ys}kKCtFhB?#cshX at xsR`80tmO
zhblYnXT#47S#LwoU>jX-*FRS`|6W at tO&_qf-0U|o?q8f6+|GbW5 at 3ZCVnrmiJ7(UI
zCS}m?P6d#M?}{QYnYPj$kn{2!^2X;a%CFU1E66Op+pY?(R=GDfL8zMG%1ryxZoFO{
zB%z8MDtOO#5;3$a(>{umG`p~WU)ZP6QB<2ynjhE6CB?SQEF{T4BW_nX<ML3ky4{;u
zTm9?L3HGs?5FEW^8O3L&V!aRgZtUH?sx|0cAGKoq+Ryvip)X_CG*CRWP8_Ds)Fh at J
zKkRw)`qtcNQPr$K_quZmY`A0X&pww+^e3+<%7b&ge*Ml;c0cx!5*+a5WM*yns`T9N
zx?Y=l;|lX*vvN7(a?r4AIdazLBgE!oWM+?F_lL|`o66*pzF}`;-&1?H-?8+u<BE*8
zJhbUA@*>t$lPG3mLGrSLq%_+Iuu`jr|C{E3xnQjv`K}Ny<Hj`Qsf^3#vqo_G`Z?eW
ztM|>Ae8wn<lZ+96zr18!x{n<j=@hPa$yqk at HBZ>JQeXAF1C88LK3<@{3NI^67Lht9
zXlCjnHe{O7D+&6`6y%{~HP2{k%_mZ1VI2>RAM53M{KW$2e65%M_0EODRLSpHFXXct
z^9pv~drTa<WyRZXALtcY2|Si?4`UThc>T89hT-Kuxnq~@TV-AD(@~@R*BYgRAM&M|
zCl7}?Aog{x<9F>YebN}nsZBfYc}smsZR at ghfvn9ki{RFl<Y}@?^IDJOmj|xt!37n5
zaOyYk_K8=&az6OUp~}DogSHO{q!s6JY`tHC1>sZUtDPFW^7k6+FuvQGT54cC1**#W
z<`<gP&jC#1a&<7iTg)tyc+dq-y-Nmf9OD8wVlRVRsxpauNzuzRap|{i^7*mL#pn*d
zta+sussMosb1*S&h+_F;_KaOOZhJIH&o36f5j^Huj<yl5zo;{HqWCv@(%7UI<3y>W
zrAZ at mA4GHR<Ba1DX-|*aP~@(Att`jg`!rjf5tLi4t5 at m`1R)jorPW_#Zs=wN>M5P?
z8fg?8i at n7ECWo!5 at sb?=*}<(3g>O=tMn13AL$m^IykAI5bdhLg?*7qVP<3=wwQ|4B
zm3iJ;*L?{gS at L4w^O#HtYHoa$YqU?cu*X7GFCd5B#g9{+f5gVun$U>|#@N|=DTdk8
zE1e45hq)wsXDqK^_BgaZscg*CjsFo(@4aO{dr!;jAjr$IV)=%z`NGN^Y)fWRNHFKV
zz~T$k9f7VVo_ytBz%I_kdpF)z9p?*C2eH|D8M&wvr+SQBn3eE`HCa=hjf1!B+2j4A
zP>V+kS<F6?*mAAgRo>;%CZ4W@=--v9LI|P8jhJSks;fzn8pMd)P^G=^jrSGKfsFH$
zsQ4PbFbwOBW~fI6$C$qre!|Z-f8_oVkpzl9ukSlNF8XnJ<0W5Zv(m at PLW(TSc1>@j
z=B`3}A)oM`LE&u~&x32w^@rV;w+1!6bG at y!Jmb^Gp4vV6fwqj at x7p9;XPgI*S@|eS
zZe^OJ_LP;0i}`BY<dYp1ue~$%BF&S-#46Z`B2=d*k)toBk7IZ>YWc%wE%_Xl)$Q at 5
z0H;tGXUtT7hE{HmoqWO2>&M#(8^S^1r=Z=kl+`aooRjK8uzR2Ay%2Kx=J3Jif)tEb
zCfkI9D4c{|>GJgZ+Mgy|BnX|V7c^7p*n9P2Ts;vx6_akSb&3m|$hBl&$64-b^r7Mr
zQRcSzZ$hT3D!aY^DGTyOa9_;&<ni`{PWtVFuv;3znspxY5mbUy6b8H5#=5juY(L(u
zrCfPZJF4d{vL;!J at 0oCzuH$-0 at F-LnlPvY3w*cMR)Pi!Km$+$L=}LHa#BeG}Am&-e
zk0}ces$ZT6y7hQ|be*B+W7ik=E3S$!B1hl%B2sS6fB5<_bwsEsmihj<`<$CUL+G6l
zi-+TayGCI%f=RnZm2xwANoq9Qmpu+dtjq&0e!6zc^}`Mi<d^tb6gQUYPDw1^q${JI
z at eQRN-@7RV1yuj^6uVO%<`s$SmpgDWVYX5e-v(~giY)DEp0ZanrtSKgeOAXb(Uh)!
zTaox{v3#MLBiH1!A!Wrw_PLs0i?zvK=QO#0P|{b3q*UcoCg3PA?`kVRum;SAobvvw
z!gz*s9!tdwAB699SlCFdHrO&M2T%ErmsZ4>%H10%X`tck%E){ve$!ZZy|*tKr52 at m
zKS-zcHYR<k@=;o at yi`#ZZjSy=UQ;y3hkKvDYP_*wa^^oc4Wa%vcS at PWc62TF>(yrz
z6z(F1db*|o6NIS;Rogd`KQ7ytvU=w<<#LY+Sv>v)f0Haw-|fzv{D}5~&>ii?6w%PB
zcu-`Rkga6?US$|3$JxjD%SoTGkjUAmkr8#e+A`+7->pKtMwGdV^ww$d3Vw6;X;s0}
z;q}fwo-YZfZ0#o-qfjV?KWY-^e|i))uOix_g<mK7TRhLi<slq=YNv__bz^L(n6tMp
zwv%{nfPPDF;YF|KHVs_7mY257@<_C0Kp?s_q|Zajq*LP3nBWo=(tNgtb(`Nddd(9~
z>EoEy<kZ{D at V>Tkbk&X$cxbJ;G-3dVu}y>3j=R|Zl7Mgrh2g2O7E|4r(3xsEMe>>q
zF!Ju)Y4BPzE%H_1CLKi){LqZc<arLPIIvSI27GBJtP;C0<Y~~D$X8wd;+~#;79i*~
z8hn_p^e-p%1N>M}(e(@*L|<i-fxWUD6k0n4u12^`o^Rr_wN}*C<4oPDkV3NplNI8h
z9^OmPf6Iu9aXy+(3^i}4=vNsfi%5fNL(SgPtE{gx at bWN?sy!edg~u!REo5fcMHr{?
z_KCnN7vuwAWL|{32=EWHpRDBb0;C82FWEfPreb__0D&w(cUNffG{F2kPomrl_jZoM
zPG(Mj99=u5mPw at 5*_b$cxHO8?YLvxwGr|<3+#$#Zc`njxBTi9o#- at lxLQ`njEf^;j
zLWl3S&(da_)YJ1HdjRa2hdh`HI9B_tR+9OnoeT9PlAb%wkg?qlvuhK+1c5X`Sd_aJ
z1Mq@<)>0rc#1vJTx_iz(P=veD4~#bGTMI2~Qvsv}#J7iQP`sh~J9>J$wMzs{<5I-W
z*d_c7CaG6Yri18Z`GyW(F;#4fw&#NlKl?2%0xXMpNw{dLpFg*T?yo|Cj-0p4>w+!1
zR$Te*@wJDYZo7=*a#-;MYY~whjtByw&57noVZxS1_(!J9R+QU#Ei>xWZJV-9^REV<
zswbB1v7P)@_3C1=lTU^795g~K`G%_sayyk0hW2amA!skp_Z8V6+MOO;@=hndCaA8_
zf2n-GkK5TwNl}^N;LlF`?m`C(cOPH3sF=Fi6hMhD<DfwSr>TeyWkou6A<WwcVmEoK
z2@}T$z{+hZZZr|@NJ6s%DVq}i!~2xvcxN4Kq|)JI7HFWTUN^>y0;7#u{EDVV+fbcS
zQSL}qR0htQ4z at +u;)`<kBSaD^=x6LsLse&W;R{@B`z!Mh!fiKj(M**4fe5UW*trsW
zb*;m>L2}%8(fh9}TnZzMg|t$kaJ7e)SZz211{OT%F<J4NV0q|+%Dp4{rH+FZwLE|<
zZ^qX(<Cn4K#9=TdX300S%a;+wgA50jY!*O?_6caET6^{?{!XXu4Li~K_56)qMIwsx
zSQ`Jc2gDsDI&RR#02>~EY8|3l*&LVpu|yzV+8-sS)g_8Pp33DMVz>d|01GOkjWmGF
zahcRB0wFMoytfR(@|69G=6S##+x1RGFhIvqgs?Bfi(~$XbVjZn=N;|-8!b(XPj|dU
zHj at ohy^sTB<MTX^6Nng`UiU3Zm~`%Nq{mih`T>@RI;f~>c8i!`u`k0$uQg=sx7$ZA
zzU=lZ^LPeX at TJ4Y$OaZoNmeHJ^gFZbqc|-qxHh_vnu|Hi<j=7IR&GAylpN?J+ETP*
zPkN${CK4&|qnH>T#!Wp`hCca^=aM<@Fi?f+g~9H>+|K^k*N;m%CWiId&)zlL`IN!a
zB#<zOSpwPe-~>V*I@;NXyZ<M!k at GhQuMs-_X}tLN2Dg4vY(?6q6Dqtt+(X4{2OOH`
zcez?CvmAaAh6#Q6zwdZb;BkS_N`=~r{z1NdxMP?CE>ILPmxk+ZBV+0cnr8>Ry;t53
zn(oEs_JF4Eg3 at Icb1*SuDg)K5D6)qVqLpm at s~sNAFjyhJ+tb1-A9k`&b<WI#`pg<C
z?obsJIlybP4_2CXa<+Q@$EOpF9x6o^<`K@}OGysmsg<@CawByob|JJVvJIXgMES=4
zGU(CV-&1G?LvVSl7b)DgG~R+^qx7?fUqiL?3rBEEo>Se-gbrX*CcB&IPvKnMdUe(3
z%OIYsu6Kp5E1bjIHT&@Z_z<cI6KtCRyrr<ev=L!|);IVqPd%vBXI5UileMPassgNs
zJl=K({AB>Jj4e?SAPk_?b*+?`rnZ2+JK1aSrd5U?yYA8B`;X|b+Oajc`gW)Lr!!8N
zcWQ^SXhN*>bGJMZd~fKv?+fiDiwZCuzRx}@@Vi|&VY-`WIZn6+GZ;fqj`lZ#&=Hsw
z&|v>e=%A)@RR}FlSizrNqT=<~qban_g+WQwXtfasmhPD^f>39Ru3$sTR1JvWRonem
ztJ8*7V;yQGtH8z(ggYeET6NR)cYM1uEz(B+CcJO}Q3bvExp>Wn9&hx`4=hODh+8$H
zg%Rb?SIr+Woi+vN6VTPxOWW#jvBn(pXI~jU>$RXK#$r9@@?BX_Gk%0dZ6J&;j1N{H
zfAE+?96!lO_?FhAl>+?yAZtCCE5B~hWf1bC-!l=Gq{jr69 at jwCT@A`ffb9B+(i?Ay
z;63aATeuqZv)!!@s+0SZVzOLby|L^d7U#XtH`SehQ-K_QA^(OT2Uq}*!a^XJjK|nP
zN1w!_sg$ApwK{)@Xi|6*Y;L!mgs%k7(LPIOhQU>gQ$rG?GZ;#bT2uv9Zy`$oXzW3{
z%esV00`SQLGkQ%}Ta*%PgwF5rS58z<_ij4Vj8a-T_LD|W4c>ih%GXqUXczLa`5A_X
zyf6<;hY5w at eWRgbYtUD+(WnCxbULk2pRtD<VLfuZchU}GwV;4qU?Iq3Y`5PPk${n(
zS_dI0H_sXyi<SgE)udkbDLG`50O}Mn*sPvsd95hq>ET*-Y2}E;n%Wi at 76Qlx9QI(R
z+bUXguji;)q<6TwX(@E0<zbt1TIEgkAn+PeaMFKp)M7=7yh*^1u%X-U2}7Un8;O2(
zJ^CBpS=x!2Mi6YVpB4>J<YA=jKq?r9BD;J0NfS?YX)p77uG-G{IdH#)t*XCYxqn#j
z4c!T|xur5|hdCnRimoDGCF1yRQy1*sTT;0^eno1B3qBZ5nA9AR>SGo;BTV)hxBx=T
zw|-}a!Nd!M)aQmOn_*D|wl>tk-H;zgK3I<dwqVlClIHhvwdf-DP}EdEX^=#zr^$>m
zzyz*ZmDD#AvqiPNSrl6d0`fZ+imqN3b^XqMGo at eS8=W$tStOU565vSsJ;Mo#6l#&L
z?@()Qfw^GNbk47EJ4cP6!6aLe+KP=8x9eNKO8*97PPD1<ufgx3hwS!N93NqRzY&h$
za at a_DC(NutDRM#Cqj}`L=zrSDWyWg>DgJui!i at 42Jr#ge)<c4x!fUz=7V6{u5?ZYC
z4i{gMRlO{M9O%zgG+G9o0G at jfC0=rDi%rblV!|eR6sP^Gr2UM0vt^dPHSIB1UT`U&
z??1-T&w}DiSgF%TNfo|2D(fcQNriWMHO>AqAjZYMgaQtVv(HkFYz3$Vz*#tNI+|Zv
zpC+t;&Y|EU_)gfaleqs(xce9b6+nwJcwkr2h&ly-JEyA{ALu}Tb&lb4uAaXvs619Y
z&U^X*eRXRW=Sl1b2^ccHm&k%s|DOo-jR?2P8X%)c_r=^ck{(w3uI9fiF4bhiU1`OC
z{3gSWef1_8ps_Gtf$Bvjm<dL$#BbZGGV`2Nb+A!Wy~FXCb(cZ$L|?zW_STJ{Kx(qT
zk!`JwRE{8Y2P20-%-GODRI3UhAhBu-W--mo<qg$gL>btrYZiFW-~k9};aukiERzm@
z6_I4_SfWh7Zds(MVCV5klZzvF>2kA0J|e-CjGp?~#1XY2IMh*lwRps{Y3rTcfRn&f
zbm@#i($kuU-!i>JJ~W^CJP?_cu<HroHI1PH%AYED2ZlUiwEFZT@}F629bV9aa&cTk
zJ}`<P<ibDyJ%L*tztg&yF{|WdTiAv44+~0S`%Q-re+3{JR`wO4<ZFy#gyIBuML40f
z+uNu{4gctJ3 at j=8Hu3?w)erNYAblliGOl!`Zt5xAj9(|n12}+OMtms+v<uel?`ut$
zri|2 at y#ZP%Tp!R5H3%$4H4Q6gWr$SNP2yPA^WtC at Z6wR6K+tXJs+_TVuV9x(oa?^d
z86REon9~Bd at Ny4=0Klq6JIVR at T@20c*tk(N0iFB at h$F11Hd4AheA{L^aJq#KUz9IX
z)x>}@D8y8Y>Szi5<ZBuP{R|o`>Lx2hd3SOUK^QvlGxIFCY5-spl<yR$7LQqw6Ugbf
zVV%q6&23<RU7`2}Rv?-%=KF#)Gqftl{HGjVxNF-7gO6#YHejrG`?|FaFrLIFI+SN5
zA@}urdB6?<#WV%=`x(i`<*e4-X*&JrF_#gP)8^+Xda#BrdcBQPuvqnQhhBN?Yxa6Y
z0eq~@gzuEBOS-+ix0{VYY~5I$@ZgWjb$Dxe+Wj^0-BZWB(iJ)+m<BJ(@dqKFE{Y4n
zgu<aJn|C_rEXi!4DX`yfb$W&1C&2Gl)fl?^#j|=V%c8|}Z2*)Tg78w_x at Dxs4YTO*
z<3f^@{)w(~$J~J=-a|zQ9<TNN<fm=Tb*tO8`o at WZR}f2l%?Y#pn+ZNV#N~ud9&G3Y
zwPnYgMuHG<vMqj<U%av23pvP;cN8VOs3N?J*au#h8wPzfRebvv1seE-BUWTi1AU3`
z4fuc=rSA`I%>BqQJmE6TE#8&Pidj*kp8fV{sYq*9d{f^}s}=2M(=gd8 at bHh_2MEIS
z>MWqxA$Z{>ls-xs!~+v`K$eFBJUY-()yn~ufNOT^_uJ;Spni(+D=qvfYP^Hn`5xO1
zciMeH2AnfWE*nj_|9Y-_Mk}KQ3VkdfF?>gLbEpBZec$w%(xrvbUECk44DSp>p&Juv
z4I-4dG68AaY;#|#BRLWPi4X({rotO#)nyJ;4}3GxqC;7V0<>2IK!B64O#Map?ssBn
zK`xWMf$Yw&o2vf4Q at dq=zh;sBf=qwgNKjFH>1s6(QVZVrg9~~5?!}Tlp3JPUkZEEN
z%~|f?A`0O9z~v0)M*q;&C8$ikMwYjRqM*M|1)+PR(W-f|-f?kwaND*!_coHCwsnP^
zo*n&gy9BESu>-5{wfZrCO1!xS%V3F5kR6XCl<q+LvLx(w4j^d-JCT$yAlSImNt1=b
zLe3O-wVfn+Be%9WcE`fgf4hEr-EO;)0-vjhZYT9hw+O`<6c>3-$z#uH3%xf8hR!aq
z9#WzfJ4lx8UwM9C!aa0s;6Y9e^EXQd&A^Y^Q~={1z{J7O06>}SQQp-f#=tPKRptgE
z&^D6vPcSawGQjawTm9TlW~xsi3%{B&vu<cu_`40Rmd->(`GZi^TQym`*=;I0pocL_
zXuywk12NjB9fb6!XsG6mD1rc1o9bOr3#J);0A59}p{!<h%2H;i at k4H+)hvqG6K-c}
zkHW=vKcz$eRbnn|ZfI=^7l?xTh$cBQVXkEL38ceRHWBj67KdzrLR_)yluIl%@gAkT
zoBJW;xDFgAfUule3 at Bpuy)3{st}SVDpu$*7fY1!^j>kgHRP!x;H8&d-+RRIB^nkI7
zTmGCMc6^4Wm8<@DR3Yf73{!ZMUu~#mH6isC1K{%z6$sj2b9)JENv3?{sh(m7FaKuw
z4H3nb?*Q{W=fqC)k>gV38YndF$KlGMIo%QulD`LZuBw?Ck8^v^0}G=-DdJ;6zyxGg
z+;4xln&8m&M`H_y7Uu at ebs6BLKt|09%iFp2Wkp*6Y at si{s$nbH-AHE8QIbePrac)1
zRXDJ=3Ka()PXOj at pS3>#5ZAM>hdQ1fy5_DdU7o<H<zp7o1_zsR5`IA!Y3Rw;3+T2h
z5)gfzZWe(7J=IWv at Hum0a|LnDRDBFSs8)?b|9QWP#35(EqsSWsyiRBGEvDZ)goKuU
zWI%B&&DRhJIO2>V1T8timr!VN+jH&-q-cvA`!un13P&W^Tn1)}8K4Ij-cTwGRg02U
zp@?mks$x~x>q8O*?2!*7ev20_wvozY|B#(B%KgMjb+iBSiUGpi8wt1>15j}gLr&d&
z>(}+3fPSi>hyq59x2b&oUD at VG+Fj?M!wb at Rh)i5UVLD+mh=e2moTeCz2tKCWujW1=
z2&!8pih%xaYLN*R6fu)*1b#s3PSYaKw}0oaA~~l!p{@tYML?2&5unWEbj#!qb?Te{
zQkDUG_|e1(e-T084*;r;B~lB;@5xUH;HP}1*RdxUceKIY4wCS6kk=95A(m6;fcIy>
z;)}1_RI2HCfWnG}7QeZTcXeawjIpYn({sD8r#M1&<FO%<RfHQx?GBV<cpbN~-K3QR
z*hSb3ZB8|c8MPmWbeEPS*Ko>>JAlVQ0E$@fXV7aX%<K&L73S#|Y?bvxTYB{N4MgzJ
zE{Wk`3fPu)@yRoCaR-i$b}Nmz?6Oz;&T@*Ngb&CuYZh?EZ3F;T#^2y!y^G~S3bZ+V
z7+kiLJvg;kU6*hpsx3{ay#HVBK-Y at H3zZ)XOd+*OgK-SMIX^uB@>?`Ls#HilNX`O?
z`X>Xtax>QFegcOVXoRKv!-BG7!8bVwL8*eS$PYW$jo$Ge>s3fh44K*yV~rr(Pl|UX
zQ^8U1tHae-`4}rT7tG|uZmLGPFC2^DE8GArz9uZ~HFsmXVmloc(77J(tNR#G%Tfpe
z;@WQfJSe(*o28oLOgn%z0;mM83jWaNqY|0wa(!1Nwe%^P>65>}qLDouq`Ik*AKcmZ
zZN>X1`cw!2#;t05yz-#EwIlpSRnGEY11HQPl>;_x{ZvCeyKu+fNM#fDdVP8>2?v`~
z^wM#(rMeEBJK2YhH{|h6t$|QSG}HSw6)g^w|C0Mw&9rX+nHkef0uDii*KiWeQ-+|6
znVo6NEaGv~4Z>s~y7b4_d?b@>43>`g7tfIHxrASz|CPYz5VHA0f#ntuQF?&2?pDaP
z at sJ^woGg)*&5Ejvc88ePMY+Ed8USSGg8?Q4&|mU5fO5#|lJ`!HM+jf?zv_KiW<37O
zHwa8r;r at Jo)9sj`6t at a(!Rk+t(q at 76`etD3xk$nRd0GJYqMyQPnsb#F&_Q|T_ZiI*
z?1~zt9VUZagUBY6ht$Y{Zx>Obmc9S^`U5~6MMS8$##%<-;fiW`LqjzllPaSz6W~@s
zWWrWNj#P)ZMg)`g^f6s#JR)7{K}|JdQ{Ev1_2R&ywkBcnQ3NU=KZ`R|-R$-s9p2lK
zwWzI_mY}tMo((qgVd_}wr!V(P06h!S-EcL3)4L__#bRN@=5L#FmZZhO6yspSpBR4?
z8ZQm)FBQ!=74xlGj(4Bv!&$aHid=*JM@^yr;S2p+YE=VZ5+(Um&TMy?5~)R%o$&_G
zMM0wI?rwzWE&4|gR=z(2IAcHa$8O~uiH=ye^Z#$WF5 at qAP^E#8t9kmA?NS3X%0lc8
zToP6px?i=KNkfLyv+8INH;kwP(P)&DdWv=x1aQFjWpK1SUMdvOwF>pcaoPWr*hc!P
ziT8ID^>k_+1b&Kb^uAMMI%)!ENpXJAU&JL+`ODRtLq#!{tDRLh?|k}~yIJ-PI52=O
zoYiDi1go27v++m$K|fwR0yIwk5?v#&d0y?w&_5Ubd{FX&X<D>$H at SYWv(uUZ)>!fT
z&vrbi at uIVT%{xfWmTjmriy2RB<R=pmphhBs$GwQnkPp+^`UvTw0d=<JJb<3Z$sx;i
zL5CeGilz8736RIvu!C2udc-5X#NNepOP94(>VoXEGDZnxa-oP75UAF2JNb!dcuaih
zo*>AoK!xuw^B_kO08b4gYr01Snzqsh at 7pUX7{T0Ho<zk1C|Qc9WG1Tyd=9UL_{;NK
zU873IGV%XR`V6d?V1mkirBC4>gn`%?s!Xy{_4 at x!PLd%9&FR>1Xmv(Xf8~TLvhFv!
z#HLJ_4z)O#*WXVBf>Sd+DvbDJ?Esn at _ygsSE{0=t-DXbq(a<J;fg%fXjp5T2P}~PF
zzA^$ZY=!ZIsq3VRSnbH!-Vpe+V_IMj<N`LZrKFdHYcKO6 at Wxk2(&||;6}kFOqWCXw
zPEaIOUPR*h7Lk}VmVzVU4)g%cD{@og&t2n)a9^Nr_48{e^|C2ftO5!UBoFA0HZ&<j
zMO`4o*qHytSzK;a;otzmD3}F5R5kDfI;veUy?EdMpTPBX9tg!*IR38&-$r^yPN6R*
z?3wF(7RCIL3=dk+uCv#uA|O_2U~DR{lVsnPEF%^A3>4xqRCO!!pk1*;JZ>wCsKTZO
z2t=;Z2c81;6b?LI1V4JHS<2VYO}d3$&p8JZ at 2-dh2%gr#uRo0JWERZ{h;#x{*(}-U
z8&XKr8!c4`ucX*0PQU>PxBVf}W)$jeY7hYf5>E5ECgm=FpF at j7H3c1ij9<lI$LI<F
zv33xP=wgxbVh~22&cPnPFD3#Y2~iUd#Z^_~x=V!vuJl;Yj#Nx6I;(7&FKnZWuTbOL
zJbDo8y`nAdK)tZlF2dEw5|kb%%PE8J4vZ1#m_A<C(r%hsBMS$dEH6N&U+^N0l5m5!
zHt&pY+uq2b9rAA@#X3BCK~6P+h7=HX0WWk%PVwMuaS6d<u)L;#C7>Y8m<U@;K!OoB
z*VlNV3tIQj#sQWbPKd?$C&G491AX#ZF5)WUgI#|Ec%wZ|4V(tqCJz_n at i>L;cf>&;
z09-$y!w$wTp7F>iphW|Kb%u at x1f7=ftqvbp>bBASesc&mXK@(1bGUS3Zh(SUBcOI4
zvfYd8E(3rKAj5;Rg}2=751CIkn_G5(<<1%|XW#;Cfb3vrzX1FEFA9*;6LIo;XXpa}
zzcux#O882KSw21LH1v|zOw;%eBFg-s=ctwcJPNuN4M&iT{682GV8U0oRno6XCHcB(
z2ma6M{{fU89scx4E4k@(rOx2dKA-W4){Fti;u6$AC at X?cJ#*RpYSoD}EXiZlH7mmx
zeQB9_M at Uhz@@(R~mxP(q%Iw`^mUE(E7BcCt2>pJE6uWCqAURDaY83u$GLGDl%S6eN
z#Xz@`ERVgERpB4v0_AQ1$ve*zRN*(#e>%)4s6a~h##Nwc26&r&7L)zqXTE()rNc5f
zFfh-TFX^VY+>^nV1O|J9U6(6C{A#xA`u{sv8~`}gO^!zc(&N<K8ts0h?14mE^d+EO
zw&aZ*I9hOI<lTd}`u%uMFhhdXAV3Ko8c`3mmeS1znr;j*&s3hoYs^tTf-pN@(UxA&
z$!?1UJ^?6&LX>r^4CtgW%}Mb at pv+O?z5@~Umpc!%53#aqpbBAq`>YYUIom6M9LRF{
z`@DNJsGg=fXWhLRk at 1>8=YW0%;N8G*aiC2`ZWxhUkK}$HkOa#Cz at v$|G$K6Y?wIUU
zVPi4(M1UV(I{&5>)p^~Rp&l5F1vu~+4|+s2ZT?BEk!ZCwdxU$!Q}Wxu!y$u}_-P5I
z%I4Ddx4v at 8H^<6C>jX2Z&XXI2h0CoE&eqo2QWMyhWlG_BzHV9J3ND{<9H&IZw5lNJ
zw6W$b^}rEj{sdEwWCTe9snzFT+BJ)gmV?Zt+erS5&KNZ}D*VbN^KlNX!;j!AoA5DT
z4JJIoS5H?NT`}bGyAi<|LHIcDa8a1{e}=J at 89Y^DN*<jWFc?#&>ML?G4+A8Ius#A(
z_^0OMLjcvNlgD!`<*)+v5kSm at r(+c4cOky~#?`q31Kr?^grjS20iG(GMVq^hw_6Ut
zkQv|vv5@~8hj0u2yWs_kY4xkWA9j2=72i3KVWCu3lAcw|R_>b<VrP7jjU729nHMyh
zu>;z^tj+k&di?L`$(L0I&GT4sD*SM-|2DoQZ@?qG+~fCvvl3>aSm1p{qyX?%h?(|I
z=hjL>no~Vrv*J!cV`8i5u|Q?FykZt5pmCQ}r$QPW1|GhdcbcU1S%jmmh at hwAmZk%r
ztjZ^+{ro#|L9 at 6WkS9&(TmWjNY)qxZ)-N3Be~KWRWMFp6D^+2;RI at X$$B8r0gl*?Q
zP&%KM2X09S at NuJX_npp=9nix2LCsu?K0TE2#(7;;ud`Q`VY at zj<#e6BozH#3%vCZ=
zyU5 at Xq6#ZjC6%a_*rN}Kxw5~D^2;kk$<71x$FFb<IQ#!BeW|L*`y4^gd*`O_tk5Fp
zZW9Y6k2&_%O<#?gHk7f6M~N93`>SWg1Y&*1(0aZoYco%u)2{E8zf{0>ve1Z9)v<9t
zyGX)PC}8v<O)^ZVt7&p6W&!D6(-AGi%WxjU3depGt%guzPtCgNrGaZLim+W!?Wix{
z1NQKseTA+06IuV!Cpj5rH#T>>PaLb53_9;r_JTZef$CUE at Jhn*YQlZ-e=F{e6dFPO
z23r>0poiq<xTnkv-&(+0U{3OZepB0u`hOl)HdID=7r at Rf`oTk!WDGmmmlB>P01fSx
zOFML>tFe3v<b|yr-YefUJZ>+mAV)nKl=5pbdo^!CHl8CpAaLCD^A0M_?66Y1_q%1Q
zBVWja1Sh#K7X0Qf)Cvb5w at X)%o9zrRHx|W9w#5c5L#?JQ0Q>h9{%^&F!BwTIBb~k@
zFlpC6EPem(tm$z(3%NZ{_FcE|b8RG!`={- at T=7xvJIspYdj(W at -VPR&(Yu%<vg-o?
zM+TmBO{_ukV;3d)GnC&~LxO?sVzI$b;}En$o0E~6L0 at gj;)t<adC{z72EZo>v<ZKP
zqVbmdRe6=L$)k4;z8Q(Vt-yiI(Brjs+Hjs$EtT2}X{!gT=+$uk-VHx&MewpMYc6`E
zC2hWbHn=X=4OqC9^r7?ls5L?Av-ZI`z#=rN5P&^taax6~rofs4RAEF at i&Kx?ft|T^
zWC$0BmaD;bndswjRI-I_t%C at jD6wdExV*GAG&=&c|A31E at S@It9L|_nSRL;}C`bIY
z3s6y^@|~08lal)xRYxA2u*y6rP|RjSC9T&<Imb`pn|w!Rh}B4~$MojohKL|VYqs67
zA^SsHtjB0Uk+18gd)_|qrkS(UV8sDY1Osda%boiNcpl<E(%J{~b0pLDE3W?fv8#M@
zxdF-Fv<qLK$yHxidj$q!&Pr>Ey2Ms;ew{$#$dEmp9|pCp-=zZDmd+O%tE7j#NIw2~
z8;=W_PJsGI1R+dErz$7nckk=xqX7dM33q|0iv~L3L#xy3;#-G6N)yEMcB*pP!NPbq
zg5Znf-=DHfUt*cmACsrr)xs}HKrfh9uksS;D)`iZ*;x5HfJ|VN!rhnNUB3jBvTUks
zD|*-tXlQ&y&SLlE9Fm_OrC>!rSdy|{a at a}|K!*75uAvLZn+_GLDmb19$W$-N0Q00f
zirR6EW*}nfB_Goi0>+zb(Xzc=f}=&11|7tY7?#txNUdrEaUiLA#=YN<CJ5Srk|z@$
zK?;14My3l(U7<iDf?SR?liRZDX at Vr-D#}zLbBOMCQW+tfp!M`{$thSWg*56v<Qwle
zSJ4j&H65IW%^A!SdtOhglZHY7*P%gOReh}p?zZkr7_1IS?NP<Q1!}?oc$+yr1=e<$
z$BXgpn^9Gl1QkI^FJU<&EAQ-b5;Wl+qrST;j=9t9!_R$TfcE5G5vEmV3_R~sidd-L
z%yUIH`R`BKCGrE}@m3^~_dAa~J`D8fQf`0Zc-W9|5jg-nG_Px}{FBKeeiM)bxKI)9
z${y+7%77a6wNC^53?TP_s^G<&@?jq<;InTpkzMS+dJb|R7!IbdA^UI31yrTLCUgec
zs4y*GZjOrgT%N#Xp1%ffKI_1px#5xtQcH?2 at WPnFR%PT_^8jE>gVd_zux(3$uU^F2
zQsSXoYp8`7_kl3J3{I6sLhSytqOB3oLSsVcIY2nFEN6%}+xeUg1|_LcVOk#TAMWx5
zfKJxI6|`e%_!V4ne?ti!Id%he3PKQY#|02r5NNf?<BO1B+Oi=9NBcv`&B at _}Z<jt8
z*uFCbmjY%Z7(ungSMEWEKUP%VQ+Vh5zfx~1ftrY)l^j=4;|nOc>>fz#LuQlqvEKro
zEi~CKsD09$J)p+3MG+87Tm7<l-1=<M&?-y`T?a6JGNU}a$=!7Hs`vDWP0_piwcm!x
zYr_ZveTScsBmTX+19?NCUNtEIa|9S3u<pH2HN5~E0(!*zhyV46Z@%~dGn-un1_Epp
zNCwYJFUM_sMq-;eEKOuUqW!L@%l8~$t^buL$VsdHAz!%CvN|Q8wi at A+Q#2%$Z<&+#
zq<DOlY3Z76g{$Dn392sJ=tgeQe2I<4j at p`<cDeVH+9XfUt-MhQoL`8z&ablRT#F7h
zQO39anySDuz_!WFp7QaI{|Cm$z_J8M?$56?n4aKyP^F|Vi~i-_wfE%Sj8a$!vh_>5
z(R^wnP52#ln>JSWz0FBGE8CvUW8`zNL at aWG81yY4Bei&a<03n_9@&J1a=Elb_5;;m
zksSkkOz1`0+V18f*%YwBg*A~yiLEJTHR~oxtHpxdCkB;mE3?Cm?}~4oc0JYLrESiX
zt-G4>+_86N$nvEh8!upAXC+#KJ8<W$1voxiRy<EQZ_GCo%A4jPw9m0uvC#(ODb>dl
z_|>>Jp?4l)<JQy_RHK=3Nyz?C8 at v7>JNp%&d<CJI6-fYc&YXaJ3_;G08q8c;V8_w|
zZDt)U_DlSB8r9h{OSz2kqFsvcoc`da$dx_QNez1qo!r1N)5f%$S`NW#fGv=VR%Gj8
z3n$#En;G($v!KwBIzKr9RQzF7jVoS>R1O%Gpd_f at wYGCe@QdIoprF2}j}na;k+er&
zeaZ(+ at jrPA?YQ1WWShzqBfjYEPkchK`AhE_ytmO at sIM9^)^>Lt)9*2th9Kn54)=Dl
zp@^#>+o at 6bh1ZI+ZDMz*&*T`+a|nJXb{RJ8iXEhykaa*68P=`yRyQf0RasK9VPde#
zrN|bAI8CgrB19t at R?al{pZD2k*}!YmV9-Teb1z+!0$(7|gg at p1$^#SW=HdjHTJ at rr
z6Od?<_U;2epM3+qm|ZWeMnn-7fwIdL>C$e{G+G;Ztbm17sQjh`N^mX$u$F<uq}g`h
z%2lYrZx&ce=k*BpojA9oR+Y~_Hb8;a5J0aE4VC2F%U{I+e*1y|5R0@#psXR(12B*P
z>z{O!;q<T+@(V!rMm{BS$NIk+$kjR^d2^_zdsBIHpQs at 7w&MP|G097m0_5k-JAdD0
z1Ugk&cBMjX!t4*D5=Kfeg_rE-zS#_*OTV%POk1 at CJo$<{rw7!P9kcWS59s at Ijk+F3
zXXmB`NHJ-DSdJtV{P0(%I9nUz2&@jjjU9wZ at e0%90fm#($^UUof(TIECQHWyqh<hb
z?CfF)a2xL`lF&vjG?Fm at V})c*1f(aZwv#+_U(OIAnl^*q{<fJnO_qh!TaAzImt12b
z_sz&P at +bly<(GqMV{BqP&X1gldr(i!U?8fz=Bjrgt)#LLb!*HhGosfWxE)iSC+EI&
zn))A)VL`3t_24iTI+rlHVg at th=#|1NpAlGr2~DS6VaU&O5>>^J;mhG>AeWj}915i4
zsjOWgLa+$m_s=l at aN?{ngsHkYsjl7B#MJ7?0t82DvTc&?VsrN+FP>SsFgtxWuqh%V
ze&~(s9I+p2 at DskhYZ)bOl{+*KO0s6VQP&7qg<HPn!Kvu=q+1&}BK+wgao57BH+9}W
zi#*#zw;$%- at 1?$lvA(H04WVJ=QXe){9_Z`P;o<rygZ%0`KGL-j14=)7tbmrE8Apm7
zaDfOdT0d~4&F7*`wcHQHT!kn?h&}qRlea$Rsy#U*06 at x$0&Z%UE7Ss4f-DT1OP*>p
z=5%|N(>-3;EfPA1I=xEMZ1Iz4|G|al at J8RH=F6Wc!hos~8-7$Sq6pKHv-JhIQ}#fW
zLKP_HH(i45CRzv(K-$0lz5i<CXIC1bzQu<OVa)?>!ouwj*LMHEzP>yj%Ju!9kT$2I
zO^C`!MJ0qZMyna;(|(Fcj3vv6L0LwOt$i~zbtGXFofg7m^oX(M9Aum1V5TwDv4$~a
znMs3w*E2fj`}w`Tzt`{labBi*=AP%ipZmJ*>v~`B>pfu=R8QA?m6E9W?{f8o7~_;|
z??(z%a#sMysH|%!pCLB&#=hshf^w^;wTrz*D2t>jILZ=Tzul$7 at 7%a?6&#Z5r&fhG
z$<NGBJ7Zyc^IV8!4S?}nKL%)Kg7+bjFdgj8ZrMXHNWYXNkN#9(FaOd?Pn{I7giebk
zi&9Q9*vj(f5?>m;2npQM<)rHpfALv)L?3 at fMAd0rq1&iXwgAbldp%{#(^Z>^`{~6E
zPo;!Dy-!gV at ntM8R@8ovdy|`C`)X7C6s+eX$;nPEQfudzMW-MkZ-^93E24=u>fyXQ
z=OacJ7czG*lIH`+x66Q`jP<+IuHXnO(LjGTRQCpip8?jYRfRgn`uUZIYa11SoOut>
z%IR=k(}Bqr?Bd~gp`Sxyp84tksv%kw$MGCJv8sY3<7J1+xSnd|9w&1snqh`5asF|s
zW^)BZW0q0+8>9Cr#R%AaY50<dwW$SW(ZQA!uA!^<{i}mkOJ=>;i%Ep`K at D!!f=gY2
z5E09lYOtu$yO2(MmQcIb-?leFkB4iXYz~UUSHMS5Yn1{bUkmX2P;CjHQIwx4Xu^w~
z=KmhiH)$hylFfAzym`HY*H?Q_H1IY at oyX*NHX!_%%<jX3!2GO~c(}_JIh)lN*bLD}
zkut24WRS!6irnFYE{2~%q#8nV%T>8d5c2Zw7M%?9!(whlplk)(gz#mf=k>|%*mo}1
zBQ53#5=D)=yfR;GLP01O`RE9BG^*k at q?$h7S%D$FAit*ey~3##0JZ6|xkBeW0nP&<
zKxyVgrdMr+#J;EKiFWv-;Zjm}UYlxhxH1y6GokHfwj0gCllJG&gtzDs|3|IFJ}lYi
zugRZyxf{A$c573(xM<V#(WN6}Y2uGrwbbR5^xcu>6hdK3#Iv_^{-XRbnN=SiXgNv=
zJM*^j at I_IUq|c7~uG#Z-vsd{~LU^{unrxEFBO{C;^X=5}w{r!- at m&oKPp~c?$sO~J
z>MMftT8v*y?8d{rlSD4NM06K&Cck-%w=|6${i`SKk%;%+#s2Uy1{#1^a`84`Cfs|!
zEjS_mrED%zJ|Duy at sj@pp=tEs(D)EbxD?2D9Ah)9+P)_hk_L(QVv0154 at 4$yO5j$m
zgv77q27G4bngH?BNqC9M)K;gouPSc|k6FJDG23eu at nAbG2Wg`vs=u^!8WdYpO1=$^
zKV#vRsK<Mb1Wf-Mn3YE`-YV6_-cO$=FcPGcGCn(+iMR6ZR$SAh7(a9Mex-qAmhQ?p
z)=&4`pp$lRO-trwanT{-SNoq8uH19IL!UZb>NHz$+MKU5oZn_<ut_HMY0ppGyZ>tn
zOtrBgtdU(x>onj(krKdF$T^g{t4?+oWE}0*tkN|cGx21<8Vy6aFWxp6M0o|1>8WOD
zc*SZooXaW=g^GN at 2i(z74o0A*p3gA*aV|o^dnH0hIA}5U2|B#!9oFErVetNW7a=id
zoLX^FWaZ(WU31k-uahwUt!XUo{=<SfPrdf1wJU7r%%u%p?+mp?n(zN)n4(is%#o7b
zbYz)D67?U~&mgB}&X6W2e_`QF4`gSNPg<A^4PQ#bu^+}Au#B)cwg4^cuHZ*2Pzdpj
zPOzKUH592!wtf4#K9`kgqkcfuWp>ldDG6mE=jJHGGyrrVF1nsI*c(a!o?kCbMIW6T
z6giavQc7t0^u~H2LK_h^<88k(KgCvcg+Idt?<wp{(xtClJw0QXfi*P_>ti?EyivP@
z9emSu7A5cY9U0B;cC~t9by0M~#jX6<ITzaqOv`m|_jCG&B*ur$@14Xx_ek08tHI#q
zHO8b+ObixKA)@Z2|H8I-g_#A%X?3Q>&LPP at e0<aX at s*O1!{RTB9d0yLUVOu*+w?4g
z_q=Dd(j_9pPVE=WG-dQKl$ZZfq?5}-#88FtK-jme-<g+c93t-?C$UQZUU at v#2_CXo
zmrYU=;7B~O{<cz%AMVF3WV?QCla-JgBug;@BMu|)l8CLb7+3#NuaY4uQAfo8xl*Gi
z2!m3**RI2_UvkL16a{ad1?F}x12~X1?a2%9`dKIHt<WT=tu{r>sShFEPVF at DHe2!t
zw;VCD>9Wcf9_wq4nmOqS2d<O5Y|!eM;tTe!l at twUUh>?YG*;SlWT?_;Q at Af#U(byN
z0V1~!-zm^p1kuNTc)4XG+>y&VH579FTc<KCJk!?$+HP1gCJeTS7axy>s5=wV9LZjc
zfN}HmItr1#QvqCQy2_7ik6>)!)LpN)xM<*OK`mm`r_vag?C0f at V>gw*1i`est++*N
zf9cB<IarK#2K49T{)zFZBd{5+B3Y|AQ|6?@ADJaxA!(gKTY0&uWKJS!YC&DL8|UQ|
z)H|~K11GF|a*|fM$sV$FL=nw`bE4A}$>TSxi;9|l9fB=2jpw;Imfd(kY+am_tvWN{
z^tD-kQ_l0}iC#BWjnx)q<*rXZm+k^YqX&xCCgpRH^frr*&1b$M784j)EK6)9)wVkn
ze=(xKs2&h~2<fPe+8^ybYE38XRVdQ&ZG#(+1qNOiuu_p*nnYOjtl(3n#DPT;K7DSN
z=W1T&o^)0ng)~#Ix^1iSLEY+|Pgg9ztvbD~%ek3eGN*X<z;dJM2VSS*c%45Xm|x~b
zXy+|ge{T37ei)))*0eK#Cr7t?6djO$X&wl*KXpLvLC_E?(~Z-5?)`j(Ojqhyn=evZ
z3A;*sMbw#ev6`X{ymny6ur17aTZ~<8_a3$kLZeq at grN7D(ICXU(cmJ%5&@RYAUxQf
zLJw^X at d!LG%C_nc`}96-^M2}1y!7SYCng&9mdZL>``XaRcIRRN2Y?K9F&pnirF7d}
zj9B&*LJIJ`<ztn(y60-5%KSWO=07*aifUK2bE+gx)em6;XfP{}3*>*P_8qfHxoKsp
z5h9*yYv!KZ6=u;-^|l!qa27DSLtjR6&%SATlJ=?e7Vatx>^Ek{Yg>sz6ezRh5dLyP
ztaw0dw4GkT8wlFWD?1s3lq8SZ=LI at wo-|$whrHwfP&!P2`HG&ADBaXWrH0)`d@(a9
ziq}o*oWALz0YlLY{u$P3`n4NJ0pTu*Z&WC+rRvqg%`-<n+c(QPyBDM7Az0D?>$Z8S
z0I$y#EWY-?=viYzR^uvj9<yVm&5i;4V;&O+glylF$rMeqdiuzINg=!6GT~5Rf$x+N
zFTizuj<^C)i?C3Pt4c3Uc0{ev^@@o3<--(?XK-H<sU(PEkxVSlnb+p}mT+T5%}GBU
zwi`Jf)loqmnbAoDl+ldWsfuLs%bjARo)8&|o0{0TOzm*}W9JO`&XQN2Y(_%dFXiuJ
zV5zTHNNz%jG4g#mBj3Suj1oQ6eC<oK7{gNM&$LD(HrmOBQ@&fq25g*X-KR&-x$%9c
zDkbGtBYp<Xn*d<7wBXZ_wgA|l@|t=$te4T{opFx9Iydp_nv-{%dn5D`h%pJNNdqR%
zMLV1AHt}Y{7CgonTfhv_BhD=a5Gz<r6M>_h?x*`UOZ%A00;BldVk^xe?+U7 at KA)o}
zXb4;94?qSaO;7_N+9E_M#&y1cY^)mrVEb*1AbbIZkWj-nzx9iuDpFJ3NMr4k?S^s@
z9BUdMHfc|)LhwJ9h7sU^r`x~&H8u26*FBMBIwk6j3L at Qp^>93I3FK2_6m~cmp&l<+
zi=DQ4Z{Xy}Dz-4?mv8<o{|1Qu-p9&rvZ6GP@}QV@*l}dobZ2n6jncV4hw7bM7`-&^
zL`xGO1gvRAs8jL-yf9)BwQ~?}ZTdKJoAzXDnUs26R|m5?{Kc(Cyv>fLZ$5&22KS<<
z4Z!E!TIc<5z^pD-Y}!z|kWwLuW~HSOt=W-}Q{@}Fa|u!&w6^G>=f>!zlo*rxG2egr
zazTsivz^DCftSQzmHecb%oH_{kFu<cg8j+{eIM*d!D6w*aEl-TCpWvhEtqsXRb2ap
zsR9-0_fzuJ6Fru?=Gfh_xj84ar(`Nus at 4uE<lYbJC25<3Rov8haTQ0F4LHf}Y}|`r
zgSj(O-Gt>{1EpK=+^`;%s)kzX5KoIe9cS^KZ+2$eN58{*e>)yveBv)ab1Zc1ooeqh
zk1((M5Za*tRWW at CNGk)`B8MvAF4 at Ov#*cWkh9wFgnGKO9g4Qj418s$Ymqzj`B*PP)
zW9z}j2KKAMAZR^du0VyA#&_7Z=O?5K9{u$edB&E#FMuH?=zUClYyV}>M at kH)CSSVB
zlS`CXJ8aU>X}g89alIJ8!rk>4*g!ZESoV-<>M2$KaT- at jt^l)dIt>`_+k&fulE1vf
z0W4pf;c?3-Q_R*I$TW7x({^5iGj2Icm at +Rs<URk!Mt`TzC<KYxJ3N{eB at UxYm~*b0
zH!x at -*v#v6Z;<FzEoA;h at 3<!dx}<ksre at 1$hpDo#$Z+o0kbkFw7F at Bn)pm at cv?q2K
zo^y?$xH*L$*>_^ZVeUjLM5W0>r+WNVwE~xUaj91|$0#wrS{4k^&-Z}za`-i}i9+C@
zJ`-Z0O39O0&cFG;^r}eMe_&=$IGZ%t6>S52nGSkMakg~B5pwlKg6WHYK0{u!(TqF6
z7w7NNQ5<Jedins9I2_AyJUUe8p#uJ_oYp|q=bv0&o8Y|}APg|Pi~fTO=VBKj<y!pC
zhl0;OdRqZfky-I;GlN}-UYNj~#grH*uy>t8H<SWYU*S|)$T9)9Y!E^8SShchqt*_O
z(g4c0(cv0rTBL5Wow?@^7AFx8m79AQ=4lG99qI}_C!X8XZ?^<#qY~4SeC`If155;i
z0<xX$T45oaD`1<siA}3tMWlNln(vTS8tEA@!f*eR@;PMlEbs$mp>JLbKNvvqnH#*V
z_`O+Dm>;t*yXgLZv8M)~y~bx`@b?AeShW!P{*F&2wg*Lap}^{F#rMri!k;XmZ|rJw
z3Fhd#MU?SPz?^D>iqFlvMkntsT14RTmn#s%&aM`IzcEzv(mL9|@sfYv;G-(E;)C#i
zx+e~dQ?BX3bM})nOZj3vXC85n(0*V3g48TdC?WHAT+5 at E882|{N4OJr!asgEIg`HG
z&FQbZ04_oOHCmlQ^LbHSTh3X#WkG6kt>d<5_KP=pwwq%ziWX856#T^!>UsbFSr_2%
zIk|I|EF)l|OV^mNhy0C8I#dK<26oxQE;!7o;ghpCQ*+IS;;fq+coH`<o#DtT6>M)G
zD0_ZMlojO++;H_#%7udE9tf#^_910#J#&*nW0~a*;B}Le!oBA9XX?8^GfqNX*PY!v
z7XHHDaIPneuY9^W9AT6GNN9^8Sd5y*QaAVKddX2&uy at vUovKW1^?iC|*ply+iv+hv
z=WXa}EzU&>TV51<G)UsdmW>5ZR~O~(4DOVl2M5RTAEJNdS5kH6A+fZ!z!B)F?7dkM
z=aWd5`pu(&#;dJqJZxgp^ns at 6vTu&dHxsDgXwU&^kI42x+U3{2yTsQ=k&ID-`Y>}~
z%Et=-VKqf**$UX-WA3zmjakqoLqk#8Qm2OWLv!=TsFw$Z*qs{!hd6Anys{Kh^?}7o
z!djFvOs5cBbjdEC<J&}x3Ee1F)TtS~U*?>C!kdND0PM-c)Sy_yflz#kdr8!AcIeYa
zz%Jl(S49I0JAI6^hHvuM+h9;kVPBX_pRpFD+%i9E`NnJbG%=80fR_n$mMCFJHiGjz
zaF*IN!i#PVaW-qBYgoB)79cd&$KKy{p9$p7&zN%0Ozd2FUPOl4(uGz4c6}er6}+5}
zI8^X_E3)rrM-+B%9hK?0SbWAVeMGV?b}}Y8?Y)P;Iv*Ybig-cGRRykezs0Dd2STe3
zCRRio9(|ctMfEG|+4Rb*|JSC5qiM+=#bGl;!;x=sV>;=!b%g%m_@@3SM5ucXmYAkO
zAq;(EZa`6N^i;Yi(&%i-?&Fsk0dWN3Gkx{~<XgL4lBaK1f1$0_bU7<Zxun@{bf7q)
zf(_9~?^DBI3$2}_mhgGZnLFW%?;}h&do4%TTd#)|lJkAoKw4T#Ay;f%I^BpzXdM59
zT<n;v;hxCljE>4j%3{Tqs<Y6JMLwjNMwUr!eT?QX8 at -uPN4G%z7%&Tu)}@TBxY(Sy
zlJR)s#^HL>^(V|Fl{ZERf1X8$$1b=-R3D&N4lLl=7)hUNC^mZrBnLtKRJ(AAuy%40
zLRj)F0wTV-f=?dix6cg3pT0=F1TDP<do at R_Eio-?&}53VoL{yO$=0h*6lR%u<O0+Z
z_=h$nMjP&G^A`vz)sSN~S>)u}6IBEK&1bKbUN^`X`>ad<9blVxq^DU%M-HQG1$?!>
zS5r-c##-Qsb66xGt|tDL9T69@?p4#usuCp%F`;Fypet6S=@5qA&+jZ8hIYz=CKmH<
zXY1Qy<{KEADHA<c>%Osb47bj^tNDg!tyBk;&q5&HT8thD>-!Hc-cy3M8PZGa;~nw~
z+wyVUHJQR%Cu3)QyQTbDf^}g$g?MOx%R+(KhjSV{raC{@nz_8 at X=}>EeA*P))MR6B
ztp5kku4J@@Q4MizrcVuX(2 at ly)H at bh+8Dhj8Nvo}`2s<!M>BNumM`beO_iigj!=5o
zOZx}k!$B!g<uIhtOqDEb at l~n9S(PJTyK0D|2MR;>^>f)cqqDh)B23Y^4qsM(PgL6#
z7SE5 at _tF-fvblY9<{3*E{2i_ozqT+72Fxd9plu$7dmvRHh;Ir&j}qPO4$0w2OcLip
zM>4+_6O%A}*Z{z-g<PNC at 4r!YDWxxRBP4`d`0aqNcy2NWNe*9zV9qR^q$mSAxfOH$
z3RyW;?|J~Pt3uN6CZlV-Oo36&c)3giA1|pGi*&VY#@%nW#&%8GTSyu#XipTKn&~mU
zRynorzT<f_)7B?7axRD*fgjDh_CQ|Q$@x-;9+x`<hJ(f1+&QbSZn{P8`wS){yUrpd
zZV&U^;QrW|&wMd^b)(@c;Bku!XxSrGodG`Vx{5x2?)^ZSuWtXm?UIJ`Q7d}scRdOk
z_(e5bBt<A)z$-JXX&Af5mo&I6a-(%Y?DBU<n*={P&;G9=W;tq?*&lQl3$WfBR0Jhj
zh||{gL1fis(F%Rt-8_4~UJUvCxUY7pR}=nG_DuY5<r)1ISz|m7H#t{YeOjy{Fk9L$
zLA%NPZ^=<|@0k!!Y|5go3;*OV`aNd?zeH1FFol&F$EbqO56>JLzWl`HYh4__NnyYz
znJv&EJ(hOFS5RBShpi-x(6~sbUA>mv_ at gM3@%e^7w2 at e&^^GP^gVOt_9~kaEJuZp}
zM2 at S?VMVny7OEa;a+6Wg%rI$;A9hJ89OSsu{tRzeC2M<m|FX~9QXB2bkt#zR2A;ee
zN*a-)W|R=!iB8q;ag=9+I93$Flcv98#~gt@>!g}sdGjz<PmtZzU0c7LA)4;zcj96g
z{ra#Q(1)}*Zm}P|<p!QkF#W9wGOSIxlm<zbiJ*DpW8ftb7FrqjXdnkoHpKV*()m2-
z29d{HP}W<3`~$4H(Q1HCUQWwr6xN-6DQ0-linkLu*U0eNG?-|6iI`f`_QEw0T6Fx#
zs4*KVf*1L1GQ at x~gl{^0k4z)FDgN4B<8{?z!1{uJs3rOp&o9W<Pzd=90{b%2dqa+b
zFaK8|TAzmE7 at Yr$TI!m9GCi4__=}yBfd1QhGnLZ@^Zluhmx5^}n}1lnNDf<-t6Yny
z-iS?r)>bA?-!~*GtYD|<-s*^5MW<*mlySLcL?_ED+BIs1TpGpURQi6y$VrvSU5Wxm
zr!#qsoW5>p=}A}aR3{^UeBbZc?pW-$L!N-3stA^|qC=~O=LxWl?oan`M$4i=0EYg8
zro`q|n}}ziXxhALYtEJ)j7Zoj@?uTz=EWaM4&H{CVVm+N`i8?6ot}%B1@@ivx>gp-
z(GtIpz}$`EB+-AJU0$*1*GTiG7hz?CSk4x5zoAs`QYCeo*Td|5m|1VX4>4Mr>tNsy
zU<&QD>F*7zIQIOTPBFv-ULndw%L9eE4|a~;cJr?GLRX_wV$&U#nJ%(E^r~M);RCFE
zdrQz<N_u6KF@@~<^Z26j=ghV11k2I>sU^JleR)QGy(C3JVxYuS)=C>Te7tpzpsNwD
z8)ankO%hhqq0-7fVPu-;V6Nv-;_sSl<S}6_U`*b^j9C?y4V at P?bTnw*qBm%#CAVln
z5+1!8FtJ~)42m-f4dBTOs;K&jGifZHw7VNdy#w?k(!z(@7ygA2Kx&Ikv2=sBlVpzD
zTsi)^r>#BtST#g(F+0Cc%LX~MJ4}ZHE2)n*HIL#S7W(c)Sq%XAO%$9+^gzh3C2d?w
z)^u*I<hk}a6$<fr%y^Eg{i&N-R_b6X0bVL}gLT8A$=h^EeBX&{JwXF+s^8zykx+i*
z^><V=`<*?j7drIZyQd~FTeEH9J?KTMq^_et3joh$u>g89nm<0kaLawPJ;%e3Cby&E
zmVm<`2i)a*AVwUwg!sMU at D#)s3p<PK`qk6bg<f{TDb2&ZHDwwb<a*pII?X=ap=494
zkUnK-81)zZ+acb_Cy;V6E+_Fa%as5Q>^&M at _uM+~%`bBhFAQ+jqFY}z#Tl<YSlxDq
zZjHt5hUj9r$i5QF2#Rkoq!wcD37!rjt~E2+arIMHPh9K#ci#K*AU*O5cVcbctp!_&
zv|N))sX)RJOOf}N-)~&2ln8$`u~N4sRoPjzHK(d$UsK1=6+Cud^^2i25$MJNJy=_a
zxZu+`j}4EI4e;0kR at D4NDgS8}C?zEuKQtx(5x^qpd`hB623U?d5Wi$k=H}T1hB_rs
z-BrU-CO*V7ac)j3<OXWxJyG4h^NHPQ0NZl!J^Xl`HGRoMfNeO4=0bAte|d*$4W%%j
zA*EsiLov)mkF|H|*WRa_zgrg(5*OL?=bppN8;rAU1VQw#7NFHJn?j-Si~yH&bshlA
za|OebbCIr8dZeuvBl&7!)>#sc`SUrbPm1pMli}pN=s#PMzWF6B at br=Lq9w;GQA2an
z-nDg>aRM}^?EcFmnnNo!UHMwHmBMJh at 22f1{IEGDNjTZ#Qz%^^1p-^teOXd536VsG
zT4B(F^twgG%QX|s-dt^3vL>xknzgCIaJ$@xXv(3pxq{0zzT2`z10^pVuhH?n<OAt<
zN+l!ri6?p&ql;uV7RmFD*P_H&YlmCN`L0ULoX~x1O*y%YB40CMZDx&cTWX1XLCwa#
zmy|Ug7XJ;~d=%(dneCbC0!_FicIWN4ryZ;+SI&ANwCvC8T!{)n2(eotT5TEz at l2uW
z*17U81e6NALf|mydyJIs&<;1khC#Ss^yLJS$~PIwbZp1;uXXxK?c9$^peamLaFz4L
zndGqr*g$A=_nz<Bv9Q59FM2K1ZBc*RKYS5LdE5X6In$V>_D)w>(4+xO;z{nYW|LVW
z;<5PUX26I1IZCHM5qM50i4y$+NN8v2kw)&aryq|rw-yx&g6$o>sa)O7#NJ{ivsMjg
z$9I6&gI?CQa)e2yS@^uH2-Y~4UDl=_B&Up_BuEL6Uv{WU2b|k-#=>h-yBL#snZePn
zjY>>h8(EfA)afKR-Dug#4ussa6JRVLL&74BToA1YaoOz?qI1+IE+9|J>FmvFvyXb7
z**`_Wl0P_~?X0x$`e-l*mpqZ0V+7<px9oEYg!Y#A-$`0(I2m$^)T)MxRm}okcSck?
zhJ%_ngm^h-^bUU-vFZMOpYb2 at W%Hh%3s*!o%FbMmzB}1CAZ1JZ+LX at qm5JJ3-77sj
za(Z@!*7BM{taRxo3foMyyto0GPg0LwYsk&kK-lOe$XbGgY0>hc!?{(zt3o9+QnLS2
z_J%33G-hZ0b4)NrPyPEqSY~gW<k#)8=TgvR`myY8vXK#fm~9>bgP4I9ieilZb^i09
z3;t?j%pHEq9 at An!EvhxFOS>$?oQYF7?LD0{B3&+c>I}r~(i$!KvuRryy%{CLaKfC&
zv!d>`(ycj*-JGf-=Y}NgIpe)3R3!wu>;IeW82{7ir_t^TKiI5El at j~ApR#isayAJV
zy%A<X&~O&$)h};K(yhO1hOLg;HWblg?OCsgobEYq=Ft%}F2&tqUjL&oBb#w8RDX|P
z;a_svqjDszP36a^hp+kvZyy^TgKibcCKeNCKvT}wYyNv)oOikQCuS6Jyf`cd|L at gc
z>C*#aEP)k}GiVl+gb-Snnp`FYmkZkg-3VxG+S>14Gp2&1+mmhk-p0ogw_&M)R)(wZ
zlQj$SZl}D=rx5Ped-pJ*v-4?cDZduQ0Mw$^QCu6>avK`Dw!s(;2 at yvhM6W$LW+D7?
zw&D7<fxiCb=s(L-bN?Ek{=-*+uNu^tb0?nrd53q{Y9R81HKOshK?b)pPT{>=rwd+!
zt;p5E0HT*0zq&|GK&}9FE|i)me;W)FUV;V6c?9YrB|$m*et{ZAyzTVY5j7?FrhNsg
zDcqCmQG?UV*sR at xtwJ=`H at K|K+JCP+>iZITqtP9$+ADLnYA?v#;yyDny&r_VfQ7uq
zj9q+*FMkC$4c`ER!8_>Re$TV_LlYu;cdY4>xuby at NkGpD6jKCj$;+Ukwl4y&)p98y
zwx8RdUy9y$)&<W)q{@%8hw?K<zLL5Eq!rJ1tVYTBKu1ictV!QplXa#2Cz(@e#}<04
zJzc8VE{w}}DYZNK<@S7vc<}+FU19yS54lM|`$OFYFPfxem7kMY?Pz4Wa=N5-L&=Q-
z!mf==p6$HpW@~eERaJKWIR0d2f6wsBml37~5*%k5aEYSMh~1i$U~Xv#Ee7xE*%=B2
ziXU2IGCZ%TqQg#q{gSBD=BH?&+~VBh^?E=;9<GWT6VP<=^(`&hn4m*&q~(?osYR+F
ze>1xnk}C`mrF)C^=KG2h&3GSUVBEWrx7{_8xGQh*eqAx#y;O8i5flVmCQT_5xHXWX
z%Ug*=jT{C6Q^McypKZS!U9Nyf?kK*X^jN0EJqufnj~&~>%iV6nUfT0)e;Eiqm5N7-
zRbk%%?Ga_$w$V$ZV-$}-d+BEeUPNjhY95%11D4y-(xVTWyzc=}$;rRk5HD4LjVFI#
z5(9p1m?j%%Y7t~heA{`pKHFtwoc9m_;B3wZGHoH8ksul&8Kf!vvmUg}a3s(4SRN>p
zp!!f5fN$0WqFlDVZj{SrS`1t^(wLE%38A{@KJcvJ!m at 9=TY)GwdynQWy5?chV|A~)
ze4le9uvOqm1KfFj5hT4N((B=wb<kc09Qj+Ypg;)&^O$W&`@jCChlb7vqmW-&Usu!6
zHM<`Rlo4S;gRVZ*LpGT{-r~N3Z*X5h5a8mycnOR&cp`K at +X7_uyd`TC1zNQY&$qZ!
z(QOX97hZuOIch^IiW%(|9AgeOU<EH3^C+}k!^hP<Z4#b~+l}fXkjCU*cevYzhOpKb
zr4w<*m(b53s()OBhD*|Nuh7PGw at P%7Z1Kmz;$CTQyU@!mIzk7#L;DZG;1a2o9|p+9
z1VyRl*44IGVpaz=U!AajRP=H)OSF3q at _j5CE#Y*LY8(!henpD^h-!Lox6e)1%!-=$
zP7oqa0-qe?Z$d}nmw~Y1-J_3dsXb-%lCAY+XR>|PxF$aPyEmPdp6*hkdtL$}H6x*K
z#A0Fpb2_>&R`W;BcmL->leL{~G0qOEU`*@<!3`Q>zu5WwxrOgA<sQ*{b+A=|@;SqK
z=@E<7#*F~8^Bc@<J}*9jJzSKOA4BX7c{=zph-?|!XNgDB9g?=rPN<3+SXH<qB29C#
z%d{JrHT|3NX=3xUwuQM4kHSOj at XL=#OP+gx*i+h%2M}%VJ-VsEyCxRpoCtLF-LN(R
zLEE(KkJdC?bK#UbT8xTY*ERf at eA+K|w>7mLpp7jo3Z{+c#p`eR3piVop~E+xl{1gb
z-h at B;j7t|G7|lzW{MQ7R3s4)$%HO&(szG8;I{UK236>v=-tFv#q{(}e;Vhl&6oSn$
z`2f5&o+r9326uXg4%;Su=~DI`T;lDo4}B6Tu%q0ZrfXm;!o!B%H#Evaw~HpF<)(W|
zvefk7*LP~s?NhP<acU9K571lh=$s3^`(Xev{ilYhuZt_3Qsd>mk~p;sT5k%Tq$PEZ
z5*rC+RWDYhQO!-0Xnos9s5<BUq3H}JJBJs4;jc}+rr$o!|IrLN9B!yRSttA2wBuCk
zbc^g%?%(G+&Tb++4tyT#`J;u7SEhp`=>4aharJ;lR#-rXLl5rVk(-q7zB`@Ly<Cp(
zYYPw6J$bZzz`|)LKJ{ky<ZZLw4 at IofA!|Xh-!_@!xbDd)5`IYNqs%EB;e9&c&0N>~
z?fdgoMo}kf53 at v#q)O`Hq(AFM;)z2z-y@{bW!LU{g%o972@%_PB32Orw1kBI(Xm0E
zI&Y-Z0$PGbnPm~`FSQWbP<(4me*ZoC_|w5>f`Zxc)ONF?WcNgri$Rb4BD|``-uw^U
zBRe(%52UM5O~qQDQYS^h;q7;gireJvjnCK4LsqN*(@AL_OM^<Mlb#?PL)mHdB5?<G
z6~dMtGG5bEvL&<LC6o>Fc%73c9Lhf{2=-~errMi6aP)}K^EkTA at WkGqDL`SD_gWHd
zKNuooZM7CL*nFI+w`IyUzur)Oi+O}4j~TUzoVJ*CuwWxaeD71fN(+cSDOXBJC^|{A
zuNs3M%vRFAbY(&EmyRhLD3P8zqH at i?JB}F7XC~);Z1Mnpn?=;td|}FN^Br8*z$7h(
zf7{Q>0yFK}WD`LSrKeQb<RtuwQ2kp1klQ`kjns#$pd5Po9y#5eud$KHeZUO*3=n<K
zdyx3lbu2q2uxE&CUkrplJE0<ItuYO5$nIYoh~pM8t_8qsD6j03x0tU%C)edzw%&z2
zV(Cy5{bWnHprj-IcUjWFaux}f8{nX^Zu!rs$7AJmdO9RouV2hf89Y?;D|j`@+wGZl
z?S-8t7c+(Z$IlFdi>gE-?l_W6nVxi={r>tH2i-V3tmt?QkN|d}{9UjR8x;Y6Q5N)i
z$h|1o2{<4(PVj-cK#k7_?$%}<NYV{LN6M}X+g9Rbf2FOn=mgs_n%w?ud5v#K{Cl1B
zg(yiv{;`x~oZUVoP$2`PUhbHOS at NRmZxT_^;$J^4ikZ%)*$mX4N$#A?$xQdUJ-IK!
zz_zbcwAs~flG%M*WSjU81HuekKNvr1<8PjRR{yLst at 9?z<o;5OQb at 8Xy{G${ZeG?z
zqv76dG4oM#MsHi7bb)_SnQ}N*WPirmFKYQvUgyZb*-ygqfl#1vzGzx6A9C?L)b)@Q
z1myWOKTuyN%O4K=nl%t5{-P?d&fenQXAWl-xD1WgRIy3+|0X|Vd!T8G1^dbxp3QXw
z+%xS-!wq8oRo_?BrohWnC5LW8gEa59pG(w`?Bc}6Iyihe>$StT(ZaHaX!egJzB~1j
zUz@$@%dc4nRZ`Cb-&$v&J?x)PMJiK>@gIvbXO8uoqF)95l#LCyW2_YsG6;I1=|ILt
z)<N-kt&GAdN$bMboO)Fx*$YGVR-BKDmR;9fC?Kl|p1|3dLQYAZIItFNvhdjtedz&e
zo^X0LjJTqjswowc>M;s;WtZ^I^<up{6FMF(Uc!IQ?NTj-93Om|o^G%C4m_H(Urukv
zF|25-18rFw8nb%Kk77fpC#Zi;9x`AFFNm^+%2koPzGv}G57W|=zENC04R;9m8=|O(
z&OmaWLhw#{8u{>?gVbIsIi2{CLJMoU at evIlwy8%a#C98whK&p7b)?$XWC~!o;@r&k
z1A(5h1)DH$`E$g>U5SFC!3#Dg1K<V|C-%%mh)HW at uUp~C&Zo32bjQxAI(qLDG#iKF
zKQJpK2Y3Otd$KZ0ar8eI4A4_kI;-{2=mf(`6HNynHzv4lh{tDSXMRR|)msSez!Zht
zSM&s}R)XG9D64cXxW3j+6yjfDeEmeAbc2H*SA_m~J$p65=2)glg6VmYCdioV-;U-0
zt~zWIslDM6P=9CFb?a}(D<oZ9HoT${cmeC|I8YoEveGmKkSANo_L$wa%bA1FmLO={
z4-bMG7GkAjhLiI$I?bW}R5cV2DmO2#WzI^@XfYNcMbN3^<yk!EDcbI!jC`tM>3q6@
zGt&<D3<m)(Nx&GTE6qI##cG&XZ;oYuwcV&WSRYLA;+n_3>+zlQDLaeKKd<~_5faV?
zgf|?44u%v6`Ihn?C(V(LJeWnu|JeZNMW=w(3LWCfD6%16fDIqOEdDDHLpNLD={2qs
zD~o8Wy6wUyux=j=FVeUxYqFx6?q-vB!fr(oii5^V0eUPFv8+{Xz>yWDu}QMW-`+91
z at 1=@BYY0V+;0_Y at szJY$k|5`K0b`?!X>uqxe-NKpnQZks&-5EJku&F4r?F%*`x|ms
zgWq-{ed1k8a{v7SAe2A$LVd(pAdI9%D7Q3Ex)S>Dil)Cai+qhT-nQ19dgT20gCg)l
z8uSGFj=9Ooze{7x#th~PxK~8~IpeG%z{xBlwm8*TuoDt{RfIq82aFfRRW69wf1EbU
zC}4=3*9F~-+__|ao-&`Iu^^{gxfswRP7E4<g8Nx~14K28$eWVhR11{^X1gU#0X=J+
zJU}VqM`wSfqzZ@?ioK<*lek0BBn38zZoQa!l=vyBY#_qnx6qz2;{2kK9c^Uj7-3EK
z{D9!or!C&wS}%A6fMudbky$dIU30z2K54woEZ58%wvIL>Okp_1jTRbiCa|6p2shoe
zk{)p~bJf1j8d^h{?A at MMojRgilV{@5BoBBuc^UaJ<>fa9nbRY_`~h-#mzSGt!8w{V
z4;4&<z0;|bYo0sVNT0}hrr}iThRzR#n6$eJ-Nq^W&Ms2Udbaa&5IN}0(hl$QQi0jK
z(fl<-EBgv9+qhTk8?RBwSL1+NW%^r&Dic$6>aY3eOfQPOpiKLraDo(~T`JI~QxZVj
zt1F_q4xQ{ao_AlAi-CPH at QZ(0zzy1X++hA+*&q}Mcl=m;auY9}f*HF28U;>6*Y5tF
z(T=7=fZwIB;*X@|2X1pJU#k!3Q-#E at n8CfafPfM3Jw1q|QbJu~)LBIU6>=eRJSl80
zEeZOTqj at a6k%!m!i!^$FF4Trl{g;Dlw|)EG-j^?`W~@O2Z`->lsu2HV>8hMOw15v;
zah(a22S_H~94HgaHn+`zh~lk}MTaQW+5eFdg}XntStJa#p<WTC1!;98(<2{ge{HZ5
zqo^yiZi8$<msk9Z08rmzI$G3Yd}aXrY|1gHl*B`&$gRo1=mwrh>l-cmcF-?ign8*8
z|3yagWVKUp6x7m|KSFNX+3S=KOujPQ+XF3PNo~cn+&s<p9^n{}#H0bj+I4pFSTfwb
zpeu9^QvRN9JxU79&u9+ythw&6trH^y{O$2g%Hr+hCbF%*#r=k?C6Dn5A8!nOZ1OY3
zddsqMU!4pHVFCwNExB7=M^9bz_S$^#*z+i3uLCA>m$IhKd1V(07CdO$=V}I>1b^m4
zxc_|qJ;VPvU7UM=aQLUUso^#Rq^RD;(+#_XA0IjQ0Qd}WZH>b2cG7w`S at sY49G};Z
z?2Z?%U*I^Oh^?Sbd~JVHMeV!%YtQ|W>wk=(9B9Ij4vHkgevuoXYPDmhda15XwpC_*
zfblp~53=PHUt)QrWB9=fa1E+~0maEhC<2t$c%=j)70Fq13XxD7wvt`?x71C0o(bx^
zRN>g~taqb{!vSIkvCezT8bJ;D at 5IgIWnXC=3!;Hty*}ec{3r1w2Vm5`d$y3&n_iaw
zM(#C-u8>L#24o61DS<ZLf+==McSm1`YtnNNu3Yt#efztA@&f7jKFy8ogWcME?;cKF
z&n<p~EIHZeht4R_NauJbs`<A!b+SllaOPio9cR^>F44=1h{3mq)qJ7%^+9*7-Kkne
zsy>=TgX>_a-Ghc!C3&o08tfxA_+?mgNw6w~aP`=}D|_~}5fd-vkA9WJ4)M>>nb*Sl
zw%-6x3a$l(k=Q2b#|CdF2R9Kbsl8Lf%|#+|)10H`X&q at bmcgrNm7%s54tV^#(C8Y@
zLCCg9_LDz`&X2Smp(nGg#+ydY)O^VqT;TF$iNe1lhb4-iHz(;-X*Vv>{giJRWGy~0
zYK9GOCXp&>88mhc-hqBoS>Wd`%PMoUdJ<XS%rD-u^r1+TW4%O?yGn{p2t2GIg$OY?
z=K?&Jn+m7;A`;rZJFV>?bq?$x6qX7W{?-|Mi(i;M^x#xDYkD*2jjpukimi>@-}-*N
z4=kWcPb$X<G+aa=txLOe$jfX`-pC5;+Xrd3o;1%L70ES)<`bT_bHjwSpz@$~zv+W)
ze#JKf-i*`TWR{Q?jh>J5ubR0<8cccLR`Kf7P0;UpV<0?T+2fcDKb at Ghmg<FKzzrH<
zz~(1Bj=m4lFCay{6nu+KS!q3pW2jb0j&2(r{QiATgSa1B#uP%84<22E6(sqDv){JS
zo*OC at +Dja`vCOEM>FMSOQ$fIHV?c{QTyQmgE8fjy&f`Qi0YiT$`NN6C-=3=4MQ9b_
zyhJ!vGwqj$Qx8x2vC?z`euYNp{K!8MA}F{4<F!+kJna-3ncdGHd87UF=3u|oU|%A9
zVaJ9C%<~@H9r(<QOcpMmOEfl$NNBCK%G$8E7nFjg2SPvpk*e%Q%Tqq>c%td~`W6+|
zl48Q`spI4=sFo_H9$%f&^q+mo#p|4=-b1312Z at F`D~(Peul=;?Z!1pr+2s_%+Q8}^
zU{w<~gyLypsBMf^$VCxOyVhRq+0k08c3#rusRPOZ_}?t@(-=KLP#JghI7(ixH%I8k
zIkm_XTLz)$MbKO&HDKP<1OJ3QipP{C8XIJgh6v|Df{2itHgM!(;ciRb4D~{RVZ~}V
z8}=22*}437S#+cNtd}Q;{5<yxj+Z;|tsx#H`%fwh7%v)eEFq_33qxe5hk(#;wlv(<
zG6;e%kg{c(dt<TGuOmIS{Ie;o{MV at Fko>THQlkW{rshR|!&z$Ios at aYa*2IjokH21
zKhR48ffaVpciF)+Z7H5U)u}uHg)u1Ec&AKcH=5xvZuyQLS^XvYS3Nxl57A=BiZD#x
zC4Sd|*5!_m*<+M+ulgo$Ox~3box^?hM>xLenLv7Mf0F|3Vz;{55`PVccmX|1r{5N(
zqA^<AuDN-o!Q=VW#l at E(0P<H7?2?zyqP0pK!fMDr5Hl8O!H<9UZaYCt0u6~df;*6{
z$svvBFLJlIqre~<kIOMJt)XLpg1C5qn$WBhs9lLBBC#MHA&=qE>IU39d_AOpDBg^=
zUjO)eHMrBeQywcQ;z(y_KS19g%Ya{yfGk5#FH{4nL4XmfIp}>mSGw*Us!<~c`kIxY
zO%-0uYSW<5Ai%)mUOXGWlFrtr(`3%=wx4n3(VC7|cf^8LPK5<d7cu*}tYx7hTnC?n
zQIN}^oE1Ow{pmy6xXkEjpkfR(-Pg&qb-2G>z7`Z(XRmX+R274B>fp$~=aV^0_-$lf
zfLZy at lkFQQuKt-X1N7=z*Au1Afl(i9)}d28m=`PZ$+Y~Ia^s409wmX2aBXzr%?6<A
z%--Hf-i+)!k+g^Ah8+dfi1?863Gh{eZrBL!KbJT{{YELF;!HuMu751qJ>^<o6?Mf^
z2uRT7j4-EsALAe3<*sB4FF?Qh^|sdaphqKLA$qrd?Tp3a7)48^m(Yxbk?Ct&HBasE
z!b7PO798fQ+x&C%*tk_+ufaDw2|qh0lZxrKxv#ER$%_QAGRnwJ?Jli8xLPhS)Up|B
z0Vw{9uAm%ghmXOV5*6s|mk+Cq{Bkkz+FvB}-^CY2wab2OC}|6vv(ek3A5>1FRv_PH
zG2boC0{<?olzi__kD2kGhF>#~C#ewJO^<O=B at XxsI0yD>exE{hPhfm>b4X_2LVr#p
zTYs|=LMrNLo*90%7 at F)|+DZN2DKdG$TB;QhUAi~9sg6q2OhAfSOlF6WL0RtddmVR~
zPZ23%;qkj3Z8pM*{Po|2q+TUK*JWlc*>y{c`jNt!t{*p`)cj}6%y+|g-@=ktSnK$&
z|K_M%om=<rMh3o6({Y628WB&R%7{n*uC2e3IXz&-47?~>e?X`dF<2=vydW48cGXU(
zzs0*lNDEDhrAI$yo6c5Nl#zvQL-SrW-95dVyzCH$MVol%<|#9iJoF_s2Pb|~dCO_q
zu%WOxcjrUx$!1fm#l78!H&Y0)NI%M<{IGqYfGD_jAqbT#SCy{~XHCAN;)A1~8}>MJ
z%f|1r!&aLfoy_tesR%Fv?eLGRg%s(&vV`cE73$(?9UgP1H&*Gd((;=Xfq|YhWh7H(
z2nPa+AyAc&ri=tLg{}E%2lVnNJ%ul)q3#uLfA}xy7G6_X$-pnKBzT^UQZMF&jSM at 6
zW#QK6N3~v_GCUb+3B-gY1xs?hYCJh3a-AsN$hB9wgSs|LyvmFsa9U~U&}t)fcBL;~
z-FVvuv!l!d(&_uzKu!S7e=fBgP5`2?goYU<?&=gQ7yftxKyZUZCD9{}T(<R^fsp_j
zsxqXmLm-b%=jX2E;^v at HFu~>Lud4D1NOqy%RS&tGZtz!~yrNc;_(J}(194lNnivfq
z?D at 5{1X&82LxVj8J4g>qhoWsvL1Pf)q1HN`G5LGf at w=9(HO8wz1*XSMuyZU(Haj{f
z5{5`e^Qt5}r6aA at g7U8E8R>$IJXCS!dwzE{Nfosa6y#);PQsR3oSnL>tsj~@XGfMh
zL0SK5`497;j!&xK%Mzu>%zkL~wkyfu#yiyzOm}s%W7=L&8MET8IOqw=ZISL$DfaB%
z?^8?pa-9u0KNh;l0{enDfbGnF+H7nEYuezyjl~ucsOd4eS;_U at WR;RG at q@US8M#|T
zJu*!Jdde at F&P at JTI?vd9MV;kCT_Tm&t}By6R{`ln^2&ralCw9r%t>XTS-ZC5_c+sn
zHY-z`nfOr$e_CPE_C%`%O>K;#6|`KE+?yp_6b%NEaxm;@Fl6HS?K~#imC)r?cV<1S
z41RLyu9pEt%5+7o8-UQ&wjOyi-;FD#qjje at ExffEc%#RLIN8 at imK~3Yi78+<AWro+
zAy->pDLJbD86uq5RcM40p;trhEq>q0kI9pm<u7)GSSP at nR%*P;v_E^!87Hru*m#UA
zlG>Ts&+1RTiTagN1;pudgoM-+rtY at -`T}y@@fYbt;|=(P%7L>AEhr{pqx5<Og%GWw
zC}CXl42i;d-MH(w3?anRhJN46ozyBiWLS5kh|6vYAHNJV7H~(4FN!E2QgNNE-la(@
zBr66Q{hjI<6G{wu3+3M{^7l66JPnz+_ufaJ_DJv<gkkq|#-UQ=gHZt_r9 at J*Q7%;H
z(I04H$itC@;(g);0<u>ezK8%ai2g86I_Q%H^k6C?61P9s)7s7+20=i+$xVEuk!$=u
zjx=G;L_<{5BAusNQX$PB-D4TrZXA^>rD!mc#t=CyD>lt1wbEC4f=(7FALqVOJwZ##
zJ`g`K{y(~jB^juSin at C9UI49PS^+9u<DV4JQw?O4_$unQ>%?^wXmHZiRB|zAVpHfP
zzEeTVM)4Vg_L>#M*jMtUaHGuw0ga0M?xH+XKcW}#r{CLIjNZuK$7U49FGU|8)xgBT
z*lx!AdT#CKjzN6q92uo;&`zVzfhuN;yx9!m-ZO#JF~g^%mt4>o%<&7AjC;Wv7pz3Y
z_bed}Ng>mog#R`@CKi21Jxep5rB(pkvrW)6^keth%$Ely+zb8>epu81u$^I#ub{~K
z|1}acF8OD>L!bd^yI|+P#|z39`aU&lF#x#CzB%j2W|Np7rVDs-V*_pSApC!D6|DK;
z*XTKn{wKFAc&4+5AWUHPkd&X3vse6oE}8uyum9I5v*)h-=tWQU|Gs24YJqPun}|_l
Y_NiTO$owlp0si~N_RzlEJ#H8N4`X)C+yDRo

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded
new file mode 100644
index 000000000000000..4ca8ac3055387d2
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded
@@ -0,0 +1,2471 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 665,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 55,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 120
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 230,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 66",
+      "size": {
+        "h": 45,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 160
+      }
+    },
+    {
+      "loc": {
+        "x": 55,
+        "y": 180
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 365,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 305,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 70",
+      "size": {
+        "h": 60,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  template <class U>\n  struct Inner;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 40,
+        "y": 575
+      },
+      "name": "Source Code pt. 1",
+      "size": {
+        "h": 115,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 490,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 120,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 530,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 25",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 530,
+        "y": 290
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 28",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 705,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 75",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "loc": {
+        "x": 490,
+        "y": 145
+      },
+      "name": "23",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 23",
+      "size": {
+        "h": 545,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 530,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 29",
+      "size": {
+        "h": 140,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 825,
+        "y": 510
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 31",
+      "size": {
+        "h": 90,
+        "w": 110
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 825,
+        "y": 605
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 34",
+      "size": {
+        "h": 85,
+        "w": 110
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 95,
+        "y": 385
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 48",
+      "size": {
+        "h": 160,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 530,
+        "y": 385
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 78",
+      "size": {
+        "h": 145,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 390,
+        "y": 365
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 56",
+      "size": {
+        "h": 85,
+        "w": 85
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 390,
+        "y": 455
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 57",
+      "size": {
+        "h": 90,
+        "w": 85
+      }
+    },
+    {
+      "attributes": "template <class T>\ntemplate <class V>\nstruct Outer<T>::Inner<V*> {\n  T t;\n  V *u;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 165,
+        "y": 575
+      },
+      "name": "Source Code pt. 2",
+      "size": {
+        "h": 115,
+        "w": 165
+      }
+    },
+    {
+      "attributes": "Outer<int>::Inner<float*> i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 330,
+        "y": 575
+      },
+      "name": "Source Code pt. 3",
+      "size": {
+        "h": 115,
+        "w": 155
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 33": {"syntax": "\"int\""},
+    "BuiltinType 37": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 94": {"syntax": "\"void\""},
+    "CXXConstructExpr 63": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 59"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 38": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 39"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 79"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 40"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 38"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 38"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 40": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner<float *> &)",
+        "ptr": "FunctionProtoType 80"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 45"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 41"},
+      "RD::First": {"ptr": "CXXConstructorDecl 40"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 40"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 45": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner<float *> &&)",
+        "ptr": "FunctionProtoType 82"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 46"},
+      "RD::First": {"ptr": "CXXConstructorDecl 45"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 45"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pspec.cc:5:14, line:8:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 69"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 68"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 68"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 19"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 72"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 24": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 25"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 24"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 24"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 25"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:7:10",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "Inner<U>",
+        "ptr": "InjectedClassNameType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 30": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 31"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 30"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 30"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 55": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 56"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 55"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 55"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "InjectedClassNameType 84"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 64": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 65": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 66"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 70"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "ClassTemplateDecl 19"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 25": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 75"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:7:10",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 26"},
+      "RD::First": {"ptr": "ClassTemplateDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 25"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pspec.cc:6:3",
+      "TdD": {"ptr": "CXXRecordDecl 28"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 66": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 88"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 70": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 89"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateDecl::Common 75": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "InstantiatedFromMember": {"ptr": "ClassTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "associated decl": {"ptr": "ClassTemplateDecl 25"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplatePartialSpecializationDecl 48": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pspec.cc:12:28, line:15:1>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 85"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-cont-ct-pspec.cc:10:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-pspec.cc:12:18, col:26>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 55"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 57"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "VarDecl 58"},
+      "ODRHash": "49673569",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 49"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 19"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pspec.cc:11:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pspec.cc:11:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pspec.cc:11:1",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-1-0 *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 86"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "InjectedClassNameType 84"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 19"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "\"Outer<T>::\" at <in/src/ct-cont-ct-pspec.cc:12:8, col:16>",
+      "q->TemplParamLists[0]": "\"template <class T>\"",
+      "specdThisLevel": 0
+    },
+    "ClassTemplatePartialSpecializationDecl 78": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "null"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "<invalid loc>",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"Inner<V *>\", <in/src/ct-cont-ct-pspec.cc:12:18, col:26>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:12:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "1861593",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 93"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 25"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class V>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ct-pspec.cc:11:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ct-pspec.cc:11:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ct-pspec.cc:11:1",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 92"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 91"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 25"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "0",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-ct-pspec.cc:12:8, col:16>",
+      "specdThisLevel": 0
+    },
+    "ClassTemplateSpecializationDecl 23": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pspec.cc:5:14, line:8:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 74"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 24"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 25"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-ct-pspec.cc:17:1",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateSpecializationDecl 29": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ct-pspec.cc:12:28, line:15:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 77"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 30"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 45"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:12:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "20504916",
+      "PointOfInstantiation": "in/src/ct-cont-ct-pspec.cc:17:27",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.SPS->PartialSpecialization": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "ST.SPS->TemplateArgs": "\"<float>\"",
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<float *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "float *",
+        "ptr": "PointerType 62"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 25"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 39": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 69": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 74": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 77": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "DefinitionData 85": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 43": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "ElaboratedType 59": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "Inner<float *>",
+        "ptr": "TemplateSpecializationType 61"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"Outer<int>::Inner<float *>\""
+    },
+    "FieldDecl 31": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 32"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:13:5",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 34"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ct-pspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 34": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float *",
+        "ptr": "PointerType 35"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:14:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 38"},
+      "TInfo": "Pointer(\"float *\", <in/src/ct-cont-ct-pspec.cc:14:3, col:5>, SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ct-pspec.cc:14:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 56": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:13:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:13:5",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 57"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ct-pspec.cc:13:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 57": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "V *",
+        "ptr": "PointerType 51"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:14:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:14:6",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"V *\", <in/src/ct-cont-ct-pspec.cc:14:3, col:5>, TemplateTypeParm(\"V\", <in/src/ct-cont-ct-pspec.cc:14:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 79": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 80": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner<float *> &)",
+        "ptr": "FunctionProtoType 95"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 42"
+      },
+      "syntax": "\"void (const Inner<float *> &)\""
+    },
+    "FunctionProtoType 82": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner<float *> &&)",
+        "ptr": "FunctionProtoType 96"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 47"
+      },
+      "syntax": "\"void (Inner<float *> &&)\""
+    },
+    "FunctionProtoType 95": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 81"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner<float *> &)\""
+    },
+    "FunctionProtoType 96": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 94"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 83"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner<float *> &&)\""
+    },
+    "InjectedClassNameType 68": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 88"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "InjectedClassNameType 72": {
+      "Decl": {"ptr": "CXXRecordDecl 22"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 89"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 76": {
+      "Decl": {"ptr": "CXXRecordDecl 28"},
+      "InjectedType": {
+        "preview": "Inner<U>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "InjectedClassNameType 84": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 97"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "InjectedClassNameType 91": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "InjectedType": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "LValueReferenceType 42": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner<float *> &",
+        "ptr": "LValueReferenceType 81"
+      },
+      "PointeeType": {
+        "preview": "const Inner<float *>",
+        "ptr": "ElaboratedType 43"
+      },
+      "syntax": "\"const Inner<float *> &\""
+    },
+    "LValueReferenceType 81": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"const struct Outer<int>::Inner<float *> &\""
+    },
+    "ParmVarDecl 41": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 40"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner<float *> &",
+        "ptr": "LValueReferenceType 42"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LDC": {"ptr": "CXXConstructorDecl 40"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 46": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 45"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner<float *> &&",
+        "ptr": "RValueReferenceType 47"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "LDC": {"ptr": "CXXConstructorDecl 45"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:12:18",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 35": {
+      "Canon": {
+        "preview": "float *",
+        "ptr": "PointerType 62"
+      },
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 51": {
+      "Canon": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 86"
+      },
+      "PointeeType": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 50"
+      },
+      "syntax": "\"V *\""
+    },
+    "PointerType 62": {
+      "PointeeType": {
+        "preview": "float",
+        "ptr": "BuiltinType 37"
+      },
+      "syntax": "\"float *\""
+    },
+    "PointerType 86": {
+      "PointeeType": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 71"
+      },
+      "syntax": "\"type-parameter-1-0 *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "PointerType 92": {
+      "PointeeType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "syntax": "\"type-parameter-0-0 *\""
+    },
+    "RValueReferenceType 47": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *> &&",
+        "ptr": "RValueReferenceType 83"
+      },
+      "PointeeType": {
+        "preview": "Inner<float *>",
+        "ptr": "ElaboratedType 43"
+      },
+      "syntax": "\"Inner<float *> &&\""
+    },
+    "RValueReferenceType 83": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"struct Outer<int>::Inner<float *> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 65"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 44": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "syntax": "\"struct Outer<int>::Inner<float *>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 64"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 73": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "SubstTemplateTypeParmType 32": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 23"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 36": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 29"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 37"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 37"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 37"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 100": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 92"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 102": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 86"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 103": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 92"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "syntax": "\"Inner<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 54": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 60": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 33"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 73"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 61": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"float *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "float *",
+        "ptr": "PointerType 62"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner<float *>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"Inner<float *>\""
+    },
+    "TemplateSpecializationType 87": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 88": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 87"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 89": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 98"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 98"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 90": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"U\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "syntax": "\"Inner<U>\""
+    },
+    "TemplateSpecializationType 97": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0 *",
+        "ptr": "PointerType 86"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0 *>",
+        "ptr": "TemplateSpecializationType 102"
+      },
+      "syntax": "\"Inner<type-parameter-1-0 *>\""
+    },
+    "TemplateSpecializationType 98": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 19"},
+      "args[0]": "\"type-parameter-1-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 71"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-1-0>",
+        "ptr": "TemplateSpecializationType 98"
+      },
+      "syntax": "\"Inner<type-parameter-1-0>\""
+    },
+    "TemplateSpecializationType 99": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Inner",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 25"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "desugar()": {
+        "preview": "Inner<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 99"
+      },
+      "syntax": "\"Inner<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 26": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 28"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 27"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 49": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:11:17",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:11:11",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 50"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 52": {
+      "Access": "AS_public",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:10:17",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:10:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 93": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 78"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:11:17",
+      "LocStart": "in/src/ct-cont-ct-pspec.cc:11:11",
+      "Name": "\"V\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "V",
+        "ptr": "TemplateTypeParmType 101"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 101": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 93"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 71"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 27": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 26"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 50": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 71"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 49"},
+      "isParameterPack": "0",
+      "syntax": "\"V\""
+    },
+    "TemplateTypeParmType 53": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 67"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 52"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 67": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 71": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 58": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner<float *>",
+        "ptr": "ElaboratedType 59"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 63"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-ct-pspec.cc:17:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ct-pspec.cc:17:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner<float *>\", <in/src/ct-cont-ct-pspec.cc:17:1, col:25>, TemplateSpecialization(\"Inner<float *>\", <in/src/ct-cont-ct-pspec.cc:17:13, col:25>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->NumTemplParamLists",
+      "q->TemplParamLists[0]",
+      "q->TemplParamLists[1]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "Template",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]",
+      "getTemplateInstantiationPattern()",
+      "decl",
+      "ST.CTD"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ct-pspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Cmn",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "TdD",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "CTD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 465,
+        "y": 110
+      }],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [{
+        "x": 440,
+        "y": 80
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "TdD",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "Cmn",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 245,
+        "y": 160
+      }],
+      "end": {"entityRef": 4},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 815,
+        "y": 560
+      }],
+      "end": {"entityRef": 14},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 770,
+        "y": 530
+      }],
+      "end": {"entityRef": 18},
+      "label": "ST.SPS->PartialSpecialization",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 360,
+        "y": 355
+      }],
+      "end": {"entityRef": 17},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 335,
+          "y": 280
+        },
+        {
+          "x": 245,
+          "y": 280
+        }
+      ],
+      "end": {"entityRef": 4},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 770,
+          "y": 275
+        },
+        {
+          "x": 660,
+          "y": 275
+        }
+      ],
+      "end": {"entityRef": 10},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 780,
+        "y": 265
+      }],
+      "end": {"entityRef": 18},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 345,
+        "y": 280
+      }],
+      "end": {"entityRef": 17},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 245,
+        "y": 555
+      }],
+      "end": {"entityRef": 17},
+      "label": "getTemplateInstantiationPattern()",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "DC",
+      "start": {"entityRef": 20}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 704,
+    "w": 948
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ct-pspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1a3578af6db6613c724933ea6e887c1583ea705
GIT binary patch
literal 36749
zcmaHTbyQSQ*Z0g2B8}21U=Y$JJqUtGBO#3<FtoHZsDz{-As{e>)X)sgfQSN8Gk|~$
zCDJjVr1W<OeV%u%?_2LTf4E%tp0oEpd;fNxtFLvn)hI}rNkJeGh5CIJeGrHM2?9Yr
zk`Mz=@(C0MKp+-Pe}hL}%5E+$wys_v(DU~=ix{^_$%b=d^0}YNGL2c+*B=Kchlx8#
z<vaXjk)7}zq78c at 7H@QK`?|El*j`9`B-Mofn=3aIlYBbHBoqJK5jq>>^u8Z#SeWa1
zKDdXe_KZmmW);*mQwrYb5{ynh>#mGu&`drvUW^$Y at 2}s6?|Sc;nf+FGw+$>rru<mb
z5q}**mUTGbE`0B$@(GvMNss3fsbA<oDFv0Ql^>KQdQMs9mRytDY?T5IFxf{qvtz{1
z&+aRh0#ByOw-p0w3z~+sK!jXw%sA!OD__Dx<~*&aR?SwPj(+3Nb&hTOOb|k<8Mib@
zDCPDmnw$Wg1q$dTdB7F&0-j5^WtVtBOY^dm0V2)%T$?s-2*>&~te7_TJ);2^(SWd&
zKm=ruIjZ^Q;rZznZwBF9a+2$g`j)HtOa9@#cvAttlfYR|dxiSe)4q`oxAp{Ey5TJj
z!iI*h*_yK3zQhtb15<fV{QJwkVWWAmh6$CdF?>ZZ@@az{mD)WDcx at eLD_28)Zx4){
z-Wm}|BUu$X8dB$yYs_LJDl_bTsKhMBiww at P&P8 at r3Z0Mye!T9Q1x>8l+xz5JxBX$z
za=xf+>f?dlpT6*O9K)x<x^=%xVGOS at N9UYqvQ05LW-sAPpXhGADw12p-k=TS(r-j-
zCPrM6a!(*$IsaCeXiArOM*i#d=bN*ixAa`RJf>C**p4LizGw=25>(}7Cj6+laul$B
z$d76X2(i`ZFw`;^J<Kjii`@SlTkVsYb at l4hD_lm`{*Zzm%Aw+h0=ty-c`=job*#65
zA7W^kLrPGt>z<g$>e{z5&GHI!5<eA47HiG^_h*>3wH*;6>k at BHnH!<zE7KAzq;P#g
z2dO`T?{4SO3x4%H$l5d&v|o88!YI={6UX|;!RTRtn{Z%5S4!40Uq`{#6Ix$J1?8!!
z?@?MYPM at c@UWas=zYNKYc_Me_H|KIT;U~Co>V48YdrJvdxvYpP1pjKJJAZL5?{<oO
zL+LHiR~GN>S$!lrR(EGgciUXi^2&1 at kv6$Xvp%7>%#{vb1 at lq;w?A}TzU;Z_u5`ug
zIRBWxg&j=ZeUKJ&Gd6T&c4ni*<&RK$R!6N=w%B2rb=U9*WcG|*h`z1TDOGqLwM4^2
zj)C42=PxzQL-?l&QxjTKKc!}>vBF<rlMYEbce``knYW;wx-*(@`=4eDIhjFU&eWHa
z`;r{qQ}@z*bN5#F%*u}PdRzm~m0S~37Bvz7Zf!aa!B0)yS0ksp-crG3EWYo>kPgMU
zP8!Ue8+1Gr7ucr?uaZP+ekJIp3iSQ?d_K}Ik^I?RYNm#AFA7&B1yueY$tAOJ#~+F%
zdAtoV0#ZbL-|J^@n+y2_O?hiP{QY*NBY}<aW^cG?llvz!qNA_0>kAJoEI&Q^wkufl
zw2g;$A-Tr$L(en8R58yl^uY^*f#NQ&FRw5)$@qrJe)wV?;YBU{IpElqz5e#y4bBYi
z7hAd~cYcXD=TN^!`JVE!U)mDV`BbtlJ4evUobyv=hkCkc#gbgBJjYUb&M%g3Z_Kme
z1$C(JgY>n>PX^hloW?p2kNf6${odRXBXQUr`;xV(1M(MU-AoW%j^Y0$h53?ceFWv<
zvgjytV84CBE17Ck)a|wz$D&s5gifEUr`3CH+#NGX at F(a;i^yvg>Ii9~%B$||2|AQI
zKL+NMqEpvQF2C`89{B39>BP(2msJ!atFxfermGC=ghKs7Ik%qP+A_1JdDqF?tjcNG
zm|gSYqYk+?(~gqgXR35$%tp<@Q(?R07?+~D$n)T#ZGv6f7fZkO%eUyy2*t$6U*5Tv
zQOB#cf;D;m`&g03#+t?V;~yl^CduSyvk?F2u#`6M)13Tg+dJ2TrNK#7pW1gwRQ4Q2
zSDj=u$K8ooL(DJfes7AdO0Va<PQtzY`0)*wkU77`gIA?0agU6KJ|38J)Fp95iB?!p
zPi;{W3cIp$_uh+bVpN&Opa^U`bYdBJ)Kwy^zd;WO<V>FtaGrVHwP9OX`t>}SotI!u
zxH`uCL4Ymq)3Q)<RT08gj~91J-7M7N?`x}p&Iif$`eMvzqN{(a^Dpv{C<rZe8oqT2
z4_1YI<}9<YM#$c*<`(Os#eJc1Eq+)0w(}vThl0gUnC_Wt`r1M0$RF_A=l<WfuAZjV
zUyAx2m&*1+LW7o#ChUo#=d-W6&-#xPh|jw6!NH#vg09%zXuI->JghbU at +((Z#=9r_
zPFwf%D0JE3 at 5mQF^MOr4`a#{Di&s6vJP58$f?GPFM}p+8ittH(+M8J<%thff-=5SH
zeu>NtAR9ANa^Lp9M-u^#dK9*Sa_WxJed*7*)QeE}Of-1+<a54$U_wfU+$Fym;*s!3
z?adDTd=}q9`0swIA72fAgp(T%liesd`CehqQepQ(qoKxKWnEF|L7=wr=};i$@u~$i
z`<<EEtJn`$MK#`I)b>V7MdeWPzK;Y1+$Ba`UpGthHmJlXw0y8{Fj!3Ow{Jk&HYEGr
zUu0Jg*}sowF9}n704v6YmN8TIB>O^_Y6<*(psbgY2T1!4*>kWYzZqVVRCfE3EQ_1B
ze3z$wYyIo=CSmBcYxjTa-D&J^vqPFO)*MZ at MGWm&2l6m(t7k7Zlr7IK7X<emQ%lcQ
z|IBH9a7WhbiT$X}zF!|#W2e%_d%3TsDwp5HXH6*XUfL-2_;G8YCdzl}`lqEo_WQg?
zUw=pzi$x}Lhq9^=QU^U-Di4rqb66F4qZB2U_>lSmedf9ntO&s at KVlHhuV&&zA7)ei
zZ5u51_H^#JkD&Wf3561p;GA|q7zeL1$Q2=Pr0L6^C#QV=M^J_2)ym8E_jL+)sM=+H
zNxmyIDO`_k?$Ua(He1~oUQ4fNS>8$&*cwk&LGQ$(kx0lxFCuy}Pirw>)cE1;uMmb%
z&hIOhLuejWkV!D#9S_&aLdtkz?Ij*BXb7ao<VA4TkKyopoyJic1$VC!E*X at N`QDi2
zd;m&-hJb&kaz1`#^GUU;ORV2TrB6SqAy)p&V~2;<^S_&ZGrG!?_o)S>=-#;dBLZ{7
za!WAv3N($?Ro-TJ<kNKvH|iHIq>299QOIz{^#C>2mdcXhH#P^dnK{<j2-^}LHR8u!
z7Q~MqmDEw&p{_+$jJ`Jn$CoR*e_WL}`6yD)OgL&fuzFHOlR&$yXh~j>Ibd^b`psP)
z8z&Kr2i<M4ZKD at 7PmFGo(Jku>bi at p+(;#+|sre26ta2JW&ZuvB6UF at OA@%X#i-K-&
z$ritJQpUU0mYjEAyVS=X-entl9uUp*jaQuk>;3-Q at pzZ|<k`%v;}0Gd)V&*vPNb at A
z?nmm?-$vr!yqZ`liTWy>eZ at z9G3x8>ubdM%jZ!urpGZNCQb55x3!>#+J+{$1^wA%(
zX+8AbeUg?CTE3G)(53rFKcJ*gB!<J^J7-SgO55$`)zw<roO!xV>U%t`$`8XgM`hR(
zztOKS7?5uX+1S at l(WJP3x$U$#*t9#vqiwhpbo~cfmdf=siBU3$TyMUW$VB|;R!+i=
zbfqel%mynMz4o?>zhTK-jV|5Yq?2MzR|Ea4wJ|#dJPaD3uk*1#%&0Co5#H!l{zPxz
zC$i)&7kGFy{Xpl>cz#gGl3~#qlUH_(6RVJG_ba`r=q~o`2T~(ij_`JR*QkT7rAw^A
znN>GOxLlw4^L%=Igi?v3wf&_pzwM{7nD^tJ$Bzle{H;fsOrBFZT2AG$->k52SXG+&
z6r=oyUltpSMh%X!snCBGW?@t at vND#Ejk;YUY$zJFQiQai;Ifb-c*CZWX?i$?sY)_?
zZ{A($64ZG4Y5-B6wP<HtY9PDo$&K%(om#JK_ad!i2wyF|J^UDa-{4~*<CMwWd-W6{
zAj~S!fW)FlU%IPIh~iTgb-k{*p<e+tP7I_AGfy?GT;X at qt?w2)Yw6v)$^W{ST7$#N
z)}Q}QZkxeTeRJwAnZ}y!@Rp0o(Gw=)d*7Z&jOpF2tiIBp#hY8y%cJy;AI0+FyWEFw
zEJ~;h?x-UY^~IEot04-pDa|<>()y{H(vnRM(2-;RG#oQVv)RRZ=e4802akzeKkmxP
zm8N#K)<CU%nvR+3j@~Vl8r8u^mA#sr2TRTce2;=v|Co19*v$1;E|=$A<AF8sy($l@
zx)nA)UOtYapI{=K2AMpc(Qm?qRZRY#S1>FAzoqb1ej3jh at VU-#Mm37kja$XGAbo>E
ztYzYcalZWo+sGR4uu`$oM;pe*;6RTotCRjrJHs;5MSniX_ujRnOi|T&WBv5<iTLku
zj)WO2yZyrQ`j*S{YdhZaj#`ubPpDn(I}u8aUu%fGU&jfS5cw=^3DKS<Nz>Vs-e&xT
zP!ZX+(Ky5XSvVQ>lT`g7fr at 2_DpCHZlP8{W`U at 6w-eT3){pHts1legHIIQp%Crd?u
z(1NO2z5jst#6a+47=Or+dxY5y8(dG^&!?>&EsJW5GID~+qnDEy9`wCNOx at T?&DhJR
zPg{@rSo2(qNlKh;wsDB2S=rj7G*HvdP59=d&x0*N?&{Bi%$KaDUg&Us<2$z$xN13i
z{N$8Sl+gD)vE?0ivA4j$hW7$NxuyNBuvC;K+_ul2&q&S0EBlbuww%NEtBUU0J{ON6
zqtf24fQoLZCgJGF**%(Xq7?N$gmq<22$BZ^ad4Qc)hT1C==Glg9KpAd(<A)#Uc&dJ
zYqw)`CDZ+`fA1Ugf82 at mxDmNoK@-WGDO>phizD9F&;D6L*KD`ithy;cLr7?=+<6me
z6i)K#Ss9lk_4uTwE>v-r<mHR&6Jq>tj at GHZMD{<_X=<aLAGR|uTCW_`9b{u`OD#I7
zmP}N?%`85fH2W;&6Ku^UO~N+l_SU)zs<QV44W0D$O_{au5k9x-JDzZQuGs8(clcN$
zi-jz~(X5Zbb#XF$Xl0V9o2|6aaaSBsBKr*&ai)9owU)WgFh_huep+Rd*k<8uv`OYY
zAyuC~UB&%xtj;xw_F~$pbzNCWrcT=GAseXspQ$L-xO5)b24wDaI}KHzmOLvDA96g;
zYH2MvPmwDS--yiJfo_!ziGWL3EZ at o7)$;^?Qy8)!{o+ZIyUlXzZi$$GZi4K!=o?kn
zFC9P at Danlj6|T#lr?{(*s>c(a{t}eFiYyhEl})uOX`M3^)~9Eqc^Y!5EdoNc2%b`7
z!fh~4CQF at OQdA&WqB^wacp>|lzky?p#n1Jzmtf2ydxy2Ab`#yzWIFWbs*L5-P08G0
zEA&Xay-tCAj4n at p^UnM9td_)pMb3)4YTd2;8pX_T*wUNM`;po6N4I8 at 37x5vt8XKf
zRN7c%=XQJiNa#iU2qkkJ!k3|Y*T at qiH?2u*?^v=wHm8;Ju|PbGdq{LhRLo%hDqgBl
z!2`_2npD!&3e$G at arS#tbo*6VblB4C_iKjW%R7$c2IR4od^|bPP-_-N2=)DN3>x!`
zoC1x}C1BpzB4W-+h$svl4j at hrA%cG+NaCE}ySFv;K}S1qYwlWZvYhnJ^db?{h?gFi
z^hPJG@@3)IL>9=$JO(d}ysK_cTNrB03Vas{)AQ_=IFDqRO`d-;eq#AdPx5JLMvVf&
zbiyUCgaqf5`w+u0vk1<oO!4CWSM+Cc7>lh7dMw<X-h765ux)pxQkv9oT22==_*fss
zC#XHRY35=&MO~+wBSxEZ7*c)XL0QEY^2u9*9jP6XLmG~}{AS at 5)^wFrGasCH{CJ;8
zlgaQ;1lu_za6NVR=KIyJXY)yGZg3$YZa+-%UZd^Fz2empuO^+Kd#i=*842{pLmqLG
zUvmp)G2Tae at t(#;pWaTXdZt2RJZ+{KL$DrpUtLCDzU&}zCT!PTvv at R`Yp*AHr at i7a
zvvZLfUx|=g^#a&)_aV_$PUG(Z8&7tk&26n4-{qM%QD)~BM4YZpBHL at I9<c53nq^fx
zA;gZ1uxs=ZZgT|(BDa>h7s!db#dRILJ_>1(i+Aj+jA<~xb>Opam!SBLTw|;<wfpFy
zwrGg`-T333D9F(#yN1^o3|pLemGzTnS|fu|w40>c?2>NnGsQ`p$=N25vKEe)#gZ<<
zweQy&bk)O52`r6X&%4=egl-^C4JR{jxiXh?_u9sn6BZLX%d at 9K9LvKkX1`~JOoKz)
zG%<2^G=f{q?q_9OK|+4Ee=LFx{SvaYC!&OE4#DTy&eu(i-ap&Yw377p+I&vt6<whh
zb#i%{`SFUm-fuI1&g67UKC#OVDKUN6=tffUvL#J9^$BxzIwqRSCH57M`wbtYQM;G0
zdDUH!eN*kjIX-68m?~1D at 9iUN9`QjlWt*?HjhsY4gW`h;pE^$K{glDGp#-b6MA*9F
z^<jeL&)3HkXNs$8JdL#T4Ar0bdR`yy3~@~QE^+7j*lWU4n2;hrJT^;CKLu&r^;pNL
zKX>|-vSEg@)}oUpa)74WB5=9e*DUk10dt^xe9_Ot at 3sM7Y!_~~2VN4etJCl at QR=g!
zr~44DRx&VUrESclLlr?|s`*lnmG~@HOYKezok!6fI*++g=Gw%r>Z`{Q)f|J5R00|k
z7~(t4wujz|#qp+B7id=%c&3_Z8|ci+J#QRSddZ}jG$V8aCDAY~w9G$j|M+KEW_EaC
zKf!WlQBm-FvQ at RW*71~_&F#{cbt=x}KB|v?HI^K--ODHNNo6`)^_a8S{)%ns_qt)z
zIHpQ5UiP?AEAKnUnB9PVra;5QhN;BtvEkM`>LVI`!=?4u6i?>98`E+rg*V|fOJB9_
zCZYLLm39)lq!S)!2zghUR6nivU$T+Nz1D2xz;Mq!dB=A7R-l|8eaT8nB#o4IkL|-g
z4VtutdMm-6C!xlJA5s{Egzgp?kYH-&80?x>i{79k^d5&1i#Sbdm%yd2lJ-WuPHc3%
z$DORDu at s#8bt}?SLM^rVNsE3?``R;um9dHi)oXP%>kn#<8`o=7q~1f!keS2i^*cXI
z*sq(3YS8YZnT!`@f7UAaY)c<z-7^F{n`_16#WP1rA*a07L*`Y6MT!rE8f|gLQNyMh
z$?{=5h`>SYr?NG8#GUmcHNN3!BFOvP*A2BCLaq}t`tMWkvd at VgXRlv>Os^K`RH^%P
z at Y#K41EYimZ3*|4uCXh#qgb2Af$a$aUAYx+HzHDg<$Q>g&?*_;Uc<&Zua(Ut*B6fK
z?J+aw-qK8kshC-D8$Nbsi|eUme8MzlE?S1!auwf}Q(X{$!t9jCNkJZ+)fWV=^3=U=
ziV*u1+nUiW;mwz_&V^YZe$EgK=he7uG5&H?nh5r`nUhmT0GF)x5K{Ne+AXWq)EzM;
zhjpxT%rtU}6T2n(8rc^fZCYAkX_jPo;G5cF8Ba4XwRmJx7v<<AtC3EW&c-EBROcA(
zl{0Odex<HPcQ<j$wxJ>Ja?VY4-^!MoZS>3Z_7dJcMipWfPQpRO9WBBEd2(A%WZ!y8
zHwUmByv`gmVS3~mdY~$USS)jlt at VF6y6kW=R`eTXYWb{>)WnQU)T+}bD*pXgDV=`b
z7Z*R1MUnZ>E>J7m_wU}QX&D8oZK`g?2Y;VS8B(>XrJJx(%&kftOkwQ1t`R!gb}H(7
z!ke)aE6zQY?EK4f^J|Pgjiap$VMBn03*5|Nw%*l&io)AzuPz(un)~cl`D88Ix)EQJ
zOR?E+!PYBZcYGyW^c&WlDUNcz_<h?X8Upg46-!t(3^ddTi18FUAwn3;x{xxV at f!Bj
zr-9w6oGFo`{i2!{y`tCMetdsV7v+Y66}#7^c8wO{I#<=w?U=XdHa$%)k!`r#36-%>
z<OZcrOM0I4_3HZ-B#B*3szh8*TPhcI=$e1*<8wn)2L at E{6P<U!k#%phB^J at pB$9*G
zU-{|!C$SoTh8A}MZ40+AE1Gf#dl^RO)QSeHl;kJma!i|May&!|9Et2IyX9FroxIC?
z*~G4_SlG7zr#cFy{x<QWuWe3i3I``med^6T{RXYqm{gT#1jPymj+w|EEtw_PYH6M(
z^N5k$PbdoF7 at O#d)fMj5R1f2h+m*5c=KD#gZq#kAo>^*BZ>gB9w#*Mxlg6^Mw6n~5
z_jV_;&=w(Mq<XJD$zHi>&XbmAEI!1oK4C{X5LI4KzuuiOgIX{U>n#=dyjND^f2g_f
zWUqp}vOzC(I$8Ueq9I|lMY5_<m_Kn%SI&njBZTZ`{YNw$G}(g;RH-Pxzt`G9VY{kj
zMeQ3Q5Mvurw4WxOJ#HPtgyO5*JSqEn`e1`T&-Oj8_w&U2IGe9aRVl&yy$QRBJM~1@
zKUTce&N)fSO5UKWH7hm46=V$Lkk$?cOHyk*3vYOLPA}sb_;jmIwlisG=oFajAB)6}
z^1o3_Ht+1U)crc5Hl+0ot<8rE(G1l7iN1P%Pl)cuv>3{^g5C57tzT^Rd~Q;^Hm`nC
z?z{KbGQP3dZ9Yd2#^~pJkB%gxdIQ0xO{2T_R85#^=f2F?O0~TfQhj0Cv8(jeB0jaH
z_jN#J@()$MA$uXC$dHiReuF93mzyGT>=kq_Ys>5Q><|2OelIZ)w4!S8o~VTTX3nUS
zK66e|lHaRxes5csYL>gfheVGTPOqN}=%`!BWKX+wDGat;?e6>f^7JTdL&}2r!5T^0
zRLAXAtIN4xd4+jVKR3G~|F9h%|440pKYXiz8#Gh at iE{Eo)=i_JUM3e1$D==|!P}r-
zsP)VFj6UEt<JSJ%-1E;7^e0drMB7k_R)fAk<*n0XqICSMekDsoZUAAd*m>T;wZu8g
zzr04;x`9yS=8B^BBd0pzXy;pCbUD%4=%OlG$(Ye6zY{NXyD%@R7~M-d4BCF4vS(n+
z_f4iwwghV+;_c|PinY<3ZHCwLcGhziJFC+Ombz$M)-srU^JJ3#+vW#HPtNf1N0H(Y
zxZC8dk2M7 at -@G4TTc2_X^QtiT_?xSvnY`Y5!~@eUQf8g?oVfHF$~zQZ1)5fLhT{vd
zR*$UG#6lhi8TMWg*ScmkZH=uZglL;(VB#V}?+X9^e((!9=XJi_dG>qjc>ed<@5RH(
zk?N?M7SM;r`QqtZ8RGe`!A at MXZ^XevkNS1FD_kp#r%f+?5;wc%I9b@)w-Kc>JwRDC
zObu6Y{!$@Jk88Hccu|4FrCS=S7(`}dQ$8OVB&W7`1tq2m%g{6YaAR7M$uPCf{}V%Y
zvviHhr<#^n5)Bm<?DO8ASkqsalHvPZ&(?hSneCIVaV8l)Q7ufa>m!Wb6YfpTvs}6U
zp>+L6L1 at FfvTdHo3bB`st$RLeT}t1dwBI%KQ6%BH(!b2U^r+*M<cZzXcM8T7$Bz$x
zjT1+0pMzO at Tz(c`V~7WVJWteBlnkC at anp~73vM at jm}53TE6#x5CwlF&w#A?Q_WAZT
zzedWLde4-Gf2~CGp&m^mkz~l3vdYD87kcV`IqKrKG73FjM*HuxNiVUjPA{I!KHL1e
zCX^m?g$Dl%B7mK9ke{w2(1Xx5=a$;7v(u185$<+*+088l|KPW$n;VU4-3bK at f7cH!
zhwhXA;ChpMh@%M{RInp^lpmrt!hBk>-28O-{$KX$@VMZ#Qx_qUc-C4-gngFU-Wgcn
zf*Bb5a_fwJpE<l<PnSj7Znwd{GeB&4=<OiW at g?NNW<uE2H at k)G*fr$fN-j>CfeZi3
zLxXUo(n$Vzzg;s=*z1dvSwfH at 1bR<NTz4DFPgQdTJ^PDPq}v`e at O1w@;AQw}|7%|;
zhwk+Y5)fo)>R**OhVJu33o6e3T~>L?^x{1i7Zk8C{zv$aK@{k(%rxNtZ3W3c75={~
z{=;kKAzuAC`e`}l?ni$D+Hf6SxWh%i_sN&~%K~p=A+Ynq<(w;M2)1<h_d%c(ruovz
zlALxgft``URj_Fsh#1+=tQne`o`O~Z3?@oon%aFCBU-ziPJ)4$8m0HN+)jAA9eVNF
z$K@#a*1~zPRQ^Yqo#;<B{w*fU80`4UK?^~7pnm4qSnU~76+I!19MpMv8B<EO-q$GG
zo0jd#sAas^wpqra+N%rIAcQp#U~4})+ucxTNvvWvu*(`TeA#L^v1_E-vXAM#6;L!c
z7~pAWnUy65Huav%K_?6OqM%bv6e9W&5K}H_3mrza9<?SBbJqaTaGk*A{7g|Fq&8E-
z!FKD&r2bP+8wCy*Cf}@@@8 at yvQPAO2ZG}~wI(t)gd6(%rBT7grZ~SM4+*v^DhEM)#
z>6Gz;i9&O|@#HiSa_y6!t at -X@1<x_pWLB02das8)q`NscPm>6#61uMk%`CZ|=hn!b
z!)C~%7Lp^uoVUs}?Yi4+8$f6TcG;~hZRO7?^V_$xL?c|dx}%o1*m>H-63~RRqsMDR
z%VXy`Ab^9 at N^~r9hROb3a(K!?!+}DXtFnq^0i%Z|A<Sw*S$5cZi_KLG`zVV3mu%>R
z#X1BCd!PN(H}gJseS?~+!l4*WI@?_y!BUYP;ZDd}10U~gH<oWPM!lWD4f at M-A0M6G
z4mcS*47v;(4fkWr0Nc_nzd=cf<pxGdzG4S-cihC;J=9P;@z}^%>584f?ZkPNdM8xY
zz)4$?Xz9D-VKSsz+)RF#7eY-_p#*))jS$P^2{RKitN2)RX^F2Mfi+&2ng|L61LQ-R
zm7W<*q at j$4a%W^gF5c6^+&ql%8xUjyhsV^h- at eN#o3cs(UpO6|wm9FfQg&>js>_!*
zHiv{5Bf{|L{lfh~hM;;;C=1S_0<`A%F?jxsjrZIsswyAVFBZXSypM?=qnJn|3{54$
zwDI-+7Tk%*3uE8RU}<_%JX&fSkWGl(R(GKtuY|a`Q7ugf&+=eY_Y=c9`rA|^$rXco
zs+*q$Gd0Y!VuwWS=rMy8EP$uMPfui!#(HN)sy?wN@*WE5J at JX`Ln(UkIpoOgua6YI
zsxVe4s21j?W!XptuwlpS`2!yFXXhKrBk3Gwh=4QO0Qfj6kM)=$)l7R0{P}UztbTeZ
z0>(BXgNH~W^jNZmxXw>><a^~xZi>$HZn?HeRxHV*3RaI3Vz?m#pPOI%c6t=3{K5O8
zN at X(GA-`XsZSuU)?k`Q?PfWeDjF at sf_qdt`F)SU3X7EuGU3Y~xQ82RAiG92$!xse-
zfZGxStc<ur!2)7%B4mFV#a%)eSOB59>A2F{LJpfHKu$=Mr2xKP2H4`fJnZAtIvvII
zn7Q&&(UQA9yYPi$ujMW>9AGTV6Ia=**hAeQ<^LQUpv!R?8KP$4P4(#I>Le5)XAMLN
z8n_|Pwr+Oo$R at a5KA{#^ix-XvSr(aU@=~2jK#V`<HC{5w$kau5ECCGQ-fPe0e;Ko{
z at QoRKLJLpvH38xQAJsdPL(N at LI2(mUaBADeGCx^mtygS+(VBcEVz*e+k-5sZJ@)YU
z&X7&^Y2n`S+V+z%xnYYXq@!>U6>QXYP1J5tY)B)t-cg_e(R)^wH(gC5oM99fx@>sU
z7vw at jZJ*QB66RCnacz4F=rtI8 at LR@+IrAbxE{i{h%Nxead-pd4wuiRN-0}kWrxCN3
zE(Zr~!6Vf2LeQ35nC$5hqu}P|Wz^yM)>bW4b~~^xK7C+5(O&d8_CVo0H1*p*5tPGx
zM)fZxszTRW@*`ZA4(Qwp0^%9ug=Vh80ycN(PWG4HBHGnJ5<7v0i@(XE4ix4SmpL%Q
z<Z#0 at 5vP~bU at V|}qgJKO5@$q&(IAYlSS6bbnP~Za<|OklhzMh}G~e&HXW0^Me;Je1
ztZC5&gmHf`CR+(d%G1bPI66X7Od=_kPeUy&G{XR^+#aQbvV?tyDX^|)tq#m1;t62t
z7KMT~fZ<TIu!N63-rVr!OAe~PGNT)?vP4(((ie7IZFRaF;pJ;e%wOlruSpnogOOeg
zn9{y?bxKhnTpaZHz}-$+X`N!rq7#{y$cb2DC{@XpUTCDFbzEe{_Rclu at 4N`e?!)gZ
z5PX;>0sz301ere9RgO~~-;|C1nNj|STN#QN>+L7Rlsri5ed<EsQ^eD4>{r3H?TEb8
zc&pcacOrvk at lJr7#Jl@=ab2jn{24K-{xI&Gl5gK-kj%anS;Qk|VHb&Mml}S0DtGk8
ziBK589q{5R+!g at C1qcE62sL8A1?|Iw4oU_yvE|yTA->9cfi^;z1cVVI>Ld&{y~uZ1
zArMZFc5yZ;T0W*nZS1 at y;L$>_>d=Nw-KNdHCD?S#I<E-qf;eF*Nf4bp_?9j^7KGY6
zzhAIDv3{Nrkr#Lqg3JWr%6PgHC4T3HE5d^Yt3d*_fSjTAzPvf<d%X|W+lD-u<hQ0P
zSnytf17QX&BYlW4+2wRt)Aj9*cSCh5V%-(b^Vuyf3D;QK?|MS}$~p*PlY52*3el+u
z?sb&Hhs|}1 at q?AxmF5Zi1D+Q8XN7I8rf;7Y2- at S1ob~I+AP76tP*<L7t(Kziq;!~#
zkK%@}Qo7fqi&o?j&&?=dCNE!SQzGRTo$gJXAe)5(1VqOj7TQ!QA8#G*T5{|q<FmUf
zInr<^%<irQQcn+zG?p)xM-@(x`W8g`EU?c|Ap7|>(ZtwnX`~4?8*h>EXiy6QuJkBm
zcLrjLPvTZsWiukAJw*Z&o$10IfoEt+^%%;B(d4!Wc8 at 87dcLb%{x(#&Ue0d*FdyV*
z-!5!_Y*FVDwgnOj)H)Yhyf3u2(eO=P`1>STX3*rUCr8eVvWANIRT#g*Y*VBUQqWR@
zYwfE%k{kx;u{*53=&o4gzAU~rvje+~vSPCvugZ=GB}#UrMX=hh1>)o4z7kY+xK>&e
z?Qnf~e!^`l)`RtRy)=Jsb?>XF83;068d>hq;2Y)Pb=14oTv;R-PhP^7Rm&Q7;G8_a
z(HD(?oy)IU14x7hT*WAqTR;4W(2OF%1edcKaa2o^05w>O%*B(^;|os_fE$(|G|%$$
zIJuyRO&h!f^qB2hzN_oLS7-o);`Ia;P%IUdCZ)d%6n*JTm at 8mYXrGz!O*LUe9%r6x
z*nXM0sovJTghVZkeL22VJF~i(lec3&b^EvRximD@${<}>Z0kqXQaWJtiN2L`5VoP8
zj2L)>FVDsRg(1rX*DZu3YK$DWjw*-HrWmjKn=W=J?20KeaoxKv2<`o~LMn4L96h59
zc*jMc#_O;igr%=y?HHVpWctB0T|tC2K1LTxy=_}N9eAKj_7g1dm;XI!;8eTM;TA;j
z+I{2d^R at YS%e0xDm?g3cVmRfnRKL&0elbxnd$@dNq%1)NSNCgYDFRqPgtqbC-2=-I
zXdjkIB{cQLK|<6 at jP2}D3}PnDO#Zl+Jzo?)%%=Q0e>I&5S!?aF_{IiLk_0oX&K(=I
z(kHZ?mt(le at 7doH!CDEK&GsxN?hztzL7$l8^*r{n#c=DDla7iNfKi<2q8+^@f2bt0
zVdI{!PVzj=;Kzmx5~w58xTx(R&bE~rlD)rsSmzKsmo7Bt{|v}rL!G at J8$h@$rvXth
z{9)OrCLhy(yFyb%1gyER6qO+S2A98e6A56&e at iZP-Y&ku^^5eMEvYv1S$tFg;F;*f
z|FbUQv6{+mZcU|x=naBg)G at O~<i2x()~N3MN*f>7f>A-xmnNXd=7O$w0ClB`f$sQV
zXjMxXK1eYD^*980#&HRY at HWqP>bD!eFK^~6(IV+m-yq#$CkVIwizq;<ytuG>A~%{U
zrw*6>t=@Ta3S)LHsedx&5%&*Gl^VVJxzSpNu(4YTfBjBV1<4Kr`Wl44Kt8Ht)SAh`
z{%HV^#_ at uX!5G9X?LvI^{MK8<;JArPG&FkzE;>~=fH!{u+d^xn*3oe3PUZfNuiGyY
z at vAgLa_}sPKtSlfCkeWaVW$uQ?4oiEcH!sw#^wpzBF6Tcn_akoe524MEcZwJah<~U
zohfl_dhsC#6D%9N9`Av&ZG`YI8$jFmC1hdy6?Jxhm3d(RE+DjHzW_RB(QQ!%{FK%7
zAQ|vV(OMr7prnHl+^nVCnAq}9TUveX;ml^rm3Imx4Sa=SL5^f!^NRzTGYGQ(B8t4a
zWbDQPXiwkh{Ic2|OK|&;&2GUW<@5Gva at 5b0+HQNGL8Ahhb{YfQX}+vsN3V&K!L}eR
zCf!8%Fr+|=w0C=d8EDDC*gJRX#ysQ7uCka=?XTP!Lg!igrY_aaKJ`ba`NPl^4-30l
zF{1Dr{xld-F)>e9#@}?HY^CosQCTjYMD683#Ev;Tcbt`X7^v4#O`v!LD0(&bhCFb7
ze;8S4J*fdVD$Ni&=^0EXgw0=ORKHXO*nSrbmw$Nykx)rWq&=#26v`q$XjtjFaGc0K
zP5P#sIK;XyG<D?*G=Q+)V1&mpJt}GjjO0cY(<#3W at b?b*DAG*zFQ9tBPmk}2b2z?^
zTFHV=jwlCQ`m_JSX0LUkpB1}uNMHgOlY{tzmyUo<{-hDa<$ACC!d5m<_e4*-JaqEv
zVxxzv3l&W40=CV$9rsjJnzrk<YuB3V{V7JXn9r|8{VfymjcRn*{=trOIvMO-oub4J
z at 4)n!U~+&t2}Xf}I)8ol0!U;q#j#&NEAB=hAchB4OUFwVlfsBY-kW#~0CW_Hk)-#G
zs%eJI0D51>1(g%|(+1P4$<eVkDtUT2(jJPn>lA3_yEC5Ub^-{4ERM~d*|i`%!~y*d
zjX`Dkdw-MskaM7P-IFeVG-yv-TB|`QzZ$$jj+7k`G2Q|k5DF+T$`y<?T*s)67s;=q
zP-_!$`&ahMyaV<!$FOx1^Y+8376}b?^sYdu7WQL8y3SfU;56 at Go{u8YiETirJm_Gd
zlF3gWrGpRtz%l$Kt~W$ftG31L at 7w<HdirQ}rOmY6;Z!iA0%j`ukqKpQ4;9Dq`x6?Y
zmVvrkEkQbiW3&G)UhLyL at PWa^RTtK>Y_rjaxr6tubd;ZTuYY*Lod>g^$7$gX1x?%R
zLhBo(YDjyzf86niEj_F^?4z9qdx~u>_lWpPU&03r4xqY>M%|)TvHcZg2<RZFTxxcx
zixYk$uLy)A`DW`MUvUjll&Dx!$%N`}0eU&%4 at CqnOCPkZ>(~!hap{yE014P8v|fsN
zPLm{Cq+!hw_Hf_D=?iORG`l(AF)d)18?ogZd%a^0Vqrc@!9EnEdj at ce(-$_j*#>}4
zvEyJDuZsRr$=Vs2gnqqri6Xw^C1$`N#-Tn9(#Z6*bVO+V8mlpZi?_}er6<hzg#98<
zwg`)#^kBY^y~mVF9T>WyjQ0d%&w!cIkRX&L?rW83ue+0q_RU^*e&7N(Yv`!Rm(kf)
zw|It;WmFzHsuwRdep_bY&XusnTk`xn1^ziCn6+FSYm&J{h~rI+Q2`A=2!N48zSbY<
z#662kdkXk+(hQwj{!X#3IkKMg0RUgHX)w#ldlSHk at Q7^_?fqRQjpSahEPv$j#Or%%
zbR00jS<kh_ at 2#W6z3_%@MSHMjS<(8%w2JnM02-D8GRNN_n{McgF9A&c;-VJV`pve#
zY~~gO$qX)g!i`7xU#R}?3+duOOAYS;mUxoG%6<RqHVMc(fLj631Z*Jy<CUv|5Z^CC
zCSD5=Q#(2qnrRYb|82(WzzKmEt&(#wqJkbjgAW9^T`?UT{ylkZb;8XSD9Nu3$-oU$
zscC?icMgu!0b_ at d_zDncLQU@CGv7TZ3%I+MeJFpn!QU_dyuH?7Jb8+$oE29=lL5Sd
z*b5B2LifX<lSi8jjJ55RD;79u%iUIhG7S)l at wFg2mkmdO19z7mR*Hqv%l*$LC8gX7
ze`j>WhUyvn<prQL<X-*)xaY;x3?9UT+24IW7}_}@kCY|)@+408A1}$vNVOd`M3~Ql
z>AgHwtATKdg$rgEr+^2EU{v#18~i<L^^$7GizEUM`Jje3dqn`1{uR~d;YE{uF{As}
zaR2x3V<a~&hIs#68-nb;f<M7Uz3`vY03*U^X1SVVExY6U3qMVs8K9<Dnx2Np2As}L
zkF5^Kai|@<Oixeu1JXSf0>@eO+TXlg0V!mH%98HufCg>>uv^U?1uDCiR0ow%A5qL1
zDs_E=xk7J+$z-c;^yQQ(ft3FVVu#hFy?*(Q at xk2MNqjH|DkAZC$n<UFGV|Yq03w5M
z;&2=jR%UyWo|;W*n~r?Hz}Bl}MREukH<h*`u_2!`vpynw-Rzzc{y6vvBXm+eQj#o>
zyYpQD_!)ii3=xvQLg@<%NXvK)ARm%o1PQP+*OU=JNk)hjYuuWs7|myr9%Kot=Ypk1
zzrceFuf<RwlD}1a{jGug<&!#gQ=sI;k23LfR$o}XBc+QZ1!}d$lhQ@#7YYm$+j06U
z0Di9|#YLgc(~VM2HtW<?Tly2PD%~b?fS6T7Hvo<))$6`*`(?u2e+2wLL`Oyr#6u3J
zX8jcnY4NW5msM!$U$TJBfM*a>Ao2X?Ab=O(L3{xw!0&<V{!e(kE`UM`Z)QT+WxTgs
ztb;!Ap58l9$U9z_-`uK>4;-(nklQcYm&OMTa at aqnaJDHmI!r~|n0<Fygu?|>d}4zj
zcX{Eb2U}u|N2e#n#ye$2JI=H1lN_h63ytmF{UF?go9VJ|{rPQ7JUhRK5clzzHs?jo
z!p}R&V5>CH0AlrtcEo{2odrECV6c)1!yTF-ZS*B*7+5I#Mq#M|0637lGywNp at l9+-
zK(zV8_Q_{VQ7PQZ!elUe%d0qA2$BUNFf_tU2b>EmfFnePG@!XAp9V;&?fZ`IuZK6J
z<L3w~(s8?=R4dYaNb$pAKnsMx=w+7_&K6!w!`SaUPLL}LaoNuv*bFzM#80TM;Z0^_
zp_)L5HS9F^%~X~J*jZI3N+Yqn`0g9;tR;ObhCoT8ZvVrJwwUMY!V2tM?bwWN at eiMT
zEfD!1q4eVG0BkuDQUe%7Bb#FZr~y+lRZs~J5Vfw*I22LiOG7@=3lGK91q&obzW at TL
zN<kJd|B`_8C<{~q3h-w7x0V at PkarDlLf}0f4FIA07OE<};tXMUy1-@<VB8UPUp5 at i
z_6<M_5Hk^fW~hdj&KHa*;0*vVd_4}-Q|`L>a0l!UO$7o%irHTz1H#}186pK50w_Wd
zh~RjT`TzO<z5Ty<9cL;mwVV`2Cms%<W1C~;&DN;waEj35qg|1Zy0k9O&u$@h-)uJ~
z^h1Q5&hhrJgZ7aF_Sl$6@}1ZrhJnjpB-6n{Q{}}%$HaQF1?<o)fTGw1jo^Oq-^KC;
zZP2MlFHMfAfHR)#DBcVPM)$|h?Yp!0bdB7k)>%!DWsZZ#_5#H)y>IIrTvGUTN<W(|
z&W|2~vDn=bM7FV at N_JNE?#7w(SHxP?^m<jlH_&<d1i<C7vu+Wyx!0zeeq?!T%YT%q
z{dw|$s$8zgmwD5b^=Y;Q)GSTGdsJ+_)a1Zv*<QoaFjBsnazvSokt3^ZLsH;fZ{W<u
z<bJp+ww1{RRTo`Y^t0LaF)b!uUTynnQ1(U;nWBfh8Cn?_*;BAWTLgpFN|)2f5TQO_
z^ttneR2B`rzsGws!ii#Y0K`v@^~|Dl_YXRcj}J_gIJD3!KKbJUW^)AC-^=&2&3E3T
zTeFQPRpRv$?Vv5doC~pEiZB%(mOVM)(YdEEc^QT$m*xFvmx&M=`rBI`$xWn7lx#>}
zJhWqC^2-RFON5l5xZ+o{kMmjFD{EA(wPXilkNshzhR5TE+(K3%J5R4CoV5(hPG;kl
zOCx>ln0PBoJB>ykPXu0ufpJcetT{naGUA02uTjm^QLMLWEY`J5mkxX-u8>Qo-jW~&
z;U*(k5r|EGhSFu at cnFTB>I||;_iK>d<2FDCfZQlaqkE70*7C&b17C8#RbEzOaY7I-
zNI8B{Jq`>#?&s`YEA?KyyClUQ0Lu at l1ey97vekRC0RWlj&u85d9p~OY$numI^~Ck(
z26eNV`gz>$T^@`J%O<G^tyjS7HigWJ5Wj1`P=*`>>FNf#_ at I!pxC+wN^r1goAqnqw
zZZcav9b7Br=`ObcW7{~px1U<&JC2EnQiQHZYz0lav0=Se9~#ReDwr+04@;o at faEj!
zkzmu0e|X?QnHKqe<8=@&d%>crb<gWM{&t}9X3Zwyg9*o=`YV9`jnV+uL(sr~1epNo
zL7E8K#|&N*^&a)jDMv6Ag&JAf0)bEhLfcy5#MGbdBG&vK0=JC=d8aq`*6tND<Zbg2
zm_qr3`l-O!=tWvNwK5twfPQ*>CdW_94^!E(L%G)3++!rVY1Q@!u8`iA{!pVEvLZqK
zzK2 at SzSecTyR;olG|R+0p|hm`Zm3Z^d89vVLW}^mNHfzMxnHIvv{kcA0i=XD5dC5!
z*%PpU6Jc at RyDbQ|-A1<Y(uN<w1vAA*@bX969iE@@M>y-M^)8ww_;<dKq{sj=5i|_}
z5M2W5ck%smN|`E%9|P2M at ICSxX=FdZ`&b0dcDZVP?g^3UY^%k8R*ORU|FXxba7riP
z=jR+RX1&U^NA#HgumCOGH4}MbKL6NW`<20E_q2834hWc6?+pzKsRV3efeh1LDJWz&
zkTPRCQx6;>m>$MIzT4`L5r>FFXkn+yT|R*kK5oxIST`_W8jGcgqn)Ul4XH{yV5;8t
zBda%Tc0L$~caVA}bNErY&w8$GKqqZ^S*=^K>GA3DF+$vScsoEd4g_VPSfdGw$r^Z@
zc#<)(S)A*!pE-*TQC#Qct{8ONb at 45@Eu*2aFeTpnSHLp+^|F4K#Ujo09Nr=`zpb_J
zql=zy!B!?5fJw<<1j;w;B4QH6A*Qozbd>3{#;p?lf#W+jlMedOEdniXO8x}oBn$<q
zgtppSr7xG-hosmJtsH_(0cdCv1S~x}gfU5&R at eoLL5cyo*V||R(RB+%WR<+<CmSmD
z;}j#iKBk;$;=_r}l*zcImNS$st&d;^%e%GMORV6LYEh`rOa at b1PcF63g}}Co)r>~F
z{ej>QpSGUS+ZFJ2y07U4o1cyg?P(H*vsw5&_Q_ at qQZ;i+3CKCv5UK5KQ0>d>RlNq>
z0F?B7Q#0IYH+u-(B*d=#I!s^OxgXrV-UK8XdW at xbjj<G at bhddQYD%i5JLaDB;9xEa
z!Qg|8bm)3BUkXE}pj^@q&6%eG-$*}#8B*cO9B%T5`WPO*5ASNp<_Giz#(i<OV<;$Z
z(2sEVJsDQNCXMx at blD56So3@*v2Z7V63AqQf)6>SMey_dwRjr7QQOlEe~&$PAkYvY
zJN(p!9w+6y5t}8h*SM|aC7Rj;5)FTvy^Zl7&qZ<fy8AqT<Yfh<Y_+AxI91Ph)#T|9
zntwjA;uYRsTW6I#e_z^)&7~c<wA0 at EegElGASVUgz^KkRswq6|sD|L$mZx?abSwiu
z1qE;eNth9H)>MAmW?UOcQ?8>Ve@^B61=+2Q;9yg~-)Qd52?jvku51BaVwk)epdv at Y
zDhLH;`_=KYgHs4{O?2P6<RPg1pH~{eT~6Nv%@N+Y-u-vE*2`D&V!-VYv=8s0R!)Sh
z_p(poT*qsp0-v6?3sLZzyO;I&=cONifVMO!4exC13P#qh3j_a<&VK3iQ931%+#jY5
zl=R_!lnBWp4zarz5o^Si?%f~`0d$7Cg*Gp5 at +E|{Ebb+q$Q at gj`Df2k0-|{{U4)-~
zZm4Vku8l4(w03XQbp2%=bF#dXr`^cIp_r={ML1GnQwIX%fz*8;6SZGuzI>#}+U$Y;
zw){oIMVS{Dwh9ROdm#u9azFBC2G`OjDV8o&`oGUp76<?a|9>t9|NW?=pBWj5?EINy
z8UORzn9&2tMnulQ{j>hi=V*zwp!y3K?@u+81Cz#cFqTRZQo2+<P)3qZ at itl&xXE13
zer$@OJGsy8>iyx!8$Pi6F}6R_0*p*S+by;FS6X~|rgxzTRFPoI at x+s}3_SX`%Y7E#
zw~bK`l&X3z+$rzUMhllXXBbhA96bolOo3*iDiL9lkm}l;fu1&mf0us(0X{0#9E{nz
zxmdSTGD<e<Y?A|pO=wBnw#lSzgne9F(_q`zO}4 at hkv=X|xM<FRS|I1wP7uV20T)~N
zy>6qnKL~*sjPIK#$wx%DdRVbpVf%b{zM5QnH{l86k6e#e$dpI_D4o9u0{yI}kVK$x
z!>KWYx!qoJ>(O$fG$(jsjfLHfpZ46hWmBKjUiXRi2n3LexF(){*ft8BnCUgSeObK6
zdsM?;6IfahYXi2v0pyrTP|}Kf-V`dgS}3H^2anD*Zb#*(wjXobLng8434bi&B?mCk
zmu^Toc4S*Vc%(M&od$gfq#-CblmLS1?XF-00s$|<H??G9Z0XEM|5kixy{Lff0Z*k&
z5yENmND)Z*7!qp=5-5WFSATKeg3TTc3IeP2-yifhG&_!h;6{H}_-E$N+M at SXwv5or
zhC&Wob*_6|Kx2M9p$c+>w&qr&$zk#@%M|jM;Vw$UbSri6>OBiGtmta&CkM2T;c;o(
z*k5lVCWPDKi%%v at 8#~a583k~Pk|KxLyL*vO(RKDPFCvT`n(89wjfH}c8|iv!A_Q3U
z9;P1N!0?ev`K?+&4EL&Yn1vIE9%KKelUGj_XE#3ON?Zd81laxcnJ=ikA<pjn&K%%I
zJ)pz$sTDU=Cc_R0R)%(E;5q3he~Vv2*ewE_t0#=xTABqm02E!oU<3 at lNWl1$K#&aW
zPWO1)Afwqqu__n$@Q^Lw;yi!%K*hw>;&`R$qJ;R!Or6cW4`}Tj7?&TmukMhDUa}AZ
zc%{4TWRhAeNht!cVBZ<vx8ck6m&MlJE<LC4?j=s|bkUD~NylU`W6SyeHy*&2k{wP@
z9dnjA5I)k_*6dt|YH*-)fYbdbNh$0dsT(4>hWCk^vN{*NK)GsY^hg~ioe<bm|3A+J
z%FDzJvnvL!vVc<#c$@E>7-kqPr)PV`7a}~Y677GlU at cvW{*eGs3XmXv;WUqxBZeXP
zR)&5swp8#MXT=*Xi`$6!0|HL?U5O$D`VI+*rMW{eYTL_Y<}z~V%bXg6iQ8g=EPcM)
z2eDel(;<7*_|e7*NFb<M)99eMuOJ)`-tcrM0@%nkFG45zV_2BU{&Upqo~v<P<(d-(
zY!zW!)4F)p>xA!Vc>B#WslYCUxAGadYA5dnJmep_qGgZ9tT6qsBKjU`l)fSN^)zK1
z-#hU<`da6A8>1TRD;X$Bpqm&J3-UsX_zyFMcWmIl#bEI`Ia#ii&^&d19<uwvfWN(A
zpC)MOoBZG2Iu1mHa8fn{;ii>=#2=26&q)l51Fga`z&Nq&fuWDCD6~3yr*xC^qPN0x
zvtWTB*>>(57mATm0%HgQtZ&-e{9jlCq`gwVKip(m`JzV~C0S|QjCjVoQo;cX*;$-z
zZ(`oZM$fQJR7efG;Xk=hR=B$Ohv!sYFV$>Z!QT}?f?a(A<>DnkwfLStF7!*BuW}>p
zE;D$TDjConjzfkDcmwp9aiLTa)MuwB4*z)#L?vK*(lLJ}z8}Uw?+}_nH8vwp41!Ri
z%Dq6yLI6WR#gPlSZcq?{?rvVv8c<%Vkw7m|K73juWIg at RR8Q@q)ilZ_fzj<|lW}=Z
zM2t&bRr$5yOQ-RO4R=odZ1&3MH=uI=6ny&%K$q12;3YnyGeQ3&ut|6<r#Y!VnlSP2
zQ~8H at l(0X%!~CfZy=NaLj_-KI+kgu|z)koYVArVSn`xk-M!^PF|N2~7yNd>wm*Bp|
zQaXO{p#E5u8LYBa<2zj$y-KPARFl9zbp}i(oTv%{`r`>BU5x_45#sAW;SSxr<UmLb
zgf;vW378p30GSb(_CPiG;i<s=KE-`}NT9VVz;gt$86X8-S<ihsp}>FL0l|xwt?vsA
z3h>g!fx-pf-MDbN8sk(tfG?UB{}if$- at YHwoO&pLucz_7d8)DiUKp(Jx4M2`=8Lp|
zSF{6R at pIrSHhd)j2tfwph197qgYnR=t!D?GAd(DwP&J^N!+-+=k)dwyuU6g=*Fu?r
z{lK()zajPr_%2au!lfeKbKI};{_JR5MSR0Z9iA%yh&`iB6K?1ijZmLH(ULtALJ$66
zPbtjc11rKmW~&ndTg4Yg0f;jJPE!0_-J+hY->w6}{35`g-wf5KCSNU&>d#+g1Umx}
zgaCluhXjBgcPL=gva3n)*Mw`e)@x^GddGb2CoO}dWaHAaJ(S}Cr~xrzR|N3V3vE+C
za3t^UEfw!W=6b58)1jG7uJZCT_~P&aDWOnihy(0mEfG>`4`WHO7`LAdOta}6fGIV;
ztifxM84PhCDafUP1KOp>xQYX_ZxY}GEF)$93wuJ4!?)f<K$#~y+5za at fUYlY1bM;&
zmd1 at h?mF`LHseC3%LSZoy2dC#aUdZ6VTE*Znt+8v^{5ehKC401CAv(7{J-baxfYi|
zH2j^(P6A at kN(dwBwgFRK&=7#r-B-RAr}n7~h@)vB0mdi)R0A%TMnW9quKe54LH%F5
z5)D(|Cjb;oUDEgNqMNt?Xqfm6-F=&G?*Kds0krpBVD4g;7YE3fr#5ce?^X>|LRauf
zAQg;{+iAcw{-R_9z(Mm7Xdf?-+EoVVsKod(z(UxG5CkX-s3ZSj3K+8grSHvz==+9O
z0`QeWs>wA9U~J|Ml!|y?z$>?(8H|VCD4sqL#*A)U&<6q0WWPx0_^@}IuQ~XrSG)@7
zGKl{U9PvT|(>gG2$QLk3>0jdiwR(^W6>jT5?OgH2EYI`o(>4a!`PmttRyy*8{p$a_
z_ztGNO%~GAzf~(=s8*G6DA=rH1T-Ody{y`d0cFND=<yqAq#h>r<R)pNymF`-xD`@i
zf^QKjufT&0xj(jY at 5JMqMBqcbT)~#LYI){Tmeb>n1K^vh1 at lM1LOgmEhe-Zf0>CAT
z4VM4w`^aQ~FBMLEPYUtZ6Zr8MDx<-ln-b*WL|Mw&{U7B9lfa0Et^ZGB-yPRP+O?ff
zRhsCcQdO|6h$y`UqeyVqg6;|k2<S=)O_VALCFm;ZQda>HfdDFK2q+1lLO^8|ga82q
zOpu^UH-xA_BK<oP+~;}g_j~<Ae<m}NnfpHVI at dX~^wdGOtS4so8P0q)n%Nhs!g9QK
z`TM?doQx%;+F5YN$UW;m-#B6TsjM&ZtxxXyz+cNt$99Xi+H#&+fmPe?42p;B_Yi|u
zR?ug+hw|QO=$2S-84Ad61(h>8w;-A?64M7p*IjlJdzhVQmpG&2Wn4cZ<uEM0!Jgs4
z9UvoMIH+J4x?BShNVI9LVbsv+)IVy=Mn09GD>?s)`TEj;n8aRNTJS|1XSd5C(3G%~
z(KJQX!l?YzpJ2o!Sc}C3c9KY;BBpFJD8~m+sWncW3`0`*4`WVuTF-X#uXXqU)yx4g
zG}F?@k^n;mI!-O`o=?|?Jy{h7oC&si%I;vO00cyv7-)|AUH at fLqhzT9usayjl9W1{
zwnj<fU&39<+3x;J#ywJn58mIwXtCkXV7pj536mt5U=79^w%44uRA$0>)l3vY@>EO0
zyFS<9sqrQY<dJpAUTX%wg$0!_XIY<C3|zC{?#k{~sry^e{OkTKqCM^_QxiM;*H>xr
zFZCF~?yNk}|0d3;x^qjrO%<Wx%g<yCC7w{>KXnzCH1PvD(LI at FmGWQ_;g-PKuSNC~
z&IpV%G6I;G-(V0<yQ0zhDU$!w#EAJGWjuvg{M|0}7AtQ+#3yJum?`jhlwp>42P><_
za+rl{6alB}NXU0HgcF;*D5I1sI8 at v0r!wYbW>*uNyRnhFu}~)@%Fd(3J)0=_%x*Jp
zO103R4Gs_G^4cCV?f|?@a@?R0XN266Bs@{?_Go+gt6O)GQSoB6UBg-d1`h54 at rX+%
z<-Yr7>};6WXu*kyf<XM;1Y)y_?C|FM(Ga1C{S;s-OXkM;-^U|`Jg^c==4IXeSO3{g
zAgM0OrE3`qwxZJuQ5CVrTf-{DkpRJdmVoFeqIzOGwB$p<1|qijXYjSoIw<5mG9LfS
ztR$ku>Q0Dodp)=2yHft+o<?l|?Ow792*UgiZ2y)5v_N--KC?gkW at m~2`5U?h-t}M^
zO1u<0Bmlir#ZMRwga^5$UAlHaY|y|uw*i>qesdQsBL{K8V37~*PnLGk4pWW3SG at _V
zyGNO<d8qH$E?v+rB#^#_y87%;46v{)SvfEK1~ja!#HE;3KY}Iv3RN>bB3{RL^U|R=
z0pyy#X1$DVS4R-ItdSL0ejozDzE=m07N+v5-S5qQGKCT(c<t1(LvCB(*I>8rDwEr{
zU=KDPl%T^U#RW~otwY3u81h13*F5_l&Uxf}FPgs7G<iBPEbvvN!~N4j!)apir&+5%
zhqA|YQOCr4B!?IZxI6#GBMY*uoe~^&JwI;vQ^p~-0I^YGqzB=LVb!Io|IZ~MnGN5?
z5Y7arCH&uOLK6Sw$YU6Ksz7_X>c7{7Q2Am3f*P5xRDcrQ2Yp@}EhMBLt+H^mWou#T
zX##Yh{D=JSH6rQzjL#-ef?cVODFn7^!_<HLq24ukpO*v5tdb)(-i)seQ!^H<q<wFf
z$$MAu;#it-Cd5{6(MvxYWT6oSQ6@*rvv5Si)`~w+fkS4QMw2M276)_X>9|RJIPkS=
z+;u|m=&Rp#1~%*Sb}~bvfl^BY#>)|zbk~&u4PU;c^dETp_o0-6g8B9QAO}d_Cz;UZ
zaApc;{_oXF#XT27g}TO_%pc9;Pe%))`o`{jtd!7GhTVE2=4imvTdl&=K6kIsazN8D
zdmj?wx-?w0VRdeZ%jMeb%f6vlj*5p%#xFNBTS0hG`~NLQpHGviw{6sy?{bg^>c}$E
z_rMQo>UgO;)HZ_3h5LV3R!IcH{WVz7fo)C{$%2G8bn`%N5sAx>H)Y|}P?kno+nbI+
zh4O2!2oY)ID<lX9%aMSH4SWKjzcRJ-sGS-r!c+_SUSh*|vm$^_V7qikU`{|XJ{d at C
zSV{?$l#~azzfF~So}DNQ*8!y>(rltPf%rq!E<a26ZQ;(Ix^l;i)USWmxQLg+Bgfi%
z$nvyrIQxx2kT)f7FwrR9f!-a_i_ at ixzj=?Fz%K+n^v`rQU%nKo$k0*JVD^C0BZYS;
zgEkU`@-lrH{(-Fq{|eD>(F6a?rT_Q%eORdcNm!fM_om*`Qb>Ot^(EY4__HX8*fIS(
z&-`{tW3)qGT at EjV-pnK}JBs2XG#~SY`Ln_=ElC*ONlGQfA|61Ntd^}OTiZe%#wjye
zxKexGEkgmYS>Wfg5=S$!mg={FO44aQHCGZ=8a~?Tp>Qp&^*NJ{bJsp>-e>FOBb-Qk
zexZ|WHKWBESD at R?7Ry{&v4NwCr?fm6j-V3Dn-0=cQp|X&Pt?Ep+|d_bxQdWmLP#ph
z^|+VUc_vCaI5uc?+~q!gey;85ZNWQhdpt$TmkS%B8>38bw{(q=x}rxIU2Rq;qN80R
zrxUSNXZn9&)yUy>W}7B8y!IpuPkDX)ATZH0GqX4{N!uoG+cFrDHD;|Xn)vi=zaX%6
zDj-cY)4j2ccT at E;>xPJU$|(4-ctOD+dT;Q$EBiR?j*gjm&z2iGZG1wEYi3JB)1`-J
zj-NHvDV=iXwM}}u8{9$jv#w}(7<WBXo5$2~VnoEQCsK5Q6i5DU!sLdEq!6jCK0Ti8
zhR at tugLFGoBO{N7B{cHA2g<qrnA<ry%8DvpPz8rI&1e?zE??w+%qjSAM>;|4=yeDt
zLzCpas0R)TrkF!FGLP1Ln%OU!Pv2OtlUQ`1p!T<0qemu4X#SiQCm`pVPz?x5YFJ(D
zk1IA9cCaOSRF68I$Izxdx7;kPw#H1aUy2^&&69+R-tih9d;c!hYVJC(-Q#uXtV3bQ
z4~>MRHX?>r*Aju^T<3L2J_^dTab>T|-EA+&iiv1APmkDTIq+ at 8DxWEQMbc{aPW4cV
zMRvi_u8;&SkG<M#^embB#2T^v<mkbaer_v`5f&l8d7Pj3{`5A18{-jU*f6Bwyq6NJ
zy07i@!oH(L4N;GCaIv<Y_E`UhF9(j&0)l#hrm7p~6=netg=Tc7$(ipbph4)-d`E27
zWwP543n!`2YaAc$L+%Y!4BWDz<7cwl?vu0r7&;qkrZb_6rf#e6JY{@FF>unW*)0Sg
zA;ak%VtF?`htl})IsR4 at fAPX&EA{+~_1}n9*Jn;izgu*#qw$`7a*=f5vF>X#+|eCO
zAfDISwfF!Pk9X2VnLrz5a+|=UxE_082!FqLUN*{Xxm1!AJa;(^uTy8@(_$z^@5)P*
z(XNuXpLr~)psj+~`u%L3op7-DY at O7$0yz6T8a_yJe2^6Ue&%d9`Dk0~**NOU&|-^1
z-E(K>*MpXGPX)SmUtXV~bXJP<@b#I_UsfxhK+{`+lFSYZcDta*(u$7lD!9-|BX(M5
z_Kp{K8<v&!wU*TfWv at qk)|w|zcg_*O at 9EZ}OuH{fNO8J8ck7rXpj>2*5dUc|f`CE}
zAD6{@iEuY0;jo}(D^$c(x7$gG%gE3rJyUxGA*A#s;B*?lg}lG`&YhKmW<8f8O_-*)
zlNzk^cirmk9!WWElLUtW3meRGW at HEXD1eW4R|G9;!5WwG at FP|2^-L>2k_3{O&80mn
zUW*6zf;ze>O?+ObO%pTsYOsbg?l(`ZUWYTXz#jAR)?XlWAw`fc$Bh2wZmYK&6<jNO
zZ#ZBU91Q~I<sCC=L8nR7RZ9b8WH>QnPOsYAeZy!r28oiGb46izV)w1YsBn5tpzs}%
zUMy)CLJ{MvJcp~{Npon?-pSDpYdv{u;0$?ut_(fZ-$XZE7S<2`yB<xa5%9FWsjlU1
z(I^-1A!1y*yW$5(cYq!Vb=202<_?m9a=#ReUYB~VhISQSV>v5k1)i3xA859C_e|LB
zr1t0Xco9D at QFz_^;=Xx|Q$?kyBL4`>#?^3mCh5w=*j(EU83dbM&Z=2~Pp*NQW_qM(
zTRm-<RRKAKB7a9p_HsHVu5uj3(JXM1MEEiAEIU8t&Cf54EZTimmu{u?i6r=aeIECI
zypi5_2GTGymN4D5fX8Y9Mn1dd?{}7V=31G$QT1{u2X2>)9~^jPS5ZIbSL-y5H%iW)
zhX at qR9j6r?$g9#JG3Ts%&Jd(1nS%UT&mj|*yB=vF-8|Lar7~QY(l7r_AVY5}>a2}z
zz3Q&X9~C6tRd7e#4adGEFY%)Hfa$TTW2zEXD?X^4Yn}@uV?OPT)?tlXm`*4HIcl6(
zzj7)kvWs177yoB#!d(S#@u{s6fs}e7zUb_vfY#TCrl*FS9tt622ua*!bjIF7_&ar?
zH!t4ALS)XFHDARbn6QNVzj-4oA-sWAzg(Zg<yH~#5i5RwH77;RKCMv9h%>SD2z4SS
zzC2?eB<RJ^?Juxj$|F9Mvl-iS`;uS7ZkiUSbQ1nQcZZ#w&i9=<sTK^Pjexx#E9j})
z>f5&c)z<J5sFK_Dm_w{_NqU5EK`3- at u~5SH9O*yCDwO{#30GP|>ax`Fg&G)ync=#K
zO#XVazpCq7 at saKW0uN)B`-`caJdnJlv?Mb!D-7?mfAhFotWlZcNay+dT(683x6!E{
z;N(?7<&h*bvpFyD;&^AcE~(<T`L;ImboSF*|4Dl7B{&D}t)C8%B~v9jx#h=})DDpf
zhzx3!@v(c7)6W2RBXqv)(1)Cc^DcXHU2@$N92~os?jsk)p<KP~)8~_~-1m6X5tBsA
zd%mxC<Hl7dvPj`~*Ovdb?R>a%TGx9Qta`Fyuez~?LG6t1i`U^wPtp^A%Z|3bg={x8
zRpp?Alr})z(L at 3(4B=kyX+=G9U}0&*HzaNm3zZ9&xWdj3Q%x;DrNe8)b^V#BW!WPa
z9nNL=&dl$eiR76%Z;+wS;mC<4Z1zmm*2XXFAY#6TU9BWNgk-XsO6VS8v%|89T`w?}
zg_KrW$SWk^fmN!I!V^gkq}}aoa!M<naw2$UIvXyeUHN2WTN?Sp-8j`+ReUbT&>>9=
z>uS2*+;IQ=k8Lzpl6lC5X!~8|x+yZ=OTw_STFA`Pl;&*TmT-Tgq_`^wS^|9qnz-ol
zJ*S$25`*W$$%!aUa-yuX`qKsbgdEM$z5M9ZUoZh?7M~=@yTv{`{>oZVK-Fy!2Tek6
zPSD;{6~mK$7lH*T{bQ`taG8_w!e;2bJTFO~822!8nQCdH>5`|mA1<&-qS?g9Ej^NO
z4Ow&4Hru?qa;*fBc$&s2Yny%7(Ztk{=C~n|Dh1fHZ8Qo2Z^$TO=qM0~-^08r4Lp$m
z1swh#7vw#W01(YF$Ikvf!nVI<<6i_sOGGqPSxJ)tIBki_h4E|KqJ%w`1sWbN2ucYT
z9T&7&6<1twL-y{r<rvq#(0X&QJEf+N3VkNv=X`(*cyUT=oiuf6!G2&_mmE{r3B{i0
z?`y|))l;C4+mPoHLIXt>uLZ*9>(#>3CT7I(F%zV63HDQEaZLuE5XO6d{UG^I2nz>K
z)Lq&)wezq9m>^IRv26o8jkvFW?Den&|JY<p&eR!7{)SR_m-`mM=Xivq{Rg$2tGXWr
zEpVXebnp<0Py56<aFfR+vR6w-PPH3!re1RG4%y`LwSmK+mAH9r3P56JG+zOm<y;@C
z@*gOmhr#&5&G#zcX)kIWpa1<Z3MeQ(QtmzcNZRiR6As`u6aYdMxUNHi)LIM9MC9Zw
zCFf0Qn7?7Jm%Ge<VWt~V^hwm_zwYUJC;wS at x5Y-|SXGuc at pl}t8E!02h!6aTSL$WY
zPzo@))T?Z#9?$Np%~9!*sw>$(;e2R~v at 1P55R-5+*?CZYX}`2tLis?==|H)wNgJkD
z$Pn8Np1Fl);W at bRgOh5)9DBhOx}4-#r^G6e;^gE}b!wXvw9O>SbU!EE2hwRys*+P|
zGQv7N8EKuSvlr-!@Emdg<LnLfTo<B`YLV!yf<mux(UVHC*}%@;6nCDfzP4I at 3z~g_
zhbq9Rz5#l$_)H~Uo}2l=h0TBuM7M at hwVE5wgHeu<MxDV@^6tl*7)H^T at TW_&IeZsP
zerms!G`^s_e}~e0l^+tsv9#qn<A{NYY$Bf6ZbfME02Viv(k6 at atz2)77|;6;AQbct
zz|F4Dw8=Vb6Erh^$EHUvDhS14&H<kkT(m{JN!AtaWUqO=$*OIma#(*bI!NHW-a5WQ
zW$;PF)nNa1pBgm!+Mxe&IA&^gWZF^065`BTYKqM)j|5pj7Y*6X_+Q61jQ(>h*D at +R
zv?W-IO9QgSFhfhz_2wC*wqh#7X*GKJVwoYi^XRYL)^ps(erS$ZlJ06%Rxq`*T%3q4
zWnhtLR=c-~F+9OPq7Q+D7z-E6pEyE7O!fC*q(?c)$u>7pOD8LR3?`fSzbgOaTo@)Q
zccWsEkidN~gIoRf`VRGLOk(}64*@P^!@CJ3D%}r#4tMo-pD%COL3R*8c7Iff?>BM_
zJg4!g2-$yH)}Z$?MpePR^XI<*_MIccjwF=E_PA7mANoIavJo4%#Khk0e;6vf=;qIF
zZ*Y0Q;ML;x`0wpt-==3y`4#xL;YzwYg_!QmRosC4Ypsb&pj3$Rcu3IoPMKfKrUe>2
zhx|tlUn<N!9JD36b2cmO%9_7G>8t$NZ-^x}uFJX5=^~M?^A2(?NvndMa+1(*kv-|%
z?!>5d_QmhDB0C%r`^a!rQVYl9)dD5ilHf*Y)xWJT-VW#r)xxI%6J6!MeN7Es1!6V7
zl9eOvd>ieAbmC_L_+V2=A><KD_dt}42(mEu;I^Fq at mple(x+H0pY)2y5%}_Z2OX3;
zZ211rLov0+QRLnt!ExU8G`L|m(m6&FzJTt?WlzpDeA)h)ZyxVQnloStnXQ0BN#EpZ
zQQeQ;DxW;K=~SD;hdU!FJ=wf6O at LPy+@)(U!$%cTkVd=dr%Oinaw19fSdvbxXuo+9
zPP(PU#u8GZO%ms~Ja-g6^DNLvW-8ZM#DWeup?{wGQ=5w8jTt5E9R0e9Oub-k2^=DE
zBT-w?b2daDkoxW4&?5D&(LDp&FjLK6It?o!_HQ$`>dP*wWw$nj at RpKzJGB?7n_bK5
zN1gw?7p&J&$joC{EOdrPV5L(|BMn92H;~d at W}iHr!3c6DXDgpJF}VBf4OZQE6V6%^
ziJk$*mcsjhx=pALu^eS1GMCdGFpo3)tkFn>a$kK(1t{_9nbYNvwGHki#D#~lRj{)f
z-+MXtSipB^ezr{#C0^QTXO)54Afh*jflNkmbRJP9IF|8S?ULJWq+7;2wOW<7qB;_1
z6Rac|q8SCz93=$rvm>*;Di%At)%dVa#>WPX at 6(VAQ_P8(6}ub+`Zo#<L%!0GLp4A&
z80OKG41S~<iz}@}3g1I+t|7lE?#R0AiLC-|0E8suBItnej3rfUsRiRExG0OQTF>(K
zIOo-r-8-=fmT&f at Io+u~NH1*H8BI=uMG1z-^0xltWu5bFSKd=cn<h4=j9nf at V|7)P
zQg~fA^tX>k2nkLS0K`Q%9RY%4geK>JKC#t;p4poJ`P`KDmS^Ju()2r2y)3sT(;i87
zRcV)8aX?MclfG0Q7>6lwxR at Lu<*7ce$Fh*POA9R7uvH>d`NP$HA-pI9-v;3t;hk8)
z)QQw9+^F4zT04TfE&=b_4PYCHioiME#L{zaZG+3B6UrD%%fG6ni&T7 at 6{Gp)i(KAg
zZ3V`3zV<_cSF-=Bo0s)(zCmExOYy#t at 2C{HYgVcuy!hYV`A=$4YA71NWU&Pg*RI3Z
z#P~??ot{G=%IW2Cw8+_ynH>RSes%}OB0l8R43l={t+1s&cUnTHLkAc(wGtJ`W$Q`8
z9Vd<(vvA2FD%IP+&L2oVyZPO5pw>*|O1uP^25#wCbn&~L5)U!mvhNVi%}H|e&S4{o
zGpYUbF2|%2#`}%}*X1TEteEhcwtJ5W<9mfMi91(!(cD6pMG0q6zz-k^JAh`)2sW%}
zVn&RiIhm(cXRmf)|6xVhdSTMG9<N`cg~YKH5pN1C34h}<!apTm$4Ca`hwRfOrus}t
zCD)7;xepywT5>g}s=-mBm2Xu;9H25%K?;vIr$@-!#=>am5PW^(krHDvb^ZT-1QI<%
zi`J&b0I^#7)Fvu!P1<)9T4tF~%c%`aN`XeDHm<TFQE_+BUeQQ&k$b#wqG>zQq%ymU
zoVfGe+wXxg?VzP?d<!mKqxFt!&vj<C1 at vb97V6(KvT|ZgX!84bRUT_Qw6~x+J*05Q
zoBh4rKg{nV(CTXXV)h_Tuy<pvm0mJ8o7+}?lNt?KJBk{Huj<O1*9J2eO|5nmLjo?q
zrfV4(^Or_?`pEO!SdN8Cta0<d=-a;`n0gaQm<9bn^1C$^V#JN5VDfvGLOD77;94<I
z3C2YX3pmD{UP at lw6{_6OHJGNNg!}%l4Xg~4l-&r!=VHP>#3V`O_-RITMqk6(r)T6U
z&~=CYPLz*e?pJrq9M_lR3nprtjt(^53-R7jXV|~4?OsHZ#?xG#xI&kDw=j?Vwi|<p
z;a$TrA%%x~_PPy4Ip%gS2csSqXeSrDSz3B9uUJM-v$2+zF5Ah`_HI>Y+#_GkwPiL<
zAGfoGa56l+=9WUlSLh=J1-XHBEm!oTXFT$u_H<d?ck<8lPR{+wH5|k3a(U9(G?y?r
z?sdtjyz2)oXNpO%$Kc?%r-Ju3S#E$TiVAohI1#bp%8z8Xz5<WO|M at aPE4enhS9gCP
z^|C92*?K_WZgRoF|M17uaz7oBgL_i0CH%gB!}*aae2~Zey?r#d&i~TE=#=7&(I8CD
z>3&VFw#uo at k)TrrNosqXS4RI`_M^x8V2$Y#)Ab4CIuZkz+3VJF?6o`D^Yn_QBl->L
zN)B~-cCEGAiw#Zvk#b8e(ftM1)~2?yFeuc_ce9z>RI$U0pQcuRz?XWouCk-Lzsj+C
zdn4B1sJ{MUw@#di<n6S?=B=fYGgHq at IFiOQznwACcSJe9nzns@eqf!$L?9*o$Lo+(
zy|F16Oslrqnv0ZR)}uMfMNN|^TgmB3qXydS?KZ<oIaU((jNnT+Fi)r5usu-eR&P(&
z+#-wbbLbXg-R{fcjr4KY`&&JngirV=x(@3dvDyu&>Ebvla9D#=MJOSt^9<vCg%U5_
zutcAuMU8n+3<=hQgCaB^FB#&9f>s8PqeW>Lr-A|rZ~2Zf>EEkJ!WQz;G at J82lTnR`
z%mdd5MeZHa#I<^DW;tf}`;qzl(Po*;F1zC$-D99sFl5i)HE^NRK%Hcwgsp0}WY#d9
z(R7F5Ctw1J1lry_M`m7HhB(IU**#!Zc6PL};gMb39|WB`t$Vdw4WN))#(0|A=XGhH
zZFgR?;#O<UB6MW8Zg6mK861ScG{iM}hU!sX^t`v~A5~ag_w<)8ky^bjQNCxzx%9(6
zljcprAzZ;9$?^`GZiO>`;+F2E3n22|rNPnbt{#Z^mgxT?X2$*O$#5XHTb4w=5kywp
z?I#W*&IzX9oPM<GnkSN#gNl;UBVuH<QxnijanVw+3Z at n2d4P=*SK#?IVmJ%USLeYn
zkEOT^sW)I at 00{CgOlKIIhzs9zaXdT3iZ&cx|Ams?o_Ri~dIz*Xr^Oh(^bJ$B3<2(C
zv<WL|KZ_BP<Re)1tL4Bfcj{Nlc(Zy=^wLIdJXeCs>0Iehp3XbleR at D-iNf?L(HHgB
z{~*afM83eQHp05f-qHQq at F~japJN;jzSsp1MftP$lqP4z^EV}Zgh at AVM)w#YFO}}u
zeUR_0G+A695qh|1giz^I&qsqdIZVcAJlLg*H{_{!i(x at 2NsRwq36A+F#YOI$Um!Dp
zJHnqzEZ)oc`CvHXZO#<7l at MjuO;0R|AcntZ(qxx{B&28aB{bKnK!;UYn^s#}^!gWW
zO3+q+ENv*D^lL*On4g>%W17%js8N6=R<w>ireQ9VOiXT8h&YZYzVdO$;VN3R-Gn#q
z9b>xIw3+Qbm|FW!sJw!%YW8OGH*ZLj;=d)0TTaYEf4IAu#^vS!`^tOS7d*9QuR6g*
z6fMqJM4HVhG~eu|Ct){nd@*6|k7>S5%)I96TMsTaYi;94E=Ov=ut>A}$cYj?4)%WG
z4FND1<sNZOfSvk6W+>pu4F{LmBu!t#z+929e&j%7g5BPYWr3j{B%#%3r`B_WV=3$v
z<ir8q&+l4>nh!kl0S3zE-#6AT1*Ly#ajHla4~J>N%g%Z$jvWHMc`8k>=4o)a4Mmx!
z%u+uV7GR*g9<Wb_985y6wj+gm{_ye;SyT0hyx5r-$D088N#$x0p~Y{rM$4^VpGmSD
zTeFaI>#_hJN&d3qLR<tx0^*2U(q*KI7{$P$7=g*ag&(vdq&bcAVsQo36oSnC<}LEk
zR4LAZzdkhdVE|ko#Y;c&3+yq>HMJOcGWCni(QVvFO%6cvIz3Jrt~dK{PdeCrKL@|y
zJKqcK^=V0tBuZBWW+D<$8CQK{?MPWB`~-v!(mYm->JgG^$f5>^Qa0>Ywbf`tF8wTc
z%c-(B;JJTC-p--|@3tpLRS^4$o at cehO16~Bf<zeXK`p^@mZmktOGlPcMX}9*(I*hn
za)ONB*0^^Y(8Otq7<?9sggA_T=n0<CZtri}O(+K?m74x<7 at J!KsejUVXb;=S77bd&
z@>~_08YgZ?c5c at 7hJhdn4*vK+>c-m`U&b?tt$;P6?(l8QJz4RzNAx&^pp1Z1aL<mL
zXK!n9I#;r*{%RfX-YCb&G(L;w$6^*vkiw%k{oOWC#ebIML>HXevvDzDpGnbRDe$1>
z^tjzf4>Gt${)pORWiy_$j<C4W;C51*kx%y!#`3K2y)H?(UDHr-X6T&?<4fw)AFlO{
zF$*SShGpY<sSO7H#2l(WduGg!+JaXz^zW762xsnMc+z&YJT#|4?E%Jron5!}c;rqL
zpkf^x54EA`JraR(w+L#($BL{ZKj}USh&#!9*A{yGo_P<=Wh!FRyb9(6jDr!F+r|4P
zYf(&ta5-7oL$!ix#X!03+8-{+lwoFh{Bqt;a%9cgT!-m<VWqT4-QZSA%e~=uNQ{GQ
z6=1i`in9shAu{qO12Z!JcqgY(fLhHy8=A!>T1wCzM309#cEVK6Kiwmh?1oPYP!*OL
z*;Mm~3<c4Ob!vQIPn(moBcq8#uFv!SpUF_pfL%voRWowpzSEw!yyc91gzs!6zIe7{
zB=Izxa{zp(h<1nYT_cVEjHiiyTz!EO-0)>hT#JbehkHeIp!Gfb=)foUfkUn2jrC9c
zZ#|6%JlLn<{N&}9&U5`tW0V+Rg<H=R<Y|r$QZ%}pcY9V!;B^UJf{{G8u=RHCr;bmt
zaHT#$L6Bk$qXSL!sI5d|8k)bSgLoRCN-qL!;u*lHnHW-q%EnsleX*09`<NEb!m4{6
zrBU=Dmg0+#36a+=QG8^+h(<6>5}6o=$o|>J`c$qVb{1w8v8&5}Ek&~3DlNRz^MUJ~
z5`@CbV^5fxWR*cP;{f3ZGQffwdNP~n*^~3}QQODAGNGilty%?>r8|Cx#}TX=H2b;_
z?+8FkPj}W2iBKvkV6s>NLASQm!!#i)gMlZ;#ZL+|3WlFPQq+^=%*Iui{x<DAofg*;
z at YK9L3%pt2GJGzpC}!W8SP`$RImJQ5XHN(AmraZ+6kq at OeM*1q<T`_iVTkOd8b;p6
zKim+4P=vtG!Gm)$ULb5U(6NHHS*ODpnaUYhvG+suE4Q8RwS%MTFDW4aH<N(3%dc=k
z1=@yQfKLl0^b8Hj^IQWdk7A at aKi##lJ`GcBm|vGHLq`fY;yOGs1MA3bn;uQ(S==O&
zov)Xr*B<k4&6f}r4-<xWb&t8!xSQ-EXYc7QilDY!-+ZAY|09SD)Rw|CV41 at 3kO{cP
z!yE(&Jkh!*lIyMHc?mEuksil=Io&Df4oEH%SGQ`l!O)3Eih-UCRs*3h)!3W{80S_a
z$v-lU4-jKy!Pau+=sFmB+s0!^6BQ)TGW6|ib&^of8oO9Cv$HIjx!{Ub|LLF+<JhBO
z3ws36pHJy;JbjQM_g5AS&V$D>fQ6Ea3zr%3+PL#8dz)2>lnXN1MBpoRTqYeQjtHn_
zNO>h*(Y)r98%8adxD_BwXe7_*``FUfhlbx2NN_sqt^oa0M|=yU3Y~3l6Wrf*VqG)2
z!1r45iWJ^w4#uAmrfN7*<b%?yHC>N_R`!EXw~f~jy!A)ihV^=UE{f)Xf<Yf8IVZM^
zKvpD&w>96H_+47Q`C;BsT3v1K6x3zESS88fJU?nk`T<l?TW!4?8ZIEg at wG{s0-<mn
zVm%}S8HX=Rv%du0kTuY32Z0Sj_!cukka`TV8Aww*M%_DC3IJCa^|)T1&P1R+364*l
zjsEeIfveeeo1YxN$PyTjqHlK|?Yhx&-QWGGKCGg+AcKIGKlXl3ib<bt9ud)6D65V*
zX7^}*C=d3ar5}!5#cEmc%ZYM>=Y6AQGqcTMMoSVYwn|EY7o1`}*ah8CnP9x}VLW6<
zdzKu&J8Uu2i?=9X at O^TDe!ynUZ-PWSK?6<{OCCHFUpFuOhZ98dfIMM)d$#n5j at chr
z5AQ{49!I6V=zWQw2ed2ju<Fjb^8xIqYcAk2sQ&kOBGErLEPgt at 7vVn`8P?%+pPN`7
zD*q3S3Bw~tC;Ya_(!0eYCM;;Ru^lcvIK?jol)_=JBqup8Q2Ka+;*T|IGd&ky9ZC+S
zWbA66P#g8t7}aahD%hH>{A7&1mduys$m4M_tED+PryD*U1O*Y7z~JA?%iZh{Pdn_E
zcAhG_W-LPI-`xsm&Tewx)H^K&^`wPpArTG+f&N}EI3mMI-Pm4*Mw(g*x>Z<QSrGX;
z41=-sTu6}>dQ{Z<QjNWd@#Q%6Z=Hb9B#A^pB@!0p`666J6K*D38Tu5mq1`UIy>GRb
zDr;f&iVrZ92*4Ij+0UMDs|u4dYkj>sssMD|d|PQxNo!@C2^g_w#Yc>O4yH2~R=ovD
z`z3NUV=~jRd)0&0Zn<g*w)p2}PIU^*lC}e0+_FbcfgypW{+y1tU|t0NKBWYaw^hg|
z-<#RtPE}bCJ+C>wgz;BEf<|T<z|?~>IQuFp&~Cbpc~VoMM!WG#sczFd+L<W5-=Gkc
z-~Jlri*U9UPq#3!-qNfV7eUxi&7dR<GJ5b at ADRvjVXio<$>AD%!&p_SPZkEL(}}Ms
zwj}BjEe$aHRUEUHmWYzPOvQ5<kT?<|l*?F4O1#Oen;@+3fjo@%om|X4=slFieVTel
zRqaG{bz1i}LPC!Fo$S`U{JkETTOFk|{4_<^Y>or*fHr$Vfle*^@peh7&xMRR7$kA^
z>LfBBCSX5T+NVl_-|`~Raqr(}_r at 87?D3fz=|vmV_Vu>eWJNws!MFq0t@?N9W=GCK
z at rQP~Dx<b^tV`IT+V1z>J#e+J)cUC%w$^`~tV?}v+;#?6QT2(@=$<_G#jrcj at p)cq
z9t}q6vHcWu^EFy?Y<eV+A$#^R&OnMpCNsduKyQ+-?S@;14cARVi7i{(AC=%ko$l(j
zpK*wcwYw-}Dw;tHV%5b%{?jjDN|Csv9 at 8bKbPVVYFaenytqOJylOQ}LoSZpsXQs*L
zUlZPMSyuGxltG>v-tKEt0&lgZ$|K-bHt&Tg9$OD5uG9c-s`APw#T%S%T4r9a46bsn
zUF@~9e at 1C%5%nn@?LX^~qq!;lczdt#hVw?OLn at xONjDUB8LB<mA{oH;@01LSKnFTJ
z&&%BVVqE at 1*H?8?g~&@4*~`hjWU7n>Oejw8ckJy^!MaAuV~J3P<hI&f(Q487`J at Up
z%u9a^uRoE1xGZ`B>vrPF`AIF#){Mhx`dc9z-kdM{a<or{>m1bE>Em>+jkB=gXpHXP
zlz!U|wVxI{&nH_8%#Zlb=1lxCw}t3NY;PxG^1HQI)=;|L32L`D+3}KK#H!ulsI{8(
z1)vscm1Og$VrDcrrbs}iJ#)^Ur%dw1YOmPmvmsjM2_$Df`FmH5oj0t1!0jtGdY_ig
zrK33*=zYC at p$ZV!0YU1-HJo{pdo4n|NhKr18}yU1(Q4ffM+a`%yMcd1qV)Z+wC?9r
z(VXome at L7#{)T(;P+I|lTL~uql8?6waQXUIcY8$t>hi6315J`8l<E5PQ=OnGee9&D
zx2wG6jx0QQD+IWo+mOk&$E5eA_Iq}OgcUcKFfe_LVbgvuTV4&0SWWAO;-xxp(z#{6
zn^t{U#^O#_H(S&m_+SqA0HIj3 at O8<U*Bv%bm7hkv^2VX|jYOcWOa81R{kaUwAXW}f
z3&}6&ScAKgl{@vdqMdCxw`T%+X0&Ho=VA3Q#E46Rv7EtDG!?-knIvE_#2BTxI;1 at 9
zvig#?cL at 4;+F}<vG&fgn{|D8_zhtCz&Wvrxq-LzZ3}+<5I7oUXeR6+2GPN*sarz|t
z?dna%+I~~TMWY1=4}uvuxL+Dm0hICKHvJtvbxf;ITNweA6Mz4>qQNOQ8_FY(jT{Ed
zQpxs+v4OdWSOlWCHFrO5;?+eTA1yCd3%2s74sv0*!Dj7eBhnnrC)XBQXqE_p-5V4H
z#!YYdDS`<lJqmbpm_~;8KP5$HR$H<h73|!fD)JpZ+=D(s=B@!qQ at W6Jtu;m$ncgHG
z95?4orrz<O1Q59GuE at y<%iB9<)5+#X{@@sjJZ+<4#Gbz0G+ePb-jNNFk0O0>c5zOB
z;p(E^laq4kTc`hs<R8ZNSjPJ~=<HO_4hdI-YIUT~8nOz!@yy`Dsr0R?tevu)oNXB}
zN2p=$;u0S6LXu|nh9rc+1p$-H9T&WZo63di*XG#QPjD>O!hYWg!@CY1x+||1nHuhB
zjTqApan3oOSfb%l$4AbTGEL!iTbR0Q?U|u(-xEb=a4_BOn$pLxv**e4%_H`{X36&}
zXHFW<s$+y_ML%n~WW|S9cSYQ{TbOlRAWmp-w&A_Ijxde35Y-Y4;X)zg#7P#;I&12^
zZPTOcsT-YmwGtd96u(Unes-nfeNocuQw}!g3a?aI(XEyE7pQ{98(;fGU;BD4?Q=uC
zB>RsAx5tO<ROq;t%b6kA+1W_C1|?=ZzwWwEg8c4D4c7gQW1kim7v^W#&IP6t1QmvC
zY;4TU1-x2JWz)q^J#mg&w{zoB)HzY-oX8gFH2q^&xMS`oU_qkDfz5*+4nRvvR)pee
zVo-Dj+oT<<#>b2t?&~an#;IQ$uhC?~`^q|tNwtK at 8;f1(r=j7%wW6>y#J6F$Avs!&
zRkAYzI)#A&AUu^|^m*J*-qH8~nrb!q)@t%K`RLcaXLE(|;qw;sRP*1cSNa at 0KRRGt
z)7FT`inLrr3it8xpQ(QGxQln0XJOtFn$>6%F_2eS%}iP3x?VxM_+ysH1VZJ#dE+C!
zw^SZ^${c`s9r!RU&Xn!zlD&BYwNIy!ep~M~gJuRZ`KG(Fy=qbXve&1=t)0B;&f5~2
z^U~tO-`J2G7kYk#p)jD8T~NEOf}6r9n-WDg5>L3Kaod*VQKMs{HC-Z$b}HG%r at O>E
zE at U}eaR%#TFhRrO*qhczomJFx)xO-98$a;VwBXG!3c{U+ZCL}75GbajFI&OIISR=9
zEIsw*gg>(jy9{dsU%R9g^d#mS6jsu at 7t6i%k;q*h at 2vGFh_JOEKwno?<6b!=zW+YV
z>hMYlPZTu at g;%xO)pSE1Un$F}?arF#8wX5j=h&)g@~5q4qBpJb9r)%n%$^DGbnBy(
z#}o{ogCe<c!u#Z|+kY{5C_{)>ApEd;WHssn$%zCMNnPz?vYb7>E^8=xZh1Ss4TcVv
zX<*{HgE&G<p=gGriq%y at aj0NzGN<KC;!TwPhly5L8CIh#0q-2N4%Cc*uN?nh2?a>l
z3|bob=b$mxQe*!^AQlwobmtf)=S*}HAS`NJy>tMg#@6BgeX`Y3t|G5>A}3UD9qUN8
zP0#h<_m=yg8q0 at yCJFFBTMwz7iJpw20LE6J;p5?WN3+mW6G<&#V3pDi`)6x_=cq=_
zY at FLh9*mH(lcLLO-5UG}tSQ`A><av-C1D4v#P1X?nO63~a`uE%(BbjlWkqw at qB#Yu
zWpK0i$$p2(3zc)nGJ_Vm^|i60G1CckSW$pXp_RZ?$$AZWeh3q50qo6;%eO3B`FfFq
z%donwft_*~ak?=gi6u_1Sr}`cYs;FV1iB>N8hNZsSm84KgSn${!Y!@~6Dz>P8nAGC
zE7KMU6JZq*=W#L3R=;KrTZXjM)(RrsOG*-#+y at lb-fD3uuNQ*~2IRwA;0-P<4O#OP
zqvM4?cHG!4fiwL00u$ScS%kv$5buzC<G|Dy4UYK~(&9dwGkjMx_;M|j;MMAO){$tw
zZ*uBKo;seS<b=6Ic=U8~XfUb?iX`k053XcU+%M&rE~L_(6yooo%^k43oIS%ilAMJo
z)i(znW{WNAJBRN?n-K47O<GrZjOMv1Xd04C%4EjIv9sxsFJNV_!-$+O{&B(`+nN$g
zzd>Q|;$I0y7xR5xjOXa9f(_t;wf%6xnkcvEG481oDlChMJBD>4yP=Q5>LTcVsOZ|6
zSe(YGTJWEwtue}`{*>ihYVvGN-~hoburI`|jMwZ<_(&72giY?)IB>~+3iwd(o8Of@
zQ-0eq%jyXc-PCds%{_%u at WSZ$z1TBKfm7zKYQe?v;qrLb=fP5zz}_bLgjT`O5dNMl
z?xC57B2!%jy{ocxv1F6NPknnZeN%AThL at 9NQw1Erhtqd4kw5lWo>XzZAU$Rs2rQNP
zLiwVHsL-y3?Lv>}_iem(VoVzh_m7h&586uvZZW_^J#eIqrgJsv?&#rTNxc&y?nG&^
zP1f?GYu-pYkj+=UE0WM~$__DtI-m9gbMW^X8EC^!_kNDJYrZ!su$49X(0zo<QvzW&
zAnT!AcxPkQYP}DMIg>LGGynzuipodNM8Oc1U3?>^-NvHvu5CTK7u#(;Dw^fh)|zvR
zd2;v{3K!0`s<OUHp6*KNk5c0Q7y5$bY6R;!@cUGo(f+1A;#8%~>dlVE^Jj_zc?jV1
z|0Npme<g(vWM12Up;fEU^dfP<S(=`O*1II at 9r-7kA2Rd+tqRuNk|nGuZjuNL!#;D=
zM=%;hojt_?jfX*e1!3nmfRXum*_eG2tRosfyC{DQ4JY)qkBqxbOeB45&@B~Z*FCCL
z3?Zf0O3-^1mV;gq at Kptc0G;D+3LDI)6k*^h*sKP%o3xJE`>&Ba2#heF^GqnfrQF+n
zOO at 543Q<n>r|aAJZRRu>RusDi at 5(dHna^^jJSva**kF;8*`J+V2QxJ%UCPJz+SWV?
z(d00VnOMCPN&1{S8RK^g7{fAjVrw37BQWZNCzJw}p)$~@d}_ZMFH`W4WKz|;mcYs%
zR%JNa>6^Jk7R+$H+#8M$+!zx8x at P+XE`uXuh#l_iHMhQ)#D+5Jxzhj{6ct%Jd1Gg5
z03kA<TQoin!v~=_S|h5y1AWqT at UNGi<@oo?(F-sOnLGoFgc-kBk2ouAQ;;M_)t&wB
z>FTR!y@|@WbP-dwR1JAg0!D7vRN8c+Dmn2a1<-!2LKTf-X&gJJgYxkW1Ca2#p4w$Z
z5^!IHBIt&ATz(|Lb6am`P)nCvbIIW>eqc)p%$ZefK)FnRxU at HqKx_^d<WWZ$vp*~G
z4+QZO_=Mr*$wP(LH`qfXj7<}Oh|5^QmW}F(t6U<P%qV(esG%e{ko8dkih-d={5FpX
zwYpRK%WaaxgvJ0xJ=(T<2k|6jV*WM9(zThHzse%ERFc!Qv7UPMxzn*^LmM+g2(&J)
zw#|PZqk^Y(KZL2&`#;k9xT=F at tFSw6n4o0wY@mu0A(KUB!~`_#21D*<h&a>X<~+tj
zUTH<vZkSpL9>72a5H$o)_<#l-0<sQ}ZIuECXsQrE+_E8>vb={l(CCh#e?^l!M`Y+<
z6%ePq_K{lPiAmtd0NKW$THn~eKhEU#7KIQQ1CpaPK($LAMDCwi%aE}kE>`TMzXNi>
zT5_lhsmDK#Q0SyuomH}8nh6?QsElKYln$ct;{^qqGQ%dbsr#0z-Leo at 1)?Rc<we63
zL-$LWq6dC`_L7`qw-Dqxd_6?s8(@ysB}i$GwI26(Yo&$#Y}dWL`M%F9mwTx=f at gED
zWn4uVrgcFR*gLGi!FyaQf-DP{bICDA4O7_=J%)iv;-v5+HzC^Aj0^YVkFmQq+(;S|
zl7x8}x>Mo at k7X8;?`iX1NrvqOp$PHTZ64+|J3PvHTG>YIA|`GJs5aT#{XlW`{Wc%Z
z$@klHG?5GT!Ye_3-RNk%!bd)^rr_hd4m`D*OMShVq24!llFYbHS41!xn8>_>xM5>i
za;nx#X4sp3FSqS?0P}_sFybR1pHd>UVluz{a%$i`?#kNalZGJO(wwxq8AsC!Z#3U6
zv7U=N>)=A;EthnO`B^D2^d~Bf at 6zfbeD#aq&)-Nw at ULq&6{_J2>V2j8s?zEB5BUy2
z#NCymiReS~K=yS&xT78R@)ANQ@^i=89YBzuz(g?;UyZnw`_x~HStDIWGx9LL<1_h^
z-Zjgxs2?+K%laz_MsO3l3jAGt8e1#(>>-8k)BnW$$Y3OntRO#Jh;mR0wAKGM4mo#s
z*svDoVF>TX)i9Ba+$)FIRr|w7;jbK=m(+C~)_aTGLuzGpe^5$Z;rrDeeZ2v#E)xWy
zDn;TL2+hGO8d)~8)#mgzx<lQG*7J7lyCw!-YT6{(UCGXZtrxmsU6=b%NEO3#IDr?B
zBQ$wr*C7`${nOq&Z5=g2W6||*Xp*oFn{{o2`gGOS{Lf2c`_Zi<=iXkQDAEXy>Lf-?
zMTZ{<A5!zYm^h^vuL;QNnUQFF_vn|m>qvi~1NB%*CTk2CiK+c3jjeV1k|#$TU;e#}
zURkpG(O at YmaOz;?L-R3`PzO6p4|7ws`kcdi-w45IH at I9Q4WEDvx4(7d=!U1iv}~-$
zrsqBju;<yfDB2{|em)7&wKz_Kfj590OGepAHZZU60~;X8nF)h#i(;>w#|>ALm?6 at L
zA_H>oHW7|QX1oFoJK!}31Ft!t-|(5IU1-CXgpJpAjwO|r?4Gz02bR4MfpL)xFT57l
z-=X$UtxF8-F8Lh*2Xs&neVn|Nc32+27R7HIDN?KDefYTTt7ofPjrd41^+>_TXUu-D
zUrh%t2*q?m`%Cc$&aLkTI=rL{V*|5#Ps7~&F9#qc-6Kn<hFP~RG#B4f<u6Yt_Udt2
zE&LSmVWUhjt*aSGGf0G)`Lra!LM_ZmbMTv=+vxQ+9VeY-y+PQli?=DYtu<9MZoI0o
z$1Z(SW2;$16Ea9tZds`J=-I}#7~EjHxncUp%<~Bcj6OL^&V7pU?pDt+{=ItGrP;;t
zfyJKpskKg*n9f=!A1m^U4VL{S!P!XW$Gw&RmY_vZyNjkGC0te3cy(9*PK7FGRCx&Y
z!5E>e06H$JtH$eFu(Lx&94GzbICyJqpg at hr@IUX9tbq5h9{BbERA&H5$r0<5yNvE+
zGhvWefj?6QBpFH{y{n{IYtM~})GLA=(3|jr7UE~TK<m~g>?vtq`LwHTuALKMzi>Ns
zYb^_)y}gECnK+TMrZH>wJ%7btq>7MlUw$P3Da;$$D at l$>!8|F-srS}cF96mB3SIbT
z`Mz(Aq6$P~@>g+0+vE=qMb(t?k0ZNvQ9~tG)343xX$VAFLD=-y>gQ`%TZX~U*z+ at O
z{Kb6Crny1rvEsf}O?;yTrRv1ui(g01y>V9P8;R<9cseEG`FrN9c`(zh<>L`@w&tMO
zMA=C3+Ni;E^Y~}Dzt at ccQ_W=8z_;xdpF2fPZC9Xyi%7igT30B2xe+ at 5boL|rQ$@Vl
zuT`Y(dk7~~4s7rd85d+kt|e0y?@xx3o2%*921XC5IS#z3q}udMlobuz+D=~3(Vu-d
zw3C+?4ZW&CK~iz?0(Y at j%3b$^AK-M$ikNC#=T2AJ3cQo_Wx{q=Nz9AK2KHP`yzt at J
zQ_k5<r+UZC>3U?%=J+AllwGsI7g7qv+%8F^yDIBi%(E5HXL;V3<tUmQ-xVMJN`U6)
z9!30F8&E+3RtxYrAAlg4-vh9_FjD(!@cZlJEaZhtCvP71u at 5@pEgtlJ=!}I${j*`g
zr)~9_{%bVhRUg>*H*(S<zn(>27UPnHL4PiG{g+o;ZxruXkQi}tHbaEY)JO9h4kD9Z
z{^j!Y1McQHb3f|C>!j|Wu(R6a&gW7}>?u;Rbw)gL|KhhDAwtkYz#AL9uu)<)S|T#b
zRYHm{$Ow at w7e-EGiHe}H!haU=(_lDY45q8*;FI4P=9tFW0=33Hguv}3?BO`aORHH)
zsL at WrpkCxJTBoqC>d?Nn@(<klr2V$=rm_f=4L+s`0yUF6moGi!WixWz-&gx+ax`_6
zlg9-uK4w+p!2Gt6(>jZCN#8msD?^{+v66Od?5H~H at 6|6z@;dB&m$&m&lU8N^V|XEy
z>Dy50!u^dYBYz%E9lWDG%X3~dc{b at FXo9hHD+f>5thPEXMMThi2r&VKg0NjMw%Iga
zp^eF at PL&D0e_8`wK{KlCGNa18qD?sxyLYr0b%C{OPTx%pD>3xnSt;BNIeC38!CDvh
zY6PGNSXRW1K=l}J?=01z{W(LE<I?6IB6Csigof{DocjG^_>zD-BJQO&|5UVs3_a6V
zL8bLfP>vQq58iLmcn><6FU7}MeX;a$<o-4thYoae-5_^Y2ZJskxhb?WVtt;U+rnze
zF<i?SQepg*nl}R4m6WvV0kjc)lk8+PWcEwC?9IDyhCGj{sD1^z6BzAE_Os?~J1{T2
zDI}fS^zH2-2rPXzk-PB8XQdk)VZO3F2|6y&c;bBv&nrx)>N~ePn_%GR)#r70jh>o*
zz3cyiBsAZf_izJ&9v^<UGCcmuc^IHc at P~n`w8ZcYa(E~zaJ4wdeGpLeS6Is9<yy~o
zAdwh^4tSsDJU11i`wvf_R5|`y!zIR$<qaMpw{WB(B`3ql;aCz4%|=mWwk%<RHNR<c
zQaA4=aOYZ27$W1Y#k9=K&A>;l08~4HhgmiFq%*|_JNw$ds_q$70c~WLLN{ZzJ?}o>
z1VUQleN}xf_yn)d&%bU0X~EC^umL!fUXCVIJ$v|kQ2hh?_%4uAO4~BL=m0npWd9{x
z062j42KSMO^OiAa+%k<qVot=if`3qD$#he5j9oU;##)>S$W>$|sMRkJ<A~IKtJHwr
z{A*fv6+}$PQ2eEM5DGOvuyXXI;nlAG{zMF9H6F{9zDkK#COtEb>E`t-y|O}N3BOdP
z1-*n~v;{hLWbg&EDM|=L|L at Nf@rzpSNRTP%5_t*v8-XXf#P5v(iTi#@u_Gp>X8`W>
z?^|1qEchbsNIG1xcAXYh`k&uVDEsN(;jmgFl-~b=UEq2OyS*Jvc7yJVvpqzk{{hIB
zpjJv-!;&jTmKhNd$AVNO6A)vugFnHIGm8WMK1`};*G+oCWL8rI5B($j<lr4__JF^E
zbS%9VGQSELN{;+Ns%=XzvHY*^gG7+$|M3X%%zEUVlK=N3it-la$UBa^=B)2JiGn{r
N*&f+nvhUQz{|9Iz15W?|

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded
new file mode 100644
index 000000000000000..21bde05423d1c2a
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded
@@ -0,0 +1,2649 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nT identity(T t);\n\ntemplate <class T>\nclass A {\n  friend T identity<T>(T t);\n  T m_t;\n};\n\ntemplate <class T>\nT identity(T t)\n{\n  A<T> a;\n  a.m_t = t;\n  return a.m_t;\n}\n\nint caller(int x)\n{\n  return identity(x);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 755,
+        "y": 20
+      },
+      "name": "Source code",
+      "size": {
+        "h": 325,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 45
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 15,
+        "y": 140
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 17",
+      "size": {
+        "h": 100,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 215,
+        "y": 45
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 71",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 220,
+        "y": 140
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 74",
+      "size": {
+        "h": 100,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 47",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 50",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 55,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FriendDecl 52",
+      "size": {
+        "h": 45,
+        "w": 95
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 55,
+        "y": 585
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 56",
+      "size": {
+        "h": 85,
+        "w": 90
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 395
+      },
+      "name": "50",
+      "objectGraphNodeID": "CXXRecordDecl 50",
+      "size": {
+        "h": 275,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 55,
+        "y": 470
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 53",
+      "size": {
+        "h": 100,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 200,
+        "y": 470
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DependentFunctionTemplateSpecializationInfo 107",
+      "size": {
+        "h": 75,
+        "w": 295
+      }
+    },
+    {
+      "loc": {
+        "x": 390,
+        "y": 45
+      },
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 101",
+      "size": {
+        "h": 45,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 515,
+        "y": 45
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 27",
+      "size": {
+        "h": 75,
+        "w": 225
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 515,
+        "y": 140
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 26",
+      "size": {
+        "h": 105,
+        "w": 225
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 555,
+        "y": 465
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 20",
+      "size": {
+        "h": 105,
+        "w": 215
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 190,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 104",
+      "size": {
+        "h": 70,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 515,
+        "y": 260
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 57",
+      "size": {
+        "h": 130,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 555,
+        "y": 400
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FriendDecl 59",
+      "size": {
+        "h": 45,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 555,
+        "y": 585
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 60",
+      "size": {
+        "h": 85,
+        "w": 95
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 515,
+        "y": 390
+      },
+      "name": "57",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 57",
+      "size": {
+        "h": 280,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 160,
+        "y": 610
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 89",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 380,
+        "y": 610
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 96",
+      "size": {
+        "h": 20,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 670,
+        "y": 595
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 22",
+      "size": {
+        "h": 75,
+        "w": 230
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 38": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "BinaryOperator 82": {
+      "Dependent": "Instantiation|Type|Value",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 115"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 115": {"syntax": "\"<dependent type>\""},
+    "BuiltinType 118": {"syntax": "\"void\""},
+    "BuiltinType 25": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXConstructExpr 37": {
+      "CXXConstructExprBits": "CK_Complete HadMultipleCandidates",
+      "Constructor": {"ptr": "CXXConstructorDecl 61"},
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:8",
+      "NumArgs": 0,
+      "ObjectKind": "OK_Ordinary",
+      "ParenOrBraceRange": "<<invalid sloc>>",
+      "TR": {
+        "preview": "A<int>",
+        "ptr": "ElaboratedType 34"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 61": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 62"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 109"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LookupPtr": "null",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 63"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 61"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 61"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 63": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const A<int> &)",
+        "ptr": "FunctionProtoType 110"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LookupPtr": "null",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 68"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 64"},
+      "RD::First": {"ptr": "CXXConstructorDecl 63"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 63"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 68": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (A<int> &&)",
+        "ptr": "FunctionProtoType 112"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LookupPtr": "null",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 69"},
+      "RD::First": {"ptr": "CXXConstructorDecl 68"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 68"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXDependentScopeMemberExpr 83": {
+      "ASTTemplateKWAndArgsInfo": "TODO",
+      "Base": {"ptr": "DeclRefExpr 84"},
+      "BaseType": {
+        "preview": "A<T>",
+        "ptr": "ElaboratedType 80"
+      },
+      "Dependent": "Instantiation|Type|Value",
+      "FirstQualifierFoundInScope": "TODO",
+      "MemberNameInfo.LocInfo": "(none)",
+      "MemberNameInfo.Name": "\"m_t\" (Identifier)",
+      "MemberNameInfo.NameLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:5",
+      "ObjectKind": "OK_Ordinary",
+      "QualifierLoc": "AbsentNNSLoc",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 115"
+      },
+      "TemplateArgumentLocs": "TODO",
+      "ValueKind": "VK_LValue"
+    },
+    "CXXDependentScopeMemberExpr 87": {
+      "ASTTemplateKWAndArgsInfo": "TODO",
+      "Base": {"ptr": "DeclRefExpr 88"},
+      "BaseType": {
+        "preview": "A<T>",
+        "ptr": "ElaboratedType 80"
+      },
+      "Dependent": "Instantiation|Type|Value",
+      "FirstQualifierFoundInScope": "TODO",
+      "MemberNameInfo.LocInfo": "(none)",
+      "MemberNameInfo.Name": "\"m_t\" (Identifier)",
+      "MemberNameInfo.NameLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:12",
+      "ObjectKind": "OK_Ordinary",
+      "QualifierLoc": "AbsentNNSLoc",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 115"
+      },
+      "TemplateArgumentLocs": "TODO",
+      "ValueKind": "VK_LValue"
+    },
+    "CXXRecordDecl 100": {"skipping reserved": "\"__va_list_tag\""},
+    "CXXRecordDecl 50": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-friend-ft-espec-inst.cc:9:9, line:12:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 47"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 106"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 51"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 56"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "34986617",
+      "RD::First": {"ptr": "CXXRecordDecl 50"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 50"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Class IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "A<T>",
+        "ptr": "InjectedClassNameType 105"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 47"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "needsImplicitDestructor()": true
+    },
+    "CXXRecordDecl 51": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 47"},
+      "DC": {"ptr": "CXXRecordDecl 50"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 50"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:1",
+      "LookupPtr": "null",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "FriendDecl 52"},
+      "ODRHash": "27114650",
+      "RD::First": {"ptr": "CXXRecordDecl 51"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 51"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Class",
+      "TypeForDecl": {
+        "preview": "A<T>",
+        "ptr": "InjectedClassNameType 105"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 47"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 58": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:1",
+      "LookupPtr": "null",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "FriendDecl 59"},
+      "ODRHash": "27114650",
+      "RD::First": {"ptr": "CXXRecordDecl 58"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 58"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Class",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 99": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CallExpr 94": {
+      "Arg[0]": {"ptr": "ImplicitCastExpr 97"},
+      "CallExprBits": "",
+      "Callee": {"ptr": "ImplicitCastExpr 95"},
+      "Dependent": "None",
+      "NumArgs": 1,
+      "ObjectKind": "OK_Ordinary",
+      "OffsetToTrailingObjects": 24,
+      "RParenLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:24:20",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ClassTemplateDecl 47": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 104"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 71"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 48"},
+      "RD::First": {"ptr": "ClassTemplateDecl 47"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 47"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:8:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:8:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:8:1",
+      "TdD": {"ptr": "CXXRecordDecl 50"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 104": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "A<T>",
+        "ptr": "TemplateSpecializationType 117"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "associated decl": {"ptr": "ClassTemplateDecl 47"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 57": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-friend-ft-espec-inst.cc:9:9, line:12:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 108"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 58"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 68"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"A\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "3441923",
+      "PointOfInstantiation": "in/src/ct-cont-friend-ft-espec-inst.cc:17:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 47"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Class IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 47"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 47"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 47"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 50"},
+      "moduleOwnershipKind": "Unowned",
+      "needsImplicitDestructor()": true
+    },
+    "CompoundStmt 31": {
+      "LBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:16:1",
+      "NumStmts": 3,
+      "RBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:20:1",
+      "Stmt[0]": {"ptr": "DeclStmt 32"},
+      "Stmt[1]": {"ptr": "BinaryOperator 38"},
+      "Stmt[2]": {"ptr": "ReturnStmt 43"}
+    },
+    "CompoundStmt 62": {
+      "LBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "NumStmts": 0,
+      "RBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7"
+    },
+    "CompoundStmt 77": {
+      "LBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:16:1",
+      "NumStmts": 3,
+      "RBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:20:1",
+      "Stmt[0]": {"ptr": "DeclStmt 78"},
+      "Stmt[1]": {"ptr": "BinaryOperator 82"},
+      "Stmt[2]": {"ptr": "ReturnStmt 86"}
+    },
+    "CompoundStmt 92": {
+      "LBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:23:1",
+      "NumStmts": 1,
+      "RBraceLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:25:1",
+      "Stmt[0]": {"ptr": "ReturnStmt 93"}
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 40": {
+      "D": {"ptr": "VarDecl 33"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:3",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "A<int>",
+        "ptr": "ElaboratedType 34"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 42": {
+      "D": {"ptr": "ParmVarDecl 30"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:11",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 46": {
+      "D": {"ptr": "VarDecl 33"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "A<int>",
+        "ptr": "ElaboratedType 34"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 84": {
+      "D": {"ptr": "VarDecl 79"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:3",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "A<T>",
+        "ptr": "ElaboratedType 80"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 85": {
+      "D": {"ptr": "ParmVarDecl 76"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:11",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 88": {
+      "D": {"ptr": "VarDecl 79"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "A<T>",
+        "ptr": "ElaboratedType 80"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 96": {
+      "D": {"ptr": "FunctionDecl 26"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "HasFoundDecl",
+      "Dependent": "None",
+      "FoundDecl": {"ptr": "FunctionTemplateDecl 71"},
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:24:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 28"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 98": {
+      "D": {"ptr": "ParmVarDecl 91"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:24:19",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclStmt 32": {
+      "DG": {"ptr": "VarDecl 33"},
+      "EndLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:9",
+      "StartLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:3"
+    },
+    "DeclStmt 78": {
+      "DG": {"ptr": "VarDecl 79"},
+      "EndLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:9",
+      "StartLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:3"
+    },
+    "DefinitionData 106": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 50"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPrivateFields",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 108": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPrivateFields",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "DependentFunctionTemplateSpecializationInfo 107": {
+      "AngleLocs.Begin": "in/src/ct-cont-friend-ft-espec-inst.cc:10:20",
+      "AngleLocs.End": "in/src/ct-cont-friend-ft-espec-inst.cc:10:22",
+      "Arg[0]::Argument": "\"T\"",
+      "Arg[0]::LocInfo::TypeSourceInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:21>, NullTypeLoc)",
+      "NumArgs": 1,
+      "NumTemplates": 1,
+      "Template[0]": {"ptr": "FunctionTemplateDecl 14"}
+    },
+    "ElaboratedType 34": {
+      "Canon": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "A<int>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "syntax": "\"A<int>\""
+    },
+    "ElaboratedType 66": {
+      "Canon": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "syntax": "\"A<int>\""
+    },
+    "ElaboratedType 80": {
+      "Canon": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "A<T>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "A<T>",
+        "ptr": "TemplateSpecializationType 81"
+      },
+      "syntax": "\"A<T>\""
+    },
+    "FieldDecl 56": {
+      "Access": "AS_private",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 50"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:11:3",
+      "LDC": {"ptr": "CXXRecordDecl 50"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:11:5",
+      "Name": "\"m_t\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:11:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 60": {
+      "Access": "AS_private",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:11:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:11:5",
+      "Name": "\"m_t\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 61"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:11:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FriendDecl 52": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 50"},
+      "Decl::flags": "",
+      "Friend.ND": {"ptr": "FunctionDecl 53"},
+      "FriendLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:3",
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "CXXRecordDecl 50"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:12",
+      "NextFriend": {"ptr": "null"},
+      "NextInContext": {"ptr": "FieldDecl 56"},
+      "NumTPLists": 0,
+      "UnsupportedFriend": false,
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FriendDecl 59": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Decl::flags": "",
+      "Friend.ND": {"ptr": "FunctionDecl 20"},
+      "FriendLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:3",
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:12",
+      "NextFriend": {"ptr": "null"},
+      "NextInContext": {"ptr": "FieldDecl 60"},
+      "NumTPLists": 0,
+      "UnsupportedFriend": false,
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 17": {
+      "Access": "AS_none",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 19"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:6:15",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 14"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:6:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:6:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 18"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 74"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-friend-ft-espec-inst.cc:6:1, col:15>, TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:6:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionDecl 20": {
+      "Access": "AS_none",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 23"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:27",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 22"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary|IDNS_OrdinaryFriend",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:10:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:12",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 21"},
+      "RD::First": {"ptr": "FunctionDecl 26"},
+      "RD::Prev": {"ptr": "FunctionDecl 26"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:10, col:27>, SubstTemplateTypeParm(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:10>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 71"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 74"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "FunctionDecl 74"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 22"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionDecl 26": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 31"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 28"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:20:1",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 27"},
+      "FirstDecl": {"ptr": "VarDecl 33"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:15:1",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "LastDecl": {"ptr": "VarDecl 33"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:12",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 30"},
+      "RD::First": {"ptr": "FunctionDecl 26"},
+      "RD::Prev": {"ptr": "FunctionDecl 20"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:1, col:15>, SubstTemplateTypeParm(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 71"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 74"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "FunctionDecl 74"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 27"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionDecl 53": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DFTSI": {"ptr": "DependentFunctionTemplateSpecializationInfo 107"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 55"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:27",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_OrdinaryFriend",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:10:3",
+      "LDC": {"ptr": "CXXRecordDecl 50"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:12",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 54"},
+      "RD::First": {"ptr": "FunctionDecl 53"},
+      "RD::Prev": {"ptr": "FunctionDecl 53"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:10, col:27>, TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:10>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_DependentFunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 74": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 77"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 75"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:20:1",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 71"},
+      "FirstDecl": {"ptr": "ParmVarDecl 76"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:15:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "VarDecl 79"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:15:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 76"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 17"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:1, col:15>, TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 71"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionDecl 89": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 92"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 90"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:25:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 91"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:22:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 91"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:22:5",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 91"},
+      "RD::First": {"ptr": "FunctionDecl 89"},
+      "RD::Prev": {"ptr": "FunctionDecl 89"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-friend-ft-espec-inst.cc:22:1, col:17>, Builtin(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:22:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 103": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionProtoType 109": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 118"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 110": {
+      "Canon": {
+        "preview": "void (const class A<int> &)",
+        "ptr": "FunctionProtoType 119"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 118"
+      },
+      "paramType[0]": {
+        "preview": "const A<int> &",
+        "ptr": "LValueReferenceType 65"
+      },
+      "syntax": "\"void (const A<int> &)\""
+    },
+    "FunctionProtoType 112": {
+      "Canon": {
+        "preview": "void (class A<int> &&)",
+        "ptr": "FunctionProtoType 120"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 118"
+      },
+      "paramType[0]": {
+        "preview": "A<int> &&",
+        "ptr": "RValueReferenceType 70"
+      },
+      "syntax": "\"void (A<int> &&)\""
+    },
+    "FunctionProtoType 119": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 118"
+      },
+      "paramType[0]": {
+        "preview": "const class A<int> &",
+        "ptr": "LValueReferenceType 111"
+      },
+      "syntax": "\"void (const class A<int> &)\""
+    },
+    "FunctionProtoType 120": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 118"
+      },
+      "paramType[0]": {
+        "preview": "class A<int> &&",
+        "ptr": "RValueReferenceType 113"
+      },
+      "syntax": "\"void (class A<int> &&)\""
+    },
+    "FunctionProtoType 19": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 103"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 23": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 90"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 28": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 90"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 55": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 103"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 75": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 103"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 90": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 101"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:6:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "ClassTemplateDecl 47"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 71"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:5:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:5:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:5:1",
+      "TdD": {"ptr": "FunctionDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionTemplateDecl 71": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 101"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:15:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "FunctionDecl 89"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 72"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:14:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:14:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:14:1",
+      "TdD": {"ptr": "FunctionDecl 74"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionTemplateDecl::Common 101": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 27"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 22": {
+      "Function": {"ptr": "FunctionDecl 20"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 71"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "<int>",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "FunctionTemplateSpecializationInfo 27": {
+      "Function": {"ptr": "FunctionDecl 26"},
+      "PointOfInstantiation": "in/src/ct-cont-friend-ft-espec-inst.cc:24:10",
+      "Template": {"ptr": "FunctionTemplateDecl 71"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "ImplicitCastExpr 41": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 42"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 44": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "MemberExpr 45"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 95": {
+      "BasePathSize": 0,
+      "CastExprBits": "FunctionToPointerDecay",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 96"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 116"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 97": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 98"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "InjectedClassNameType 105": {
+      "Decl": {"ptr": "CXXRecordDecl 50"},
+      "InjectedType": {
+        "preview": "A<T>",
+        "ptr": "TemplateSpecializationType 117"
+      },
+      "syntax": "\"A<T>\""
+    },
+    "LValueReferenceType 111": {
+      "PointeeType": {
+        "preview": "const class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "syntax": "\"const class A<int> &\""
+    },
+    "LValueReferenceType 65": {
+      "Canon": {
+        "preview": "const class A<int> &",
+        "ptr": "LValueReferenceType 111"
+      },
+      "PointeeType": {
+        "preview": "const A<int>",
+        "ptr": "ElaboratedType 66"
+      },
+      "syntax": "\"const A<int> &\""
+    },
+    "MemberExpr 39": {
+      "Base": {"ptr": "DeclRefExpr 40"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "FieldDecl 60"},
+      "MemberExprBits": "NOUR_None",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:5",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:18:4",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "MemberExpr 45": {
+      "Base": {"ptr": "DeclRefExpr 46"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "FieldDecl 60"},
+      "MemberExprBits": "NOUR_None",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:12",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:11",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "ParmVarDecl 18": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:6:12",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:6:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:6:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 21": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 20"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 24"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:10:24",
+      "LDC": {"ptr": "FunctionDecl 20"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:24>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 30": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 26"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:15:12",
+      "LDC": {"ptr": "FunctionDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:15:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 54": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 53"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:10:24",
+      "LDC": {"ptr": "FunctionDecl 53"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:10:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:10:24>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 64": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 63"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const A<int> &",
+        "ptr": "LValueReferenceType 65"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LDC": {"ptr": "CXXConstructorDecl 63"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 69": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 68"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "A<int> &&",
+        "ptr": "RValueReferenceType 70"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "LDC": {"ptr": "CXXConstructorDecl 68"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:9:7",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 76": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 74"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:15:12",
+      "LDC": {"ptr": "FunctionDecl 74"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:15:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "VarDecl 79"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-friend-ft-espec-inst.cc:15:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 91": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 89"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:22:12",
+      "LDC": {"ptr": "FunctionDecl 89"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:22:16",
+      "Name": "\"x\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-friend-ft-espec-inst.cc:22:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 116": {
+      "Canon": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 121"
+      },
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 28"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 121": {
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 90"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 113": {
+      "PointeeType": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "syntax": "\"class A<int> &&\""
+    },
+    "RValueReferenceType 70": {
+      "Canon": {
+        "preview": "class A<int> &&",
+        "ptr": "RValueReferenceType 113"
+      },
+      "PointeeType": {
+        "preview": "A<int>",
+        "ptr": "ElaboratedType 66"
+      },
+      "syntax": "\"A<int> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 100"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 67": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "syntax": "\"class A<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 99"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 43": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "ImplicitCastExpr 44"},
+      "RetLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:3"
+    },
+    "ReturnStmt 86": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "CXXDependentScopeMemberExpr 87"},
+      "RetLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:19:3"
+    },
+    "ReturnStmt 93": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "CallExpr 94"},
+      "RetLoc": "in/src/ct-cont-friend-ft-espec-inst.cc:24:3"
+    },
+    "SubstTemplateTypeParmType 24": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 57"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 29": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 36": {
+      "AssociatedDecl": {"ptr": "FunctionDecl 26"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 114": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "A",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 47"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "desugar()": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "syntax": "\"A<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 117": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "Template": "A",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 47"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "desugar()": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "syntax": "\"A<T>\""
+    },
+    "TemplateSpecializationType 35": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "Template": "A",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 47"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "desugar()": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "class A<int>",
+        "ptr": "RecordType 67"
+      },
+      "syntax": "\"A<int>\""
+    },
+    "TemplateSpecializationType 81": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "Template": "A",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 47"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "desugar()": {
+        "preview": "A<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 114"
+      },
+      "syntax": "\"A<T>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:5:17",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:5:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 48": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 50"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 50"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:8:17",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:8:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 72": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 74"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 74"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:14:17",
+      "LocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:14:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 73"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 102": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 49": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 48"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 73": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 102"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 72"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 89"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 8 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 33": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 26"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "A<int>",
+        "ptr": "ElaboratedType 34"
+      },
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 37"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:17:3",
+      "LDC": {"ptr": "FunctionDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:8",
+      "Name": "\"a\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"A<int>\", <in/src/ct-cont-friend-ft-espec-inst.cc:17:3, col:6>, TemplateSpecialization(\"A<int>\", <in/src/ct-cont-friend-ft-espec-inst.cc:17:3, col:6>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "VarDecl 79": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 74"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "A<T>",
+        "ptr": "ElaboratedType 80"
+      },
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-friend-ft-espec-inst.cc:17:3",
+      "LDC": {"ptr": "FunctionDecl 74"},
+      "Linkage": "NoLinkage",
+      "Loc": "in/src/ct-cont-friend-ft-espec-inst.cc:17:8",
+      "Name": "\"a\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"A<T>\", <in/src/ct-cont-friend-ft-espec-inst.cc:17:3, col:6>, TemplateSpecialization(\"A<T>\", <in/src/ct-cont-friend-ft-espec-inst.cc:17:3, col:6>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()",
+      "NumStmts",
+      "Stmt[0]",
+      "Stmt[1]",
+      "Stmt[2]",
+      "DG",
+      "Expr[0]",
+      "D",
+      "TR",
+      "MemberNameInfo.Name",
+      "Friend.ND",
+      "NumTPLists",
+      "NumArgs",
+      "Arg[0]::Argument",
+      "NumTemplates",
+      "Candidate[0]"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-friend-ft-spec-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "RD::Prev",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "RD::Prev",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Friend.ND",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DFTSI",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 285,
+          "y": 450
+        },
+        {
+          "x": 210,
+          "y": 110
+        }
+      ],
+      "end": {"entityRef": 1},
+      "label": "Template[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "Function",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 360,
+        "y": 20
+      }],
+      "end": {"entityRef": 3},
+      "label": "Template",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 730,
+        "y": 440
+      }],
+      "end": {"entityRef": 15},
+      "label": "RD::Prev",
+      "labelSegmentNumber": 1,
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 730,
+        "y": 440
+      }],
+      "end": {"entityRef": 14},
+      "label": "RD::Prev",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "Cmn",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "Friend.ND",
+      "start": {"entityRef": 18}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 22},
+      "label": "Body",
+      "start": {"entityRef": 21}
+    },
+    {
+      "controlPts": [{
+        "x": 505,
+        "y": 600
+      }],
+      "end": {"entityRef": 14},
+      "label": "D",
+      "start": {"entityRef": 22}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 435,
+          "y": 566
+        },
+        {
+          "x": 500,
+          "y": 420
+        },
+        {
+          "x": 500,
+          "y": 113
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "FoundDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 22}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "FTSI",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "Function",
+      "start": {"entityRef": 23}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 890,
+          "y": 575
+        },
+        {
+          "x": 905,
+          "y": 30
+        },
+        {
+          "x": 355,
+          "y": 15
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "Template",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 23}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 685,
+    "w": 919
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-friend-ft-spec-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd4cb4c2b005b36722b4623bf58b5f5bec3c454f
GIT binary patch
literal 34511
zcmagE1yq#X_b*O&C`f}KAw449h#-i7NY_xx&@s~8AuR|DC=4P>cMjbm3 at K6~Fo;9v
zP}28-_x*kEcisQ`-}|h^TFmpDv(G*|KYO1O^WwQGISC^P78Vw{+EZm6EG%3Y78Xt!
z5drX~2KW7YEUdepetJe8O0Le%5El<DET60`xj463$&~i4mu6-&hOscpy)Pfs(_Zz7
zluOo+=m@)~X*Al!)HiaxGf8>&d+5(X1rrvRJXY*m9t9h)Oby37tm#z=#)Pllo+*DV
zlDh1n>kIhnZ0gI3TI8Pu2D{kw33J*?g3`GbCuF-7CIk>4G%o~R1Tkt|i0Z3UD5!F9
zWxc(7EW^Pyd$BVzw(@2w@$#o(TX5nXv@~(J-6w&wOHsdUZ$s4H9E6}fh={Nx;J{s3
zWiDF#P7c}PPUo$GD;|aue&T9hs<CKE5CxM;rtne0INMBT&H_f!Xtww7f|osIU4eP@
z_?n_ at 0`;TbEBtZ$bDF!)m#U=ymIvt)CPEH>_<LH~Dfl at k-zuh9@)f2?eJxA;(V6j5
zrsHeFdWY!8Jwwlr$7QSvel)UIeZ!i+M_jaWr*_2&aPY^~nkWUoo8e`joo2NODt^`t
zK~a;2kOU at Cdgpou9FACKU9<!cB_uA7Ns=zv^}GnCk1vRwe=yQvMO`V{Ph5%>EHzp&
z>U1XnnaIKU6}p`CdRM-p-&dBrPe}i8YWCLMSGsraAGFoq=i?#C5+?D`%#(yRJXOxq
z<&!=Y$^T?!XZCh%O#z32freZ?J)W at e@R{hQ;q>U_U5&Jie9^z{7hbpHm#iN at Y7muQ
zO%zxy!?u0aSfLh2S*3l)A&<;6ha_R@;izdcgLp794X*H5wZIituv5LJo2I>TyJDC3
zG1RwBD8pPB9&R#VJUH`|-#GsfzkPO`=UB2-Y~Q|~)EA0piW3e$- at lV4v%&7PpSUEm
z?UXzySZogr at MAXXi!GM|yITv5nRLDK`}v)uzRoMWQ!&7sPIZ?ho4 at n>CRd(MQ}rx!
z3j<Cq!^mR}&!u<<FMV at 3Csov_@EZrl at V%&3ko$`}b~txdO+^Z%-*r=*XM}kez-SrY
z4G;IaGt~~t$(W{RtJCwUOVtrgpriVCKe_5U3o_rgUlWkjxNA7K{v9un*}bh1X>G_k
zPU91w?S5~%KWrcE(c>Fc;yh=*E<Pbp-<E6)<uA2`O?f?;vdx%-aNW}IHoLVuPS<%j
z>sq6{#~0N<I%yq5{AY$D@)xFl(OEBDp|QcLD<Wv8$jXC>(`s2Y!dv0udAq_rqkP4l
zhf05YM_j#X at 19eJT0LsZJY7=IQ`V?T+h&kEa?KTd6lCE at l3v(%DJaTSZRYBD;J>->
zc=p}yvbgTw at DE;E5~Xlmyc2=FJf>mPeKNAGGWKr*&yAcnrm at 1u+&8~(hOrgD>Z-*e
zwSo9`D{QApjQg?>%}x5FjIi0B=boI%W@`GbLM^?f5k!5y^b^D{59Z)sIu#<L=sG`N
z2HHjZ7*!XfJm*R5s#0K?8(FsudGp(?8+3#c|I at ABlYyi$VZ9O*6%_D#>rRRZDZRKK
zfBxsviIy{nmOFOscXzKFK~v7x+YWOg-?z- at HQzGKo58uLzf+qhfGS4>h}$Bt-w=Hx
zaL6!L`7w0PH{|xP`y~6UpXJi<;VD-8=@?;HwYEZAv+TX#r8p9Bxpw4+<TJ(d>bGw;
zb0q)d)YjZ7RnWxTOCyW&X~jAplFhQQQhqey8Hc-Z(n~e{@)dde+j-SYO6g}8rHQT=
ze`-t|30|eo>MJfDzUB{X>skCfKU_#bey6BGm_GsZAUD$mahN`_xU9`MuiUB3>n-(n
zt0A1eFlDfh;UP(WI7>;=LIi_JXt*~FMG_ui6N-sb at KuN&>9k-Idk6iU_a)@^e$cny
z3k;ChrC#DgS&wu1Xh*G4qmF~C<oip(@im4^k^|;r2^oe{GyKqqu)UI71hY&@giRvQ
z+>y0&7llUbTXibWaa1Ti)%?-K*+$}zC3I*iM2^u_a!_;OiyWScMK2!Zs?}T9H0WOO
z5ztcJPrWaj%Ok`XyuBNG at sOTfdE;`|O}rhaf>?g<KKvKmF2Qu-${3!0^h>7m#kZ0J
zhd=sGN{S16 at 1j<*F69%u;-`nO65z3y3yX at 2aV2sf&RO0s-zf at _SckM`+$>5BP-gar
zuj5?yWC=mR6#-8}sXHl&sXT6Rm)?7n9g5qZksxO+S*8`+%1we$2Hg>Y5MBiv#{5Rj
zN at fVAnQp6OalfV&Sv=<9Hb3ha*$Mh0VhY6<#y<#R(j at A8`no{k(ba)q)6mpIkNt}8
zAv{0xgw#ZYWAK0Hop{7T?_?`S#Vj32zK_!W_(y at rtX!#M at qzr`IV*x7 at yuI%_w2-;
zbv<|_ at weCJ$%_DudXikzu;xM!IqYy&I7OVWn?@_=K^#d~Y2q-&$hTRZr&xsDgIdDI
z%30q;e#SiL8Yeai&Uq>%WR?F}v7Wy~mR|4md0&868#D6{;<~P!iHnhMQ3ckE-H00F
zqD-QnGmH46=yWwY9+s=bhaD7y63wcQ9#9bCcHs-Aa at NZc9=VKpJROZyIY*_ejo&^y
z;vIArmHo<1wqdKru%nLm3oqo*gX}U`s7QKVrrGo5BYz=k<$CvdyeIGQ)&6Kz1rE!P
zx~$=LjH(43%OjdeQqDQTI_>kCkPqyF;1S*(L;P&R7O<8SccUY$X_=`@QS!;vXupa^
z(+%T4EcXj>cxe~zY45Luj5PZQ=MdOhDDsTYLce;Tqj{pZsgw5}nlk1vr?!Xn&O}8r
zymE|`CL9Rf7SE)I3SCv-kGhbKeTN%tQY}T&X^VBa6nE%*Yh#I|bcB2B7@`Uu3Oq1Q
z3UaY9nP#tP6%@8`8jBNjcop}H&h$r&;6T|ZiHLPeMlPMmk0OSFd&$+(@Q8`mv!*P^
zz3VMTEQu4wcnr}?KC~}1QY;J9VUN4D<x$NR$9cpmR1AGWpIZ0EEr~5(Qx0)a+-a+D
zw9(k7#V0o_W4v&BlR(XTvLIzi*0 at fD8`gI_6G^2k&7W$F7f7l1=&swh1idf4k6U&?
zH6z8<HG1)3U)^3Cds~XB9 at 6dSE^SkXzxI>vQILo`S?R%(9^Uy#7 at q;U&GoC*&ian+
zE0xz4^pQxO`9~6P)`B}ak3AE%?_S&<wz2Za<5Xniv<QoNCSlk17d9?51QNNjsY2^K
z=PC2)xGiSV<0$uh|AKbc=JA19Ov1};h%akiUF)$QNs~dyacJVI6g>-xY>I5$nd*%C
zU9O<i=fqcmSQ$LDJRfK;=DdQosp$Ub%OjN(_Ty6Y0w{PIVsMR*1^K^my%0kLa9k~G
zo#IAT|IQ*VFh1^kCiQLZ6oN6&H{V-{Lb2iFH664n=(a`8l)dB$dB at 2q<Fz5}XS3k$
z{2 at zh@yrb(PS^PQ&>)U5-u7r@!R+qe+m;ySjD5)_B9~h(Z05ORL}1*m77{Hx)S@;O
zUI>!tV1WFHAeObNF3pIERkbkPk|l(L<I{BdZGF~Ve=6|OE9PYZW4mIxrlgVA_O$QM
zd)k}d|3w(|OAO*aAMGL+jIpVzdTL{DyUb3ivLcgb-Q$_1@*HMESyrH;D5SPu_nN`{
zhr4IOOr`J7k0LQLrn>JBhb-)!zr9*?#=|q=9q9dO(z0o8$bwluVdEbk68rcgwmtx!
z|9Ov0b?Qu93b)#1DW+k2y$p}BBB9A&8>00jZ9+_6$)g5WvrYwtsVGc`KPTF{O_SCT
z`iV+)dc90sPcN?0RPA><HJyX77hikUn<u&V90tAMDYX0&K{h7H{rBlL1xi$2kvkMt
z7q{l_OxA at +y*Hfac6iXpiyz`%=7yE>^n+Bdx%y$4R at ld)Jg#rdU~BC4guRHG4ac__
zZL*E#TeMvgwY(l8ryYx&sxO|MCtQXwLrp{qCQXy&zty}sf7{t<_QO(5y)R?Ze5^r#
zJlLQ?&jeJ~{Qaw-e&NT14$662m9&6VdeSXp{c0Sos60D-LDdy&oUA5x$-J?Xk||a7
zCR7gh+1QXC=zN*NBjJ!>jUicW>5a6%Pu1jGmwB1LQ?eSnwNLc97iR+os`Hjm at 04<L
zzcbP}zH2fs<6(l3d_ at L26-T+1d_8PolJ#tp=*EFXi2Ze6l9ae?-$CZx>A-opWbShz
zr=}A at kS4)pWw+v`_`yfxquzbAWOm33Zhdt9uWg;zs#UT6mxQb`Z=1f*+wb>4KIJPL
zqGwYDHb*k7JOw6b{MUXG<mxV}Y`=3G^nIvT^N!xZ;+U+o5PCPf9qMJ~8IK-TEUi|0
ztY~JH)^qVwfG8 at j)j+!rV at Q9N6tx3#r>l%-UL%5D+!J|0T~|w&O7$$IjzFv~((ohR
zvD>#*huTvwkE7Q+dDGOT%%>-N)qD;$d_QNL`yM+A7SaaLX$(`@&~V8ct%4Z7J2a;(
z`AV`xOvFXUX;A4a+)IDqf;)A8fT~56nNYb8uZ&G0J~!D48lRFADw2<tVkF>OK{r1&
z at _4x{{&5MZjzCiUxWokOME~s9_wQ^S6MBEu)h#FH=_$HpaX+W*b5^39GI~NeRX*Nr
z3cDL+oY~Sg|3~oh52>ZU6qEMYoEFs;+;0`{sH<O{&-WQGHP#E2 at cX@YlI7L#c~-Mz
zErvxSjSEU$$6o*1ee^{}=)?F!X-SqwjW0Yy3x$L286tKLl(D#GFr_Yns=L_2n*|+Y
zcgZPb2_z7K*f`9ta(JSDG at Z>J8=$@Gy5CH&u_j)u8YQP?Y73&Ysc8G0k{FJQFay#!
zKZt95^e?o_)Fvq&RBCY9N5nl<(##dGXox8uAee+yMRTQ8J$D;_NYw3|)XVpZ=E?9l
z>vL)jzLrBxoxrgf$%|i$UmLFkgcV)$Vw{Qyk|gyjJ5sjn(%Ia>x2^T&S+T24{MbXH
z`r9Hsbf7ft9VQ9AMl(tgKefV$@7Imv3OI?W8J7KF?mo*qXX`GW+}tH?*WK?xezY6^
z^sXm;wQb*x;v>g<OWPGFiDH|=-kzdtbA`M=YcR3T){(A&c^E at eoK2c465j>)5#&Ht
z7F;RN at B26}I7r~qO#boyJ at ORs&u2zfHAz;C=9;*mhN{AS?n6ng%(p?pQhPf~Qhc#X
zcZkY2>Q=D6OR-V^kStq&!W#Idt5>Z_ZLjxr3f?%1lz!y<54z~8bghSX8)RYlW>$~6
ztq4d}-3AgU{L)9)4%25lAg9cK#~#S%QOvaBuv4dg^9*&}_Y*84-W8N7Y~PQV4+K4K
zmtTp~ds1Sw7l-lDzU#<K>7zT!s^8Nv2GV-wTS=_Ft`~JBHt6E$r&9i0Y&)!4^UPyM
z6G}bc#9=R*29fG8WiO?g+Y_Q3x?mu~xQlU8h_n0ip748Z+X+1~({g3)Ptwt+4VU at s
zsAb>$Anws>g+GbZ7V)bNnAe1x+pT=*%8F6K6N at i)IjcaSb~drZIGUhG3AT-1HiKT#
zz)@jIccGj!8U;#qskbE;zmTUAxIASR60Bd at y?07Cd#PxjxxhyKlC*w-joA0zaAS^Z
z#>CjG*`#o|SGNL{4p=iJ^&)2%^|OS*Aq49@*YGEQ8N}^ru#$@dEaLZiirqUVL`2(d
zCG)iieX)}F at 98}n&i4dGc#Vqwei-20W0Nh{?(Z*LvVGD~tVNg8!bl{wxka^RBu<%s
z62V||_pii>&c$Dp4-scC-TKc+B9ClkA;X;QX<1xcc}P*@0g+pjo>?Z_!}S5$4vmd`
zO9<SsNWPw|W=-Gb-BaX<Z=L~d)$kkP36mUtg?jakU?>HR!93D9T|J4#V8rt*%T&6B
zQ#z2njB>5gzu=QkH3XypiVjS8+XgY2sZUK+8TrW3zkg`2&k;lQhMzE4jcQ9RquM%z
zQd>G_=y$~DPotszYj at S2`EBtuMpfG at nkxCz|CG<@@K$s--N^WvwsD46RQl_^(bo6p
zCt at X>m=|$uv1XhQ+aE?@4vuwRTcL at 5S+?6M%#-DU>(=V}uh+H3OviM5i|RHxhc=BR
z#_EGm<j^PU)MzbE{Qi7{=Ec7zK~nZp_ at 6z-a^s5WUyGQQcne(G2{7vawmMKq?uH0R
zy(lY)U*g^6ra#b>Godg0P5Tj1S7tELaq%FsNL)}u|H<~V;Ie`)KL*`_2YcVCn7<aj
z$5Ar6YvY)Y<yhklp)hgo`!Fj^Oiz3#jjKl*`nU?UAh-{`|0%#H at q}vQK}BsH%y3p#
zEc?tV$?6eVYXWwzu`oXwku#^&BU<5m3_m8t98|~%$sQS&XfS)>`d4F^_rn>IqOv%Q
z{k!%kIW^VyiH63V%i?~%&wUn&1jXwJ;vmJIP3+^d{N!$IR%#N_->%o7QE%Ak(UHPY
z*MGj?$EeOYS6pE~S*M9U at vI;8)sTTW%+2s_DQ>3fn{0VN@=Fs8<Q^ETYnSRBrq1G;
z@~R)f-+6s4DoujC6M;YH9In3mYUWUAqoAxbV^SdaIKC{2tBEC|=D4Qo)TqP-Z$@&^
z!0evqTa^PkV at A1Sgo!%Ktb>2;OU!53!$jqWe+qI}vdh*^^2LzFEOhJp&_TrujoERt
z!lzDcsg#8twk)Npv*E8d#lPlG+$D3a)nBsoY$C2%^!w~fv-?sI{tFaus@`Gb%qzQ8
zWE?Ag8|3OpM^pWtWQ!L6 at Kw52Hwpb$6@!oRWy1p4k8H{+ at m>j(W_maiwiuZ5mQQt2
zjH=91Xx}5x6zuTCkzwR#P3?Lusba}*sNOmqk>C{eCr!IWrb|s|js2;j;G~$NoP~w+
z;GHS4m&{Ko1KyHO<>S%{uWWGe$Q;@>3pB$0dHuR0_P#5oc_Y9DMN;^Wd>X1q+l%9d
zmG8Lz61>}G<hcXVmvJ0^tdaA2ZGEAa{@~8VOV`-D#8n6)-XyksTtRNmuTP2ThQ0~a
zZn3 at EJA86XN^zGtAugJ0_2nI>p4gH%Mqe#Ccs*PF<iCUpMvmw5%9&<7&!l0D$=$dg
ze4oaP>UkG66rx@?-jn}+rYE0&7`5spl49cd;A3Q&=!ub#1~%<a|DT`i2eNi=jTqRZ
zc6}ywNwfUD{YvZChV^gwW{==T3??ub|FMauEAn_)w--l{p-!AOt60aWCv2*)??cH>
z?b0v5_K6mgp-pt3;4=yQ-6mR+59*xTdfl{JlfNmwM6fiCV6pMBu?_VtEFtD1GnJCd
zoG;_(`m=l%m44l}^bA%Fshg0&DLrMu&hpu(Ehn<0;4<hxrn at ubQZMqEGnHD=fj29$
zN^J3S0_$VR!=U5uF|S;-WnceQIq`T;`B^q1AU(o~t!+9l+)<M60i*g`qVduQI%m<!
zg1_YnUQ*w76IyaZ-irQaL(F_^Dye)kT379l{B-uYOGBwY=rl-Sf&Zh$eY8y1o%R=*
z@{-28?r1cwVAY at 6&Xl<ju6~_N%4p at UtxUfwy&4U3-Y^;HN*~wE-h0C<W%8lj)>J`M
zS|s)Xrnofg^u4A;$WSapz!#DqKLW7sVH|aKk#X)VrikBhJWY_!GMa~hew6)VC)y}m
z_ZLW+X3m}jnkK~brh<?-FUP2>>8#@Yiim at 7w(**uZ0`45A12%BL=Uy^#6OWUy<0Lc
z9K4mDCrl<vOIpiHo;S=v(!Ao*k;6~A?t&lO#S~ywig_;bz*KC<oYLUwy!=<eQBIPK
z?r5Hd*Di7;gu^iHji^s1Ek4ckM5cGjOaQ3)QhJDHcgrE7vE{aMf%fR9d|2F at 4(qCj
zg!js$4;_lQHeb)EmZsJj1;N!&YctVt$nS{1R8r8_X)lKJeQ{@g?@jXE%cqO|MlowB
zQzwEHo`EP$X|SJFJYr8;&h>uIku=X#NyD!1pkmp9{*96)Uw-G4!S&jsyG8#weLnqP
z6kZa7!NhUfpvsAVw|a(|;`kxtUgLhjc|=h??{lNljl_5JN(;ZVs-`+^zBD^|Nn7DJ
zNfXbnU%YfG)Mshj4_L at GBCqVA;gRiSx6AsKw<rnk{A8a#2j}WIC**nVJ2qE7 at Z%os
zMsJ%+H*Wo>E(_Q`(b?OVan315e0_5=i-Ah{CZFQ*6l`yIEIq$aVGxoQ(6gD=(kE)-
zSF=25;3dnSOct8<v_j=*E;zx?jFC}w1M)8fyzVhgQj6bWfrrl*=T at H1eT#y4t#BUZ
zwBISMy_J6AU3rUzx&K$WedUyGu(_EL!@ak|Jb}YFo!e-a$oAoKY>PKN)G0(={oPA0
znbRAoF=oW~)BEu*nRZ<prlzmV{!Udj?<r;lWxJaqmdo7mazysakNSC+ at BZR`kdqt)
zlJBoKbF0XkPT26Q0hjFr$k|$TC<P34q5N2gaf6Egybtz&92=0Q`*v<W7~<cwSgE))
zTtC)gG1d0RLTu-KVA}SizQRoH(#&Ou@`je*kZEZ{P*<8+>nV*>(K#K9g@;Yyp8EG$
z1iD-0_XC+vx}lEDzEoik8l6q?{iU>G^WA98ePzt2iV+1td2YTZz3o|1_FkDM5_O@@
z(IU_ilNg-OQ*9k*kBHqW{GMB5|6O~FXb-}BFGZa9;Wru3&`*9(6d3k?JTA%h(V&_n
zFIO>|k at Dx#BpQSNpd_aL-JHEB|1RQ4dKc>%?T1F?2HK-AvjUFMmbw>_5_;eNq}RQ$
zKHz0em=#-15UAFqoI<Iz at wq~U2J&6cRWBvneO<yf*+aAvaW!;$f+o)T-bcd_-!zsz
zDA1Q*SA%f*m at r-zyQ-%dUQFjS;tZDtK8}OGKN;tuq_zcJdO26{zi~L#D3D)7#vz{a
z8XS`bi$4uo%u1yUe;4oNq80}9F}l;q57=LL#2LX_n_|i-M_UYR^>5$5Q*)?Jys^{|
zt}${WkW{Ms7|x*-E%@us41>LDN~%*GdjFOOQ`!A at _RdegcqP8Jt!3kT6wA2fm8aPp
z%A>WBKSAKobQ(7(h9}OdwCpB?p{@z1^`0x!=;wb@$B6U%@16ovlAH^7_7LML#TExc
zRkdB)ANE*L2kIv{2GI~~0nRYB-eTBWi#HsL`*}W at k$kZ42;r{oi+}~^Cub89241S?
zf^(8<<?4aQ_PRNY+lPfa^q7=(x1<7@{v8+H&+VYSsukUQd9i!ne^~ro$Cd3BMq--6
zd(l&N9_ICLPd2+eZr|(UVsxB0B1&)#bld7p5-o2$u#?M<TEES2E9sE&qCGG-pD^Ra
z!ko|J#KPt8c^YrhZ`sM+bHR?pZXi?ErW6Dfq99hHX_4rF7wAdTUNy}yM at E5rxk+BI
zBM>FRP&M_JQpsI{2a^xKME{0<{GUe3Z$2#6!hVmsOVhF>l6M7!liwA(W(4A0QaPW7
z{~^`R%9%hS`5FEC^A6&RxqgWqL><PsAYfT87x^ykuN9h$EX3F?cDCy?H_S}nE{o}3
zo*#XYP|I_fuXz~LyA8c+%ve&QT#>5VvI~};6O!vLT9B*$5^rydqHQH^PmmaUk?kFG
znT>V>v%kZ+|9k`UGm>fxEe0XPomxM1sns?6X6!ro`OA0g`B-{{N#D!Lgsji{8Wx9b
zT1%elWX`ZP)mf_(&8V%EMQpl<Qdp<%z$p{9#ndACCw`JP_}6!q3b^X-Vk4E{TffU;
z?H^b3lfKXX<(C>JNszZn_#9c1>i?>d+kl6oi|1>J at nZwY(#<i<MHhz*HuB44 at ur@E
z6n>)##Y3x#XPsSNY!OaI{D-Zwjw7c;B=}WTNxCgkmW-B#JJNWHpI!+>KY(c}S`8zM
zuqe}^DU<mFqkXoZqZII~4nd+G-rdJV!VGg!Yihe(kCgR_`EJL49A+Es2!3eYAG8){
zL2xO3p81?RSCc~DjY?7>H(s<)YWv~uasSq%=ag&QDl1RHU$LDqyR7sMLf=lp>#S?~
zXyYzC&j0K{67PQ9w`OLJR4&-sy1>1RSz%B`#bWALEX+dh&!5>od-D!&yrpNnV25vB
zNxb9Al0{_nPwk&OJmimlh5YEi3DAKUJA4T*-ShhpIUo1Z+D&P7D_RI&>A-YI at yD#o
z#4Oc8JxMF2%BT7Ij}3;a<dabgGc%uS_#ZbLteX9?W*|CX-&-|{!1?WHjb}Z}35VOJ
zGFeGEAPlrx38_pN#XGp0RN$+lE64LBQT<#o1CBV~u^po?cu%G2&R{#oTER1{2}fEF
z6xv$pV;)fp+h~hcQhZ`IU3)Tv($lAY^y*C%zwpVY2$<z9-4N&Te1sTYp_o*m8B+y2
z8}mDyv7I;~r#*cfUr{ob7s+9?Ty<L>oqcDH!7UGRzbijeY%r}#tZc5K-FTB4pIfJW
zr|GF~?dEpO{a0!{j08PBTCUO7Rx(;0M}gn{31CJl+RB-;9ZZv>_?wpYdKc3sOkTGX
zo$13C&+fC#S3Bp=2_)?0<m$s$*@XBbF+>kMUS7_d=-9tGh|@mR2)|D!TsC2@$iO~_
z^1H*3{_5d at PyAz>#0TS_C{g~VQ&vRW0h}EC;6tGU*Nz0k`R82%&+i;@dq5^?Z+(NG
z(qv8l<uAK?WY&s5|CpK(`I7R<pDXMU<My{-LtGzWVcF5BDJ$yv{M?!|uIA!@o4qJg
z$e0!7P57c_^h4?L3t_p>0(CSAOOklX0Z1of_%E|s)H$}~)w#s&n at 79g@- at kuo5zk3
ze7QdoK#}0Ie-*I2>dtZ0011XmT1 at om>|Jbn87KrRUq1)zh^$sE!LxlYNgUYC8xLZb
zs+{ZCJfdVIyY+bGs%-W=@M?2m^C-C8n@~3RDrn<mU{h<u|MsoKtnhTlaW at u|VX>Rl
z1u0;*AF1s(8v>4r^!yrTFfy4tPplp`@6hzU_LSorHv9AUQ~RucdCWC~b{vSou4i06
zHdZbN{%KIDC9r;Wv+)@v=;o_AK&o3_wF_eXA$h+4TafC!<4jJ8RkdOFOaG*$O&NyD
zxXqPs8;@={eh`5iJS#Z_8*G|xTn@@77CYB(Bj5b{@k2MdR0>wJ==MXlBYOp`a$H99
zXsD5s9e7UJz?XBCNn{D}LC4$PdC(O6&%iE^bGg-qCr+eK6S%8;RfZM+w0xsgzg`Cq
zw6;cyQ+y*`A}|%=hQ=qYZnXA&tz{aG8&;S)x&G0_ZQ%3IMq%-1p_!SP60CAWz`kfh
z)qzz%WzTY%h$t(gQUFQ-o!d8W*`aFxzUlxdBoy~>QCr#|y|g)lgbb%xfw8NRz=+f$
zg;mq3tKf^NV4(ssfFv+DxhbrJD;%H<=noG>3>Lm-3>b?_xqc1&g9nPaW;Y8L6nsYd
zkpP%=y()qeDn(yAPmzJ5y5ZpyWm-)^I_8ZFN6mwElH<ejkDikyzK2%|!B=fwlQN83
zQbU(t7b;k{j at Mi30e%1)W1Q2tFg(y%bgv3(pNMT_-toi<&&U6WtH$Dba~)h`geXj@
z#Qw<DRnWz{i0zJ<GxzEHrZBHiB>%TktR@*dWEXn#0uQh|fJbxl<wUlf)t$T%aOmos
z7kiGb;plUyF|kb<ltGP8lmz7c)D9SSy=6HpnEt3wof%ZkH5Az#A+L1+wvjii%UK3?
z0&MKmC{srLK$jdgwxvu(S;YSf=^BNcY>Zz9hXG<rz=f*SdSreO`z7{swy6B$#G-KZ
zFyua|<B_*@96rDcW0UfMQ6};L{N7y+l~U$@qnOnt$hPaFP3$3!`stdT0a|rb%C)Ki
z-J$<Z%yL2d{}m&k1w2qD at M+AH5to7bHUba$%>eMFO=o$n>h%P!K at OOt4%5wC99Zq%
z;S_G4-?dVVZj{phkLZA*I50BMHKDK&-$TaheF2LAVtvmP%@}{9X^bsO$BPS|R^>1?
z0Qc>~<Z1-hydD_zpWH&FSm491F3%pgXD$%H%6WH;<oR~Yphayjm#Yr{Fo1`{hF868
z9`CL?o5}HD!NP8bt0#yV$aiod^uA_vav{Kerl=GKuyDA#j>W@$J%sGKn#_jT+5XkS
z2t06kvvtzh at Ze~UMc3N2tOBsHe#Q|-$I^h1>(RmWD;Sct%c#PI_K`>Y81Ex at Z#Lt`
zvcZQ>P;LeHs*&C3nZHY8k(kw;O;@?sWP)e&m`3eB=&|X{@d5>GpsxX`YW>0R3>##B
zBxYz^rfbW>G7{VO;`LB*5Wjy=&9RaA*HS?JA+&SRw1}2<<H3XbDo3sOWFlu2ASR{}
zE!n-9HE&ySxGIb8=X)tdE$vtUQEz0Q8Ha-hE*@Bi05oB|Q&D3e-7wK7ih~(xb2kiD
zAcxt;*cLAeH)S^~OL|*QV&*66ZOG!x7=#<5ktJb&S9VIcPuq7c+Pn_`tlBkue;hwe
zUEeO6o$%r~yBoOWa+UXJ`gC^8Ib0pRghb~-&J5A7ex$I9pxln!xW=5%FB)SBEGAs%
zoL9U}RaXwz!M2M!*@pqy6Yg!M4Gbs0W~!`*ReKMUe!UZ%%55?aE?%iFpmXn85w=X<
z%68f+8zhUHaBqCEbW$7^Yhc|v>)^Y!DKWy=xBAc~Q9?S4^Xwu$mk*_L@<RS=7h2o6
zh)*GJ(d|#$NZ9C1ds^gl^Hoxmx~G9zHcjYCY*XbaJ-qF5Vv2uOr13Nh`E6ktu=K{k
zEaYTCR#`&b`amuBtpvNx^6x&|TaEGCvs24pKGp$Mez3|w|CsH_qou+XM{%&q(MGxL
zcKKBKp}TEsX!62oV43Hccb^0`AYaEH#@=tGPED+na_gRhZ@*QYSQ9~2bD28*+0n3>
ztl5#z6g(oyg2V+bR!&dgjv0Ss(UwxFr#=B&!wnD4TBnRhzF=|#21Ah?FQjlja#UuD
z35ZJ%ir}aVe#|%l19A*3IFvBhZq&1#m at sao?B-jqo^+o`K{**BHZ`G=RG>2SH<Vj<
zK~^5T<&Z+5|7bA2SR-%dwBrkAuNU*MdPNwQU4;5n*`GmV=SjFVDOkndj2~6c=+%in
zTQ4o}<M!`#>ZzROMpb(w1Q6Cx<6k~){(j<q0hhW;cJM4+ at mKT-U!JB?qF*ulw2^~q
z<os=wwDX`0CkeDdjwfaFR%JEOy~Q<0g*66Q?lUQpTM5valp<OnG at tLB>yR2!FVz?i
zRA=@IYl(`?eCHEJ)>%tAGMI~qm<k~D<lD^UJJ5kisKNPu_`UqRs9qH-C_X~ZcBrI=
zea6t%Hm<dKTX5#(P6{`qBDhy*dDE}oHB6lVmek2rQ8zr9xUw<??H^FpKe5BEWm$Bq
zlY)(*WE_n)1rUD%*9E3_o1IyKNTS2`@_Ll_2?A-^gsGhV);2Oo>kl();4<AbWB)RF
zF*vB*Dy^{25AENHM%IAo<TjodkQEJ;d-{5781~_}b$)sDISd~*K&W6O56^HnzCGGj
zoW73_gsk9-m1^&zB<+1M)1YRWSbs%YAn+P=0)N*L1`jrfs>baKn(}TjeSmRc8Eh7N
zP*FdQ3-fLtL8a(dqEgb5x-hR{=LFzw{i)jWz~Z)-1h8bQ62sQuv61>qmMzc0M>X(4
za#Tv=Pglp?hZRQh+skNQ%L8+w)(<5>{F~UyL%H?%mvnG#G+Jxz9Du7a4~alY)ir$M
zJ5k8wsjSR}F?Zid8DCM+dMZ%f3nGAL5rnllJ;>H3?u)02Zec}6CuHZvcXLF`z%~i+
z)!iH4U&8vc?bH6!T*Lrj5)W%l%aZ&)BS5NMYK02e9<*P*8$F>pUmaxn$DIR9_ry{T
z<_9_i3-80Kd*>C`X<F)SA`_SmCm25fnF2$&C~R`;Q+r^2$mxV at W_QnZYH|l<`f?$D
zk$b3=HWblO1J<$`1$d|JjzwS_T5c-UI|P~RDT4r0gL>U<ppB$P2HjkhzsNv4%kI`I
zzULPg3sW|CP6tMYeihu_|13P^(36FP!;$F=<q_&=rISJ)R{f6;mpbnuz@#9<Afo^S
z+oSZ2=A9=4`}$JtvpdF~`pe+#zyj}fzQhuYPX~J5a)vb067xh3Hbx>b%Qo&~?ry3N
zoxurc?S8paPZK(pH<bpsfIcEij1M2YjSDa7giOfSoj=bv-=5jghDwnx+jOF1Jrw{C
zIuS;+_*YN=+`YV*YYw5C at p?krw)*aSiE~|B8#_1=?w*M~leVaH;^TdS1ryzWzc9h%
zohK at c7ANsY#>n7+N<MCGX83LVwqx<36{%in;=Tk2%2V4`uV4XU3Sa=+gm;*6`Rn;+
z1?EEvpDw$PVVPH5=bVa}H_!eSIaSSARe4wNvJUhWy94TcQhuV}xGLy=8xi}%bmqdz
z*T_RZ-=CE}p*)U%y#wy7vNTe<wAQK$04OB>Vzq;FSu*)IyC=G1K5c%C8Eb+uoBk7(
z*|!~kKUu`Mlntau$lrd^VnSU*1p)+u3;rGpWnk(0scWIkR&INyzb|5X)a*U{O3X+<
z+!(^r()BO|@YV;bjinB<7MeX3<v#4Qjo}f^mOn7_X4Ro%-Iv9TW3CQwfS}t~4v-5&
zu2xRNPxB8uM at XQ?*+jP9h(QflA!BGtg6(yd_8M`|5X-8t{rggDM5FfQ;L-P%D%<5a
zXi)$U037|weGl!TCIOJti7t(hZ|*|#RDO^WxDG~mF!e!Rp#rDvtZEvjBDtcA8}3u2
zV2$$w>27jNpc4N_h8gZsjwblPSTazwjTur at +*G*mNlotDP{kV?nGc!dB2-{iNOx(u
z<<7E<{2Ut+^sM}5T`yKz89q}d at w`K``sw)y`OJ&EWA4V;g7xUECjej+ZnQb#X0#Q)
zQ6QKZ<Zb$DRj{x6%u^Dlfdz%}W=*3cfT1v&-7hDI*8%?rpwJf*e<aBf(N6$AwkIi`
zSVD<Go#+PSX68gM833`u)Psa>?bxBi0sMjoD+SpAK at Rf@+JEDPz#CKw0L!ky%5}Qy
zXJkXA^Z;(ue=d&L?9UQ^C8^fy2TpS|s at vY5;+t-O#OceYQbN^aI?(TwE=AOR1FY=q
zUA?w$uNVZ91FJm`MUFZCEz_&A8Gm0A-`+TUov}jHf0nJdc`-2QQ*N2t4n`ogr$_+4
z2w-b)<Ye87iT?|eoKGrKt^?)CKdQ^e=e*kHecG6)W<{*MCZVQ)k75B^-h$5PY8{s5
z%wkOLK({A56Ur~9O;sC8$$y#lH6#kG8CTHX&{Sd?5hPu);Xj(U^3A+Rpg43i{`j|q
zII!FW(|l~|&!j3Ea-+{Mq(nF5iQI%KVeJnZ?U1t4{c2ASNcPP8vR3b$jwNZpPo?u_
zGl at I%8a&0EvA`67GiJ7n)pTY$zda_9PgwCo#M4Hsy5?}vHJz3{eas5*IgJhC*IbA|
z^4See=5kyq>`#~66Bg0WJ2VN^fS!0E0vt?H!lSzG;)5Kg9;I%IzrVffX};JZ7q+N~
z=U)`Y9M7B?=D7N50f5CT0sy+&h|RJBll2eZyvo;GznzIJRyPc9Mk1Pb4CIKgGDkYl
z+FC!2cYfvog~ZV&P)O9dG=FN?+0I~}bqHhugGgW#S{KDN`bXA7o5aP8BYRRXIXReM
z`vu-Lav?-~p7R5h44k}yw at fB;*7$>JX3L%(<gH*X<Y0!ohZ4#cmw^N($?Y{c&A9yo
z&X7c29GDDw@|+iMN^&a$N7TikyxI?+@~y_wC}jF^o{--`(~Yu)1?q$ET5v at i4SQC=
zIix-fGe2Arre^YCMU>*yuFBVTp!G*y=1V-R-VwCSnDK at hW5JR)UA^Tb%Vu~*cx(Nu
ztyJzGS?G80{aINC+dKkt(LdqC1<D|J>>X at d-CJ+-V5kF9JG_BC0GD?6Fw4YuHKzlO
zP>twyLp)@>W1!m|rRdfY=OKF9W?^d=Y?y5D1s`+<CMYf=aI`IUT!+C1t&u~EG)lt%
zn#sZBS~EE0Vc0cJJJyb_5F4XXxH^>A&Y1}2&A at 9)b*lVmk8d9+0e~zWiu6u%%;TP}
zG;#+GHR8b-hZ#q5TuOlmN_ZPlI;Yw#?+Y}_`e~U?WZq>SZZ>P##I at qs&b;j8DzOxs
zG&*4eDuHlyM=4>1H35+CQ+^l at u6qFv>DFl_oEK&dA*i2RI2{;e{x?WX7FDoA*6k?H
zSF1CIT+TeQrS_SNBmhUYhBo>v`Fc3Gs^J6R?H><o^K)ohp2P6)%S)Pmkxwrr0t>q~
z4nwTBiZ*}xmN_az{2y;mdP<-Dnvg#>SY{mAStWjP<IBy5V4F$(_|nkKqCOK8rd&S0
zbS<OIab$g`WO}qZTjK#I5GDp^J0Zy5&8-W~XG3uK+i%A;XIV1}-Iw!YM!Nq{>4em8
zzma`2Fi9s@>2t8Vy}oE+!|MML(bPr=xNpBz`PkN0Z3H1A;NwbllTJKA&HQ{)dLy at 7
z-_NFCi^B8vAMXD|X0J$OvlNVD9U=2(unWR3Yq)h4zyBFP6XjSiRb+6+6fsCWYK$2l
zo}TNO`E|e0D%db#F+FgY!b-cd%{3$QMjWT>mD91&*4}yY+w0lz`Tj{ipChjhwD+QL
zGllhMi7HQ)r$C&HJ{&waus&#+GR0P98ku-^(yq6*(WrN`pN&aFj;P+ at 5G35{QvVRT
zF?tnydKVnT1gZ$ZZ0 at YCl((_Y5nj`vJe#$DZoE7#20!DQo at 1OGhz6{yKMT2cIK6rb
z?E!zAnZ<^ogwM>E8vxB^VLt1M4+eCl%xpxL8FXF-{&L;=R}Zc%0MHcRmUd=4dkZ?1
z at eV$otV?dHk~Vd+p69N_gSB_R9GORw#mU8vbx?uD2|3Em`gTfaHnk%UqP_x0$=Bv|
zj at G7cp#^|DU5;ONCz>|$?;zudqh6)$l<F%@Ags(kbjtc+NCrBYyH5CsJMs4==Ck9(
zD~;y>wymZmLxHG#9_3WkzMH{7O9~_x%N{?F%s?2XGb(`^VZF>U*$Ad_>$r>1<E{J(
zfI~_Pz|2Ih(+Cx~+A0{8Le8|(U?gix0Ba7X_y(9wj+PM)$asXS%!o2(1+aJqa5c#h
zeu6YQoScap+7G<BUgKu=63`(yNrU>PVS9ZA50ork%p6MdA3dn<dA1>y$oy(qqI_6?
zL%aiUrA{t>)>*Qf`5PVRP55y0*5Rg>7&uW{YlaX at Zbi6B6WY&b1OR!!Ev*e2B!KGL
zFWpwo+<U`XWwK*45?K>iJiSn||GFW20)=tOX$Vzc)~{wMCxQ(Q5N_eX23u_B=5eJ}
zD?RZ&%NF9uaEFe*nr$hKT-L+mHla%;?(eoVTV)85-CPNjfB!JbBq at JBf9t3P;Oph<
zrrqyW0r0${$LGG+qF|RXcQw91w}fm}c62n at -;Wy%=Xz^Q1M)wX*!RAJGD#5#Ro7W-
z{`x#@|LF~piZEpCB1{W#$|H&DvdMepejv3kTIE&$enwSWW~}kKgH*fF6o3xVar_sP
z#B;RI>88_YAdyeylm(|QV?JB9dkSrl197z^Grs&f3WfiW5gG<*>7<#7yOo<vZQ;Ql
zkp4|3^)@sv=@45_1*U$x*!rmusDL0m4pF~MQk|N}sw+#+tw&*S$(P%6gjC>o#iRd>
zOl5W3$~*2JdzuV1GyG(d{2m8eG&9Dy)tYf=bZ}KN6T-Zed^^!dra{%TI)WON?CMXY
zw~C_eXu<G_g4;aK7m16tC at P~#mj<*yfJMlcn at LO{rP>9hJp9Vr&Qq7GbtNb1f`_(u
zF8xA(1Omp&5P}b59Au<n^c;w-e*9-XA9^vZ8+=_|0EXir^bT0zw at ETa3HTL;>~<<{
z4?@1sApoXGq}7mRFnSK>RX_fG_mei%*Dx3W)ob!_LYT-RC4d)9K6jp*j+r)V<qiAl
z8NB(Sq(=<%K3th_H5*zQw2AX%tssQiIx5s3y~UA)s^LeT4}aEH9Uw{ed-Ef^Rv3Iq
zo}pT4Ty=*aTz$RtuUcMWDh>PLts)tFPsAqnlSjnYngf{rXFT4u$Kk<b^v?e`jq4^@
z%Cj6%Km#`ui2<H~ppsMeU&Pk<p)>FC-gI&i|6^(cl#NHVK(mT~o{bRn0iOP_eQY9h
zP6`5vGQcA{2JN?buIQq?JY_qm!1=Dr!B-csleD||uwg-dky>_eQ*`EWsZ1wRxH^FH
zN<)Eu=nekse4~GK?VVxjHaDp9y7B{%rp{c?xeh}1{n<A%5Fy<k;Lv?}Y$2^r=%q#8
z&WL;tN+)wBcTl<EB<iaiur*iv)shXjt?-hq)-TSLrXyS()=;S`ww<=2ngM?UCEs3m
zGEiFP#DE4eoB^ta(lKjrKVu^q+?Ke;r0(SCr(81_kL}~Syak0*Abr>A?Urd#iO9h$
zwj;4&0~$x6$eF$C2H<*=*+$dt)+$srD=74SI5IN4&-e>NpxYECd-d4ws6gyih&r at r
zuvP*Nq-=H1Il7G|nN_cmwML-g8aR1H(=D^T%syC%DmfMtS$X`J6{3=9&y-I9bcu^M
z=D|~I{Q)3T0f6_${z{lxSfBA*Ain8j`j!v2yr!T6_UQ*|H=BYizp91<;gWHHNg=Zo
zM;TCCTIS{cKAH at P2b%EQDc&$?TMEJjAiBcbi#GpH5`NF0s9R<{4B%!0cYG1vpAg=U
z+#CQ*Ht04m9HsM^6_9szQI&V96Nips&d~Tbn{Y>#?-;#$BVaE)B0%FBJqu&ko<c7d
zKU>8G42MLew3-lr5mZ1q{S`_qaMPKz0R)?3JU2rI3-*iYq`pxz*>(TBM5fvQx&?cq
zSRm9+WMB7cMG$&6Mw$2iiNuiop}}*Tq!4u*z?LG^ZRTsXfs$b*1&H4 at 1v{Tt{$Hl@
zPrU)y)xQf~7Z(3FE935fY;1^-?(77Cw{&|i;m-W0v#Mu<JK^epM#dg}qFL0L`|JWV
zWKeFz2w6YZUdub=oHU(0`?FzV-hf85Z92Hhh+ymYJ%N1^z|;@Gmu<lZS9u*Yf$Y9V
z7jW+E;45>R;Nal1)#G9Fc0YDL`oO%Ef9FlR7rE$2JiNwIqTu;fZ at tcjfcBRe>Ndf7
zO17WchyI5?*?;Jd18{U%X|S}T1{<^wx5NXbF#vq#nyr9~Km5?V-aIIIlv`MUOE)wp
zFj!A0cGJ~Wi0TcX?7YDcbrZ4Nq$ahw9zg2o6sYlqN2T<csTOS$yx>FFZ9ogDfJ?}9
zez_jv*o78Yjd!uVkC!w*Ii^&sKmemg35%>Ou33rBT+qbdP~;IgFhJ- at 6ny~d9^^_r
zJ_uI}Z=|~73IA at 1lWXRW-*Pi(_I|SR at 6Dvj|Fac}o2^t(0w-DawyloAmse*qH6vNA
zQ%zg3^KH$qVx3A3J)tL9V7Dzslk*^iHADqB1~3Ezi9H!VPz7qk_08$U8CflRu&shO
zVM^NU0JAP0$eWR!6ok)C04oJ{2{`9{1Ml=s2+hYQ$GP~R3O`zr)|li#SM2V=ws7^%
zr))YifO?~@L98dWE9w7lhxxw^6{r*8=7YC$kRitP-qm#t!Xg3&BLHk5yS8V9wN3X+
z*Ja3icl%+q0n~W!1AwH_Cg8I6iDraoJKeRG2(FtC*XrKe2U?DT;u!DyA{#T_IY4U<
zf4I6g3|Y1;YfYP&{+k)hCo(_=oGBE!y!5ms1)Cs~EgFW=W703YNrhFXJ~jF6IFyyZ
z3zBX7#+yc36`u(Cv0hJ!C!qR|Ap(H_7J_W<O{w7fJGnD=VKefs_g}mmy4w1$F9TBb
zeAg6nlMw*BH6Tb!k8M7-e|doLORDp{!uxc5{0}RiY5YMGn(Oy3#evoYm;y8sm0e4w
z-;bB4-ECJMrjC at iU9sOiTm1hz!y))cmSNMk;<(6Gl)i2gmMd~&2BL56rr<YgPemZ}
zqB&askN%~CtbkX66l3Nqy8oD2q*c|mi&c!f&ouw&D?E8G*gi+n+sZ}?qKj6aL7!4#
zfysv!y}SOg^WrFE$?*-xATYd)n8En}>}Il>tYAoK-f(9CElmb;PCp#bmC=oxGceTq
zO`OqPIBhJ9nfH;2hO0rPN^j*D3%vw{CWHu(0bf4Ozj2{z8jSExC=lc6Y%GO5KpkBC
zB8*QDIKh`EiI^`yz+l+QmSto#C5CD9Tz5Da08y3>jw&NskmYvUtRjfbEydChWXWdv
zb?m%0$20~Lyz91PIFjK87&E^Y^!h<P)?PE}dph7cKwAQ=|9J+m3Py!1_X6LXv@=$-
z_vkgpoc@;rrke_yGiD<}4=^&VP<yEq*n=lJX36iLj<{OHDrZ_j)i{7ODoT6cHD`ks
z>la|yKRAgiZ*O7(Zxcv!OwQt^0|&J=VLzLf^$+UuNS4;P^?@wOKmZd3&I~k1Ld_3f
zpSMjmso0L3W*eT3VSYMH-36Burvt1<nUBZ|7L%yhw$C&<GyD-vwe9>O+zm9ht{1F#
zS&u}{FWH?uKkye^7}_4$bX at r9cot<<)f^6az=op^^)-IOpW`v?qw}TndPN|X-GiQ7
zHm$kLTXIDlccED-A&HB`h|;E`ve|1;KnLJvl2U2<I)f;|cLRAj6P5(9fp{RejhX_1
zT2Dm43m-9fx7!ZE?73wc6?7evnGV4!q)_$9ATdfS>v}PA>l^bQAPcNp!IXGXBTA!@
zV^eKtzikqjDuZ#RMW&$F0dqn#Ns(Jt8$opxCf=!PfGk|y1RD^=1vE3e*+^^!BM6=G
z-vUm>KBg!DzWHs_EqTPy>4R8m2_y7oFpy6*4>zQ3q5|M7s^X?j_`vbD;0Hmko;ufT
z?q>JLK%c)N6ge at K{T+p#0Gt9)5r5a0rWmuc!;R<HP^5F<>AyCI2ZXbEI)Upb18vlR
zaMC{nBK38n$&-4AG#!Px3kv-w$Nih}028{#O#@{7B0!1-5;7v-4$xxv9Qrn>FID@=
z?aEYmcu3w=(EZ*g$FK{V07tX)zr$m-%Rt~4uCd5$G_{j|pS&*!iJB*dC2JJ6s{7Vn
znvcj0T_+b85*UBNQn2(p<Bemubg(!1*yc}t!OFM3TY`X8H}!4!EH5-6QEj*|t)YrI
zfkSLy4sf)>23DE0b}(L9J+7Oq%N5 at 6%$6HUD8)@PW-30-IutbkR?ZvzGeCs++;9kn
zr+rBm{%|4(NCEJgD5gMfMQ+9{zJ>|R+~(zhXsUm`AwDeaxaUnO+BHfYvfL=_PPmfi
z=W56=a*z$Qmpr>RtNYLIBhGOt*xn5_wh$9#64-9&jyiEjyOU{&ri$!9RsiV%rna_Y
zg$FyJML3lO+oWkOOLTG7z>%S$5D%qBTl!z$qTDv>O*>vF`7T&h0XBwvjhz9(UiUkr
z+@`X=!k0#00CLs{%sl!1!VL#-@)KW#)5W%a{%hbYzaav-DO*~6^2*ho=Y#tR3!t<~
zUXe_oV&w#)GXpp=1gWsFaUma$+(Ka*UQbB}Y&ppritj_7C`mQB&J4nmqYew5sxmh-
z0rNO{oEcNDz?(}MNCPTaQ8KI;L6U(sP&yUdh%Cl<pVm4&Z^`-rF>=Ewbpso(2O<Y7
zh%Dco#8dhGSrq12CNsXqw&Kario=;DH5g;lX`}?y!2j8h+()BEJd%$<D`|j9f_=eb
zj!)PfI1#d0hB4s4YOu6hktpHxjDm*aDjH!fJRD%ye`7vheE%9hkZBb9zpc*q70_rL
z272_!(rCFEN^h27b{Q7LxnE|HbUI7avKfoxL{pXFu`0S1km at zw(92#kk+BO#WTgq#
zOZW at 6GlSY?4RHWe at c@=7VQZR at x&y~pBtr?W&Hi1Jy}{faV-gh^ySXn<4Wd{^ff at vW
z9M8C$<rfNLn`|%S)A$hQFEj1e<Rtmsz57O+maRVz9>Et%E)Zuy6DFBay*FgmVw%=S
zu_yumL4faoOgjYjTkUr3F2G0hdRZupI^@2H$3|(c$K>joAZ%tq){$PN-0@)AYuJGl
z)J}MfV|0=A^niUc3#;Z8q?DN-7k|km0O=oT4K at C%8$3uYxt&m(yt2F91W9ymK<jj%
zkC$&?njc_E;YepckUxLZYR^T<;(e43q+NFe?EqO;Cr89CVZ#n4fdo0;ym9}=R$Pc-
zw(htGz*69v!IoC+DYv<ss$zV0J)a2WKp02|;;-%xQ-Df&B&z5O4GfQc8|2b10;HFg
zx&CTR&~;+JeY;J93S>xlUD{1(E|h$@IqyTc#Yn+sHr;CYE57MYJxv#*;YOT4%Z#D0
ziW^*LI%~$rLXdvef{p3Y>>us`$0xe(z~uG&8{lnXSi7T!dFR|hPK*mb=8U6#<Uu%+
zd$RcDJOdEN(H1wL4Q)KvvlEV77|98|az&h7_<N0T0Ua4W*Xy9Yq-{e4h$DlJ6+l2R
zxsTq2W!|mtLa4ySi0fpTs0O4000Pb18ErZtM1kfTNFqM!roQ+YY$PC3AqN1kf6gp#
zYDQ0L5d at eDNT6Zr|5Zo^+1F1u4_3-Cyz>88AQp4$e-{JBb0;qz=a^v;5drlk5WFgd
zm4G_bf(WMS&aGOiNh|;$-a*$RBA|H#@F`q#U1urlnP6RCbGhy|0e5_EF6&qW)di3T
zset<?*CBub+!olzfkg<rzC{Gg1CBM;Bs;j0RakD10fBwc|GttVenE|xV6aFlye!hU
z?g%~B?tMnrFYMnyVY>s=9Z<FFyEL)D^do0hYZQj$`|y18*{``P4!Kyv92uNR+KwM_
z#Gn{F%InKSwa%GYRT{eWE7go3kx_b<HpV&bZlKwFeai{Bc2t3n91AhVhPA^169O_Q
zD&=Wj;`I$7-lPwm5F1H*eBgc#Az+XHj?ckICWo8=C+z9I*QcS^_g=1VEU^MeCBE1&
z#!rPTF2Oo#tDl}!^gnZE!_hn)c<Pfaz;&UUO;gze<JlicivS(N|5e+U$3xwIe_NBS
zqO93M+*zg~Bukr=RN4>*B}-W+VzMt42?;SxG49eP`#zSjwy3eBLbkDFjD51rgz%it
z=>9#w*Yp45kMH-+%;)-C%Q@#d=Y8JiFpA(o2r^#{*^nJupEG=`&go}!Q}0h@)j(&v
zEQGOz?A^gl>&%$XW(_ahYO5^D6_LGg8<@RTy#qqVI6%{oJ5D&9e32E`f08UfHvI3?
zEN|Tc`5XW at jBZu<>eKy0Op=h`OU>46FU&(dzwb2)nHUXNm~2I1#t3~(LL9n5dXPRX
z9!S;=-i+E==pd6MAc*KQ2toSVa!FfUbywVHA;E=nA8#`C5{wtO4}LYMq#Nj6m36j%
zTI4P6KPtrShFP>Fe)nlb9~{4W*S&x($(|QSGPv3n`PH2B?Lzcg`kH;+yZ-cYw*hJ3
zSatWUmJ!NQWQZAaXWK5>OQZUVmMKLB2H6HQO%AMjrvg7YA(#baYSaL*0A}LQ)yxID
zd&VUF1BKr2a(PQ%I;C|18Dc*y!ght=q5E2)mDcVe-*fMQJli_O3D(~=gYVejb}S>i
zkX^=rfEQfoka;!fzjnU$WgufQu=F|8f4E<r9#^IOH}9XgScG7^6VeX1k}-}(8G8%U
z8fnu3hpnsArv%w?(_QV;Rv7=j3y|4!dUfW}clW$I4*091eR<<(E;Gg3l`+S#%LpLg
zsjsHJ9N^{<uN=AQ!MH8J=fy|3;c*e<asBwBmkArd;=ge2Kk*OaB4gS-scxb4I${n#
zVY(z=Sm0|!7neURy0w*C7&L4?ZqD!`i%t-1>4fHe5BjxP8sF3ro%kfq)K&EKsCmMq
z+H852T}8)STg8fbV%>t_rAvaSH7UJY4ijj*ivpH{!wH8~X0fd^#ax*uHot3Xdg>Kr
z%AAy8x|_c0822b<bDB at Jp(R49%cMD%9O8)2OZe2Hp>S3u&x>)O>EvZ`>A?biv_|L#
zRR8|)9wWxmCptDpxb==HQ%x22dZ!lf<U|}FH2tFZ2;_7+E6N>A5J2gvbAuGYeL5ba
z<q#-&eA<?&26|oIl7Gphc_}bZH8HJ(kadbqxq#7Ck&uGZ;zenFxBqf4uJ>K2;T+SY
zHH7w-wiR8mhQ!tW4GufC0;{owWlUdC%+CZe#Sw$|VS~+v#40;lrtar%ce}dRfjIaD
z`BK_HnO#3#IIFglH`R6u5Ty)W5FHHlS?}=wMj(&&BPtU?uD*rJv@*=Jn*Y;`kW0?7
z$R)Ec+%<|`3yU+<DmTFJqCl^RPX`dDdN-`~wBVl8;me8JkgRC{f~OaGn}CTx{)w>R
zYP5hN1MU$5F(SEK;D7|C!T(ojqg!MgdN|C?<4B+T at 28S8d;<Mi{)X1s@*xAfHEy+N
z8x#=A^n{PNtXYUUw6X!kf at P^y0C at Rx5^$F_zB|_aF^nPGxSQ9;g#N5EnwW}c4WD3*
zeekmLoN4wPILjJ3#YskQoswjRADmH7&sxf<q|Z0WcKUqEhC5_dd2n_-`V6`Im`f5x
zfq&3YYcRwaBSXrmocIxtLx><}ZRq^gd0=@vX}Q{3m_M!?Yd9ax&~T=>`QO{NLb{gc
z#@%btfI=237k#kJN5b}wHow|{ce4k?-p5HBD(xDwG>T0*h0q}`Mu**6DOUb*^-jY&
z&&hHns}>9S7KjN$#N7nr|2 at gCqf(UpTYo>PyJoc1CeVc*u*HTs#w3kS04=hHW^nA;
z>+wI#-rY5%HFesb$<>3)XZ(x~4 at -rUy_DziU3y)b?{0q2|MAZk<O)NaO3^we)3BJ@
zp>s!<atr#tZfOac-lV8nmaO|~RBOT`R^MR8(A&(MvempZpL<CDW1COBQO#yR at PT`g
zaoD#bpJidQ1~mB6+A&K^`obzBogTkm^z5oUv8kyXk`^Zqy at A-8^7fRM!!|yZNG}Gu
z!8QQp(yy1pJWpLKB7FymFfPh#X%P*4)UNeZopEhVv&&Vp!6AdjgM_v+;%Hu!X1~YE
zrrMzEtxh6n!r_T~l-G at Z({f9jnye|6-5s%43M3lQ!7Wa1UPFBb=WeVS=LU1TJJTdU
zs=B(1Otffj+t9gB4o!M4z3-bCmtM7QrS=<y)#R;JGnTiz(9=m+ZXC8>ciFSGAazO)
z^l)sjxG1ucAwZuRE01L)I&bIo8ZB?y_d+Gt*K4y+>Fa{mG)+x0Nf2esq8(96nw&ML
zu`Dy!GpNDgX?fO<Cr&-IY|?(Az-VAAXinmlf)R8}y3gXphRMt;1?@g4)dv|oODYT-
zh0W;m+xL_jp2&K$waBFTIi8}LqKu%gYZ==&sE+J*9xRk}Zw;^(j9U>$Gv<FEi{z%P
zq<s<yVDu>$y{GI9mw?z)gg7b9ks__q=Pejm^xpY_LXx_6ccuS=4eadKKZKT|#h1w#
ztAw*&AM`QK7%P5U%>{3HAh>OUh2~{$yZE60`a6sHiVCJx`3u{@Laa;x_2Q$Ga)`r1
zt95#x|6`PHE*o>D093|CK@`2Is<Urd09C_}Q<o^F2WSKekDEIu<SnT?V|1}C)PH~+
zB#3NGrqJ>~=;}ecwqHXjA9O<-tiZC+Ysx$=TK5v&O&=yTgAti2*_q+C8C{BybrFbB
z*Z^`_JA(^og({1^_u!TAyXAjrf<0_F$x#5#l1(*eg?sUxR?jO5FRta7tg>j)yeM$O
zL~Wfhc-bZMa>pjVqoI~h)*ScmfdzVWIY2~PEwU$^>WsPG=ClE~mZG$&;;C4PJUaK{
z<`a%!eW(ZHJEK{MH1QM at ZG97uy+f{yjdEcgBTHtrEw8!95jUb4kMb%#j6?Ohd%7#q
z2(yR|SPp)@$PUijA8TUqs7BsKT-Up8$-HXQtGSI7 at m=;^!3S^mZrtWVzV+gdDvf3M
zM)K;Y=1P}F)M?0T`Z;hwh`;}R83>hpAvW=<fzv7}sIy?|VB$^ow)gKWn)3#$RW#|<
zQQJxR9B5<By^NH+O3J6vUxO)%$CHs9tuUI=;Pm25wxm|EgG2sg{&K=p9AOu`LWfxL
zGcm;f=Rm2$2*9f5m{-AAX`Pf??n$^~XpTIa_ at R#ahS<gFnYGjDsjphH$&kevXT-O=
zO+HJ7&7$~TnzTKVjt7B_dc<f^XnsVtT7TyQpb>I8Ca87b6L#c~{7Jk`^3h+P=PhJ!
z4=72wHZPuA-Jj@~yI|eBGazP~2bLoM0hd_}%I%$@AWqdOhIEp6At6q;Tk{F<4y0SO
z<!#(2N}RwVEe~pFCO&t4^fjBy8DCM%L^qvO>r8y3?xU|DD-}V$O5{rUqe66C{dxfR
zIo#(p8W>J%DJ?a*cgS5|es4n?CcMkRdK!Rxg}B&orJiU>^EL at UHDqWSZ;nah#kCn-
z&-v7-vbAt(6RuL}5;8I5_6b9BS`p;KfW$6+HozsbzCy~ReNAOuOp88{b^^CiN|RQo
zF>#X`^#1de0)>>aZf=y#$W;(_7V at B>ikp9?i^Fy~6g6C<N1l9e@^VMwKk84^wKXP-
zun*k0UKE)KXKdayU6 at n$cT at 28B`wtKD+K(GBO<0VQd$87v}4Z~>e4b7sL)LBub|aU
z=v8)}hcG@!MQUN6GOfah(Cwxl0iZSF6w4rJ@@?|50gZ|cKl_#*t54`Ti<WzKP4`)Q
zC2Y7fF|!~L?j})~Y^z9GC_Ap at 9vGQ{B%_ewz(E$78Nw{iKmVT5>EL#k+%(fy=e}93
z)IDqIz`}f!ajPoAQx`y`-yydR1n9gdn`O4H+Fdz_B)?_H%d=0EAJkk3)}F989eVJ2
z@{R~bcQ!RvYSpI13#nJoB=!oSj(b(gcbyw9(&HTQ#(e7iX*;NqWR?F`tk9dC-jx4C
zs20ofh!k_*<ypl`+Fp)?95N)q0)$a{<J0DmZ%e05CvH^j_|$WM^Cn7RDK!_fNSmuM
z at UQt48e+fP*K*Empshxo6oT#1TOt*Cq)mmAZ=|K=H3kkOzTyh7rghKPQ)4NG38b{j
zIw!Nuo($pwI*~x835S?B*bEQ0bS71Wlj*h8_APCrXTK^ujPX<`%prKVtjR3M5MLxl
ztlp$cHA{$A9za{PluL2rGFmO)SAB4OlU-#ukO(*bx#-fjN%#`Oe=D9US6 at ghJLO$$
zLA2kwLxR{OIF}tkPVvxZ_ZRu-+rGWhjSg&30X6oKz(ABH|MmW6O?O-Lfo{3XCQ%y_
z#(!cl*G|!(^49M+GEcGs`OsfaVsus8EEaB;5R5!4mHo4RL?v%c3 at 7WOR|Ad_V<)ff
z2F~_&#LAj93+{3@*#-8gj;bauwGilaYBt57+BS0GHu(vGJWgp4GJxnJugyQ%;3H)9
zHicPU{>^lmt}W0gXzmMvz-I#vFz5%TinTQGR$Ay>!Z28G^7xekbyAcjTw9P7pq#`k
zULnSA7-(`k7Z!`o at 9z(OUJrZ&IAtd{jnvm82`<9D7aKZ1&;0 at +t=c~BpG;a%dFsZE
zX0Vd at s<)c!ueKj}GBE2 at S0;b9jB%E-a)t}Vu7te2crO2k)s`o^kvdBLfqW>Jor;{e
zKi{7`*4v!GjpJ`{B9}fl_!rS-08~Mql)5Don$!wgsBk-&Df^QZkCR(=1s{MtA9l at e
zs-=2%a-u^JR2*?|OtOIS=Vpb3)Qj6LS=1?mAp&XulU;L7!Acx4vPcNoiI`?`99<Qn
zW5gvw{8L%}T7$d=C|PRR`7b-vkyO@$JOfAIc-L8c9d#h$M`6ow7t at +ugX0A-r37s`
z;X8<%OsS*VjBo;g8FX0(2dVXYqv{xcQS#f!2IJ5y`ES?WSGVrBK!WPJop;%ip!}uH
z6I0%eCfn`j21|q_h9H79D&B&&%h at Vn+fe8$_ at T&G+NQJGed?}<Z4!7BEL#)Fp#<o`
zbDcV>^oe6~6PxzgtmXE$v_I^otiUbI4_gaMHi6Lkngp at xsgG6rQ?aR?IgwQx=SvvX
zFhn^Yngdq3o9h%(C{|hTq;wAP23RIjvG#DTmQXn2wICaVysvQ4*_qM?!__*;qA5G)
z{T*7U-!NSoI!Q2LM~sAkag*K#Hl$8T!;m%`4NROG{ORvoyUuJwWh}pF{vQV);DI)m
z!P(3bHGCb6wCX>=P5?LzDR at Hc%zvp~1cz9^j)Mx%GMk>=3mI|MGm~b<uDIdjx8gfF
z0PUdg|NTm at C@L?Juh=mv>vzjHjIQgNiUx1)&6=?Pz!fB{+I1Pvjk7fH#WPz9TaRf_
z&8HRMw?^~o#478S>+L_P#~=1(2~=u6sPP5Q2Du2Hf7VKLAYpe<JD3_1*W)N3n=p>Z
z!ML<iCzk@@p5eC2C<Uq!viwCkw6mD0C*J-CpNl~)E=|X}ARd3E0=8?^7SnZLd}LCy
z%~!E?R=|k1SeD)9uXTRZz2^8lnvnK7g#eF3%5r)y5&eQTtMdC;ph$Wc`92cRC*G at u
zs;6^0mKSt$jYo<<kUH8lvH6z@@^Vag1Iq+uYIt!*MGkz#RDGHTzl#|I?aVB2=tqi-
z0tXBEBs2EraG+F;6&4OTz4zz94<v3xS1Z~~zR|_u7axn%X*^X!z^GtOl!C$)6}Uap
zM!#Od>$4j)IM}e~^VJ_#LJ*diJaAf}NGdGB3NAhy_f{YR%0DL!7QV(7I1t_Fjj04e
z>wTWr2tFx<K%yYQLf1Fy^Wg9Vva;MwqY=jVU_sZ<P828z3waUp;K8-Eq5d)=&rV6C
zeNR*`^+q{w2mo9r98p at M;(h4c{6{}LP16fX?=sjSWyZqGp#I8 at tn~6K0`Va45dw?a
zVR7o@$AQGrb_g3Y;CJDsn`7X!Hb}l5xnh6=C<%u2;Gg0|t~~B_5iNNzpVZ)_isO_h
zC~myxaSaQqgot1Cz0y16#-$XmMv8UtDb19BAjPu&rnU}@|NN>|-iUd;%gxiDo2;K$
z_LtjiFY;YhU+$=&(E6;O!sE!52Ze$hsJwq^qa at WgpQ~^ytO6I>bYR=c{b|#MU$%e<
zu5ZKX+hn9}t}%u3Rg at UZsIaJ=GN)e`nddl(F`2g_Hf_qoYaLXm>{syxn-o2oh3VqF
zq)zg*Y&fsE<;R?jLV!JDD>!hxMD$+XS`kI({;QZ>x3;v|3>FH<1_UY>ZQ1XA$z7Ch
z{aewOzw4PCoE^^FsdWG(78JEm6lM9;N5UWlkFoNN?cRaNho8X9^3RDW!PW;fo%SOK
zoi?bE80_l at fT;FiQ~2Lf<B1UGS6xQ&q3;4xVa25p<jE~~%IoN??BnkdYl9^gPs_tD
z>~#XWGx4eEOm at x5Z4WcIybXzA9hhTB=@&yejIIzWkY;$1yVzW_2Ptu6-6b2*c1=0r
z+_?7ebG0n-hyA>5Dttlo4*9Lg65a%uKCA;~9hEj<46qE)VExbbn0>C9)H=+>`K#^U
zoHTm!QtL1H+P-}dRR=s8*0(pJ&&1Kroy~qStpPVoU9TE(A5Qc?X`4Sulq#_EH5IO_
zl=<E<w%_GjuyqF)soP>AAj5KbYo9Sg>YB|p*)3o(5ML22<1_pZy0`Q^qj)8vO=8qs
zN!Z=$h=-AUgYtvdPO at Or|L-?<9NpU*P+dr}GYd1<dR#*INckxdEHH3>Ijq)60&RDC
zBu{GT>l5^4XYLCt<&>+}SEff7j-{vmWJjQ4Lw;O)fispEE6_%A?Q{gHbs!kz#K(nP
z=m*xb89cqt_2iQu3y&OOM|Q#kG9h1FEQwOwewtB`tw2ORzLwhcj at fARt0}3vgHrX`
zkxe~m)~0i6GVQUfZlu-LWqOBxb1Ep5(SWx-F?*Wb_DTyimW3!IGN`{}GPvT$fn6jG
ziQ2|;@h-WUo8IB>4q=2aC_LSWZiyl{9l+rqQ)aQgARK;2N3Qq}hu?4xoetT(d{zSO
z3VSBSfx|<Fjs1o4mgWGCa(T4j%(fC8U3NHh>+L8k8$0i`I9k|)3uoZ75sLH>2c37W
zEqaO6<F9}&Rn%wI!7?Mr83EPGR<elb&I4!pRxp)7ZZc%b%yk9;rCCv4FdSR=l7+Vq
z%ogb4NLFLU&6e3xqEGMU>C`%rgH9n!Wcd)!n+FS>TBuORFuA9@@|mWA&k+ckjg`jB
zHZ4!4{gh-MyC1!RT at K~`o&$A at uu7I6QM?x|dA{NA9fuH#*3UTl#8IeO0Zn1~4M<5S
z2qj`NURon1vqk?|FAg>Y6i0ZYEPP-7>y}X%cDm?)+qTp%jY{VcBLa&=6q#qhn|dGx
zZ1lQK1cd+5-}mszK*ea?&IAT~IaaxD=bVjFAOHXSstt-+PyCWYko;~QBiXx<+Cct^
z*+tlTUG`z17+RPY`R;ok`6*7o=@oBnfmyTudzW~^z+w0(x_C3Ne=Zv#9}%T$dbif-
z{H$QGBP&Lr`Ec at e%=NSpX0Aw1 at FCVb;3<})@YPU`i6SZr>qE96!nDKgo1q-cf`#To
z1|9kGPPRQ=_UwqhU+v!RQZP0?ryw`!8fxrLo0du?ZAO(KZ&pqtxWW=aB!$%&_0%`P
zRZuj8wPqZvf&t+LtnEQ&bCABa8rYe|WYSv0W=3@~*lx8yy;Ww0Xcsa8WEWw!P_`_v
znp>+1+`QIffjUL>G(i9xU~gD+uDcDB6>Tbyt#6NIzOC-(h_ocVSRX-jD&1slA!(Im
zxPl~6HiuP(w;l(sex(Q|lg4_<rU=udRX3UwI2-bqa!s^FP+l3WP)xvPNQd|xS$)#L
z>_pP4W;#-eJOC5`y#Ma6bNgN2c+%<7Gsqmg_n<@kzlQpa#&Mj0y$9eSC92q^pM1tY
zGYFHqVzAc^S&U!(OOrKb`rO3}tfM?E8-wlU8K!XKlvc1VkG9@|BnfiAz1N%K^rj<o
zB9Az2)Ms6OAeko1VZD_DUtff>c7$b|kd3CgVixb3tl at oun-6!XnnyOmKSYknU~Jp1
zZHHh<i%ibXlLa#el-9 at Hz`9S#nKM;<r{4LjPc6bU{5YKG(m!YmMnE*pp=w=HIO1VF
z^M{F2S7yv(JCUsrX4|OGCnwbQabUL9YrK5h&ty|tOf6Ldvx`0K(<;ohjR2l9*zEP4
zixA>xEr9${Ml>dGeb{}m#slXdoo2WR*B6%@qm{1dcFD3yHZGexxUBjn-MUwOdG`l5
z*)74FK+>QR8phNcD5M^q>7(V!&5n|UW)4=Q)!1i+HN2%;aOfcVfaNFZ^BaTv@)D%D
zSQdP!8D>eP%xBey_p8L%>s^WZ-Ff|V0%^m#Z0Z7~5?Sp&;OtQ<Lq#x)dhfLO6Ads{
z3x7{sm at UkdB~*U3PW(Ym;Zu_(_jPeOA78Ia%t^LicrG@$D#3h4l1KM+x)Pf{{H(lE
z(AF9TCL8pWy*6trjKPXUd^X1v%|W=0?CB%6fn;7bxLt&ZK^&;oA%}U=>w!X7!r%Q8
zW~)N6BW8vJrztC1rhhLD>Y%?}eh%e*GNSz at 64^eiqg6H>d&I_uW|<IX>PUSe<GSpY
za8sXsb_Dn}STOSVRZhRZDn#C_1ltIbi-ZB7-Izran8x3y>vqN<5-b~L%FD($$;Jlm
z6Du+FBKQzOe0;=qXh29Gtl-OADCA7SfknqUJk~E%aV=uV-OLe>7?1P%E{HIJke=To
zj0p4j&Eck^KUvn`vf{6eh%uO5>pN)o5eA>O1#j>?q6g(p`eMqBzRDo_!f2H+_)_9K
z-p(|Z at yXwUSfTsuL+}3h_-bt{b9pm8d8OKgI;;Ni__!J}LPj_;-)+jJBwQeU0pF=q
zL9&gH|8A9j+f=*D9zNaI2q<^w>z$DgTveUyWkuFBe~B0zZ0k4FYsu>W95y`t at pyM>
zdW32I5zRcYz~7)Z at 8^U%Y0-=iR>8LI4cd|@g;0BTAFh1D9kTg@`23BC0iE`c|0PfG
z!UTr|;&Vqv(t_!4p>kbA{nt73*5f0J&SgDIJsDsrU~D(QTT>fJr at 8Fj&7B_5=sqek
zl~%FTdlJ(%yJqp*wa<^M!<sR6`v3Xnv0SrK-1T>X33PpSTyjryt>y5X0j7LzCV?SI
z46 at pyF_R851SLUs=_lyJ=T7BBk~JGI at uC6?GfQhNCrT|FMfGNXp8yCq<llr}@8TH4
z at 7APqsTZO>-bS=_`BvLx at FQ1}Bo9uczefZ`AG+ at 5HPKgEbVHpVS1Bb6hq@RpH(wIH
zX8+F{)jFr*@S%XM;igX at AYfXD59LN(l- at m(0M}5p+Q#4;Lu=dlT**dDDN&pWJOXW<
zi0`zmwKJT2%{F*}RQWix%<NTVm?_vaa`Wwn(Q9-sbSnFb`Bgce)#D*83rZZg+$gP3
zTWn_<9Az&t;a7X~npYHAMZ8IW3kWU<mMo{_a0N`D?wT7h`?m~H%Ewk=z at 8ntNfb|S
zM*Qa?-9|aq<A44^Klxqr(bx70(T!2ZiG1d0_k3cyVk?{*klp(4qvl8g4<G;T53vPy
zH`1Ph$R)8p_-L{4`CY-U|1EWPF<8<|QfEw7sza{b4TD4$yFSEFbM;_hv7+p!o{!fb
zMEWsoL?>3X`eOT7)OiyQG30gRcXN%SGR~elLco8zES$rIOPDHA3I$7`>$djTss|xp
zC~`EwHGxO|@p8L9|6?N+RhH>Ta at sd<yM=8nFJrk7NLH<XOY9FLZ{`-w&}YDirn~=<
z^`F;{U(MBz6j}}_=}Td<wmbHs>s9`a&{bv4IgJgt{`*OlUULG|#?uq at 3Cr3))KYms
zBzB2serI{(aGNx2Y5y9?T<&h8%dS9Y1#7nalGl3!?BVVJZv39}nc%J<nI%2AcHcfX
z01{txNS;fmMuQ*yGK=$2cjDy+gk%;$Hft%*7GL$(vAnT?&4TXccLJOT4&2UVm&BkD
znFiZ`W2VW|82`tPSKk|78}v$562spVAoWz7dRW+4a;*y|{ovWqlemiX3|g7%c9+h#
z3n2){y?-Ol#Un-yIL`pf%453Vj{L+lOQdJ!_p{*?E_?bCduPO*SEtp8=*88n-uUsW
zlI)AvU$^E1bA0*Xq(OWV*dS#MRdXK)zbY<<R<JL|VEjAo=}+Vk$EC+s?A}-Z2{HUW
zN at D+(@{`mP!jN(b#7$pbcCAbZj<4?UR=1|-rFa+{V%z6d-mQ0m*ulS=!$dIsHcHJ&
zaRf+=VuF8SGT^O8{4=h&*tn;6w_uFN)R>-Y_Jbu#J1rojhzC{l(Z>HlA=@v0T^Fd<
zpr4Z~zfGe|#qW=Nofo>W07h?iOvub-bFKm#R*STAPOi$gaiWoD(EP$Jgz1Bkh%`+a
zUXBuEa{TEW^e$sgk3^b#)Cha33>JE)s{lzv<G6jy<lf@?uKQv7e5j|9li-rF#70Yv
zk(D%D=d>M7sJrxnwsVe at P-C@M&Ciz at o0{=9_`dsV-8R!1(iUk^8}7z-QVm#NsHQ?V
zYC3qu{-QlIVo;SSr(Jn`oQ%=U(8(DJ>YrMJ1_*Y0w(o^n<-f1N-GTYlIhk`725fSm
zrjlKWQlu60sP~5K&&>MlNu2`d5!?xOToc0I at GRXHZ8E!-vO>XimP;k8YbOrxOzN9M
zC7dRAhvA3!WyHVMVKt<9)t=JyvTZV}2$EyA%oO(m?5CuFX&U89Q~Lzs5<-;E3l#`|
z!cTe(SA=KfM1P`JyqeC#^}EPIK$#1g_ZI}a85(X1xhN<j09W|k!1<rD at c0I>7DayI
zU`?Q|MN<<@6~3eaxo#{FssH;aY(!U8sJnc5;5~fJS?u4{aw{Z1A%JEW{69kk$rH+|
z4K=I#auRGwH7-5(R~cOgdb6dCVN)Z>>Z&D;U-GhcI3(<Fw5$p3-t+CT6LbquL(7oL
z<k7};`5Y+C8bK6v*ap)OB#ox@{ZJQt*#UM`^ETNa5ETj~DQiOaj0446tNXwCEHdd%
z3?{QIK7>BGkR@}*Lm7!y>ZopzwhS|mgKM#AU^W=z&!h<Dmq1y;4_BnD;7UeKbN3aN
z6F~mJk?^_r&0ccTfcGK-B*kfltMO;!!IIpDq=GP85Q_bfD5_}JB3-TsQX}@eub(pP
zdf5Iil-6wr>$c~cz{9lQ&}{%-mx-}Rs2sSvbtgE&Xj|Fzp`sjUvTOBYTw9jso)+z(
zud&|}41neCLR&By<_DXm{NMC`vq2DAXn?f;_)(6q8D2Jv$39)0xZ|}<=9&WCHrS8@
z=ThTS5}K305yCL)8HEI61|v>f^l6_xT>5aBTx{SeDI)aR)s^iD{gC<Y(#~Z}ZIVIq
zA-%y*$n6c^uk}_2+<Gdp>-${({;%5Qk~!Q^r2@&HZLx}Mm-tZ%6KKY^dvAS#J=L+C
zMp<*&A%p~hyh{`wkrqy5Bev46onYHz$X>fC*?Qj%GsnknqNufla?^L91RjD%$YCMa
zIn at Zfq|1M#1TpySx!vEs;n|H50j=Aa4`D8xKjKvB at tg6dnzx2RB7IaFnIa3bhLEKm
zRx-DhEt?C6^U>GqDAzab(BwmDb~)^vzk=Y)Fk$4 at n;6`uT2I~WIK9cD_Mrs&K5ee^
zz8w{-sVf`cb8HVwX%`dNDxfH=tE_JzyTlR+ZizuOsSl at QHkzh@9|~$+cA5>d!8gnQ
zV<atixupq;I-03!flKCQb~jy3CW at 2X&93a*9z-^@90|V6n)%yp=B~2PufrL$s6}j2
z%72RAmggck^;TduXZf|@%XR5CO at 5+_sQ1B6A1mJIu9wvsw0y0sV8*4uB;G<q%P<nR
zzUn%BUFvV}Xvsd(bI`_pq3T11)6o`<%2H1+mqVVqYoTj_TJILsl2Dq&ARaW~eQ(OM
z*9H?OEH}rHY>uc`w08O9)^$mHL&kWMyUI8-&&Pj*w#XJ=+#}^8V`{EkayYp$-~~WS
zR2^Vf1}p_oCZ^uU);syy7zG~Fi-nzr6zQiG{GfUbDc$Sz*6O1#J2-JJ6E>yUfx5z|
zqGc?@?&eB!QU84g1+fs&X6DW486TA9$4x9jMGK%*Y0i!V8j_BMa|RY+-}*q=!Y$c=
zVP|mmNneegTyyR9;l~<#Hp)prleh9)C>wXfXYrZ(h>w6`!({}ZijF!N at 6H!M&F#_Q
z5QYvSH~TgF^Vm*;JkRQ3K9x*BniK9#&cQ+l at 6Zum2ko&#!@Gu0K3v=Y==N40Za}v}
zt%&+PVu*0{^Wn^tm<Ypw7me!m(RC1BY5$UH#eSsKX%k8z?;tNuftmN5rcnuAwgAdM
zUL4xE)KXtV$2Ds!K!lpgd({VmBv4r+=m${ox%fQtJ(65unbi;ultRM=W9OK-plXL6
zl at i~9Lao7Ot5 at F%g!;)<CyhSi_{^PFTacU&%c%1icf1dxo>$E1C`GeB4wHZ*BsUBZ
ze*YP+G65I`6u>VWL~%FTLU2urJJ?|2I@~g7-zPCqH7xC!7}R*W=fulWY%8_>%a>8~
z=QdJiMp+%0CP-&lHx#;DFX-^lbc;f4I;2*>8hn_ra1owAma;huZT1w==>I+#!sx!G
zc{?(&$a}qEA`bGQ3tO8$ufzxG6q3qZVsa!2OB3e8i?I~3%dG;atbtiI8S at 6Gi9%;#
zuDzf|i|2^w>t{y3Me|zMU`765BgvIcNBr()zaIQrWi~<^oZZxz`|q^{0{Q;Sdh3oH
z?fGODHrd5>0qVCy?PHXbh}{<R*C*OTimMphME7R4z<Ilg?nmkq#>R}D71P6X8YI_Q
zKxu2eleTeg3X~kAlJ$@if&Jt{-8R#7*_43hMg=O*l?5p;ky7Z+Odhmd4VLRx8|4e7
z-;kq0O%5r5iXTYy4<-g3ARLcMdC&w!|3U9dLFa>oQJQR}KU2x)%#H;PYUq_I1fH^w
zB1_bQg1ikTOJQ3j3Gig|m4d8#>bPlaxDkuEMSXasK(*G1Azn)jjU4n;f;!=)ObBfK
za)mcbh?1+YN77$UFxq$I_*!p7e1xvW7pxqXZZ6H+IM20pOQ*mdxFRv-oM`8*8z8&D
zfs?KqRsCBuA&fTU#3lI0W(h+3t|I_-StE5W>%N9E>X>&*pO$y8<)?U!E(cXeVR+fM
zif#|DuC!|wKpR89zttAU7=vX`x6(_z!H=0xp-(xmE~+U4F~JJxS*&VF8OJ8f)eSi8
z%q*&5yc2k%o{OU^Z|%g2py)xSs at 2eogpZ)7;Kx3_lCr8-np^Au&IST{A$~$4UKa1O
znBtptJl?@N_-V3)hfPgc{USMA^GSH=xw#t(&;W7Fx51&vY&|kYidG?qEy0dYVYJcR
zaxOS(xM2wkUyr?NaD3HxF}+AAAKU5UUz)B?Q<#GsHmn_K<_7L`xv73U$I0DjhSIp3
zZRddl#ijDQu4uD=zvq(@{*hq!qhrosnaGkT#B&ADBvq<a!G~UGnwwLsW<@W&0Zllt
zC)~J$7>e1zuWY}8>~qY9jI7W5516cAiAS6hm)o(^iKy(2-7rfi)9tS5xa8J6QI6 at V
zm`a(jGEm;eQkVGM52Zf+GT+Nv;~-#&+(iONrj=~vX2*1|e7gd$FgPNtt${5<d$u_F
zO*^!wlFMqH=)FhbCIMG&ubQ at I(<=>=LuO7$Hzt7iF}i-XADbSwW@#HM{ZHMCHb(}@
z?V at oHrrk86SfC*HL<iCj(NikcIM)U_09Yh?Gs+)DtXX+t88#@^edX`5G$ENoZ_Dk7
zU&et0?uwPcsx&&+Hvci+Qj<7b#@Qj3yZC18BG@%#szyc^DG)0*A=iX=-Q}BQDKG9A
zs%Wv`7f=f%o_+FctDbbx$v6NM7?b_B+Fz6-B at NrP*#`c)X at J#$)Iu6pUmNp at H4myP
zn@`zK^GxUqNN&SO;5#$|3YM+~(XGm$;Q;Gu%RH}u#C040)(})jcC<RhAMS}*_a~E~
zMPN8t5pCC8-sBvZH(g$JyXpSQ_mL}8dstppz=O#3>3o>GPaxY}iz(fe8%YDqb&~=B
zNNmK5tT*H8sC50tx6~%241i^$0F-%Y4DloMxhmuX<_en8BFN3UA<uJ!nJKfKWj#l^
z6{4f4HJ5+u-HF#~Xk%H|+kXeHeI3>I<~v|I(C9I6`Ma3&-|1+uhq0!U%ZICl98L7D
zf!T8i0K|G1Gs^TbcwX<eVRWSdmSerbbixA8odYKu1>g}2()#Pxprm8D4kN2aWNZCM
z^I405I|g<evYkOFao&*s&gVbx8|l9|lWL_G3vWSU)qD5$ae)tv*#2!0-x?W7FBpI#
zv9^cxu?%lSOU$hn7?KMGuKC{=vSh$+&k!jRgNz86Ictdd`8x=jPrNx~QqBstVR#0>
zSZ8jUTg)#d{Dw5ay%Sq*+P(96E}YNxSTO`a?}WM1#AZ at i@ICYi1<{Z0U^5Lf8R7wm
zPX6#0f1y at TmEfgn>EzRp0AVe7NcY at v&a at Nmh)^nq9oRjjYq0TJ(e&D959yVT_L*b<
z&W~691Es6nAUX)#JNn6Z`d<%1of8#%JbdpiETD=Yq7kM63#41^Hq0K*Tl0NcgxaG1
zn(>{`TrrIuH?G40CWW=OG3zgEME!|RF^8^CV5b8FfxyUFbTKs4P%FKZNn!u*YbNPl
zRiM4|B#STZ{`BdRjgO4vdQ!<=@3+E6!$@#WL%JfA7_Tt$Ik{)2a&F`qN1pHRJKn~l
zifyRMWAH$<Wn|PB{%h>}Z%eDq$6c;}|BYBsY@{h~a7T at 0#?j2ykwxPuKbJ`VJW-_M
zYTI!(2PO1_?&Gj$V=EYc9r}%VAYqN!H5>kUL!{MG>+Ak0993sNz1P8WkKlg>D<PQ?
zuJI(Nz$sL#x|$v5Ftxh3`X#~D<Ai;?SeJW&=HTq8jAcy at 56;r<k;TC;_uOAQJlIVP
z!mRz+>iXQ4{W&c&bl<hodZ&dg`+eJ>CbdcACsx&R9z~1|3K_<9p7PQLA>xveKiTf9
zS-8i7<MR70JK~_$%t4>{LU};r8&vQ at h{&<IO;z$h7BEIeHzS);E?zUlsej>4wWXJ_
z%m6~#6b)q9b~$h>ghv65g69wtjXM0fA7*mVT&(6wCH!fyDcMCjGoxm!Ki$<vgr*S?
z>q6((H|oDlc8~mUqV?w}_qX<A1G6zVR#1M-=@@Tru!j-kO~h0owp>G<0NLlu9g;Vr
zudVzm@~Nqt!ynrp<6MxWE{c9|hn)9*A#3Fm;ph^5q#_PPgxu3=9JttGD8_q4z2|yY
zlmMDf-$)U28 at fwTJBJRy{1rEZk&g{(EWP-3jd;rR-$uiP*iA78OVw8jKr|!BKx1sV
zv7+X8n>-U{qNp7~epN1!eE6TaJDPJVllqB- at _$&U@$??rtjCQN6~Ei23xa at Ki$fA+
z5_R~{u`Qn!<s0i?>f+W%W1y$SJF%%g5>_3z at ia-q?@fk|7=g+z8+HgDK!knPqrss@
zs#9IH!Tl4|d+tG7G&f(v?{3>ZfS{SCG;Z|$2_)!=AV&=rs$`)Z4YEIHdn<G_eEnAe
z(LU%;X@*{JJMgyF&gUqSs{{S6(fLpbvDo=N4(kcR`!t6?kKFuIZaU5vFmhLd%hoif
zf1W!3vE!%JjJQg!RlAo{s~1CNLb`wr)DWIQE}a at lRQmpov=A(`uo)3P=pULJkY;>n
z^-XyP42<w=;6j>p8Pxbn^c-tn1R}cObe~jD3gLCpVpZFeF~eZVnq1O2|GcEd$J3<B
zcOgxp^Psm`DLTsCAM`Mx_9*g}m$x<nrdEhe`<g;8b{6nlY_1$WM_Q&Nw*TIg7^o>{
zDckU^vt}tEj>8m#|8bDwHfa8Q_dZ6}=ZCY*RiC!Nnkrt at qV!%vJ(~A$B1!~vfftv&
ze32bz`M0;Hi|%uCw(^A?rmd-Fm@$*r1k>kYhtHNu?F#LOZbDbveLmSsBTP6#-Q323
zX!qAUubTl^y^mp&!uytEc%0JTg|XsJSzoYh*xf9<+coxU%PSdxy3q}CMXzmZl|bkA
z`RKmY$-$nu?zrZ{IKznOLP%V-PCG9_1s0e}k`yXWZieXv=LL-?rBU>NcgC&dfv%S(
zw{AJ$`oL{ruhBCBFmSBza){=R>^nAio>kHHhx+nFZepLKX1sIJUFU#Zni6MKq2rb#
zD$dzHElr&<T~X#3Loy{iBCU!vJl6C{)O5>QA7`w*YO4LF9k?rwowKCQ_tn4NQl-$d
z8J(w<3|FmRy*~#@u(iCfJIv4ZypT0TK!iH#kjN!xfw?9Q>tMU%Yt?cMQoCg{M$pEC
zv!Sc;YeU?<oKc1E at 6!}Q5YPyd2|OIVh;z;cQZR1~%UY)w*di?(cP^z`DgiR7!1_es
zv)%y{m(~~bYuY)Zj at _00aj*P5)7S)2_<k*ApfB^IT$+!Gv?A}%hT(WNWHdg{?{ari
zr>Pg_C`YM=nU45EOCW?FaGy4`$k&;OXOh|3P`7>dsfcwpXPYNUY~Vz7vPYfzOdG#)
zuKnYlt1`w)TDrv8!$xMU)V7tgycf)S%J~yBp8ayyQ(tC-Tt at p)IUrV>>+77(afCHi
zXm at dY25$d6 at b%78LXVWLWhPeWr;Z}uEjXR_pyq$r>_`^uxUQ+*m6mJyvD2o*=-Yo+
z_UFW&ajWls7dfTT)7-d(z&9_M)9x*&$*Ir(sVY$$-)@T*N2mn$jlkZM*k8h+l+;t(
z=zprA8H{Dm at 8$lYmDuU4qBmI at fKa*jiA!r$W!+AIerNvLt*<L~d at sr&tX!8)5oJG*
zvC>J;<U<vauuyJ2r`JY5*6()Lw7~&3ju+t!5d{`HdJTj;rc9oQ#2Q-+kDynRI9|&9
z^OQZTeYu<Cp(ZWAB|G0`rB73~KoV8tgM!v~vo>A*@lDKFHaBO==%kV0P&ud~GS<a#
zkI<tb!Ivgc;Ns<7<OcM)lU`oMk==y;l(nM(ONwpd(pQKq11ks_E;thCdYG+ubu9ZT
z4-S;d-S`q_u^MuNb5g32?-}zN76>(O=1=p?AJfiR6yEmz7uuwjr-abL_xy3nmA+)3
zCs`UaOX>JhKFERVa>Mk(-j1M4FWv(<`Q&I3w)BVX2*S?G{CyfsTg(hSjNE4RHL$S6
z at _nO~X<YM$B3B~X|2-SV>el71+oG|x)NkYnM^S3^(|#c1_ar&g0K<#Hy!c}UTFP{k
z2SLY2aw?hPUf^W~3!tSzJpa at GSkQfrzCLYZ=#}v(P5Of3ocF}h!A9Sz?x at D{2hJTe
z%TuS6R)xBj>!>d-e}D4u5E#HFh$Aa!wS8<G%}MqCza>FL$MaK$PqlZoD`486-XQH%
zuInqMGqTEFPl?609Lm!u@}}#iChM+cPOc1i!(TFSu5`<+HEwp<AD}V!YLbO+fnx0<
ztj*#5|23<n#{S_Jy0=|7S>eFJB3H-Ot(UdD at 0+!1Tk3AW=<X6<cyXQ%k3T32^<i5l
z7Q!~8rL_YtO}=p-F_ at EbX$sFid8bGZUD_*~u)L#40GMT4P{)bPu}kmui#lHHGMM8B
zcM`6}K(^_pgXi`8cN6j+eQ_DKCM#_1oJvG!H>nA|zcRUE24?S?9dL2(&z2OU%x%k3
zd5o|(Als<le~=J*qs3`wez9E?-~XoC_ at Ho`jWY;0TZnrDZ=Z)Uu$rzccCJdDcRn-d
z(jT|#Q&XNjN#+gKST=Z0D}=Uc$COr51PU!BY&G$}>B2jlikP>_%|+04m}f%bqrFzs
zj-s1JFB0EwJQ;w(Gsnsmg<IdxNk_g9 at h422A?Fm7e)a>4=0^zmikJS_zjP<t`%M$d
z0LQ1Dl^;zJ#0 at Pjfjyd*^-?L4)T4K+<Pm%%q=(wK#u}fVZrPAQ`P4GPBD~C?f#U~F
zuI4Zj{$C~hbFjAA3DCMFJ at 3g;IU6;I&{?k?1etg8-?J2K5FqULrq<8?I8??Vj{nf2
zUgvwn#a9{d&fv>do)AM|AtYfJ%89mU6_eWgNAv0YuNWvWjErur*pSoH3DzZVqj47(
zr+qltoYU9ou6e?b!`yrjalX8@`iemAqPcHFPs^mc0A<AOr3V-4pl<BQgwAl^A8|}3
zhxrvq0{Th;88%(gBxRdz;4jaqca{EC*qKH5beqnQ*xWn`U2NM=={}#XLbGmTxX8SZ
zYBSN!5r>Z5?XkYHpcK<6gX4oJINUTu51JG3lQ at e{bWpCPdVV^Q`boaG&@AC<e9*yw
zD)Y at BG(V=_1*RV^{0+6_E#;+76Q{VZlvzD>lusuxEr8S9R1RR$;;m>yiPqMk!Nw~Q
zH8-x6mA*s44I0-bWDGp|Ea`JAJt9tdPKuVrNr#?tqU|<hv`sh|>|G6d at 6T4*RGuxs
zk<lSOA<d`9f$%1yX}%J+S;7^Q-%}u$+xl-1*X3iSJ_`@!W>-%UW2G+4S6w{fv~Ziv
zLlIMMTQO1A%y}*6hcOpn)X+FG!@`1?9IjUs-*%{WAn}?x5q)FLx=u+$Y|?eVJy|kE
zwRorBSh>`~m(u6Tc?-`LCkf<9zbxUEQD`L@(MBF&pO^UvboIh|>EvDc2etsH%z^VI
z{i8s8J at q~1)=y}?Emw at SZoL<nA28l>4;okpe}%*?)D*O{9!)Y$aE$V4k`dJlXnA>m
z3v4iX??bC|>G833Mcu-B04M%Q8|(6DwtEsz&f?)|>lHFE;mDA)Y4?1~0af97cgblZ
z>_!|mrqr4F131gW{}$GJm~6Shv?~_#b3E1pVbTP~s*C*X>u<_4^@53#Ao3g80s^qb
z$m;N1od-9RYlCo*$5*ma>FwW+mIT;vpbaZSyNv;gr;5(81wiBXR8waWZE#?PQS?ae
zmQ)|zN_BQrdbC(%FhVc3Y36KHiuISbQ7htmx)EZRn#PNfU^jE-zFS-~tr9`foguF{
zY&>K&8+^GWSm5Tvsyy{UYYn$7NSx}vaDf)SEWOZ$HYDm9x(aVQ-sD18dnXr*&7>VQ
z$V{#- at 7<1SjrbVrBhqJVrrnj|ksUHgS}s}AP$ez%AhCcc#tN&R{v^*|=aGNO#E%1f
zrwip5cp!KIf43z_9;#!URTh&u8c=3XKAUi>g+5l^r1nt+pC at Unt;UbT`nV|Yrf4kR
z(g`hf(8Jpyy(YO8C>*Hc=9C0Ep<wkSyVXy%53SthT;tk1<{tBY$*Ie6X}bxK>3Myz
zpHM1RDpQ at +8dx~WDAsu(d at L>aU}e0)S#*Jv8Tlxu6F)?P;W95PBd4t*JByyBpKJUr
zk8XKebv$Q#>Cwxh+_{wgx2|#*3A<su+2AgRz*qMj$D=kDhmn8WrV^s=;xE|(p<yaI
zWhMOvVV<?xebd#x=cpZ8d9_Y@@MjR}&ebq4UVgKm(V<LkXD at YmvkgH#R&UAJ@*m*b
zKHwdHr9h<Mz=4R at 6~V%bQ>UJ0c<X_`6hZz_&yMPZe%#4e#mqCuj#XJ-Zj=d}*u$do
zSxSg*AB%H^-ubzQ1yMbk9dtHakxaI;%#+xlje_8&5>o|mddgZ>B%1d{sx7;;6){MD
z&&BkNg!PhoDf~IjB%vyoQA1*Ox{p5-Q=&3*adV8ch?t89(wYKe^>A+?_R~g;ZYVT$
z-`FhGa3TCz0Act6#;Omx0CAz9-%$t8tz-q$S}GCxUN4FUB>ga7IpdaxRr0^==sDi_
zBFsR-8Qh`+;tLO$Jh%nW#Mx?o;kLmuIh*Ay1OyUxpdkvzn&1k<4WH(qzKXNMsQp^P
znT1$xwBf;b_?ot9AffX?o1rrsP)t4zuQwODBk9^r5Tyq9bxBUZ8ox(g_5iE2^P3b%
z`-5;KIZhfVEPDV&d*`=Dl$h5#jbWY;3Wf*Hzf{@tCO^8CDn*Q)KLe3x+PK%c%W8g^
zm6M95O<IGudodjDMe1!}=!hVw=u5sP!7)h|`a4v9ps57z0v7Vg5-sqYtaN#BDti#@
zHu{~9pE{`1+ghMk&K?HN4Ih%VJkLE6c{2|F+6CZ1Xz3Aas2e at SeQr!hL_EIC?VWy}
zoq{Ac02L7HeO}Cfu#NSDG)+K$Ao5uMJ1+<{gZ%ve`$F5vrGEFlp(!QU7eCnG$K==<
Kque8xBmNK8?^yEy

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded
new file mode 100644
index 000000000000000..503d1adb238d5c7
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded
@@ -0,0 +1,2330 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nstruct S {\n  template <class U>\n  int add(T t, U u);\n\n  template <>\n  int add(T t, float u)\n  {\n    return t + u;\n  }\n};\n\nint caller(S<int> &s,\n                 int i, float f)\n{\n  return s.add(i, f);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 825,
+        "y": 30
+      },
+      "name": "Source code",
+      "size": {
+        "h": 270,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 40,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 20,
+        "y": 30
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 485,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 50,
+        "y": 110
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 135
+      }
+    },
+    {
+      "loc": {
+        "x": 50,
+        "y": 130
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 385,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 140
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 90,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 22",
+      "size": {
+        "h": 90,
+        "w": 210
+      }
+    },
+    {
+      "loc": {
+        "x": 215,
+        "y": 30
+      },
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 81",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 340,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 38",
+      "size": {
+        "h": 175,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 570,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 40",
+      "size": {
+        "h": 60,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 570,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 43",
+      "size": {
+        "h": 100,
+        "w": 155
+      }
+    },
+    {
+      "loc": {
+        "x": 755,
+        "y": 30
+      },
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 92",
+      "size": {
+        "h": 65,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 715,
+        "y": 355
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 101",
+      "size": {
+        "h": 75,
+        "w": 235
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 725,
+        "y": 455
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 94",
+      "size": {
+        "h": 105,
+        "w": 225
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 340,
+        "y": 205
+      },
+      "name": "38",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 38",
+      "size": {
+        "h": 220,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 380,
+        "y": 400
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 48",
+      "size": {
+        "h": 75,
+        "w": 290
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 380,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 51",
+      "size": {
+        "h": 75,
+        "w": 290
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 380,
+        "y": 225
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 95",
+      "size": {
+        "h": 50,
+        "w": 305
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 320
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassScopeFunctionSpecializationDecl 27",
+      "size": {
+        "h": 45,
+        "w": 245
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 90,
+        "y": 385
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 28",
+      "size": {
+        "h": 90,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 90,
+        "y": 495
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 33",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 380,
+        "y": 495
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 53",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 20,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 62",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "\"add\"",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 380,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberExpr 73",
+      "size": {
+        "h": 45,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 240,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 70",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    },
+    {
+      "loc": {
+        "x": 765,
+        "y": 325
+      },
+      "name": "Specializations[0]",
+      "nameAlign": "TA_LEFT",
+      "shape": "ES_NO_SHAPE",
+      "size": {
+        "h": 20,
+        "w": 110
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 35": {
+      "Dependent": "Instantiation|Type|Value",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 89"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BinaryOperator 56": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 26": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 32": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 89": {"syntax": "\"<dependent type>\""},
+    "BuiltinType 99": {"syntax": "\"<bound member function type>\""},
+    "CXXMemberCallExpr 72": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXMethodDecl 22": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (T, U)",
+        "ptr": "FunctionProtoType 25"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:7:19",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 19"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:7",
+      "LookupPtr": "null",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "4197363431",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 23"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 24"},
+      "RD::First": {"ptr": "CXXMethodDecl 22"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 22"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (T, U)\", <in/src/ct-cont-ft-csspec.cc:7:3, col:19>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 28": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 33"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (T, float)",
+        "ptr": "FunctionProtoType 29"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:13:3",
+      "FirstDecl": {"ptr": "ParmVarDecl 30"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "ParmVarDecl 31"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:7",
+      "LookupPtr": "null",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "1",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 30"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 31"},
+      "QualifierLoc": "AbsentNNSLoc",
+      "RD::First": {"ptr": "CXXMethodDecl 28"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 28"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (T, float)\", <in/src/ct-cont-ft-csspec.cc:10:3, col:23>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:10:3>, NullTypeLoc))",
+      "TPL[0]": "\"template <>\"",
+      "TPL[0]->Flags": "",
+      "TPL[0]->LAngleLoc": "in/src/ct-cont-ft-csspec.cc:9:12",
+      "TPL[0]->NumTParams": "0",
+      "TPL[0]->RAngleLoc": "in/src/ct-cont-ft-csspec.cc:9:13",
+      "TPL[0]->Requires": {"ptr": "null"},
+      "TPL[0]->TemplateLoc": "in/src/ct-cont-ft-csspec.cc:9:3",
+      "TemplateOrSpecialization": "null",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int, U)",
+        "ptr": "FunctionProtoType 46"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:7:19",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 40"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:7",
+      "LookupPtr": "null",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2607168096",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 45"},
+      "RD::First": {"ptr": "CXXMethodDecl 43"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int, U)\", <in/src/ct-cont-ft-csspec.cc:7:3, col:19>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 40"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 48": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 53"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int, float)",
+        "ptr": "FunctionProtoType 52"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:13:3",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 51"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:7",
+      "LookupPtr": "null",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 49"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 50"},
+      "RD::First": {"ptr": "CXXMethodDecl 94"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 94"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int, float)\", <in/src/ct-cont-ft-csspec.cc:10:3, col:23>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:10:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "CXXMethodDecl 28"},
+      "getMemberSpecializationInfo()": {"ptr": "MemberSpecializationInfo 95"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 40"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 28"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXMethodDecl 28"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 51"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXMethodDecl 94": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int, float)",
+        "ptr": "FunctionProtoType 102"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:7:19",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 101"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:7",
+      "LookupPtr": "null",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 103"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 104"},
+      "RD::First": {"ptr": "CXXMethodDecl 94"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 48"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int, float)\", <in/src/ct-cont-ft-csspec.cc:7:3, col:19>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 40"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 28"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXMethodDecl 28"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 101"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-csspec.cc:5:10, line:14:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 84"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ClassScopeFunctionSpecializationDecl 27"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "25012263",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 83"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 83"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 39": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 40"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 39"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 39"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 79": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 80": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassScopeFunctionSpecializationDecl 27": {
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:7",
+      "NextInContext": {"ptr": "null"},
+      "Specialization": {"ptr": "CXXMethodDecl 28"},
+      "TemplateArgs": null,
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 81"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionDecl 62"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-csspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-csspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-csspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 81": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 38": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-csspec.cc:5:10, line:14:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 91"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 39"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 48"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "46480523",
+      "PointOfInstantiation": "in/src/ct-cont-ft-csspec.cc:18:11",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 33": {},
+    "CompoundStmt 53": {},
+    "CompoundStmt 70": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 36": {
+      "D": {"ptr": "ParmVarDecl 30"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:12:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 37": {
+      "D": {"ptr": "ParmVarDecl 31"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:12:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 59": {
+      "D": {"ptr": "ParmVarDecl 49"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:12:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 61": {
+      "D": {"ptr": "ParmVarDecl 50"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:12:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 74": {
+      "D": {"ptr": "ParmVarDecl 64"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:18:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 66"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 76": {
+      "D": {"ptr": "ParmVarDecl 68"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:18:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 78": {
+      "D": {"ptr": "ParmVarDecl 69"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:18:19",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 84": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 91": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 66": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FunctionDecl 62": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 70"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (S<int> &, int, float)",
+        "ptr": "FunctionProtoType 63"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-csspec.cc:19:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 64"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:16:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 69"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:16:5",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 64"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 68"},
+      "ParamInfo[2]": {"ptr": "ParmVarDecl 69"},
+      "RD::First": {"ptr": "FunctionDecl 62"},
+      "RD::Prev": {"ptr": "FunctionDecl 62"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (S<int> &, int, float)\", <in/src/ct-cont-ft-csspec.cc:16:1, col:37>, Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:16:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 102": {
+      "Canon": {
+        "preview": "int (int, float)",
+        "ptr": "FunctionProtoType 96"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 106"
+      },
+      "syntax": "\"int (int, float)\""
+    },
+    "FunctionProtoType 25": {
+      "Canon": {
+        "preview": "int (type-parameter-0-0, type-parameter-1-0)",
+        "ptr": "FunctionProtoType 87"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "syntax": "\"int (T, U)\""
+    },
+    "FunctionProtoType 29": {
+      "Canon": {
+        "preview": "int (type-parameter-0-0, float)",
+        "ptr": "FunctionProtoType 88"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (T, float)\""
+    },
+    "FunctionProtoType 46": {
+      "Canon": {
+        "preview": "int (int, type-parameter-0-0)",
+        "ptr": "FunctionProtoType 93"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 42"
+      },
+      "syntax": "\"int (int, U)\""
+    },
+    "FunctionProtoType 52": {
+      "Canon": {
+        "preview": "int (int, float)",
+        "ptr": "FunctionProtoType 96"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (int, float)\""
+    },
+    "FunctionProtoType 63": {
+      "Canon": {
+        "preview": "int (struct S<int> &, int, float)",
+        "ptr": "FunctionProtoType 97"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 65"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[2]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (S<int> &, int, float)\""
+    },
+    "FunctionProtoType 87": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 86"
+      },
+      "syntax": "\"int (type-parameter-0-0, type-parameter-1-0)\""
+    },
+    "FunctionProtoType 88": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (type-parameter-0-0, float)\""
+    },
+    "FunctionProtoType 93": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "syntax": "\"int (int, type-parameter-0-0)\""
+    },
+    "FunctionProtoType 96": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (int, float)\""
+    },
+    "FunctionProtoType 97": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 98"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[2]": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int (struct S<int> &, int, float)\""
+    },
+    "FunctionTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 85"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:7",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "ClassScopeFunctionSpecializationDecl 27"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 19"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-csspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-csspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-csspec.cc:6:3",
+      "TdD": {"ptr": "CXXMethodDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl 40": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 92"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:7",
+      "Name": "\"add\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 48"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 41"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 40"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 40"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-csspec.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-csspec.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-csspec.cc:6:3",
+      "TdD": {"ptr": "CXXMethodDecl 43"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 85": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateDecl::Common 92": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "FunctionTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 101"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 40"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 101": {
+      "Function": {"ptr": "CXXMethodDecl 94"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 40"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "FunctionTemplateSpecializationInfo 51": {
+      "Function": {"ptr": "CXXMethodDecl 48"},
+      "MemberSpecializationInfo": {"ptr": "MemberSpecializationInfo 95"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 40"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "1",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "ImplicitCastExpr 55": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 57": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 58": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 60": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 75": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 77": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 83": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 100"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 65": {
+      "Canon": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 98"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 66"
+      },
+      "syntax": "\"S<int> &\""
+    },
+    "LValueReferenceType 98": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "syntax": "\"struct S<int> &\""
+    },
+    "MemberExpr 73": {
+      "Base": {"ptr": "DeclRefExpr 74"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "CXXMethodDecl 48"},
+      "MemberExprBits": "NOUR_None HasQualifierOrFoundDecl HadMultipleCandidates",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-ft-csspec.cc:18:12",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-ft-csspec.cc:18:11",
+      "TR": {
+        "preview": "<bound member function type>",
+        "ptr": "BuiltinType 99"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "MemberSpecializationInfo 95": {
+      "Member": {"ptr": "CXXMethodDecl 28"},
+      "PointOfInstantiation": "in/src/ct-cont-ft-csspec.cc:18:12",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "ParmVarDecl 103": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 94"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:11",
+      "LDC": {"ptr": "CXXMethodDecl 94"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:13",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-csspec.cc:7:11>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 104": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 94"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 106"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 94"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:18",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ft-csspec.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 23": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:11",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:13",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-csspec.cc:7:11>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 24": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:18",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-csspec.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 30": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 28"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:11",
+      "LDC": {"ptr": "CXXMethodDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:13",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "ParmVarDecl 31"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-csspec.cc:10:11>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 31": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 28"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:16",
+      "LDC": {"ptr": "CXXMethodDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:22",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ft-csspec.cc:10:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:11",
+      "LDC": {"ptr": "CXXMethodDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:13",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-csspec.cc:7:11>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 45": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 42"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:7:18",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-csspec.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 49": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 48"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 47"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:11",
+      "LDC": {"ptr": "CXXMethodDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:13",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-csspec.cc:10:11>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 50": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 48"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:10:16",
+      "LDC": {"ptr": "CXXMethodDecl 48"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:10:22",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ft-csspec.cc:10:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 64": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 62"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 65"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:16:12",
+      "LDC": {"ptr": "FunctionDecl 62"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:16:20",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "ParmVarDecl 68"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "LValueReference(\"S<int> &\", <in/src/ct-cont-ft-csspec.cc:16:12, col:19>, Elaborated(\"S<int>\", <in/src/ct-cont-ft-csspec.cc:16:12, col:17>, TemplateSpecialization(\"S<int>\", <in/src/ct-cont-ft-csspec.cc:16:12, col:17>, NullTypeLoc)))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 68": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 62"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:16:23",
+      "LDC": {"ptr": "FunctionDecl 62"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:16:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "ParmVarDecl 69"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ft-csspec.cc:16:23>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 69": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 62"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-csspec.cc:16:30",
+      "LDC": {"ptr": "FunctionDecl 62"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:16:36",
+      "Name": "\"f\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "2",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ft-csspec.cc:16:30>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 80"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 79"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 90": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "syntax": "\"struct S<int>\""
+    },
+    "ReturnStmt 34": {},
+    "ReturnStmt 54": {},
+    "ReturnStmt 71": {},
+    "SubstTemplateTypeParmType 106": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 40"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"float\""
+    },
+    "SubstTemplateTypeParmType 47": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 38"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 100": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 105"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 105"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 105": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 105"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 67": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 26"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 90"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 41": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 43"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-csspec.cc:6:19",
+      "LocStart": "in/src/ct-cont-ft-csspec.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 42"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 86"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 42": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 82"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 41"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 82": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 86": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 62"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Keyword",
+      "NNS",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ft-csspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "FTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "TdD",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [{
+        "x": 285,
+        "y": 10
+      }],
+      "end": {"entityRef": 5},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 12},
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Function",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "RD::Prev",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "FTSI",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "FTSI",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "Function",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "MemberSpecializationInfo",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "RD::Prev",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "Specialization",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "Body",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 305,
+        "y": 250
+      }],
+      "end": {"entityRef": 19},
+      "label": "Member",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "Body",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [{
+        "x": 585,
+        "y": 540
+      }],
+      "end": {"entityRef": 15},
+      "label": "MemberDecl",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "Body",
+      "start": {"entityRef": 22}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 23},
+      "start": {"entityRef": 24}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 750,
+          "y": 265
+        },
+        {
+          "x": 750,
+          "y": 80
+        }
+      ],
+      "end": {"entityRef": 9},
+      "label": "Template",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 750,
+        "y": 80
+      }],
+      "end": {"entityRef": 9},
+      "start": {"entityRef": 16}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 607,
+    "w": 968
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-csspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a7eee06c17bc299cc485f5940486fdd999ec6e2
GIT binary patch
literal 33035
zcmZ7d2Rzm9|38kOW0R4ceKH~=A!Hw!MM=me^AJ*I9OFdE2#1VhB^5dLF|tYJm?t|s
zIoT^S`*$6^zVH9-^FKE?N7wVZuIFPv?vKZH6?OZT4jm0A4Fm$AyRNHw2Ld6*K_Dcy
zR1{z&SNr591j0!kXl&-A;pySw^uPxKd7QDL67^tAH>K&?*_bC-%)0=iJ~Ak`((1WK
z?j=Hbhy*eUi4>1pB6l?I+!|jvJZMxD`IFBdqZsr~Mr9!mS37xR^QWO;tswicEkoE@
z9;DGbdaPqyplEbC?9A-~dbJSK264Tx&VY!}0*==`*CaJMI<L>a|0o@@eep(4zo3zJ
z$F4!bTVu<Nrq2f9B1XznQygOE1`4LL_~X5cqSeLnbu<o=;UE5zb66NMC3U~lZBIHe
zoIUvx9}*NDg3ft}k7ADy8R2Mn%2$#U`c7r^<Cfa^C0tu$SXn#HeSC{Ni at WLDQh3>5
zRv_!sX&dfu)bNu~5!#uO^~*1W7uW0dZ}RNW)#Xio)G#{eH4+HZ at MXcjq`q^ZEdGrL
z=V8>t87^O!PZkD81 at ykH$A5B7)mK7Stb`|*XU_%3KCpj7O>^YKZt)I(88tqfx8>og
zm2%hecFx-Lv5X6k?J?KQ@~KpYoL=4w!>@WB_-<a)s_y9Y|FI}hyZ<{$JNQPQf2C_-
z<IP#Aik0*2AH;^Xd(8HSn|i(r-U_PqslIkE;ygAwC#aDrdOUgd@)}fyw8{!27Dzwa
zD|qHtzWz^WYCLU&7 at 5S9E&Ued6|P**5j#ToC9dvzYTof*vI?=S_ee?$LdVJ0&&mJJ
z`F#2A&!k<Ex~Pk+bh$6W)j251&HKb?oaAYX1<rZaBOm$wJs2x1w4!^C{Nux^bHjEn
zH+1F@%X_Tzok@#zIbC|x-9$Xr*@fw`-Fn`0^AvRZa_Xb^bvx1Zqgos_Vg>HS73Q3_
zZe!LSJsP@}aWvN0VJ7*`!taJ+4t5H;ZtR4cZ0%=8IE}xIjx;{-^Cq|R*D_>Hls at 6p
zHZ6PW#_E)?*|f*<sm-b9)gXtg(<+CV$*P at M{+<VysgHKTpD4M}r<^h`Sbamzu*UTK
zQCCjO>yYvdJcHW4crT?Y3tG7!^o`ryaA2b{J#+Zd`TJGyzEx6K7j6O)82=$vWEv$^
z+IjCsQop`O%z66F_O4Y`j+FFX!K|DNIQO)aD1G%;DhCyE)>pY7nzAUai1ww_VbbN@
zwOFM)K5#H_x_#$({a7((E+JmWxGP!)t>d~&+jWh(m at +ol^ZNiv5YmYu`Es(6Z_1C3
z1MZgncY%#3*OR}x?j{>P+nF5`H?(>ww!YiV7f~rHE_D2`Qu|osu^zp*V9d8Sg$(`i
zqjP~M->q3lo9RNVe5>{3i%W3^m$W_o4W`x+-^%*uvN$#6MX04E`A1h~5Q at bH>+02<
z!nCr8rl!f>z;y%Oi5Bc|j{M$Rd#dQ7ttY(>p)?*)CI89~6j%3`4RS6T=5AL-3=&7<
z!<N$Zrx_k7s_ at hsRDUA8{1Q{F5T1Vdaz%BFp0j1lU{x`x+vUJwqcHlM{5a}<3h`I0
z>)N)fNyF3ijZ_o8NX5$;cD2uD^EMsXHoi}j_<VZwh$m0oSUA#d8~Kyuhn8~2`6gAh
zE1w6x>q+d^i^PRRvB#}BZ#$tHFT>)zqg6i9?JWtBwEd>({v1kk^Gu`o?08t0-B1XR
zrj3`sv_ at 3w*C_kZztgI(&)YZV9M~n1q$8jSIZf+KC;LC`M7IW*r3dO at 8&cu*byu$k
zNpse7W=}tIrmm$s8yUObhktG?eeM_Ql{BZv6D4!%ugDpBO&1s-g2^v>D2~=we{H?E
zMd>N(R++hI5kHeZQ;VBa at R$0~TmI^rrFCoW2Y<uaV1fM*uNk2?>tfxsd41xM<$+?@
zzWHAyuNSnl`}^{*2z?(I8%cKF6d^x)9;Bsw1^sqB??!WAs(MkU(9ldr(mCPZ(dKx2
z|6h62)kvFjcQ&004UAAxdWP^&0WG)mjLVCwWGu>6$#uCgBZo|fCg=8jm!}dgwzKpq
z(>~fgYWR&EEtU at n4SL$0TuXW%YPa_;UD7niKUVl2!;U>wev?y4c;Px)qPhaU6FvVz
z^lwMcr at Ra`%X{Z{t!}-%8gucId%2*`@9x&+2|gbu$?$o$uJ<J<>#t1v7dG&vLwTOz
z^VL_<4&~aj4DQ9^OMW)F(y;A(b(Hpb?r3{R=XX$I at 3L(DArd`(uf9n$#zluG#p|q~
ztM<==^HuZyQuX!Qut=(MT0`_ at y^HJ1jwiIo!KD4X_N&yzBuPI#pIoVcSXYHAi+c6g
zvE-1w;c~J`tPG1(!Q{$`@&)i;j%)t%csSAv{^6ZSD_LSok>2Q6+gWV???{#8kl*5u
zQ`-cW?YWI@;c=Nc_ZLWqee^rO*d2UKeQcyJx6CJ@*wVj1DVg*3-mle8zuNrFXJeTw
z49}mw7Sc=>ijh?!|KRaJmf!G_++!rWKJyEXnB-T1b4E|r)IO^Gb~+=0q%phobJSGj
z*+L}GhxoCBYuOIX7uf`1Q!@JB+{la#gnwEJG<Ez|!oL%QM3{|QoD+)5Ggg=lj-DZ0
zd3NjV1g-jJzu+s9-Ay)Am*l2P<|jsxytkQFtOD$!@6JD0!^!)<jNo7U=`a{MmOtaq
zZbBfj{!pgI(A#c`-rTzIN=hq`_v`wXIgz8rcYP(_2=TX1m=SM!DQM;Hllr`L(T(Gm
zT%<B$&fjX?x=a%uIsd2N!Bq6M;Yt(PKx*D#o(X!lA80SNECcE>W{F^ycVu~H4U(0O
z7v3*ld@`D>LVg%J*DU@@lx4`;ekVR&=WpJNi}QMEVaL%QP|<MAjkXN<$`d=kD#}kX
zZLk*x at l?@I!oJqSeE%%&VZz at N=Hlc0a+hvj8=}yd5b<gKBFv)4k+#W>*qBNC`e0sd
z6V{@{Wg^#UNf5p3>>@4g7J5g at STBN4*aor at nu(_y$jXbv9KIL#$T^b4)~1-N*tEU1
zm{qhhKFDi1kSkm-N%`L4#e37m$<;uvBJu6vOR6eb9dF;f5<2dS2X5wGJHzGg!z4PB
z%1SFtOwV*WPJeu6X)GEt^6WW7bz$;ni8|f~9-nVz<cKBxv|<ZA!<H+14jb!1=3s at 9
zQe-(prB<DbWenhM8UN-^^@fqG<IJY;F4w4U?9aj{8RTWM7tctSI*L<yR3?%KG>dp(
zTF4|Lldr&Ta@;8Ldp|PoD=kZMw)RzK%K6uSU`1Ju9>zlZ?pQMwS#{MyrH1B at kjJ-k
zoxh+q`L2FeFyQ;<yfEq<d)Fwxzt?4YeCp;?RRhV%0E?;{!-7o`3$Mr9gcRJIiYjt{
ze6>)q>e_rP*LZ9b5&1FWpi1-i8Y`<Fi(&D%{gtnF(Yg6&?G&xZ4V$ZMrBWWgB-`Tb
z?KgfFQ`1l3+iO(nuQpJW6K8U0^GG<_lEqvKIrAl^4-F5Y7t1Nimsn`@t^NWDNN%lK
zbDH$}w&DHWle$ZTJol*{r+D*^y5pGRXPhwt7e$r=t>n^>u|*QdA9*W|`YdN_?9XbO
z({e`+Cp7LlcMQYo3~9;FzWn)XG3@<0-*H~7?8IemqrWxzJL++m at uea*hI3QPS&el+
zHu;-JF8<uVtf(>kcmm#XEmul+F>(mCNg(It6{Lbv2$UWUcOchRi~M75&5pDWs at m;}
zDGRQDR?iR at sb4SBmTc?ns&1u1TsfbO=5>g_V8e)vJXy>YJ7kIXN)&IzHoP$p9xve+
zcU{D#+wAk+`q*Lgo2&q7ck2efC5;_fxp;-dyH?S3tBgz1>DQgiS@);u_T$Z7zb3J|
zT6S^A-n8%0I5*_&Bz=zUW$N<xI}(_NuLs>9o1P7e`9+!zdhNa>ul%r6P>YSdQE>h`
z;$!u4<I;Un(_5ZVYTm<^)LSVTef#gxyz$qhDJ at NO#oPrBUyRN at QDss6r26*J!2Nw3
zH*Q{F=swrJO9I^;rUoIKr!-<}+0VISu-~nGVy~RBM(QsX$g+jPw+VegN0Ke>5!NGQ
z??q~~8gIDK$LTajINH1stZ%~AFKP9K*d;X%UFj(DXQXhwJ1@>Lw?1R0uv>6eWur3s
z!tc+8seQvtC&t(}ujMX!ss6Zm+3YbHhs7qX5FZBFpWo8V7H?y&5S==>8fsE)A~ds5
z>8JKlbnQcQ`*>X0k2-OWhqLpoXQx&4Yj4{%Ml`>l&PS+s{`qLpBV(0;(Dptf_Az3^
zHG=J-%+j43QUfCzBU{(b<z at T3>Pjpp-gRMoskpP7{@yJAae9TX|FkF#HEk-g&)D8O
z_uF;}*Wsf^)7HlNvodXzu``6np_3-jcB!2t1)r(xj#Tus?KlWYy?#DTZ*D4|#~2^(
zSFu0O?Ui2)zqI={YP9%mmfCdd@{<RyNGyld9vvQ<c0$)GcF at ss^^GrAQear(w~EeU
z;kn$d3qE_fV}uHBOvwm^Uyp&qLu-TLf;i7yy<Wb>+UAnf#3nW){#D_bgZOWf?{>a*
zU at sr@#!p%kpa>4334iA$hP1Ljg9XgbFh-Ba)ae|jSw*VZ_xfBa%!8Fw_tt-Dth}rd
zy>#`6b@@wwCc;a({7y#2J#j*|VApHkSEb(@X5wDDqrQ3Tj|RWE at oZ!rxt-IEoWH-P
zQJX&@_-8dAe-EweVV>Rn1H<w at ctEWmPA9odYn|}c{UzJzrdn5j;Q0p;G)uNu-0#fM
z=#rUJNT3#Ov#J*FnbaU}m9>h|t62<0q<){4%h9l<;}JiB)BEIc&GRrQ{M7JZ;C%Dp
z;&aQ0T7i}ri-0Rl`ZAX$BuqI;<0es1q?Xj<Eg%0PihLfovD>?@RHM+v=$atrz|==!
zMbuBm6H>jaudgWl`cmJmKAA9?N#A(3dE7HBVCl|e9tUc-b!PDC*>k&<sfjPkz6l=)
zi%Pw%zL#yT+{J7EQ01ZMBXcXJ at k<(r#gFKq@?FY+Yvz`24-ZQ>zpf1^uS=smysqdr
zKZN`_<9q)i?b(zoMVU at MOnf8<RF5{;L+aV_s|EPUw(7{?2l8JLUHVU;Y~7;q%{h*l
zoNUJ0_ at k1g$Ew`{*K*a=SVB|#dGJO_IP|K<vu;%~*M}VZm#WJe!r~WKw|&EkUDLW<
z=gE7o&%cc1dmC6~=>0133yb8R`1-oXSqVDL%(XU1dW@<*6U$r6^_ClFWw>WVK1I88
z+qW=~h1op7dBSrm1AaYwZmI*l`jvNt+ at aUznaf#|Ukq9V>JbE42eY#863MyQZHvTn
z5L>_7YQwB8 at DmP}C&rIY^kfh3&@~xrgx}9Uh=bV?teTSL?oZ~_m8_E~y{{<bE&2WT
z at w=1_XwW3$NnbM^A4SF?rY&HLuj<UxsLM^?UOcxf4UQ_-lXT~Lv5|@8YZ#ro+%i=6
zDW!jqpe9;uJ!@-KG-`H|Xj|8BL=d&(ep!>mRWQko&UCdoufMsVc!d|)+{ZSNgIp8~
zIh(J;<;GTZRm0Mwr#^>W!XvlpYeFF*FNaW`dH#MiZuDai+0US);<dltoW4b&(>Jt`
z3qqx263?V2R(;dIr}@|3T6!dHP+~Frk&p8GpI7HX6wXgI`sH8ezPi<FLKFQ8GtT9w
z>ug5$XU*!J>8PGn+*?!ai)$v4ZN0L2_TEds5kV}Re#{hQL!q})o}&b^-0+oIcLF}B
z4ZkiO^RIql{jn%O$^xHW$EC=Sw){pH%1LS6`=cZE=vd&3)z~ZtrEB*gB1)McL^@nH
zEYdSO!#c;-i2WpDm66t}^X91f&XW~x;harwEVa}7zuJ>IeC}GkzcFS$AI5rPULr)4
z{bXpIgyn}c8=A*vm~#voqaJYD`dasjdj;om`1(2wOY;uX>%BHSU$AcgHL<SIa%a(c
zeD2j)bGUmG+YtH-pQ-gD at r<*SJr18+*pfEyi3R4o9pD;Vcyn at f!1d*MQHK%>zpE at P
z3CSBfT%LZ*V}sUJvIWANMqBdc*VXa%Nh(j?X^=NKerr6h$cM>MHLhR#>?)2MQ?pg_
zoNAA!w2|?g;@}K8KKZb*!xPB;P{^~%Z}r4)V at K<m&ywDc=KSks&l9_3oo*GAc@@PD
z#FgXPmr__1_15@(Qijy$U1n^rwFxAQn9p-=jo$DwyK-0K5p_2Ojm?+jOP>{!DeirJ
zFX}<#;3UFzx1W4H at p1>>!vVVM#`A;(!B^}T+AX6Wzsfok5-G_KiLqQZ*8BLviMp9P
zRK%H_?2A7p`RsSLy1lt7p`CCR1H%@`->CKBYf_pvIYxWM=bvA+q%kz+i&3=_M^<uQ
z+k1Dp$iHQaU!_ at 3=JkP99qZch10js$H|tO-j4jgC_EsqN)55EQiHa*aNaI&te9Y`M
z44qnUbDeRoIeQ$uV;YvYXn2+odgc-iDgFFEUMAxX6Go$8_n9BLg^q0wxw&5LQ2P?Y
zd$ygWXIN!3k3>APCTMpZ{o&T71=EW{e_KFh<uJe$^kZfyvG+HVSykts_C1bvm*%;6
z$%5%yiKH3+nu?9vhr8bQhRq{)*3BO at rY4Z!f8Ty3#%?{R)yLxjOYNAvQ<}&=-cI+y
zo2+yp;%2cGy~P7F59z(j-h+(4Gw+t!2V)FNS9rv<TpyY%-eIHMLLl=lzCQRPqW5e5
zb%5o{^XLKP8xLNaZ`wGg(>X-h|7^YdbI1SDv8J?;D>|b>azs;N-Ff|MbLHd6#+ozj
z4PXB1v{hV6-LUn=ltf?#tM_q7Mlnav^e^x&U7501BlF$3Y5mUWcLpl?$(=V`!V^);
z>|xhB9^7I=52%Q*$0${tWBl|bNwwXy<b&jNf)27v;%jK#E1gdY*9ViXXMD_xK7`ay
zN+tZhSYC&9@{{CIkg<)L*hV_}`&IiWwJMD{K6Wswow%&HUT6He+la8i_WoAFmW-$`
zeRw>dRXSJto!QJ+mZHI{7p47UXl&DK_=;%eF7NJzyFD-(WAXM@%@|x=-LIQ}XzgbD
z>&W*nw*jo=>yogYvUBh)bhSy=Fki~tnB07pU|sdcZQqfJ%e)vH+ms%h!VH<^7{Sxc
zh(5;Yc+ at q)x8q`Qh<4tg)LMnvjz(#%aa4;D;SZZoqg?#SMz at mG?meTf?mtHBD^H`J
zVmFL1zSL?BfrkrnM_a=0epIi%8%w9rAGSMg%FSz(YdzT*c%L?IK4CP+&0WeF at 1Gxn
z3|#Ih4~@6DTrFLVE&NGdomW0~`B}eERmr><%f!VGA9XXf?y(f>ThBHvi{mpEE>ozw
zg=OC^-GBVvK}1gc&CzrA at 3VyRJdu~$D{p_(bvk|&<wvKqw}k)TZznZ<vAEKj?zA=N
z5F0DCkDv2U(7^gJwmO?n_(T_mR3>7bl<5&?1l(rCZ}o{Yzjhja<*!ilhw0MV!eEfz
z_?<n^*Usj+&VlRnnl(Fb{VuZ0d%yHPZ)#^%?P2B*<GdSWX{L}}q58yl<+TW<Y&L(o
zFr$hvUtP^_9lxUlOutTdl%AQM#0~3?>-lu7v>Dvfavny0?H6n}ru0c|a+hgat}s7c
z;(6G#$Pwbf>~odARKrAuS+0^XA!Y2Tj>6(*{Eo}I at sPI5<~q;!5#`%8ni+4)g<N^&
zOlM+V#LXGqm5Iot*r2K&p(B+vjpwe2wHd-+KzF59$HcU1eC*7o(|m6pEok18%btJs
zVOzGb)AO|9>9Yn;WJ^<R%gRUFklA<M-U#=7GRsC?;j;w)5IbE#@1!F*OzHAXQH5ki
zwX}z$AelC<?n5bVvJrc6pON)@)V=OeE%>?XrK>Ac=Dki)8tOMgs*S{Nw7~l%lKeeV
z4IXSbo^i{sE7+2CVmtCFU2kZUZj at g?O!t&w5YM(XydtE at UhjFBfuu`L+VJp2Yw5V_
z_SFd0J<9c&G)sJ=QG!Lk!y4^{d57SAQf`o0$M&Q&l4O$GcF5~aY^%zg7!SPvNS66A
z-3 at iVTG2~3KJ4iM?f6?UHQwx$q5_=HVYATBm~KjLXelGj1(&XBRfRmg7J+~eEBg3G
zCgm-bw|5`+aQ%dis`BoCC$$+0%QN_yV55CWzsP$-+2s#^#xH&g*Sbait*`u_^70uh
z*RJD*XPvoaGgI(sw}11(<9nxb#X5=vk5lSI`~uAMe80pgr49-Rk3R76jghaF6Z`4+
z%nV{9yrtVjhBZHHEk=FA&`a;iuJHD+Ux|V9du-gf_o at Bq8d~gzVvou5(gz1TF0Ia8
z*~UDWAFSJTx|jJu>!ID#S4kQtS&y+?uYQVt`j)FXzw~H1cY^jqZN|(scfU>*q`Jq2
z;H1efwhSaJ`-It-e-`dM_WGK1#(uh)!PzfhF6Jy(XU~0$MqAuGqqubuABS-j_8FeG
z^L)^bXwz2s<W{ek&O1G=vSl-+{*Zv5&?SMZeEAD;OTX3!k$!rq*HRxQ4Z#uf?)d}G
z!@&>nhtu5M*FF;BJ;S!BCiq`ap-sh$*<II#<7CxRN1TaWb44m#bt1cDNcc(H=8Glo
zhV at I5Ekg}|{crr#zx^sZa_djsjY}$@Pujzl=|5BYx_s8m at sC<hzV^3J+>CR3=|+*y
zJqH`lhVNXqDxGT{G=Y}SCf^9`WqPP1bnZ{To%GAuee!TR?oG8N8Isdi)1v8ny0;>0
z=w(y;%jfAS`8Qne=(6|?zh8&fIcVSfwSFZxgUWAeeoSRMuJD(4$usS13kGm{IQv?}
zU+=|{)vpH=Gu3r7e^&o|eJ+o1V03zV=zcgqnkxd2(a0wYKlfHW`pqT!9cEho#0wJ_
z|7^|QzJk)dK(#JSN at aS_zxkPNmCwZ@7{yzW^v^SmwZ-kraK7mdifc9Obc5`)PAtDu
z%z0NK{O!rDk8EL|K4_B<my#!1lK7r47+25??EWsKUO^sHk>*z>(aXOw%AaQRIlb+y
zRD)f+#K4=+YsiJ0A&lJTHsb^FKZ|=VlfR~#ogrNw<$NFQFhlW7I2cM1Z7e!&-~Xoe
z3s$cCe4^|;I^ihTS8ctxWzTr>FZAgpngeP#J9dbD*3w7Ymci(zxMq#d;p$|IE|-*_
zUFW_xctUxvD<$S*<2e}!#JT0Vrn>Rt(Ul3e;$`K;_Y3EY>5C)SN%PGInzVb)bJA^5
zE^j1h%Jk_P_F+-au<^Eni at yYIIb08iLnHrv=G9KTX#V?~33XT!T7+1 at sh%|94`+sL
z-t{;jHx<tF6F($4;Wbi6l)fhMV@!k7VH|Nu+FA5QtQ~EhEUTV0+L|}wmJm+73Jj(P
zDx;zA>LF>T`{pyF@$kzemT7CePuAyEF&*qjN*1&8NR>HZBkj|z`8gqkdF0624vCWx
z459A(^^dV9AB>ri__;|&z at G1xfhv^a6E=>HYzW)Bn)P|KgJYDqQ%W?Mp*3?y69Tvd
zyh&1kHkrb{%K!E>@kXyf9KF#|r*zD-pijaE&1VU0Pj{TlR-e?1pIy!Py1y9IX at 9e%
zz~`3qcNrO(O=V_7VVF^2xPfMf8hF8|4L at r6-ABjB!w|4ZMT6!Vxub>wE#`cmE}+j9
z83mDMOwfKE8L2y_M+RPWrB74S7Gof`IMWr)pL?Kkqo?-%7pp<9xBitciF at g50;%W*
z*PcZq)~YGLiQ%^gH!>h;RDfI8cTtgY9}RN#ZXX{vZI2FCg{twHr$}R`rh=Uzd&^2i
zGfHD2Y-pWb)|!+A54Y1-Lmm0w8jx&o_&A*uPx=kcm7~VJgCt;l(8;bw(c+g?sl<)p
z7x?$ZVLDSW18uCOmee at J<sZ=>;<#JI;aLH<084-(zy%|m9%8p8Gcvz~+bM=uvr`~Q
zyvU+++paJP#bro(ND{XJ<ddOKm}59ibtDklnb{P$5jQ!d8-*)EBslOSDiX97hv=3j
zJm@#T=E05Hv#|fs$&VUW_ at bDYtoYJr(d9sA%rg1wet|L;Qgh$7!Mw2Ye`Ne8RH8Kg
z6RNJj&Hpr^ugU2OwA;7C1Q<WnK*A}Dry3w?XN+`XYGAWV>2J at sdAhcogu5qFYBfE6
zx6DIl>W=7kxW*~aCr4|cseiM>i$-}v@&58=o>%EnL3mljUBrQP`EkVYw;us}p~nYJ
ze+4LTU7X at 5T6EgrNJwg7Q%(~U%>k2fD}_kIo&Vo#3b-?>tFVOx2T3!}T=8$;=i29j
zq(QxQkUCS at y|-;{ve_D*Hw}F-Bvnx*yWdE02DV0vTYO(OwZ$A~S7DVrR*O|_8nwlU
zW1xF+Q at YzKxhIB35m^T&p`<WA^-<eU=nd!wDP*rOEPaGAbE4OJ0^Y6o0Yh)NWD&0{
z-g^&9s4J-nbe#%x&GWVl*7qNr>peIu3<A5g at 4lD{m>}IBI^q}sTvbE&TtYpcJE9ID
z at YR58=K}gNFPgHEoa}|ZV`eOB4pn0hmKa-T*QN>-_ at XmM1tTToLCOPNZ5miE>X`(y
z?v0O>ZDqtSANynQQzW>ArA!5XnPTj5+mE9_UkM<Q;)t)<`HjJolf8r8O00<Qm9UAr
z*rpP`<b&dQ1^6Wrg1(M0=XO-R- at t9|qhLSYx4$`##^(b%wcEjB3LuiZc~|@H8V{Q`
zWT!t0MwYblZ0{LGn8ic9eyjA?Ngl<Q9k2qTI5Y|cAi-oUh&3lwt|vPQ<y%Q-U~1xF
z%6ANR=@~g!)}6(Ul(_OcyeZMp4O4!wZ|HNo$9{PMgmdM?&KC$J#rSL%^&SG{kM|zM
zB!rS(wQ`1qEqTZWm53?a^^7tS8sMt{-3X5`(-B}BIe*KPZv91%p`%&?sHhbYjcWVv
zcmWk9^ksJ?V|6CP7BR~;(ewcmP&8s-&X&`@K?$}LO5o##IHHster$`v;{<8a$#MP{
zE|TKTM40V1X05=cq<lW^Uv$Hl?fB>-Usk!6LN+WT%rL2|@l5gBEeP6%q8GT>p*c^z
zzU?Zi@?)L)cqkg`<(pWn#E(<S#)#%A;L;&pRRWcrR!uJDsdclEqH|u(X~L+(yYRb`
z-6g4h8R5z_Xe=baFZkFQ-UAuvSSmb`nmjqHPJvT`digylQNTfJf_Mm+7l~rnuiD4F
z3R(JW?Ydw5oY>rey=T)CEi~|A;PGAOvIkC(9>=l=LN_{6Hdpr#U6){peSVdw-^CxU
z8(Sfc;$Igo4S{{dhSXQv=_l%V%nP9#m=*2;)2$}fA4Xh-tZlud)uC#;2bt~)B~>QD
z?o9`ZiY2CV`+7}-nQ<mOd&i2%)LOHX at TSoz2=4HyY#OwjB3emof8MQ5-V76$%lS?R
z5 at 3>Md7A+Zl_qs;@;<%+d_xA<3}-&OyjcPtUM)Kc(qG_WZy+!xIy1<;f|+;S at kSVq
z;HpAwJ6D^0gCM|d;m%DGM|7wz at Hdu1?CQV{ZBHD0wded$@A+27pPkLCxH;|W!Tno)
zz<t5=B~OSW1#oIvvzDByk$_4uu0ofJ>bZujoc^L<t=uVA6t9XZstW{%ZFz_^DM1G!
zy&2gwaL-Ag5YhTN7sWlIO>s$PjFX37#Vt}+W_WPK<cP`nDAtoi+D%Opou;;>S-m~l
zA at b;JjRmWEu?Ut*`t+xqN;(Ec>UgYqw_P5(@xU8hlIT1k^@S5AL+a at K|LFIn4sU(y
z=UK|%Rwf<eD+V>a0DeEZUX`KZU6l(j5$K^sk2D<29utETE!rI6RyTDGf9&s3nq_n8
z|3|YU>R)(+N(12x0pZgE0lSrY-6lt8n-(wECM*8xT3TG5tZiLO{Kw=l>4r(*8g at 7L
z;NW0wZ3-(k)PXM&?|<P`A6PtSO*b^CY(h8W4GEZ)#WyzY%O6|DVWu3ms at ts6=3N}A
z8IB@%cLaKNq`VsZC>)PsIpH?sJ-tVTWP2kAwFQ>Yjn7nG752-|F42u;9gH%f<IA<(
zN+;=Xy>21frJnNe2g%H^O;LEU#mpTw5?B)*8W6Qnj0zfVglv3{Seb8sbfLg&I}N*A
zyz}y+fv2Fn<p-CF6Ft<S{7gB;5*KQ`cGfguw98Y9q#T=T4M{VFYz(d~Uq==4Nj35P
zae at y`;Yc?OH8;gO_V6d6YRDb1Rrx`2WNlU4#qyHnCCJ`1D&wNVyPSQArL`$U8}nY>
zu6M7uMOjIfL$nRH_h8|Eej826xwsx=4Le$FF*RDz;Fz+J3vD|5b)ONxs-syvSfIOO
zxzA-A4YP$3Y|kDZ9ni7~gzknEleZ=xEGm4Ug5kLz(4oWcnQR;T-2Kh#;V#Bmm32N#
z#c45?W;bbq*_x4%r-jCZ?&k7Xzv<$~?K2vz={WK}>?*`>$xl+_Owb$>8WiXf{(2R|
z3EdHyhhs*5sQRm6R)eLPvabf|EPd39DC!X|cdGO;ARJwJFiQp{SkJ=Z1>2&JRb<{m
zCjTyZqqhZimUXt^2QL(FhR)QWf>QJgIMKNWu0qxKTbyPaFu_IV?5(LgAbZ~;ibO|c
zX1p6XT6D4lO&ynlHOK;XJfW~PN}x7X>EY7*oUPGM<+}{p?Th&SWQBZT7r^avZSvy;
zdI=oaOHVo{MIOoBAD8)JLAFPV8t0mp@^@L`Ce+<C2;a7W_t<RWj#Rwoh2YLhuqB;W
z;qE*jt|B5U6>zh#CK9wx)+=pk*{b8!_N~V|6G~VEZO%95=7rg}dx7Cl<5Y%~nax!X
zCJ at h!<D8?irHs=99O=D$<`-z-L-9W_d}SJ$@0<RJ!$EwDJDhkawZB~F?_Aax7HVF|
zM}{+S`|FFkV#Zmx1{`D#s&L0&)22WE9`M1#l*$ke;G{$MpumS{(F{xRF4k}PT0rI}
z4x<X~9O&3Ud^(LazzIPd`5$hez!9MY6#YbiIN=|>fR;}QEqTs+LUd4v67W at PPyfO7
zJWN+?f~=u=I5~QX6sN-xfE>DB)bXKif7-#vHVq%ktG82!9nO}^@Kb at Q74aE9n#yqc
zGGzN5xUqMHp3V?Soa3{s8f7Lppmgn%4Z_WwEjEclFWd>-zUkSc3Mww}c7|-shldHH
z#NZExc?5vi2I3(=Is05|Bn0g5mtEczI3Y&D@@u3DY>e3nr+Mzm9YF7)2mIJN`%1Z-
z3#NxFw##{`GGW_Xro at T&l4ez!wZqQhL9h2YYp&z_H<u@?)~=(Jkvs(9Z2^n1sPUH&
za}c at PhOem}$k%2)bW at q3-6C;BS<&E%cH<Pq)7H`ridy;rq`3iK<>*k_m|$aZT<Xj!
ze-Tn#eeB7D_$s?N;)mar`Tf^E^C%)jb2cQdu?=_=Il(qk<=|ks0kc*)xx^ty2h!y*
zH^C*`Xk;Yev3~e_0MF9m9^<(Q;y>bO$5zQZ%zq-;VI@~7S%=wR!>XSG at 2J`D1QWL+
zA at I(3UwcTltX<s#sZpqxOia4KeDjr*@l65ZF8sJ&`jzPOLt;<`3rQW-;po-vp%Vj2
zLLF1N3M)GMdwk?EFN6ppwL>DeGg0F*k^l<&x89u?`S{ch$o~w$4$&eH4X*g+QF$4p
z>BR53F%n9KM?9BxAOyrj9d=CRC{`JUh_J*%9Iw|xHp-o{0<#Nxcsa?@AT6GOO({?+
zSVl~4Oej#+u)~0|)2bL?O}Tt_^cym(6S|2CN3qD~X1kCL+ at T`~{nciaHObUh6zd;V
zBp??b%A<%#RhH*Z7dPQ<UX{PDABLARO+e)}sDgf2YS;+0S at Ni_cH3tL|9zC~`YDea
zvd422nT70Y-SgdjaN$hd at i!ZdLVWq%>PfXuvtZe#tF`n*@Wx~z1%8(RTy!`zpl~P%
zcebh2<bY55M{XN6GeCe#5M6=zwdmfY7c$UL*KvxH%cE1F#PyI<gnhV2B at I93g&~IY
zi9`Pu6!z at Y5%66AVN8*oCgjrvr~9OQ<pg^Yr-HE%W|(caz?jpI&E>+w+%}6x#eqW~
zCW1Yts|$l^(R(Yqm*623uo9BR`H;IL$I-z~DOE(w4ptuPk_Gq%%aNjyL%vgV=qc$E
z;<m>&z*GUnv}jp(kQX<Wpf#1Z?mHGuPHsQXEvbYpyWb>Wb}ifvc2Y{V_p&w<t;gj0
zL!3&^19oUZX1WjHw#qL|Wo+p5>Y at xltGhhrGBtBoWtJ3eg=m+|@kI6jgb_!L2dz-`
z#T_ at 2bWp)#K_<YNj^R_}jT#qMx<xgXav)&C<w<hft`@okvLQ)zd>l*>lhA}zWA6^K
zK21F&UgU=W8~{?)AUF)lZ)iuf%C=#uce4)})O$bz-s1;6x&c~4Bc1DngKU^Qtwu!p
zN*?ZLqmk-+-l#6+UrJ)L^4yg0ECw9ndWmzh1rhIdLkL+pzf24_CN~+-*-%`U=Yl7M
z;EOt3GDmSw;78`PBd#JkE4(6o*^<=Aab$4Z(cXKijY1b^UmssK7(T2&S)&kI?q{oV
z6S4>LR)WjM3%par-FWRNtl`Y$`5}HBXNQoX9zRdX9MsEzEPz#ams>*?9m0V|&dQTI
z-Z22;55k{y^G0{8?+8rL#;Hp$JXRq^=bGnQhVFux?Ht at w9IosT=_}akb79(ir`{23
z7T;CYs2GCM_aEpVvHKcoJ1h^y8Gz!0Z3#D}!jX$_L?YOhsBqdHL!1{b#Z*Qx!Crnl
zazF*mS+sRQ(nJ>*aI*X41j$NJa at C*?D}0}Ez?#_Xa}5xd>y~M^KfkmkS`7yblP9xw
zv}4Ynou>#-VPPR!%3;BcqF<FRT667^|I)%oCUpG103 at J9ZYySv>vYOn8VS<(BY97<
z4nbgMCt|u$YLIP-1tn0QC#9o72sN1KjM9ggbI|}eMs$vvbHE14&`V2A*aRLE4NUG>
z0S;wlxWn4k0ZH at n9meTiIif-xQo!Rv8cFJN-I%hSLLWGV^D3m6&(Xo$M4-})@GKf%
ze^NQ{mO~!ho-Khu)N9BFJ*u9GN(MDfS|$b!VAln2;(#&30Rgr}0^HU!SL?LbMrxZz
zDig51>&vgZ!P9;j$R7KPq6jEDn+liU`@+)gZ`Ipcoh2Hb$xaeKpUmm5s at x@YAPZ$H
z1(PN at 8XS>Nn=?3xb1zW#XHu}CrmJ)JAMd!-fUSabFQ5)h;Hsp}hA4NBI)tqlKThId
z6W1%~Mhs^*?H6sXqQ&hqvMFTfHfW73WsPV7XY5_m at cZvp@!BmwFc*M~_AbGBpEXUc
zG(gc>z(-T)UQ@(DHf&JiFAr&m^49m?xk#*JxnbEtc%V3QjT#O?W+?E5fT4%3ASk5`
z^cT~?ZAft at XMvNK|FedE)cB1)-!_0kpb9dkY0wSb1DusB&`*;z<(>%jIiQpHCyxB6
zdP-P!w|b*M%=Vfb@};NN4l_ByB at O7Z5o`N7$UmDEwg$!ZiVq>CVw}r(p at d$$>7tbz
zeISwph1g6o4woU&#Et?fK^9eyL6p=f=e__!_B_+B3BG`BG=UBTWUmfY|4Vtf^a5Zx
z8CIhPzzB{A)wk(v>2XS3Yr)q>AYKAq9pZ`fXpj%OU=Al!PHw at Q`r3QTh;oL0=dL-m
z4v&X^s?KVcl{*)1TeAU90t{|b;uJr)vycF0x)ztYLQ_qz??`h@$xtuzyX8+&<FMMF
zHF=q~GLT?4F;oqW0EW+^OSI(+Kb;`xemCa!G;|y`{Q8SMnDZy~T05#FLB}tqVQKdf
zV~quvx900uj&)@D3?d|*$P9Q*Ar^4Hq0LAb+#V2zH=bcZtgr*#M-)i-cW*f_RAYt_
zh4Pcw*e<U}Dr-(XCFh4u!?QC{2I{Es=vSJG=-%mPMfrCedu*x%LMvCj@$26crr(V?
zkOL>#Z at J^iBSnffRd*L6D|v+hAOMtQc+!mmGA_(>Q&pidZ67mHK!+z8;V$A2)pFol
zIBVu?R?Zt%r|zNOxd#- at kbq$-(DEu7#alxZ?lea4O#;$Mb$|rq4NA+#m at fGX56wr7
zgWCR37GC^<q=<x&HG{$NTX9s9bU*^C6>uEzRoC6MXc%ISL&r;5_f*&5m6-<(m`50W
zi(VOJ at 4PRZ*zCUm_8gMId$f_-iscDM721Q2+7mAX`4-7%7AdLW0J80%8%XY9suF^K
zs5;PZ;A$xUC9BDMj|V!0YwCoDAVhbK*9yQWwGMhikROU7fiUwR8`ev(T>@7mfixdy
z&y&V0J7ZVp`(Gdlkb;>C{+N%gbyO^Dpj+gLk`-+{1I+&X&`B-%JA`rthWEZTBclTm
z(-KQ<R6Q&#gQMybGt5-z-}~nHFBCN)%gqonO1s*v<>rM5f*KB`^e_7mEjfJ-%q=qG
zP%jR%B6<u7PDxxAYqS#tx at 4=?r?%8-A8aYtZq4l0_39-Rk+MnV$QGK at Bt^stBZ|0c
z=dwwavQyl=H^DfPITVWcA4vc*li(!D9i4ss4*c8eKLa5Ujf)n2U7(29o=x2uBzodM
ziIuFb08hztexq}%=K`&32Krt&r8_TcAfaet)>kDdG=Wtc1rS3o9UGMJ8^ztOz8+E7
zH`rETzbE_;yaN${@;O`!vgZs}wbTf{o7k9DnNrf&Z=s}6ccMR1zNB6~WDi&aoYLV!
z$MP}5$6-rr2)wHIj*Z_G;<p_tsK$1-F3}mSt*H1#al>X?+Or`WGkSL|(Ocq8_XFYD
zFFZuy9j;JqunrtQ8<=W}SM{!384BUgc2hqYIU!~M6HUn8U3eqOZw|K?I#ZpObcV4-
zz1yQ=Ej%p$1g`^9dk`_Td!2bYMFT7`_lPM$yEcz^@yQqct<C$9-VC at ncQ<VoZdmw>
z-YKWGq)3whsIy>B=Zo+6P=~(o<85(x-0Ix2cf-#Ex!b_uKtEcI3N1GM;L45hGvzV>
zQHDvtDL8VQI(eAqp^iYtlagV|OgFRs)G)5I0&oUNa|x$d6f@$~KJ|lM2Xj!1woy?*
zHdtXhg0I{ruxSUE(&vklpRO*e0HH!R#?KGUp2lcRYxLnWDlb8?twr&nqMqOjG24cF
z$Z{9Nc at -{?I1)Nif_qra{LvtCZCe$x at sJqLPZs0qtIExEK;dT}ykiYoP9Qjv;7Ujw
zmo}u=lqhQu7OnI1Q3aLtHzk3e)KH+;%$8oAPHHddVPin2Wv9Orlitsv1Od&#5r0$A
zoDWzHu%%OtgPuOznS$dtN?CC(MEi>w+37eD!ZJ6UO`Hl0QjG4xThD%!S5!h0Yf<n(
z?aXPE1U+d|$63?j at bQ;Fi-py#og;n4?98sT%7T4~>!(KHGMlfOAUM;u?Doise#Vkw
z9i1Ip1^vp!T4NptkS~a{c4=dZA#3xBojM$a at yd6;bu9nD_9(zZq+o9FS5qqGx%>XS
z&n61aXMz?VE4rA((Yuq_!#RFH79b1Tg*;?fo`T|%(L^V}_E5qvQFi98Y5%NaZSSF1
z at SqclE#wHUELjd5F#R31n!C&WH`6WDoQoVitb;}l^FPq?4INgDYfL3y*46y$e)PMm
zOcQ_8M}n9D0r2tHf|dMqbu6A9%=k7`-xmE&E6vH<S at 34<%wuV%b*16sayc3ps03sp
z>%wNJ$f~L)uqBIBUKB1m_?u2!L}cxp86Quw!7378SRF{oeYe$VM>&oczw7|PjoJ=r
zLkS0<IlzcdZmwZMBO_diQ7D*n;s)f3TXym$_1e`4j`lcbUJYlF2dtn{44nvRGGQnS
zVS?#IAZ>*dmdFXX9mqx&h)lyx{#B+#OACan>Sb-q!Q*&^fs*4%2-VBp+htu4f_d8j
zX|s}l4|HQx(At2UVE(YyD^eD2Lx~exvb{|N-D?yCQ7SpmeIq5%K^6J}+=OuE$%Plr
zJV}mvE=`RpU%KZU(Y;e#MvZQQ;sz7ud1hfHe^uef7hw3pP^|9*17s)A=NbdfHak2h
z2}dmd+DJEUwcig^<d$J#=+2Na at 6Dmat#R6CT2m?nN+9j9iZQ-RyCX6nSbQ(eQ!ZNB
zRy{|CLqfcqj+FXrOoonnpN0aaytvo-({ey02K{k{PvAI9wR2x3 at gqQ)gt0joBHIOj
zPH}|!`a&?jEnP(&#A}-yB%JZ7J<B||%eWt`XhfAMR)-Vf1eChFZN0>-w(u7i{iJ>5
z_9{v_ at k*XN(-3C_=XDz6?IT7wn|g>O%v6}RFK1Q~;$?EA^jZyOQJg at T4JU^DT_|C7
z4odW#Akh5zn(;aMo#vpSJ=j?b&EYtpjn-M5S|0sv(wYx28VG0YwpTBKhpAAnHE9t{
z;$Ro2eefJNfmLI&8w8RrNPx%D7%47yWc&%Ss66?~NBru~Rn4XLD(2kpaFhk7MPf`0
zS}!*>d-UAq#|p%Uln~nF0Qux{qD_aI8W`smYqP<dh>#j8%_Uc`NeuZLxuZPWQN*&J
zl7JB>X1MY=(Dy_w`-5(&=Y8)1VUVBd+0dtN<#eIIDe{HP0c!epw1a;EQ}_o)K&)T(
zU-fVQFP8yp1|)~fg`^U#1x(q{fuyCi0Z&o?X5G|@4RjqmyBr;ClA?y?|F*c9a{cLD
z6JFGzJDj2o*ab4IyKn}~g>KC5T`br&Pm at qOXi!>en|v<_1%2StSOmJ^QwlQhRY<+q
z&qee8zq^&WE4EK;@%vpm2hm9qOtG=ed-Do)qif6CZ~x=jH{-uW^q(h39xhM`IyW&N
z+0528{N{iX5{|T>BWH<SexfdLU5Y)#a)up075mxI`N1C%V_U6oWCTwM1tDu!dg^1w
z%qflnJ*^oavZJ0fEi at kmuA%KR7aDu;K<J3`NhsKgXa-+GbVM&?@&N%6L)hFL6(YBx
zXn6$uovqGB%qa?=rh4ByTTow!6J4KlV(dwDUru`DEu>rcV_4VuJGKW3gxRzS4jtF5
zCJPjBo=`%x0%*9L%Kg%$=b%O5h_)+PEilueN2fw}gYK~}mbX5~&ywvrmlZ<@E+c_h
zGo8`z0CTIfQ2+*sHd#J}onP&TC}6oYKG?;}b+LA8ID-GM;iJh<M>MQK0WIfDOu<pN
zcr`NXH)Oh3Zp+Ps1wP3I&S#moNC}qEfCvm!!MjVPQ^QJyx`dl#NXfV$&{m~wpw5RP
zR3 at x`OgFAhsW^n07F{F!>r|{DpHEYHnGl>W2=?g9B}T39_<TlA`xBtgdpO}e^v}EK
zrMfPZy2iqzdgjs%Z|x{i;-<nKfE at iv2%%M*{>ad=O6+jR?#aOjHWc3xT!A-i4q<*s
zN?^dNgEK4LyKMyoSi+HJid#PFCq}x6+nz279P4Pd6=*8=R;nW|!0ekqSx>ZQW*A?~
z3hQ5O)#3e612Tn!5XWqw5y@`*U}0FiW&na7(L-Ov8_R^q{nnsS2yCA>3buPIIbZje
z5giad at f_g{I{Tb at F|Y^Rsy+w>6u60lU;)^!CaB8gC^=xmCp}mgm-Q5urUTRYOTNXR
z%YI at LCBL6uXhZ!rna83}7ch1J*&Fr;hX=&!C`*-c at BWEtb~+R%kT9(4_;K6c;M+WQ
zZ8GhvB1w6#rkj{F%TiGN8FY!_dn`W|D}eLNbO1?wx3TD$#~9+}mQ1rtY at P<>vjAeU
zAp~7==75!(v9S>^p&N?uMj~7;UGMNJpW1uLk85B+VXDDdAP8=rk-pBn-~fU5=3inZ
z;wr=}Apr6`t|4l26=$E>{Xy;ZSBr+v1{vYw>Bc3B*KJKENr`q#k%`bqD at pV;fo{w{
z(&{Ap=Q)L&kKB&rl^CEh#J0%@B^;|`3n~LzbP>a0vTO>`7l-y9Gs5BvTe_G1>HjT)
z>~%gQnh3V1Ee2xFBt{HT6Lml%L=2m*6Q|AW>o_bl1m7HfZYDz<`!CLfs>W=a+~Fbu
z&9tK)kloGAR&M_EO%^mLCIwp%{m%}b)j;p%eAJH-FD;6Yu2c1N8%Z0oXff>^B%Wk>
z<NF`Dd7U`VG-6+<j8q}{czdoEGoIy?m~%P!qYa-F`t$q6^AUh!$#9;Q8$^(0xvON+
zNCnf$=C6kN__!v|`&sB2xqx?-thld9^Z#Czjx9c^mjP|mHb{U0ytpR|57=XLB;t+@
zZBzzy80R0T7=oF#aRrN}&g3>24lL`Yh}~Y~d0 at eKlnKS@Fi^zzwBYh{%v&7=<`kII
zC~$a)i3iawfk;RRD^LZ+iW*8ZCPGHLgIFo!xj2<+a3<HEXzRpof$p_Nv-!612i~l-
zjEmm!TXB%rDxC8eRM)7;e=;Ehom9Da`rIrjWkw)k8_JF%N_&Cz!2_<67qIvtDHVo2
z(FhfME&T`~KAGXRGYTjTIR9z=;I+7LoT*XRt?rCcZsLuO+nH~V9wV90geaUzQpt4`
zU1}d{jZ8*y^Q466Yz0>DRD1ahGA|i36cgiWJD^{U1TC=HYmqSP&bB;BTiUDeyl5}7
z3sQ3_Y<!FnoC;yReZ=_oyC0)JF`;F=@mlC5=5#2~6w&KIO=bg1A#TFf_;iP$nL&E^
zxJ;8Gjr553xMh!gw|emn7ysRgx0nPH6 at l;PK<+K2CK?#g;=0!kd&Gy*3<Vkt*Av8t
z1llH*zSR2Cm%H`YCYRXr5VD^0c#;#MU9|*Y7Rf$z{}3;cW{?Z`vdIb6R&IKIe>104
zC<9WzBw<q|N&kn7|G~)+823{1LFO8_IxjgsEou+A^#6m-U4<ak+ETPBu7}KlrW>Ya
zi=Sx0^}?`|O(oLTM5O}w$I#^MjIzooEhIrBnK!pDwag!r{^R<TgLNf at 9A$urtF`mw
zVPV%)!n+`l1pavlxMMK~j(&k<e4s4_sT`b)MBD*EzVHd)9P~aQ9Na{wNqhtvaQ_?I
zv;9eg{--pq{UG9RVhd%xj_9jmP!4gh{xDIOb*1;`*@Z~rDJx1mjF`guF{0n|G)1Uk
zGU2pMdSH0~En59_pEQz(w29YsG5}Gej*P?(G?6isJ~%J^*S0<#QKPmwsgWzvyv4X)
zq|dUw>-&8r%V{<^@sC2@;Rnq`NDVK#<#f9}LsrYRIsOtYt{Pp15U6=88M+BwnI0Lr
zv&^;d{4}Nj`sst^nVuX!dx`Nlny~Si+FC{4RROnRAbT7r+BoohNQxZCvpzZ+LXl4m
z!#t0Sq#}yvWNQQ>1bA2c5MT78d^2<nLJ+t&bQS8jeU_0CG{R1^>yXrurT_#@4Xz3$
zG&25^)Y7Z_WDsd^%Z9&C9(2x#4DuMo!s*f2v)mJR9qG%FH2=NjUkm;LDWNM-L1jHC
z`Rk~c3dH=BwtrgNdUd0pvx0a#2!s`)w9MO*IMMq5XMhD(cl>_`1nYMG?*Q!oe?YKq
z_5aK;4xf3=3@$10|L6U(JpH)xYh8!S at 2iQ|n}|(Wz=z}|zD;(z|A;vq0f81Q0!$M7
z0?wfKstK+#oq`7dWxy3SDj2}3EEyQ+!P<^?^-*0>)9T2#!cDXUGZ0n$^W>)E;I(BX
z*6gUpDQtJwpX|(-MWmD$o%9-%utrj@>DeW2C;$@YafuG8mz$DIXYep76p+XV6)hU(
z|IWSF!>YSRhHF@#JcBcxyR_d-0t;nE$7<hm_J9zVHJu#C`c(0ko33Ry_>;dVTFVHo
z=B&WZ*|DI-1iFAQeZ;Qzkc^ANRij at YH}33Cxf8Zsl*}W$SF3k}fLWfFZQz at mD=Xt!
zE$v_D<DMkRGigN*u_>}jFO)XlfD;0ODd~pfi=Cj^<p!#ESq=VV-;>AYqZXYf4 at 9|1
zfvo^LC&6JsVTKxK)>@Hh9c;8 at T<O?63;mrtzq_3ClSl;;&P!fzj;g1z7lS=^<lW(#
zYxr*|Ai<x4fPH6Pl<&TzWSFnab;&xI_w9Nxd1r(f at E}6ZY1 at s-X$4#?+Ax8xbE#7S
z<MPX&xhph{(a-qQ>66~;Wis~?SA|evh_vi~GMS>!2&gV0_4;~tX at 2MJ_1e`)7~<t~
z4tqKPOICH4S)qiiTZ7=#!SMSLCy|Bki?l~3=n4`v;sVY1%K2vcl at S-Nd4JG=+NgsB
z>~Iqd;j3w$DvFc}Bn!m8gn8kaMk8pc$r#SLEQ at -I=m3NRNKNuR$qmc3o0IGu?~Rf(
zF26RGvW$<rVAYj at nb-J%Inqw;Jq?#lq-e2nvubHW9U0r|w>1KwCzthn{`O|Vyd1EZ
zA at y70rb!F1%2}Cs=dw83R1CmOoaIN~rjfvLDmI|^v{u6f<_m6cUQOH%{ie~Hg*WjK
z^DfqAzPeN4pZ1)Tm|=t9A+=M1R)8>IzjqlLxY4FUbT2e(OfQ`6f_ORi?8c$_YS>0x
zfa-w!n`i-Or$qber}@T#Yh5lIEQuWLP;3I;-M+~L9PDRt#y0L`^=Cr%mip~aBRVW#
zTLB8<Mwg-vAj${i`RJfH!ecWIA>L=5;1-rYDPhv%uLo#k{%a5eAhnod`SR at DR?|Un
z&<b0lNNw=;&nCg;4#xw(`qz^K#B6`hh1AF+y-nDb+<$#ZHZR1s_UDc*cH3LijU<p+
zs>~&y&X$R=*ezVhXdkyWUri_+f$TluF>>Z5M)#nT{T8AllM+0;&9lm!A8m&~%Hu9#
zdl-Qjq(A~Eo|y6DP8=G3=lZ at t4s)qm4%Z-V&JVrDn;t-cmxJmkFp}6X0ij5N7KdQ`
z(F<+?t?V?i at 6m%XfUyQOPKy{)LU9frG`I2V|201_&tDN^1UTv>BTQLI10t4Qfg+=w
zBrQ!XF&|i at Bg!2#5WpTlWM8 at p=}w!pVARUnro5!&)?y#H5wn(AL|Q=Fe5$xp-7G;B
z62I0W_TGa-Dy;q(cyJOQ%+o-5+NX3T_P+s`aB3hZb&{ZM&#4~=pUj`=Tn^qklKH6`
z{>Qzh_)X)s%72mUbi)=Rf|@{$2d=Hj at i&i$Ew~u}bysSF1aF at T@E>oEyidSc-Zgj+
z%8j682roVtp+fSvE4N86&Dz^fQtDJXX;V~#kiBOB<cyAkGm=b#t^!25gaUZ%@x}yo
z|Hwr?0pEdJZI>;IJ3Op!c5+PUEFlw+Ym0$#gth$RqPr6e$-Cd^+elBb39yqqV3;nO
zUEl6Ip1TT4 at A{LoOM^|__g{@jO;5YS(ygmYL=pdAXWt#w^wzAMPy`e~L{N|t!Hx|O
zl at bUFB8pu=ilDS0MU*0jP@<kAVu7Hd1_h2_IZ}^Q=_(=-LLw?)XaS9Mhz3HW-`U}u
z_kHiW_pWcPkL4dier1=L*)z{PGZ}5ME!b#$A}$F#o=sj1yUYgui6vV0j$qoej^4pR
z1RMg|wHin(GA6b0RO{W#A~veN at XOMmMr?j?=!L<XHDuGU#YSEuM;@-SW32YgjC`pp
zb~no--nM6R7~au(Lt4b|g8@&z&Lo~Y2=Z&9I2ZKGOK|syfAaZ2Hu7h8UC;XMlv2`a
zFG at H-A1h_lBB=LBouQ5F*t?#)*;-rd$4}<>7+KUM&{{r;m(m6t6n;Jo(X=;d(_r`X
zPM__;&-r7NsZ#{6ZZfu5FkKtAcKKnl7|uQ<o!sN?^(x&banER?7wCecqvW{4q9ntl
z)kdx)kMTE3!k?KQ5AgC1>6))H%hvo`c{tMaELpaz6t`jJMSRuaj9YSJ1h>_>28oAs
zjq)S5;p`ccCv?}mT;Kfe6SkPxva|8et4hL^APaLRTX!^u&tZ142k;}y;*3%%YmT4G
zOc){9FHF*i>F!WkrE&8TYZ<d;!TL}vKV1ZfHOkxAb=(H=V~Kf);uaJxy*^N- at MEST
za*S3<an_CdDZG#uKiGcdI0ySt+tWd2oUJ5hhY4)dg^;m-&!}7w)qZ~f=z)X8oaz9i
zvL0t2tej!IEpHCO#i-ZkFFzqQ9=o9_o~)HvT_V7&c4Dr5ER>tfviX=`t*26d)#RJ$
zaJ`RdSaupMD`)tD&6|4mKQrUk<Q*q=e-bcW7`4<W-g7GXwk*B*cJ_v-e8mgGg1F$B
zv><B{l{v1~S%#jqqUm7xp`xSsZ|18?Lpy|2QSO$3q}(K9MRM^_PVgasVo3XU-}=}V
zGPC=3{~(5*Rm?aT3)&s2Xk%-t7R(d*WXJ+7hYX>`y3%*&cxqM2D`GN?iyCXr6?6x2
z%Y at FiGe{ZuoT2kWp;BD>mVU4?<v}7v5XwRFaxQ3#iLuwKGS$(4v%9J2A(pPA7<XgC
zqulj6!<j+bO4OK4%9JsqWc#JI2h|fX0IVRpe}FP2Z-Yg^otfxJZrtZLN(uD+)A{@5
z-)L-ea$J`jA)8_9_!HwH-0hl+92&s*q>$e=E=dWWXWK}5D4Fkf>j|Bhlj>_ba)Kwp
z?Qp-pke-(v!OGS7w^>5-yS4V*!JU87Kg#Rp8WFW22v?>OT_+g=31mjm1#2+;Po1R(
zZBv5<jB_1$zv*}&y+|BY9xw=^I#G`q%7?&V&{13lOneSH3V=N8AsP{uAA~9H`7#sP
zlN~g&mY|`2WKxn4D{GqsC;)%_T0{<AOV#?$o%%iP52{PVsA--9^=|lYEySLioTSGK
z;LH<Qy13M*QIqS4IVZ5)JmSnu>w4F2ed1xjM7(NK)`=4~sqKXnb4P^A0`-30rc=4C
z1t^U+Cx`mj@%eJB4&R7u!EDD>zo+4lbUYclBp1{z^0R83(Pz#Hj^aO~tyC5vAYF{c
zs)rf1#zFVD5e_i!HR_hjQ!)I|E);=@W>qOiuXK^5<AM0VUw|<*a<!|uBRXzq1y~6x
z?*@*AVfLzV8cx-toTi#}XPSHM+*#3r5u=yNzhE-^rr#i}R<q8eev|9UT_bcoYkLjr
z(K``wpoY)k07~%@qw8SD*Y6v(<!8}$W#(MD==wTf>-CVvho=!`XozCsTXFilCY#g^
zdY|hpQ(ozQ0OAB03S->hcIdU$W{auB&_zHeY0e&U&;}L)SO|;CG<oEnb9vZ6*4crC
zW(+QB8P(}zn8dsCy76P;ddrX)^|2xFLD`X+^GitYgz%qaIXdl0J`i9b`~hbi{?h$y
z7yciUv)WOv1_!w$k=GC6f`kx3K#;4EpT|vOd;o#|$2DkJq;?sS>Qfekj#JqvC at WLJ
z5p!*Ylpx<B<hhS0hy7Vl{_)C_3r;#0H<ZLxrYzrR|GhA`mHyD40Phw#>{HUfLm#YV
zU2>mCp9FfRVH?m$3-js(9fFHHH**J0D*hb>h;!vGs2j?m=NeMNl?$eOX6+BNDpL$E
zx6upJ4)X>hwLIzJ!$MvLZ>nNu(vcN%^-fj+r)eDO9FU5 at 3{%9oY|MgKfcJIZhDltA
zG9Qo~jD4k3I;8OzYjDl{QlM(L*mXM>P$E2BQ9=y}tLCD3Poy|Nm=~*C>%Cj+Ny21I
zS#yhv$YYa-CFDQAs({A|%Z&t8Zr4xS!msIcqHn9iUzshe#zj2}F9+Gms2Bs;kSIB7
zoY6T~)pu$RSFQmzBgM6iXL(!v8eV(Oz*)@WpRi`w*?1WWocj;h8id={n={4uXU?jW
z9|S7G-zyR-7U+ATE6OD<JK97sIIfoM_yEnbV*z#cO^@`Kn_kqJX+PV-K^qlju8lon
zgd5l0%@fP at d;z;DI$%0fsrqNxBjxnstKl;~v+y^*hJYHYWyk^PtD{UEj8Zy;^4^`0
zC;yP7Vt(dgprxT`+cK+q!l6thSrS1X{AewDTBpkXCFc!3FBh#erGEVH*+S%x84q<i
zTWzQSxC|tHYaT-BiU{d10$9I`owm=)Qu{+%&=b*fZA6tV at Ufp<;M$`hkXgLp`8W(~
znCL(EV3623;nbYRO&E|xHsx<AMh`cWp^K0Mn4d*tv}lSmCb-KWT4*~J$JK$UH133c
zL!zA|={4gar40W|Jzc3U+C6?KhF$)aQQG)zPBp+pWNNs12_XDNn+LanL+OA&fF1`1
z1RUrUUUqR1!oq?&e1o-U+(oP*b8Xo(R>F{kJKpzf7wCDC-sm24&Z|w(3}f=>(}K5+
zI(ALXp{wU#A5MF=0X+#^Qt*yI-aJ!EHw|p(7oQkT>gRkJmS3;MaTv#adkzeYNlB3y
zBd{Y=BXR!HN}i_WY_^tfC2zXoeExLWP{CM8$cA|T!dPMdB<<VHJI_Kk>h&0xvgkd`
z*e5;V$DC*Bcv`WX!=He|?l8H&es*NGGRHLn;>V0>3s><uB|%zp8WPvf)}FjMtTWQW
z-p2Z4W7rLR4O#MPeAjFIWXd_&P}kZ1fdqBF95v|d1<8V_6#^kIjph70*cT{hXq~1U
z!GqEj=Yk)uGk?c?^TX8s_GW3E{oUtc)Eok7te_WvW$^M{^%c;Xq!Z2<+fH(UE80f0
zg>;Mj>~DFBkWbyNWIhwR{p2us`|=nsf|G|C&BB>2?dv-mKk&fN9^YUO`@zz9V<#RM
zY^JX{f1ni#jL<^@q__$n#OSk;Ard6JV?n_e0v}K5q`gf$Yv_JepiXHcbFf at rLTq?s
z_lG|3&yXNSw^`(1xGvHd`cTkzMep<KZV^&@ScxMiB4qI=!7b!VFL`iTWUv5$VTREc
z4J1AZ$X<M0;AH{S%Qo@#cp43YN21<(tGt~#Ot<!uVHzaHfAcPHu5{ZI9-LgU@`S;V
zh0gU5E-x9eixR36k^E>)NZ_vHMiiT4BKd(kWvQH&F^ovgL^6I7;itZ2078(pAN3&I
zeSCc`2C~4AbO_8%MObP~@DYq2M3a$6AM~^VP3r8&>$d7gwI(!hPEs_Q!|Z&R9(M>T
z?WFZ#=+8b!(fGRhoYQkA5yUR)@ok|5LAlz^O98C{#!!$9aT(VVAEF3u$eh|B7zrtt
z=oA(Sdd(fAKBD6jjNfH!u_P0s&VT$6v{3x7v8R3acheTydKqT2Z+iJg^wUn-7UVSc
zY%Phab<Z*lNNX-9-k~=x-WSiu{OeKLSduWd&!LCB4OcWanXtC=0jn=FaPWLb*t5eo
z{KRpr(vEV^8=1#Hge|%kahygX*iK{q>Unq~qNWOu1`EY(L+YRQ&~l7)iAjIa2O1)Z
z3Q2|S9Y9X1qMJs!UQh1Hh_H-XK|Z6`vyopcyQq!Sq1URRez8GcOcK{jIsCo%W`DHa
z#y`qNu$_L#N6(@-7)_Z(CNK#HSG#>!@Yw#9!I7C{{*B?hufMc<^1rqn(-_Dk`*T(6
zjm#PqdW*1u-^Fv1qYbp>E4{FRwxchIzwPXPeS~*8y|;MeERW-4V<|?Tvn~gMGsC(a
zg}d)(ocx}ir`Tt6Q|yRArWfn9KzCGwBdx~x?F+kyINDYrLv>oD_btq-ZgIJAx5i6P
z4b?H{Z}A-a>dPOlNj=pVj at db92Z2yWQ6u>z_l?>TtRyAuWnXm2Q0<c*^iJ!FjpLI>
zRVdEqBG-3~X8}Pibg6pzk#VO%TF%3D!d^9Qe6&wmNOCkeXjp$9{UDahDLH-5{nunM
zz&K|z3Q{-`>PgMEJwQTy7JZ!Ps%d>EuOx4D2|<Hab-X=(5MMz%e7{y2)jR>jvw7J~
z)BHcD>KXSH+r%H~Tk$h79`eZfm{G=QmRHn;q;IH6cP|n9*)$8}Np7s1+jljtgZd|>
zAOPSgq1bZUD%%X>PsT|_>>uruGp(5M*l44?r+y|It(&iLM$^YS_sI*F;VPA=aUEvY
zFSuAH=cGPkvyv=5wOc15HkQsd{RFL+rLNh1CTuay8GC$Gpb}%Bo_E}J6<5W2=Hr9E
zo`gzI^;>Mu8cDDY4mvh-ZAAIR%u}e$InOLLqziB4(^vaB%FvY at K5AQ+*fGq<&dMWC
z3l7|uJO#hql+EIE&cc8(+g}t~1Q=~D-5zO#W!5ik`Y`ix(Ev?8B>UD$OHJvUUe%fr
zU-W>82+<Pp!$6nI%%ip9-0hgaty)H6bd}?AXEv)&XJbZvPJ*k86zlvM3}1X;g)q~o
zD&iGp+!%^1PT`j~scqcnvHb8$#u?w>tNB2+Lzk+r>v>0#q^sRn6qjrUt`W@(Y_49Z
z-d+<uXHwImfk8v?`$ftMs{!#G>DQ^nHRY<*&<B^*@ON#&>4iNp!Nnc3QMH1^y1Bak
zb=;=|yE2^|9<i<{&PHyZaM8IwdbqH!V?&eGci#KdcAz-~MgrGJm8z56raMxa(kZe8
zQ(FniKk>~q#gg>R^SHH-Hp251xa}BH(-gbbxB2MZHO<A^o|Uz+>MCO;6Nx^{v4B(~
zKBzgx886(0j?U0nT#o6zJj{6Cj{?ZA)VZV73WnyUy*tAc>dABn$)|2=gQ?TPSvA$*
zTXzR<<mAE0b^T4V11)c0i&e8LGkarrNLgbi+wrzxX~nsx<$&zblCh$r?K(pKDQ%Q5
z`hWSo?om3l`((bLxOX<EFlpUU?iX!NoJN3Ue$hl&e&M4bl-P~I<N{3y4*aNjR2_3)
zC7e)=Gw7Z(uS<DZTyhV?K(ZEj!U_aLX$LQ at 8N+7>$E#46v006y3G_)FtYM%{!^jbt
zcS`bFS~Zd)i>XENQ|F!?_lRp>kR9BH)WN=gDqGd4T`^?%Vh3A++c9moikA*##5%bf
zXxHE@{c1?JpA6VIZxeX~ctumyE1E(n!JFG`HEL{rWs7+R!5IP9iP6^)VvlW!Z}y0*
z_l#42-`28x#m9J<esPY*wW;=_@}7Elp;+Kkjeg0x<gn+Gi3vfs^E_G3kj at O3$649g
zuh616i_t4{i0jw0-DhnzJZmF0;lY%tnSqffd=xCSiN6Ps-BpI}TC4G3=(7k##PYq{
zMaUjHM8W%yG9df${-G)iC*8}CI|=MfF|Pg|@CK(6rTO=AYrKrVAc^GSv7&fXblw38
z@?Ktz9b{`G{|?NimJnusNAt>IxlJbwzF at B%@m}pXj}GM?y}SNw^exPB*2oESGG5qf
zSENgr*@lY?kAowXJBy`fG?_Q8`xxU+DGQPq&mK{$cdo39xRbQW{fvP)mq=Kr&kLaV
zd8Z8mpNO<qqL|p;PG5VkH?gD~qOkT~z=!TxSDK>GX<MX6*oObzVOk7wdxI}vw*#dh
z(Qf`{t?t=*P35o1TdUnX+J7|(b5EM(@?WX%Y5?aS$yjEfCxjXj+$J?{zYX8Mp$VWm
zo1OR9&0ZT>DN0l6XSgB{7<Th7Ko}@$7r(Lx-dPnU8OEvr+KI#}Z$c6l-%Cl0uxTEu
zpS8yXDj&+ITW0;ywm=iqoTN#pFs_^Jt;oKmG4$~Yv6lav`=2kp5<<dR<5?|M1CE}|
z&EPZu`cMR^@oSNGW!r&sFZeOgD0%@;oLiJ1krDR<41uHdNiW0nxYO at 0Uz5gIS=quy
z0@^r!4s3wTUs{uOm~*`IVNEw#cU~x!-;b|$ytQc_oh%+0a(9-~9HuuRys<X%#a_bW
z!G>nNW;ZYOwol3hc0u<ernQA0-A1FPWy?sfpcWP_jDR|s0MvX8)ygVi)T=%24L#jf
zEG%~W1U0mKZSpl%d&G1`&Qch57a#1((ljYp3R=Cn3+;PU_Z at 2Ox(ykzy2h$L=VPzR
z;)u`mhUSff9DS1Fnx0KcJ~E5O4Rx^iw_%}#<l?;qk869kew+0^R!CfRvBRA%=Pxp@
zia-8#<Hfo4TJ*fs#I&m0JXiu{XXY|UM4;22GH5in2BhVL<oNHiGP^Q)m_Az_nPaXf
zMgY6D8AVSJD*0kbc6VnxHoU`c(eq89*s=9h5<(rUJNuXI&O2VTI91>>du_$f@}oC0
zFGC<M*{NjR6fA|AnQrqgUSEVb<@zHJu(Xuh<ktnqD&Z8dsqR#Y80!1u*JBQb(DdFN
zIbATK^C>VMn+F(v!z2-Uc+p4LWUJYLh<``A=Vvpt1~3k5;^tryQP}hJ!Rw3yxnZS0
zcT)-_|2eBdW$PiYNJ600-y&9`QkL4#kt|I84ph{w6DP2}u%-y95&3?mkmFKl$~#rx
z5NJ`T at O$H6A%;H!YCC?wtibFQgYz88 at l%Nl1ujl1tA-`n@%|`F`CKuk;sWpb2VGPZ
z`w at 2@;#PF5$D_sdX>UCkivdp^%`L>{^x_KzxjQv420p&c2Ec4>YjA+_KpJ1@(SRbW
zur+`$h#@J)>P5U%yg#(0BsBS45^{*aCqw?`!2OSyaLdYrldfwhHlu?aRRyG0neKZL
zW)c7IUxnwT--jHLkLTPkiO2Ahl4diS!|J|FbTsm22lZ)z!okvh6R+BHV at b8Sw$3 at V
zWcPQ4FtgR2mMAN_ud6_^kjR;BA7h*9f4@%}%*tI{u1?LUy~94R<h&EXFwHNckbSB8
z1SYq{OzRSqAH9 at _Jplu1<xG~R)MfW1w>NF7Igp=vrt(^1vZYdvR&4wpza at K}Chtqq
zZ5wKuNM_`r{$FVgof!iv_|QDw<>bjHN<)>Z>RSStXo2HG2x#;TpRk7f$m+saf=S+J
zJNsjBR<u`Ego5Dn&_?O^yN_w}EbA7tXB&I;UWG}T<8h|*IkayqmwWnz8xQZ*PM+ij
z*|z#b5CtFnC{wRuPkU at ys^7c}sz=ULotgI=5zB9!7~1$3GqUD`U!n}Xq3Z*ies*Qc
zaY<L(kp%tk8cCPcZsv~d^q9AeT-V at qmmz++Hd;Q9r%##ECEPs~JMOT{52H8Kb}G(f
z*)@!xK#l7sVaRt;zN^nuxcPYqe=;~>Fx_o<-~`1)>{0n-t0a}IovAH+-AL_A_Dya_
zrI&LtdDwml!}&?TAcBKijvi_urIU91;DL{}hNBmDdz|;Y^HLbj0P+;l3z3Lw00etG
z80!(H4 at LS?#j1<!#RCIY8a;UITdl^Wzu*BcA=nY6m*yTXMz^H2B}$o)p$P7&O2{PC
zzB^g}l}d}Vx*~7YEXHJVVws})5S7s}ufXK^>XMKX`VN_KwVWWd6*F6LaduSgl;R+)
zV6g2LZJ<GLtPokDBFy;aOz;z9?{uvl2==JpJB$OdP29uraM6NmWyFP at n=>^tXHkQL
zH+%o+Ien!2Inj%D(HKLrvvf!@I4UVajamQbAsk?7 at f#Y`dcfI4?yKfeY#WwNvt(Ia
zd3A&F^G{VT108EbvWNa37`-iv5sMogr7}tckJrB#Q at 1({cQjfrNnJNVT-ASd_vpeG
za4Bt))ND`_lk8XoaU$GMY^=L$Ua}RIr1X|~V3xC-W^XR$k-7njY(z@$@V&%ZqIk_w
zPAtXw#h$6&DG#NUNZl-oOCrFRqaAJSFx_zB at nHN+A0wW`_U(VP5T4qNgJA#r&H>oC
z#zjb98#e4&z1X}WXMd6;{a|!X0>wFL5Sl at FP&Ql-VTamn$~QHVBJE})n*h%yiv at Z_
zwAmTA=P94*E{Ip#(qQp~*15a8%`&b?)x^nHkEr;UmsSIstj7TES)MLYc}qY&QKQ~X
zT_w<#R$WqX5O7qz!;+{}=mqX|0Oyfpijw at ej@Y7d^GnI at ap7iRWl9Yl{R8nbC0k&;
zBAenrU&aD4%|-4VOYQY`aXp>OX0|<sLHjQv*bgpR`Wf<yp%eQk5BD!I5{m%_pB2qA
zI)o*`^<MmmPI at l!?V6MV{=LIFiMi|7H13)m=gdB!jVnhjq*`^R8^zUn^I68)^zzB9
zy&bkn=FGe5%U~Hq89msLZEwSViZa<rDP=xaLu~J!7G)ezK2l_exz-MuP;Tz=g6R>a
zVf|S3J=a96n*FE)ctYU9S=}lv%vOS$82|w)$+649`av}&ukb1FQxgvKLyOMX00zlS
zOnkQa@&ngHJH)SEVp(u_Y_IuO4lpghmoH;CH4we-{0 at ybC_#1}chLePy&BKLeYmhu
ztUjLSd~x&urELKZ`Xi7CT>v>?182*eBb-H|huj^;lf$jHl<*}6(-A|wN;U-D=TjSg
z^cL!$B_BhDOM<TZf?3cVFFW%JX(~BRL1GXJCNWE=Z5Cj1aDu^dZAy0A?ya?LlP=wD
zhz;-`H<&J=S}De3FHU2i41CB2x(~caSkzYP4`4-`Q;}8wRG!DJP&roinG7#kc10=2
z at 7E642jCn@7N488Pk6puqHOym at UJo~9Dq^%I9$J*Jn0WC@{q|BBln#49UPiRk1u$<
z3g=FlQXpuM))%J+_HL|c6f&E}N4|l7W)_zgxK3x$52mP2$okI^dkI5h*01%KFD!UD
zy$us+shN%3N7eTY1|g6#Ea*P#ThHmx^P0F=KG_#DPuyeLj8X=r^`oC<ae4CtQzimx
zRU3@@a_ZcYBzu*hFN#8^iYG5(8Cq8>u<oJYix(~LbMmAJLuV_a?C+eD7|iR at 3i5{v
zWlciI%1dn%y0Iqh%SmC%8*6O8v(t~;nj+G6)@5h2fbF+eO>CG94tUzv5kk$#JMIKj
zPv9M9MJKVP1C`4lBALYekv^rvybUc%GzpPgaP}tc8Gr83OYk1WBfu3oX}dBZw=Gs}
zk8#D)<Nb-T?(ZN~kKTPjj=!h6*@<MkO1C$w6S5Q=nm|7|cdCJaFPKlr?hhC{V|?pz
zhL0J>VOAbzw#C}s!#hYGXa9s5XZlDSe7UU442GW^zw*fID=Jm at bP7Ki`<#6o at baG<
z7Ev>Lq8WS0@(|JFJh&WQFq;8rA_yaS;fvuUt)=e|9xYC4;sBLAZ2-qYl~Ph!EGW3-
zudXu at n3_Mtzim;2fKiAETzN^2v=DJDDvHkZ^kl9<b&vrSa(v$H%)y7ZlHprc*7(@V
zRHdq9L#ekMHOe(kV<huQ+I?EpzIqgMg8j;^1y_|PMo&Es3X~}?MMZN$9y!X*!o2 at O
zMj;RaWp>bv{l72C9<s1qlNVo|h#WNJ_sb9}`j_!;4W3+C7viN^syXRh?3K9>Kk(3`
zT>Hmox#ROn(o&SnMF1PRCDH at xoxdB41KufiEUG6)MKLtM8Oz at u49%RH at 11`tReMfQ
zUdg*T91T|^oh*~4It?r>YBHTUad}7HfxyuM<zwmzx+Samjk?YWYmPPnD9kixkr=~f
z%WtxrgFsDZ`|>pqfk9*e;P)adSNVh5>kn+A9%1W5u`(_N`?XR0QUm{(Cb_XNwRy+U
zWQUshRF3BV$!<W$06K9tOK@!o#=hi at FEcK6GS2qMZuQDOZNRmPTZlWVge&TpEWIhc
zrRb!Qs*-6dge|V+P}WQG6x;2UEK*C;<xFGo3a!bQ at H4@YzT4gy9Z6=qAV$B1X->U0
zq#r(eGknc_x>D6&R+to+e*ENZKu@&6x4*5_`FR07>zfPsrg$r;h(ZekO)+*oAVY7i
zNqo|v9dILnN!G8jiU5(V>Dw?-J at XO~Izo#pGsX!S0Z_$0kIVSb-EitNC at h-M>e at HD
zs1o)PB)==kdWI<xMFlSBeD{B&AL5sS<FEG{5r{;KpL^B;F)8b}Ga!Ago`sNGPiK4v
z8U%{!0r&WwQZ{K+5pewaeNWxbGRvH##zT(>>3n=xe+eL#l7uZA61$MNTy&?}h>ksE
z)?jlKVL?T7=6?`b(FNm*DEI;1qdwtj(JSAr{bb1!qOhxBAe1t~JGW>~W<{bg5k_tt
zFK+U6Aan at 6$UvbqH7<Ftt^C1?u#aO~e>g<QHnNj+>NHP`^$q)SZl6}0I}aqN85q*a
zOApyi3RhDslbqstc|)$2)e9F&(Q~j|hmkYHGm|<a at fj!!pUY|On!1 at i0x4|hoZ!zC
z6V?{ov(ooRV>6(%iB%^+_O3XV5;A6d#S78c0==@@7)B)x&8fcYSl2LPVlIMn53^3I
z;d%IGuHVhC^svwI2I;(tF<6Hj32y(l>v!{f>WRSmb3K!zH4>?fal%U(E;o-YyZ8Hd
z23dqrlplV%o?zPQb)J*8;$<F|G`d5N6BD_4q`iZmSuuuhmI8J&-F`quGh$6{(~m}>
zBgSwsbjWVan08GdEeS^3{Io!UyEd4KNCcn`+u_tu;3_G+QeIos-C$?BXPG2dIe1L1
zN}b{yGL#nd1Iv$~giBr`@&u7N1 at -Y){kfCnp2O=jcYp=USEkyp?t`ci46-zxh&#NH
z?m(!+92m{B-xWq=gq~PPw>{kCLr8`vRqm&RM at bYf4%XjdsQTolMsx2AuR5t%5QPXS
zs?!LC$U<J<_$L_LF%R5`Px25WlgWlQ4B3)gc5_8&Bos4iQdw7460hh&Q;EzKP4=%I
ztPA3qAXAzTz0}_LfM>i%B{uhfRkuz`LeBQ<i2jr#$))XzCgYw5YV<=XM|lt_1NyZ{
zQmt|#x-Uu*I<`aY;5l_tz}7 at HNv=(?Yz91S)PL<7Sem7nK#xEB8K4a;`$2N`t$jp?
zXWE^l^J=K-2V>}12-u;1cEtIPmm$Dv;BIG_4;!AJlUF3o*8%enxsp<LMlWil#kcbv
z)<JpT#mW=*RfRC;22+1GMBnE}V~f}H(|NyxN!Uo}ZV92%4CSDn-HZH4^2Z11mFPi`
z5xge*c52fOSRYc+0l{ghc{qJD4Qh_d!2X92+alB*Rn9VUE=DdkPsa8#B}X(UYLe}}
zg>iTL<5&G^{ae-MR7(@0pb&S~$sJ;^Vc*aT9wgt}bEP}p^H%mlhur61FR*g0iaOju
znQ1hRzLZEmfGhYuTL;U%2P;4RlpQfjAoIphvneA&vSE=hpm3nHTOsGZ{PbhehlKBO
zo5&$O1p!0bk0hsM4&m#lmPIEDZXEw!Tmhu2Wm*bc9|E&XQ_^RMalLg90B9A`e0EC#
z-k0lDJ5 at T(2rIJUSr$scdD)ERXBLEm5)NlJ9c(9lH|TSS^?f$7)S)Fq%8e{^CCL#@
zj-O5{nol at md4?z+$Q`lwbnBi3&u~6Hevj{hWa7pV#rA+|GFaYCIF{qL9TP2wi6*5y
z<C6swJD??3c9%(R#fYt;UQT<&P at Y0_vNYepP`@Y5jhrT|r$+!E-U<racIV_2K2Lcw
z6^q=96*yuvo+AS!#y7ImW at t?4mKvX-vB&4)Tkp>s=6^|}n1rd(covoS#?J(h>|7@^
zRy66ScCjJpHXYVk$}eYImpC3ywYil|ugFO~JQu!EOw_5YTNlwG4K6q+q(jn}>{_et
zJf=ys?H`}WvY}8nSCFIXW*X*CY}2uAKD`Q8nHAe8hYm$q>cSUr_9_reFQ>!8iaD<S
zd31H+7x5#I>=4mu^m8HvyAq1T0!Kx~ANsK6u=D!B=-squ=bin(9W%I5vL4)Nz<tIF
zQbK0S6sWvqZb?b at WtRB))Xn$AZjS0$nd;{<PKSJK%kw-!9Q{eYYd773m}P-W&wAzB
z#+8}gs-9S{xE;`*vUyaZoci#^$Je at 2GkS1B=J%|`%TvmP?E8Qg36n2RJr)q1f*w_V
zWEQ$yCj<r0?@&@32L8~itu0F{`&|cSv0P{)Ik at JSvB^y_s9)=W80x>PAv;okmy>pD
zo!TVSgw!=Xs1AEqz`9$xMlmelO at 6u|H_cEYwP$pF+8Fe(a!&PB!p+{DTo93<vG#-{
zo#weqe_x!&P#*C&uk-IeDG+A92L1`F5pc9iwE9xq_GXnxe#!g67M9D>32Wb=*%Ma3
z_EV;WFEN2~AG1+8wZxH}r_(nN$lQoM`%t%ik;stld<}_Vd1xN;Ii9od8ir)HBl~{s
z4>$*=dYl#=Uq}xn_(8j%AZl7o1`3yv9gc>6f)n{u8hfVR6hyV?%CTCN&6Uj$?51iT
z3K#t4wv-UN$=68l%}AZhnZMnuT2S&SFd5xAsKSW<q9aCc%qVBvz!6j5I>1Ee^FS8n
z9G%FmIIG;9JUP1S&_EXBKfQ8RvMWRx|GI7&Zq`-s>1hAqh;pYU^H{I)irOpCEzwSS
zV9(n^z3T;{g8ey%ZT!0eH;q0>KQ!1_^->@}l?-;L5rWQOm`Kp=b1W+rZ;mnjv`7Ej
zM`cT>X at 4wlA9LXUmEj*j0%shF-`ps>_d{$TWKY_s#8o`YfxSlaM4!?~?;&v~9q82x
zF%NjCo9B6Wxws#Z*B#OC?@4~d&;}HD@)|~9OS?Zl4zb7vF at rUGEiE2vXbBZU9)6<*
zQOPGwppt_GeaSGi;I&ux;4N~>qHpYFD<Xv^Vhl?Ikfp}z_1#|_A9mGcVGV9PlE9Sx
z6l;;<G+9vsd?n;Ce$-v1C0K;@Nc}zHFdEpn_`%B=M$5D16`n_XubM;gKzNRlYVy-B
z_f0H<N1;ju(WQ;*pPHsp(+1<&vUgx)N8}I7!wvmI*S%a_WtM1ve>u^?5$+aN!6^7^
zjGx-8GtxZNjh at 1#sm8<FsTu^+FnLjKXX<BcU*pkV-ZfiCG~m6TcS%rBOF`Fww`sGQ
zuSXk%EXt(pyS(oumnNDZ6$$%c^BQjORZ>6NeDf;0x-aJcB;cxE{ayW2<!op>S|JSW
zyd+ol<?aeasLDC at MVrEcvE|Nl>uNKD-1`xE1;SIH%?6|BCncitnP%I1DG}f0`5*2r
zwGu72 at pfyj%)PLW@=&G4#OOwe8*q@(vGe at gFwaG~%0T;w{PSqK!IL#mJSWHdyQm4R
zz$NB$Ia!z;uvq}P>pi?UTXu=7=j&k=xAwiul<UvdqoKt1rN%z at wY2D85$J!Kh$0RE
zTMyi`^uH>4E%=Eda~NV1^WT0?`Czz8H2l?b at WjBOMerti1WXu?VuGoTW at WR*!M?H=
zX!r0^RGmV at 1#LRbE*kau at LJ9J^x2-M>Ft#tj1G-HW<KC#iZ+>>^aoHw(+yIPoKP4>
zPaltTZ_m&GANV?U+y~#4#<OTrt(b6GfV0vnv_DIRuum`U(k9VrK-I|}{M-H&6dQRl
zuFfJ8a*mLk<sWO|r_JGQ3_3XeN_Xy&Fi|^szyMGFPrnIrQj4fj(HUh~`b+UmgD+eo
zX8Oa&l6}?J0%DjE?KAKwjq8Zsz!8V0#qVjS7<fnnT@@((@TzSymIvvM!cbY5;hP|(
zFYM0Sq)pNXk4jzZm=DzXalxVd*dyr00TQH at Uyb-3-dhdl(`kV!b|~b0W_&1qPnFqh
z9OmS<MAeIorfvG_EKXp41(cn57^NFM9W?;@d;RlhFK2PVBEnOmIDdIJq#2DxbKhrd
znI-r2 at S2|hP<#6XSH?5HIXo*+s*X`}db}$o;$Y1kR1}b}aZT329t~kTuFegA_wj(w
zmu;fW-IesJpGg#uvtqk?U&P=P=M<uE)131J+c|TrCjaY&V4IlFyZTok-zcb|%UCN<
zls#zDRkw-N|EQbr_<C^1Kc5RFf_pB(jT*HYP7S*1L-{WL?p!ixqEI|HOr#blnu7Wo
zM=8TwT?K+rR^qFM$6M`X&gKrp?aqDYb?dBy6b(lGAJ at XZ+73kVe-*C`(}C^yybHQg
zWNtPJI>Y1mHHX$~yXb08SdaW6ib#B-eKm_`^?8sD$#hS5-z!0Nz=P60f&JRZp|w^R
zX9$j>03_`0w~~=Z at 90Kf(mWyQ<4|+#-(mzE1ANu2T#dyNlnz%MewASw%W2N_-4U0`
z3%8AB_?9|P4pwAzA<Ao$?y4j5FT$j8pY{Ra`=gyCo!H74CT~3|Sc{9(u<AB$;CWWG
zIwdzYSEzzx0nKv$8IcT5{<62H1gUY$m!_Z2^=Vn*)GhPr8+!*0uNY&B`&%Fn`#tz_
z7Pk0fDNmTq|LL+iY;VuaMr5uI{-<v;n%7{Mk#{m+8&0TE<p;f)hpb`+ji}ZM@~|>E
zp%vAt+rMyZ`{IPGy}et50MV}KX#pP$veNJaX#+7n<53l!ddxsR1n3q2qV$HMqJ4M>
zsI at 7$e~;4jp#<C1^#xC9-=-wbq*zK1``qZitFu`z$CL(e_BpMP6Ni4<p!pbTs4MZ;
z`+?PYzQBGI{SC{_?cD$bf5d{E8(`mU=t{8cI!6YT&7;2HSdWR7IQ^(Da}288g3PXj
zh%Gty|4~yytcSP8iPg`2$mJ?=WTrV!7vZ!P+qYh=Y*Nt{U7pc(RuKM4gPJYD%~+Ly
zOn9nP$RA-*kB!_df|m{^oZob<&~_Y?`|L))M~fsiZbrjFyU2}9Ou3%DDtyevgN$Um
zp$a>m9wZbBfI#Pe`KtGlZF#)*g>;>wh3K at 1edWL4yi<H<!;oiJDIZWVo6)mChim6l
z!m2{86H$IlPkz)<ex6fn#rgmba(o1+o)&nz+wCv<tb&aKg2L*sJ<s%8WCku0)eW at L
z!|rbvE35oKHW2IXKXuZh6_UZ}?vO;}3Mf;pQDOi##khR#d&nkzver(8QdK9St=Y0n
z%1ML~xBxtyXa>C`8 at 6_DCn@1vL%gRuDo8ocQ%KxM!*sIaQPbGMIiL<>Sb~RJkh at wT
zNj<T0=3`s{B%s&gW>aPboT;5q4$w1JD%__`)o-OKH4eq#tguUQpPax3524xWdk}#g
z<N3Ks-jl+Z!VzLEXnBCNshga|!09i1<sul3gSe0;MNOzG#_E-q%R85w{=8j_44uAN
zXU)Cw{aB4x;#ATqoGboI-7CJgS6}a;K!;2j980RcG*;ee3vyYym at 1v9poiGL8B{kS
zqVt*H(>Y0K)p1}j-hTQ=#+3 at j`Y7L_lHRGsW);pgnMRkU$Wdhr7pK-F;>Yq>n$z9P
z4p*#+&Th5*!lNWt+q=afS?RoL6`>>u3kVeCmnYWQ3QV<QRMP7vo^1Fnbm5B%RihpA
zmj_(pR at QtpYFbZV4r=GI6bRWRu8u$MMexo564H^mb~#o2Z;5n~%TQRvusF=p6BcOY
z*iY6H{I-1s&+I{TZQDY+RZM^vro;BF!N&%(%a6Uc3cWS6{Jk*0iqx`rR%sEmZ;ntT
zFWk2Z#~~e5AJQJ_?Dd(A_s_ZZQrwVYGYP8STd`&=%_9vWky8YX6XMxg-y;JirmqzU
z91|*5G(mw+=&z7fxFUi;TA68jJ0{UmxcuT5S-NMOKX<AfI;0Bsad%izLaXr!#gPq@
z=^-qEENeUTJNYz;Elxj(l!`wTL?v#{H6@=CIC$cX0(7pBct!`O4*+<=;DlB#jq!<9
zb7K8~Zmq-bRZW7J{;O~~WzSMaE|DV at 6Dp0tS?D8E)Ku7^!mWi2>34p(Xjs+@&=?Y6
zGjqab9C3zMBW#oAAH^1by)Z1nJ)uo!clFU4FtoMjd|PRgv+pU4Ae*hrfm`g*AoP<o
zN=;d=zVSVBUkVktHc$H-M!weAi<?A2wd*(Qk`6gEsZ}_8{9nE8=NqeTuSZPBUNWW3
z?Kih-qZ(QyPIMyHC4aSLm at _ebgO9#qNa{c&vxm$Nw3Id1R+M2d4I$GMPhtktxwS9%
zEdQ3Qy8ol?_y-A`VhoPeJL0MJN?{Rm3`%pvxnLOSCe(~)R{)^Mt9nNCd=ab0acbHL
zowag0GF;&FI$a_NJ>N>>9=9Laod at l+Q&Sp#bEUaQ))_&M+<bm=EyEmgPwo0XRYs7D
zE7sZ at -W0t=L~o|K0_4bP%^p}Z68Y-eM42!dj2KUf+w?Id at 72q|?5zh*LO&9y>l3*{
zHlybVXKp?nc<)voCZP6uTZ>AQY162)izxVnbe8`!X}y6oz at CBk!JhsaxgynGJU4PX
zG(wq2r%3&H=?Y2Q2o0*Bm<Ani8Gypy)Gcjp+YEN4!uV|>bpL>VF&2pYC5`YwxC;zF
zVlIJO2(CR803bvXAZ$<`$N`EzhR?x{iHsAR>FC`+>J)wK6}b>cbagGi;%sR+b0#g6
zoB$oOY?eS<9~YivZw7BVA|TjI^i=)I`M}Nt3etZ()=cGpLyKq9Z)n#bK19PN%2ZK@
z(ZqoP^4wi8SZFc)cTwE(2K9B{=;w3^t4qYG+K0QeKTQAL)kKDub-2{%jYLFlz!6^=
zEJ(@f4c-g{;*4bMFnnf*g|Iky4CtY7;<XCz4a4_VeCUR#VKNfz^&MTlI(%Y`<p-3b
z5uk(9MVg*gbuZ(jzG`FkTEs`OFcu5kEHQVoNl=Y3<K8p=1~_|5D#GHDF|^+2D0wnh
zk!%S~$;R5QZ6)Se5(#S)tBq6_=B!-`CzTQ<{7&_RY-E~4rszCG6bPHqJs{bC7cawt
zBLW{PUKTC5Xp>+#C>03VUf3j2nKW#TXp`XhCh6g3>wlXVP$C>1FV1sM6eKm)m^x;+
z-}_5-W6FWG|GG??%5!e=o`*}pOZ+**Jk#SX0CofHKYH`1HQ`K_Vw<D;FWxr2fel0#
zU-QPpDsi<@g7)5)I=t@&E7Q>Pa$!vO^RsO4 at a{w;E3m3pul6bcmYb-(%xKbP-qqb^
z%|P-Zl!XztI41YI=d{?3suFAU2af;8V4Wa)m!DVIe5rK3G*dQ|NpSB at wA&Rq`UUc~
znUUQ>_(G1WE)sNN6^Z!D9(6Ol$qcC9ecY<{w&B<y^@7N)fJqlGqS{-m(RuZJDb=Z_
zTyJk1Io3-K<+;(11oirr<2hn|$?jMGVVyuJSMqp0T31nhJ at gJyxeHwF|0ifa_eCg$
z7{EDxMpQYzH4z#iw at S1jv8Z>F=qpQLE!4&T`G1+A2;D~?AbQH&6GRz?xoeTO%?$%o
zO7y4y<+9XhXiNWKzi2vtKLR9T?u%8xhZ5Zef`FVX_yHa<dLnYm=0=CU^5gGE&s_n^
lK6l0c&qMy_duF1hD;=t%{FOg#&BVZuwdDbe?42hs{TCl!ZOs4x

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded
new file mode 100644
index 000000000000000..dfb8a549dd67dff
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded
@@ -0,0 +1,1026 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 465,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 65,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  template <class U>\n  unsigned sum(T t, U u)\n  { return t + u; }\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 615,
+        "y": 155
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 115,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 225,
+        "y": 75
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 45,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 65,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 19",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 225,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "TemplateTypeParmDecl 20",
+      "size": {
+        "h": 45,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 375
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 22",
+      "size": {
+        "h": 50,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 385,
+        "y": 90
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 75,
+        "w": 170
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 600,
+        "y": 75
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 35",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 385,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 21",
+      "size": {
+        "h": 75,
+        "w": 170
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 600,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 39",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Type",
+      "loc": {
+        "x": 385,
+        "y": 375
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 23",
+      "size": {
+        "h": 120,
+        "w": 170
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 600,
+        "y": 375
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 40",
+      "size": {
+        "h": 120,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 65,
+        "y": 475
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 27",
+      "size": {
+        "h": 20,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 5
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 34",
+      "size": {
+        "h": 75,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 320,
+        "y": 195
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 38",
+      "size": {
+        "h": 60,
+        "w": 210
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 29": {
+      "Dependent": "Instantiation|Type|Value",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 41"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 24": {"syntax": "\"unsigned int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 41": {"syntax": "\"<dependent type>\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXMethodDecl 22": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 27"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (T, U)",
+        "ptr": "FunctionProtoType 23"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-defn.cc:10:3",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 19"},
+      "FirstDecl": {"ptr": "ParmVarDecl 25"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-defn.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "ParmVarDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:7:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2295439228",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 25"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 26"},
+      "RD::First": {"ptr": "CXXMethodDecl 22"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 22"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (T, U)\", <in/src/ct-cont-ft-defn.cc:7:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-defn.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-defn.cc:5:10, line:11:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 37"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-defn.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "23926663",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-defn.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 32": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 33": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 34"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-defn.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-defn.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-defn.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 34": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 42"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "CompoundStmt 27": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 30": {
+      "D": {"ptr": "ParmVarDecl 25"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-defn.cc:9:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 31": {
+      "D": {"ptr": "ParmVarDecl 26"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-defn.cc:9:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 37": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FunctionProtoType 23": {
+      "Canon": {
+        "preview": "unsigned int (type-parameter-0-0, type-parameter-1-0)",
+        "ptr": "FunctionProtoType 40"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "syntax": "\"unsigned int (T, U)\""
+    },
+    "FunctionProtoType 40": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 35"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 39"
+      },
+      "syntax": "\"unsigned int (type-parameter-0-0, type-parameter-1-0)\""
+    },
+    "FunctionTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 38"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:7:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 19"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-defn.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-defn.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-defn.cc:6:3",
+      "TdD": {"ptr": "CXXMethodDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 38": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "InjectedClassNameType 36": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 42"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ParmVarDecl 25": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-defn.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:7:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "ParmVarDecl 26"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-defn.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 26": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-defn.cc:7:21",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:7:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-defn.cc:7:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 33"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 32"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 28": {},
+    "TemplateSpecializationType 42": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 43"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 43"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 43": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 35"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 43"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:4:17",
+      "LocStart": "in/src/ct-cont-ft-defn.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-defn.cc:6:19",
+      "LocStart": "in/src/ct-cont-ft-defn.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 35"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 39"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 35": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 39": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "TP->NumTParams",
+      "TP"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ft-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 65
+      }],
+      "end": {"entityRef": 4},
+      "label": "Param[0]",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 265
+      }],
+      "end": {"entityRef": 6},
+      "label": "Param[0]",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "TdD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Canon",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Canon",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DeclType",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 545,
+        "y": 355
+      }],
+      "end": {"entityRef": 8},
+      "label": "paramType[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 440,
+        "y": 355
+      }],
+      "end": {"entityRef": 10},
+      "label": "paramType[1]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 775,
+        "y": 355
+      }],
+      "end": {"entityRef": 9},
+      "label": "paramType[0]",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 660,
+        "y": 355
+      }],
+      "end": {"entityRef": 11},
+      "label": "paramType[1]",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "Body",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 270,
+        "y": 40
+      }],
+      "end": {"entityRef": 15},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 275,
+        "y": 240
+      }],
+      "end": {"entityRef": 16},
+      "label": "Cmn",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "FTD",
+      "start": {"entityRef": 7}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 512,
+    "w": 800
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-defn.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc8269eb554ef1cd046fac48851a457b3ce7201c
GIT binary patch
literal 23223
zcmaI7cOcd8`#*l4X=jvO9HYreNW(lyc%@g{I*96U%#@kg36&xaWtElDGIJb4h>BCj
ziHvMT$SiyN-RJarkI(1#{eJtS&U4-Obzl3s9#?lypETg(mf!{e at cm_|cNPE?4ge(J
z#KJqiS)8K)@c;HbZ{~5-)y2j3iU$DK6DKVF&UMv at Z0wO}SPSk}c)q=|=Y$>SrW_7r
z#n+7T&0_jyVQ1uwa-{^0FHSBb_QcSmy=*%O%^L2{{+7&Z)NZ_dWB8SV*62z5KIu}a
z!>>g3q~BlE<xN_AC0Qol%#kAPsTBV+*kCP7dtcY>^;G^x_jev$*j=Kn)y}8&dOf)Q
zyS1*LkDt&X(*E}xPbLhKx0T(zF<JJTTCdrF?qsZm^<OPsPHnyUdvfk(>vdlhDNl`v
zqYLVHuMyXzHD)|se{=yn^2wVgP{(G6sw;nGM%Iq+J`v3~CrSPLWBc_%jkhf%2j<nq
z*l^O;>yx}+zw9LZwJLt|rb at 4dZSSpP;kRA4xE=a6zUxu+2O-jt_$@>qWsig{_48q2
zPYQi$t-T&gl^cQjc1K3?GrebwruKhrUWv}EO(aiD at E%M3yU%J-Fuq-}ZAa(8tvrWg
z_h!7mK3a^@Sh$;h?BgZ!%MZ7`a<{ww`j{>feTXXn-?pB)UB~H^==vAt!zRi0nN3I~
z&WpVp0!*ICnQr%YYF)^c2RJUWo(4EMb0T4fso|Kg at FjESzk2rEvRSF%Xnwm^c*FC+
z@{jfxj%C-(PfEv<obT{F&GowYPPxYSM&H_wJ=6Q*w?}zZ&z at 7Ubs9*z9>1s>lD=v;
zeq*B{eze!u_=m;)sf<+>eUs at -LPDf`1)ta_Gn2p{6WkAddYg~AAN}^@wZpua#@gR}
zInOt(R@!+D-fjype!9t7=T}d{M9k~4{Ssq{=LftSiW18%tlW8??MrSQ`lPavtnMc>
z|A>3s&nHuhsk7=ermGs=*19po`B44NHL>@IbAdDg5wrX4&Fczx$>lQTA&Er3TZtFE
zr%ru8rs%Gn(~xv3-wb<qsz3CRap=_?mw;0)&pHa at _a3<5rTj{am-66Pzti77K^GJ9
zMwZX*tzRz^*-p;f`S+n+3URk5my6{+E_Xfa8l2hwxZ}xz>gaaygK;$L-l_e(i#z#p
zQYXsE%!-j+LQ$W_EwCGMpQ|59AI~r;bNQu%+}#stOU$x`zb0O3RNhxx>Tig+sGIRs
zIL at Eje9ltk`erP4x#%@1nN!%IY at 1oIt%t_pNzUJO(e_10xEqju50v;j{gieqRgcGG
z2T$Zva|zlft21|QHfSegP>jRg=USVDwvLJmAd8M2P858msUz^@K>b!*DRfxC+hoPJ
z)e&Eh9^YlHgpqk+yq~yefD<kdFSNY4Gu5HeJ3zz#kX7{Oh~U$-<*$e2jda(5hxCz2
z=apARJbU`C-tE)wc#b)$lX-MoNkuT$&BIed-DCgt{aWv?#mbbpb2&?{<viH*;={i8
z8aVTs*OLo($3EmTK at U3CLtR~Z_DfUiV))-2r}T)lo169c1D#QvBcjXWZJU&4WfNNW
zP;;XF+av1+8<2CY!qfzlyc1kb4G%;PD|$O*#YU%OK8z;ht%>*ZrVXtRIwn{KZ(tA=
z{D~ZUZ1*tIRBuMz=BOUHbQqJ8vQ;j8RKw;u8h=}+|2~;{ZEx>Y0YdbuTHsWTu3Y=6
zD><uz^zVt&#}b at 0&K=dbL2Ituzgk6)lGOP9J-zR%P+#eK(nLuF_HAU%OqF+|0QKv+
z_Kn@#WSxfZJ>rU93p;u}8TTs>KIW^h0qHOJ#lCi<369nV_U*R=4{ft+K4UwQPd$1t
z++I*Qz2?yTgKa8ng}Vi(BLB8Loo+wqmwT$v+9fox`_PVXgZ-PFHMS*J-Eh6QU2ea`
zLd|v=6J2vn%-Wruo39z%_fH9VJ1JlE?sfF=UfZSXN%N5t$1BtyVr`m|H`~d*5{VL1
zD?T}5#ra{E`LFHf5kEf%et!~>e^%*h;6uf|pJPwjGd}*UXu-Ap&eAy<K99Q5VvB|f
z+b7nyZ*}sV9~rK(jUlS2pF3vIp((iud!Bjt?hkL7osz-Ersw{)_YV;Zxax_N<Y}Tx
zS~q_6-b<1k&^=gK98;>c|Ly9{R$sFHRx7W2`9)VaM|_b&H51rU|6ui`&HHZKV}FZZ
zyH|E``0tz~<WW*1QlBgMgF(UT9Tz(dw(e}*=W$8z!S;lb{0|#x5m?Mqob;VZWKoFo
zHKg(Kq2Y=eft%5v`$}GwhdMX$Gk3i#YaNoE=*LCN-q+SD-NP+9Tfmw4UhdgK{!+Sy
z_s44s-TbK^zD>$j(s?GU$vZ-y7aqL#+2}gD)oWmRZzJYBLnJzcqPfLby#FQdbH3+}
z_MtAQFI(d|YdK`&kMm1$PZ|aq&J-r`d|G at KdA9Mkmor&)sEclAikQUs%u}<GPoB-M
zO0Mu2c}6;2Gq35r7eL>}S<IoOPw%}*(dD_Sb<>P`noCc5BGYTCrub3jO#xla$D6PE
z7s%X01$nD)n?2=LkN4TVdnopW317GVe64}0044ZMjZL`RMtJ?To>crzdv1#>)thdU
zG*A-!GFphGrT$yPodzr4OjjZjcl`d at Kz%uay at M{7#(q2gIO{oi+UwD+5;^IkwuS=N
zTvKPwUjJ3jzb<_KX3n8c4vSN00d$T_<gH&qi)P10YUjUqzT$Ug8eP7Q>CgVGRjhUF
zQfr0rclC*UzV+j!&iCB4Jk2a`dTd!VI$g}YS1x>SakZ+$^}nAuqu06<B*}*!-+A3S
z6Bk^1{;80Mk+e&g{T%Y6N31l(@&kb;l)8s- at Ljf7UYE;k+1$P?Qy!YHalA2q{yM+@
z4e5Q3&0DpWzweD3*{LfO^(*4go1m*Ih_dvVpwa#%V`rvmLdBuuG{=V;E1%rc%|;YA
zQ#I!`%oc@%gtLk*3>-Xv4_YYa<cKS2p$rd%8QXt~H&QSb-MYmmz52 at b_|(+Ih at Xzz
zi_NYsefd3E_U^>w;>`8F6h9{g8GLA`&z%P(<xKzYxE-#VSsKTcCJ5^%x&`X`j){N&
z^6- at e>ihM^{Lb24#R0|=uLC7bCop1rF`w3`pB}G>?DjW#o1=M<WUNP2rn>LA_H5po
zf9Xhw at lD-}=)Bdfc9GYfy+{F)RpE`fhnFl3FQyGDgqauAZwr+?pLT1{V1LvB73{*h
z&w)0r7Fnlxek{=34lQ)NA)UUXniBPx-#YF|TZX4~74eg?w1fGB1<`?*M72rJ`7Sa&
zm+$zuFVPpb<T*VI>#xm{xPDT^E=EyZM^_}NfpqNxp2x at whx?Qk-#l>h_O_;(4?lnY
zI{&Q5o1-hmLeo`G<}0;7`RxJTo-*gIeZfyZlttcgn7gt~4Q(kl&CoFBPt4q5+;3o2
zFO$)G9-YV$dNQl6actOQ>{}amwd+ at Z0Y&M1F4Dmovguus`A=U1npu?aBV71E(jJkA
zqRa(r(d%U`J0!-3cmDPk85ziP=PVt4K6$RHUb`g9Z$j_|{rA3~v<jV+JEX=@-^)y|
zwR6lT36G!L=s&G_&%UH;Q_|%X8N*AR=mQrYWqO&-?c%*_FlkdZbZAJW26^(#*Lcx)
z{NNYzNg`#t<X`rF>5ngqR@**SCnOh$Jj9mpJe4oJbz3ymXV0^SQc8$zxr#7qz?@_4
z?4iJq+hnU^(+u*B$!D&M(aPRm<J?!=_0>g;_ at trR<$RI}T|zM~j1bYf)4EyiRM_%4
zb;<RUC}u<Av9_K!-AHTUXX#leE~`D?L_FW;)m%4MZOz`_)f&Ca$+O}5+VQ5A{fTdW
z-Lu6SV-(`@a>_E#mI)XuS)9wXYp!OxpX4~G#hslHZ_an at lF6B|-NSam at 9)iyuO|F7
zzw_4*_&3=m^RM2z4DvSLSj!X4<K*PL2gy0AYxj63FhVc!)0y0~GtW+Za@<-TdhXi(
zR$)J#gB-%tO&Tiwdj?HHP01Vsq4Fm|)RBIsPmBDE!@~LLBxRoyLE#}Gi#u+oztKBe
zw|Sa^&Aw^z<?05fZqd~v10o;s)KYJy?)cu<d)k|RKH!MFuvjfE+1rxJbxzRUsJc_a
z-hD3bHMd>ei-ALPr0d%k71|34w|}PZI3)bB{LV*3v+5mYHO0?lNVho5j7|<r&Ysje
z^H at W4*<*qaOFQ?vnu0pHX|brf(&}cVz6D3Cx at SZa&+5kMb9ut_HD-c(z_V|yCz38a
zvQF?ltC1$a*S&fH8(7iy7C-ZWPm}Uic&iFgfKSUjIOF==gS#`8%Q|*l=gw$Z|LBjI
zIT0SQ!}{c{DaQjmavw);WL_(Cx`Qt*Xw4rz8n3!+w=>Ih-mJW!)BMtXuE=<q69Z>B
zI{935qXU at qbDODyDG!Q&v^+_E{8ZMWhc_r{cAPA8^7KO&7qh+hQ$6p!>fFQ;Sp~?1
z%>!HfEK0383aUzyq?XIKFq=PTl(u8leU<OV`gEUu-<A2M at 5oSe)b#OPQukj7bu|dJ
zCO*qnx3TogU3B~C<V5Jx%lk1+Y1 at +2To`c<8MgMz(;?WvjT`%Db3uRXL-IPkXq;I2
z<Wqsu==BHoBPHsAPi&B9e+OD^L%Hnzb!ekeJy&?omF$5Q?ZNFW6Ibu)|CMN^oF0F&
z)+amXkgIpPas7dsgU`QmB2E7O@%rJXG!Y#&qu|{-Lnf>FDy_u8MukO(BJ*3RPtDE^
zSZF+}k9;B8Br5vKM5JqPwIyEH_o!ar#4)`)9^dchi5l%_$vil=_+j@`t2yB^eZk at a
z;`yID3S>u~>(ambsf_KN^LlSo-uj#_bqviFZ`W%3)G79SMwPay%SnoGc}Lw@)95QX
zFR$D!wI)AUvG_4ruKs4PY*f#)?y&3os_tvlp7D2!bRC`Gas8CGdVdz-zCU|6v0OCl
zPMH5p#@mNi^l-sqk$b|*UO4YO>inqxri5{ziAN*nAm3}b$ea9s-G6xQtcv`Ts%yOg
zT*o4vyJz*C_S!Rl$;oNr-|S4=J8xoz7OAc4@&3GI;b}&=I7fW+eppW=W^t%F>BPd0
zfxk>FP9;!lI^Qr;65s54Wf_}V+WpQj^ZpfizbyT at wkJ^%3hgC33MI(CWBRp&5r&_>
zU4I+<O3_N%Pg@}^esAIrv64L at XO^!La!XxCq<6}#y1ume_UqNvhh~Sk6qB+(UrwxB
z-9bvRt>%xeYV7G+;aca5HWQki=xA>j&>UYAJR^1Vd*)6wEG>Nv2BHFL#}R230Tk(L
zzsH?|4&uP#kwV3n^@0hrm?bx|(Mb5Sea7Y25-#@Nzg#4=+IuP`;8E(Anu9m$(u+fy
zFiFm3gzerr!yZ at iE;gRM*8YNNW%26m75wk^pE;zw^pWn(&l<lC?+}{gNzeam+FSW-
z#Pz at d;_Z9lU$RR!t!Hw6<UDNgQ8Uz;np=IT6Tco6TU32XFG2K|Ua6Up@|mpG=gGTv
zwjs|O*UO7PH#g0HN%tyq3Tf^;z3cA}dP$AyPvRxHGhYbZ3w7#FalN$DBrd10^|WFk
zo;%>lmJ+w?n=C*5)}YszR-L?(_qTCsX2Gtg;-j`xd)K&+pKyv_{!AZE#ZLqed_O3^
zcxvS1RQ0!71->;Y+2sB}S%0gB!o at q^Y`$!WULI`Jcw{Vc5rE at 2|I#~h{(9#`&tJLY
z`=T?ynVsjme32e)d5YJaTK3#rW<lVVgyq{O4-Hkl(lVw5IG8DA630uUyQZASr8joS
zvi=Y=ZXCksvHlcpqpS`{kC|^TU~W{_rx>`dypBw$eN}gOC+j^V?k1CrV1y1}aqPE6
zfm>UefQ#)ey!Tv3-v(`EbxqTvlGd;7)@|y!?NuJbm;G8ElB#eh6#Xv2lNq$y8(<gL
z(4th at TOT0U6vEN}fnU6S>p{V$)8KAktX1)LoHQ3M$8#6{;J|gQuXl$~jLP*nCA%wy
zQ at dq}NStY<e?6MY(5B6mjXK6SL^)unvFbvC;3A}G_AlVDwCaGz;XSvND*;_JAs)dg
z7_f<8;(d*X!D$Vs6o5;-oPS={69v<fix(QY&#$PsCSkI+b272xc-3=rl!xZ|p%o}x
zZEj30(+(YIdO^@5;=+|SWl|A+S+nttHvO`gr+>w>P<u{_fFOdpj$2qL at 2DCdwei7H
z>UpVCx$lzNhelrmPC<l#Y}y^9AxV;a<eRZTd_d*-JH)UPT+xAXFEDiS%H0antQ+%h
z=!M$!!j{=YCg)aCt^p4f2*`FK3H7#Dl09XCiZtOk!foDjs9aUxkY4~svuSyDZ at XWw
ze$tnOVOrq{l5~`M9D$D_&~yOk>Y)j3g_K$J_ne+PzQNP>zsgXQdV7SpkG4T#dTg$(
zYAFUO0EMWh#}BBTlsQ4G{Nt!HGWuQAnqF)c9gx~MaP4?05E2TBZ!!QGo~uV)MYEIp
zeQMk~F1y?c&qElxj59_OD*id#2N0cvaf(yMMYVfJAnx+|PfaAZsy^uW0^aX`1E~oO
zy at 1AbXyR&r9KX3yZ=Nrk=NGY4mB(Z-ZmHKiUq$uw{aypCdfKq1)E}~>vDAZhuf3$i
zAZLLLq!ffe2|_l?0wjTTll`-rmk`S4y?`A&Go*IJ9aPr`>|mWti9gz5ykt({08NCw
z<m_ggL9ZP6=aZ(Zi?4}8-W>zJm35pVfKwH20++A?Zdfq`+-?Ln5Y$sau|It1h`3vU
zg#?I0-lii4 at v08-A40qn#jzCdXJ69yxP>0 at JuJj~<t!Gr(7R%g+P!^damuZHPND>#
z(5*EV3i$}WiTdwux2r<p+$Yy)3*J5_!viNPmZWACA+=}%;9NO-Wp(AvXeWlyhG29I
zo94)6#y-emHm+M+OfHrdHvV24 at atG>k5F>YYneZ%Za`iM-}-oX3yX3j;cJ|Vi|14v
z at +XZ_EFw?VcCxzCQsg*BDi*|)XRTRQ=^0spQ1UjYrl!DfBCb}Pe^p`X>nSZi#jMfJ
zl at g^N-Y7#ZJ$-`y&=h|2SMqu;S@(RMRwvH^fM$tc2~BB1QaY?XvMLS9fRTOq<(hBL
z@>sFbkKrRVp?*4Dx>s8#c5e=EFB0U-rgb at DsN?0EwM^v at Xn&~1NL(bAI+FLSqvBgf
zE-q`?*dTJ}@`WNNeb<!b`jRim>Aj%jkwl57!15=Ph+gY?vPYF;$sKaxa$(D6$Yl6^
z3X<B?!$(9#2(P{L3#JSA90804FsP{DuRs|;fX(ns{P6N}d at Dx5kM|#fEqM%2;d(o7
zIhYjRZVMb$MUVzdP`D`!wQ}ssBaXoc^L)pgxCHpOjxK2|VVmj~jV{wddfQiimL{Po
z=-`mvy=IV9@^UPB<vnxcTnd6N2&$R+TQ~Q8ocmS^6%dIlwNVQn8`<_gz at Yu5h@n`|
zvkJ^6Kh$|&FP>1sycPKVi2YVdBHJ|5myMYcsDewM&VBh6C`m9`U3|-Y91{t(gOj3(
zBoz1%j*I)6HU_nR$y4tteq)ki820Xyc|KtHAxJ~2;ZXgc^eiF<!q#4P#7$3v at 4e*t
zY&n+jL8y{#C-S68-#L8GZGA8Nn=$i!mz-O}ORrz>X%iF#2po7Hr&2CK&<7`Svc6wo
z291-%74mKkC$Tg_0902zbO`g)QJ-*kSv_aBXY6cl6mc?&s2y&2sp8Di$>SwPjvsXl
zei$Qg$)5kH>eE_aI5x;fbDOmMTd0Y93;8cjxy_dgoy#(R*m;<Ef$!!9dVpjEE=sxh
z?xc|HLM3D5$Rd>RlgA%@^sl(|(gl(Y&ux#mX#FY4#{XbON^4GG_X9-6f%5qtAapaL
z`C2%jGK%~j6wXg_{80iB60m#c`d+!IoKl0_(bFp%l0<@uyhIWPCs))*n{cjfOI`y4
zf8>|1^y4Eq>v;DN>P~$D7_ at G^a*96qSRvI`Zy~ey8oon4x0 at gG<)70?p>b-4_U7}8
z%UPh{i=tWPk?#q=_mrc0E$pi94IvVgc}(UzRsL9-7)8F8@(?Fe>O4R97@@bmwd4-l
zOCfNpOCnT>j27Z4$2z3Ik^SHzi<H3{T!t-W^pn!qS<|o+(q4f(DB%*%5CnA7AD2eG
z4>As1cM}D78&w9vq~J+&QtDZbmobFLl?Q9erBcNO#Cvi at sIHz>%T~|YFk_A#ydIYK
zjS#qcC=SSFS;*hqpC8X})w+Y+WBrLX86{pf$&D*tXbN4)|6%^Qw2%0`GJzR061lU~
z_x_5;Z<f|fQ<ZVFXupQ|2U4MsY0v}{%KJ2ezc$Y}&eC`(*I9bw(~X-Q at 1Hu6mM31h
zKS%(mOiO+A;PTr{(Q`lFGJS_MZM`)v(qpB5{NR^8k`u_zPChjrT=~lAN2h|c?YpAC
zWc;XAW~xIwQ9 at D$6K<2Mu#n~Zu>{}AG5doJ2_0W7Xh{aCHs=qv2r|1E75diC&fuHn
z3aZ$S7bSg(CVe&GidctIpRrXwbf8a4 at VEp@UgqPW`YS2;DzE+T7N3**x9Kd_OGLIK
zW#vY(ES2KD9(qibkcXxkdWUw3l8cOv%=0vgLA7uK@?UJ9w*5_;OK55?r|tZjjKMXL
z$*ytjBELQr+UODFrh{3*1{8=98Y?&_Id$XxZcGen>mZ=5j%w3d2OWTlBa)gtlZk;&
zv8fIWMi9^xsA*ajJH0rl#yx>vk|-4(f?Z0U;DDlC!|_Akec29xf8~SO=lY6=2nJ)X
zS(JH>O7P3{9&OWxpqL4LbtFN5BFj at GJK<*F&=fDr*)}1o$BleG2fQvdiuFtBphZAs
zu*I=_{B*I*`*P+u%eDqvX*R8;PWLBk)D+}qtZLo8^=+&_0W at WwA6s;mQdH-N`{F2J
z(^<7ZU#X~VPd>&?n{hTRe`E(uMGmSxp;_qlI1(pkM{)Q&S|lm1Vn0DuWl at dD6iEfR
zf3K9#hHRecwE}0kUm5^L2d|Qrr)$STsBcl at FC?LtOUAn>P=&^hEOiThQbFZkPTJkb
zNl~`4-C-|%O*6-4A96onc;iSPw9!#4g+&vjP`D;UpP+!l&zJip2nDDPRl*mfsrApG
z?E^~z9nA<Bjm?{)>&90^DJM9ny&}|Yhzz=unQN9ok?qeHK$cpvbMe|_0)lY at Eb$-n
zaX{eskyM5lm3ZLC2>BG2+BRth^nRgONgp_~1t1C7VT8EyRX;t^?B=&iBLy9M&0M#I
z?B&Gb>ftGOaRVPf$xg(CiBsN)65^LC0{em98Ng@*Ze%HeAq_zC^jc0>d93y&vHwnJ
zFE4KUFAG7N2;yYKz-vG2tlTf=+e{MgoC1t{cS2GVywTK{o_f1UC8T*y5Atqk#b;ze
z=`mY*O82#`<dqJtZoA2ug$>#$3P$`&KuEiMfk^v8CL23-kTbN?zi~jtYDZ+u)_LQ_
z)~udxd4FL7hDs6M#!-KIL+5XD<j?W$V~syX2g25KpxIV~jOB&61Oo1HlJ<j}6`m<_
z(Z+VuKVi&VR)G<_i`GBym~ggVV(nHr2B}ipM9hozqz${x{f at CIY{BqQoHyYz*ZsBD
zeyHB;ySMj%H*<$)?d#hkb9)-5>D&Z;+h@`-VVS}z`t>$;FkePci*gU9BNxj+28V1~
z)dFWf(Z at fh=WRH`=QIyv<b^YWp*l|&BBY5AS<t>jqN%aV>@?FI4DMk_@!^`*T7uS-
zWAE0l6S1{<fO at 8ug8&RgDV7+wsK7Nk?`RbIW>i3Ayzp-I12~lm+=Kq#yMc<VePudE
zp4cb2AjY!JW)b_wabl~`Y+NrBJCbvAKGfuHy_$G{zgz@{@<xC_RK0GnG8eb}yBPf#
zUw2HkBJyi{X!cL7Uj=ny)K<{^=tp1+o$dLDysA1c@*3g^(ml7F4}zcDP)LF{7MJd}
zqn@|gBCz}lEGd4Tw-{~deA#q%p~tSuvEiijTG!o8s~2EE$e3d#+i?hab)NGRo^^_5
zrej6*LBd=k2K7P476+S;H*w?ABb8{0M at E!f5#ktJl=i$FkS|R!RC#^I%Ki8Xu?gd}
zC6o~o$aKE!O>&YdsZ5x|I_WX7)Z)SHugczc1|YthL5sO$=l!g$znmT;*EQOt`gv(m
zL|~utx at Mm5)B4*XXSymoPjYp}dn*GU9ZF$gyyiA-=qfuz2t*<Q%4JeaAeje8#_y<Y
zH$^aw_iZU at qkBef=#Of>Oy1a7yRkm3lTfV2`ZhbB{_!`0dI}hxsymV)9RSZ1e$I5P
z_b`tMSFRm12t%mgz>x_;m^gc_w3YD5yy9dS!5H2MXe*&7Mk4F7s=(lVSaYSsl!g^v
z at s=k60hl(!r<?!*|CL_-81T*sL}PAct<4uv3V|U^NjXu}xmOt4D|2Xw`62?rpOtDY
z!mpT{wIYRbjFc!3D?&`rsp+w01BWJi+h2}tDG|ZXH6hb>5ux>{0v|l3TN#`2tm~`Q
zWr7!%o!=OJ^ibnGZS(5}WGXR0rCpe1-7rpq!KN?2Vv%baFq}v1?64Kd9?$E#v9S?Q
zS$G0}TC3~SY`LOXVr$738-r14t*111(Zg|Bk*)_k5CX>_?J)J%oYo{;NK~Yq0cUxf
znL%Ayw#N}(@|1}6&R+MeIdhKY2mSV%N?Xsn>WM0{KG6dVFnA6KHP8`+8YE*^ekgXD
z#x@%~ryRxU$8Xzp{j~q0PZ$&&9hxmmzNYYhwUvX&vxv|%meIdKP)L2&T3<Squl-11
z#`ZnoX%n?LeEhP$9skP<t at M}MN0iD__&!^31V`G(Ff1Q5K|7noP|a7Cx+bUQkF-8=
z`n6I&X}&%#fn>W7Zk%aCpEr_9>;a4m!0kX+`(CSjFEP|vp3er}GF^NGlW+t)6PohA
z*tpBf!3VHvu>Hl9tvWg at 8{*lCIX5tzruisBFAuJg7MSx0qcB|xd7R}5)2C5!y`%(8
zR?(G=m^5L6zI2Kv&IjyXBU<suM@|{^)nOZI`{!Qw#4Z=DR`-?WC{R8rN_LpemhTb(
z)JO#9jFq^qAIO;Rc=h<a*ILi!i_03416BoAQ?UVl3+jPC7G+Dk^lix(5IEB#SMb#E
zY*8+KKcbp``#}ktNNsYaZ5}S`M|a!keo1Hzzm0~*I0~8<S4Oz8#}}+fNxLYs9?Z at F
zi3 at mK03PScL5&r8 at a$dfIRt5VH(d at yuWi@h5g?Dvp`Yh?j$)`I)8hG`sylW8^A6}c
zIpr^Cg~kk_40DbRW=k5+&b2Os_hM8fq#@I0dgr^^%?NqljrM5wq8)SD0XyemP4hF^
zvu%wmOd*Z=nbc<a8Wbh{^fIw1npH0itaGCexM=ABJ>2h4{kNd7>_uP3wrv5^_oW4T
zTXI7CeoBFopgXFR*S<;SO5C_88ybc{j2qjA>p`8+!Xs62xjz!=MTQPgP-sFC2bGra
zN*@&}LS0zDAEUi_aM}WqQFxM1g{WQURRwz>_~6g5thl3$Q$;|H1-fD1P$AtMxF}c<
z;kS2~7s8M|b!{kV=bZh|AUcZDQmT8*=E;Gt%Z{f#T_Zvn<5u3xAmiZN&Vr^%7d69s
z$yo_LunZv}DW9WP7#_7P(+k6<Uh9sc*<~<GdLyOaZc|?$_Jk3#iLk0NDi3Q8Bq6>y
z2{YyZrm>6cY~%AU!Y#I|s6X`y<#u4s11;}Jv$+qw;ad)XfJVrEh$bwyf`Xay?I(=k
zwG3Paa3cQkGpy|o<=IrbqbU1y_z6TI!C0Zz`{TJSs+ at sy;m28?fK_M1e<DA6tQYt6
z-N^GV(nL{vSDx*kC(UJ_DF<$*C%G^%2Zs#@GzCy=k%lfQ at K-&OO4F3nQZ;CG`%7>7
zMvGen5WqkMfQwyZ-p>Jp#XtJ at Jl|N`cqRP(brQqR{3-$mNC&}El5LhSq2MluUn~m8
z4W3-&uj+jFdjTQdFmdKl+P=qhlao<jeMlwtldv(i?>WMdRL=RnrLBb4daE79IH$!!
zkWHb#MFZ$VJ?SUH1M}LD(G7-=JCq!v()<weUC3xmC~Z#vEeht0(}N;Zg?I$q2A+>w
z*Y9FFhR_(TL)YDO*tBpHLDnjtSW329d&x)mDn|VZ+yKj!APGTrDO&NERuD3erAn9;
zA`Qpf;DN_^apV+wW00C7FU+CfF_-qkS`C4lRRnjzJA2?D4kZZ~xy*09nz#=0{D>*r
znkWVeE{TLZwht4bo;7{Wsn~*jE<NKOo=oS4%q*MAF~6De%M`K(4Ot9y^UwlSS||aK
zwhM%m+FYDdH0w~ttz!YF7K-qegY|&*)=$l?repMz^ez>iSpQA#Z&ls3l5TveMlad`
zH>E%RJ at DGI_F{i_JC7Z25CV>q+QaHXumW?FrW6K!JdvtA6N4ncUJ-cGg&54%=wna{
zijCUCeU-tIEQPW5<R8K%L4w+Px+uYM$v}*vi6I<6tR?HCb^I@`bOM5~1?aN0(1izQ
zTD4(r^xilylC~;MPn3h_c_U6pGjB*YZ%j{ULWCk&Y9<48BT-c6?^Ve^;FXU%4}-xx
zj^6|H5G)3K76QsVB0VrIU=nSREPhPu)Y>DUTComYj0n}l6$%k at u`f|jyT^zGB3pyt
zry-X7zWzLhTZCA_bJZ+@;fsBu02k!E{&6nV6k&+}<;qHA#3(JbZnKR+#!hNc9B|9R
zhIceOH?5I!AoLLhn{{K07wop))x?28K9&H`l+y;EjdD54MPUnQ*#?WdhlFR~x^BfU
z3zJNCmi%NGT|Ve501!A{XzKrZoQ7wGN0vDN0SS at W=&>XJxh78U+uj~rfxzY1sBE^c
z_s78R(g3v`7?OO?4HYMh`~_qeSjG)EyTE}<j|g7k!r~qxsAo?`8eWJzd$xMlX~+#E
zVGC<@*yEE%QteG<>|<x_?K~h^?A!u2d}o_Ps8J~~#Pg6P{|eXwz+rjZ9#mT+1?(>W
zg<!zAdi{4~idD`7tEYu2Wf6YI)*QRkSNv;dFa-Nr5o#<HlHUcvoQ(_d75rd&D=6U(
zRNauKH}(LPtibJruxbo=l7}?(;0--80!yfQSJ+Mh@|Ly6urgv;Xs at h5l`t?;IO(dT
zUj$pXzN(b)WK33 at qbxsEg|ww#%96T(0c*xR at l3^YetBC87yP~G&Od1#o at m^xF}rUK
z(9lf2)ftpZ9wTz4A^a7#6h>SYKT}&jd`i*?7EZ9w&?M|%9|A1{lkp;~O*nNNjguSY
zgo?cnMNJAiG6W?7&2s)Sff)Qt!-AlH1P#>?_B>6x<2Dv5H$>fA<t8JIsVIUJCr+aw
zNX?1Yux^nm2vjfeGQPNdWLW_eE>x_n%F3TN27sOvHP+z at xgp52$k|DX8bh-|z*ksh
z(>{Q}K?8<DVf8Us<g+`ZtRJxUzML1l6a7PObmie?%zr&VP-&&(TjL|MmEhO^ybq9s
z1Dqp9_)VFfFe6)7UhFl_I+k%v&bL=~rR3$tl^g<qyP??I4$`giWshu#lPm*b%?}_Y
z&Y0aB-+4|4F7YTb*!;Wf@*Y_JUO-Sy1b!l5eS3q0GTR~wRR at o&ClW&K2MCXoQ8>Ba
zc}0pIHWnt at +c*ZGn_=~YLnVlP_SWD9-)KcTCd2#9r_f~yXhrPKaN3<}4$dVkg;aY!
zJS0YV4xWfj5o~M#(wPhQW6d*(#SfBVoX!U{z%=>KH=<P>oE?$`GbwhcV>ho^8})MH
zIu=Z^k>t5U+6=j|eXyeGL}(Kr1K}Y8k;^-QVGb*=<`kR|v)|0V8-(XG#q;N+Ud3o=
zLBaoNgtLwE4KKklW$lU_a+CP;(4w!9NsuI_x>Efa6jd}5aX07)JH<&f!d0_6N}(bG
zZAc_RN}E$lV^L$dbpLh#_hy3Z*7+ZKDnX{P(vF80z5=KRu$jV6;RnCL<e7MQavUD+
zpH>%C5{AJvWoy}~R^ssjn!Rmppcsn1$)A&ubjd7ah{Y#>fRcvi5d<C51e2S8dFUt{
zahR_-{-qlxpD+vf!y4!SUMc-^3EvbVGzLahF2}4-ZPeQ4#g;59mQ4xfVCk3djVr8Z
zvzKJ`L*b8 at x39OPZeTlMeN%OP&~wa9?W<TxUhL(2Fgo?T0t_Q^)t&~$)(1>E+Nu at J
z;@CordG3N)!B}Hs<#Y?0S}}W<lk!HAppW_8q)q}EExJw3djwzjVWo(ptO$1+I3zvt
zw!2!n=WP-KSB{%U?*puZkuVfXzSuuCE!MR?XrZ2*8IUs)MCS<wRDLAGwIY&+zLh!S
z9>bGSZ2Lsb-H)`9Ignl6{=hWzq0 at F>-psl5;eBpej)yN28<kmgE$jmopRFICY>{|V
zT;xWw&?1)Fu(G)>grSjXO0uUDVqCoCVbDTv_yjC#<L<WQ443LLFOK~#Oit<Oc at H55
z227MQG4I6$E<?h at YAB?tC(kTQo!)BmD8l?gc-ZDW9mAqMgM*+#vpII5xc-nQeKLt=
z6Vv}m(F_c3#^V&qY;w?41u-Y{+_p;s9ZX3CsWk+}W|Ag9q2ke45VZB5BM}b*ZVW at 8
zslFgJ)6S|h+4Qr#FDUTfH7wecGgs!$Yv at FQ(fngLKLW?@vqEj2cD+n+tRfxAzuzXO
z0pTCdG1zRqtdt|I)!T%}<<M+wzfC*p<jg at Hvr;uxuvC0v#Pwq+UiI~fk^kruORdbW
zPN}-5AQ)>v1!X2%vQL(Fd_p|{&(aOn<7-o at H-4FaH=or6ALRwmQt&2h=pjP=QeZK+
zmEc%%Fn9g_(3j^wW*Byw99;k7 at fL!wYGSe7mJMB9mTy7J)C1UdgF0_`)byEQn86m6
zH1j&h2m~$&IzW|?-bx9NGDl03sfy#MJKo~fvF87U5_Y`kK`@f7 at +V<C<eCi2yRxnN
zz~hXIZQ7>Nb-W<K^Mpprw??Ng4+MlM*&Ngp-r3^dl7Ko~pXDRFIdM^hy)z0kzssGg
z>xn_k*!L+>{e@~#4zuONHNP7jk?YNUUka#NDQY7QYZ{EAQUsM8f!Lk%MFWe577SQM
z#;5^q!e5WwxY?M!nTu#Kb^~*)>9X_TUVHDtwmI6|m75QfXUvIDho|~^Ngh?c2BO(n
z=6Q}O)(zK<CHe##*sc(~*vdg0ya?nqCT;ZIO7cDTD{Fv-0<X<i48g9D60Vs-Ti;Yj
zdGm~??Of1hDvU&&OKCV_H^#{ulpwRktFDrCqJB8yLBbrHd4NS-=i<eYICms&!`BnG
zkgi-Tud}VC6zbNrgZDTOP at qo0%EI?fi~3Vw1aMiKB1a-hvUu8(E)z^V?$#w9g{Ncd
zoh}Hm-$N<fB$C at eYEkDgF>*2>J*KzgX*O0l78*))1Z?@**xIE^lt=P<6s~V$uyZ6<
z+GV&1WM+lIw{o|z{1YQ!u=kZn(^@wAx$sKo;U-ytfI|4k5u*Qa(;mwvW_(o{lt>dA
zr>{M9^V8cb8r#O4)QDEi_;E<p=kMdF?-tVutW at sE_0YXzVL?!tQB-mfMNjpK_4b{L
zwnnZW(=MQHGwRLd=3CuPoB<{7PgxGI$nW}nf2Jq~Az+8aF*&Gbj`$aD5(m5Krwd^P
zc`K|<gsMS+git3CgNuRliDmk;H7g+rE4+kx6g8cUF!azdt()_>`KispRx~>Xhh!<7
zOf#}N8}okQlL;QDl_R4X>+~1#Yv-pZmpS{1Aa*w!$ovWG9v)RHSm;7nVV#v#2!Lqr
zuTHA^t^e^B#|ScKi-`xJ3t{B~5Ox)(_+tslv8KULs!IZtcud%zFWFloa9^Y at Oj88l
zdB8t6z at Tx?9z9nKRW5!i+IZEwq}TU;cdX(BfCOr=vk90wd!Q(Z<&{PRjpdS+p|@f<
z$Vyfo%Hrs(892PM`qDF_#m#N5qhrIVZku&n+u at 2E{z_#Voxg39*XU~x8=E?`<!Z4~
z at bn$eB- at hCeU0rVGLt<m=2;OM$oL{)fAs%_ma@#-Z~b27J8ijhzjKk)6OF7^GT{7M
zYa{9-(tcc3v6I*|ZN7h3BYM86?Xe(e(TK<pjnD_%P}GCKP`=M#2S<(ZmHTZj?ei9O
z9#Sv*%#(;J3FH~-EYfhlDGyv8gcKcG$gPzC4lXjUN9P}M)i`y9V%s`g=t#pN9+O$i
z`)Gk*2toxXPD{MXsY at a%MpGz}Toi!S&k<*miz%djZpe@$`&>MGH)3~hf3#{<Ls!&!
z=ZNP~usG~{qa&pWqrk1Dh5A5lg*YlTuZThlyy$9m<2_l<f-eoA;Avo~gr=&#J%s#=
z>ohRjM1TlJvwGvDR^|H9pcpMI>%<J5vsQ_|+GP?gNn8aMWl-v at yPS9yF7Bl@#?0@`
zKAT0ZdfC7o0~<XDUTat|$Kw-vJ1S(`Wi0ryIBN{Gck(2DK(ye9*QtfQ at Z%y3wR697
zJsv7JR^afC-ng-Mo+z9(pq_Ag7pjbt!#&}+=Ue+4Cbv;-QeavIEG^tv6P;mcW3?Y5
z)Co&~UHAk<J8b036>0g3WZNg%0mG*;JJsDyep<3L#h-^_sl{9H83D;RMZBLwvQ{tN
z$=Ch+kX;JTmtRPMAq!XsW~GWyS3n4a5==pc?VB1=K>FYVpj?)`{^ZSoVO8b3pDTrT
z+-VF;xPZmQp~A=<IXm+#ial$UNu$XuPv27HIp>qJx8gj)(6#7S+fNq*oj8LlS^G7<
zj;8wD at rCqEzu#;2M*2CR#vvH^%11i(WeNyVn=&2L{D%I{{;|?@5+I at 9wx}deVR2FD
zyWaOD5i)=k#$YWE%OQc~h0-l=rF1kZyo=Uo6Rq>DLZp;d8CsuVPx at 5rXv)po^+l?`
zP=xsn*~&)}haab;Z82<jJF7PnVEN<q^B+<#e!L5nACioj%6M3ofyT(qykrrj2E?0=
zIo>(as#+QWg*q(`Yo1=Y{%8m?dMZfjNgo;EHq>v?Dzo%R=ygF+y^##_1B+4Or4}ka
z3-WzVn0qw&5Yw^ZHmzu}tHyS$u3+ybTzb%WF at n*BZA4KcfuTcpRXD|4 at 2WO8!4ACJ
z3sihzKfy<evTBvmhEsbi^Tt-QmK%s;3_AuKwY+l%9H40~sZcC`d^%L;AlP7V&2ng=
z?`*{VUXi<P;w7wy=S8!75QBR{*{K(6Sf!KHHie+Z&eZv-tJwG&fV%{PpNI5eiP?om
z%^0w;W6+!;t`!~Nf9&b+6GNVmPQXAB3HshVV^(`Luo=QCc1X_hXP69Iua{PU^nTv2
zXq$M5wxbR}L#y%6I-&p@>nG~bu#5nM?%?dohk$u8YFVjG&tWX-Slpq at Fadhu>9>b3
zHCYQwBK;45nblKFT^lJwWSoC?<}blMZW%Bb4AW_>eQ|wT3!H%YUvVm`TT;QUDw<=k
z1VsDXo>1X2aiCtedvkn>vJh*YpXNibs}G7PFXAOsbRwIP;;cS6NI>J>m|hV~`0P*<
z?9rYPV9k3ei38}acvXE0movveOPOGugk`q&SxP=^WO{l#*xg`gEMW;Hqd&OkZVT6+
z7g!#_YZ5M60{zZI!L6*j)gVM0!!G&&b*&%u&n;GVhQI|QNaq)x9>fm2>g)uA-$1oy
zCwtloz<pP(7)TtE5PyeG8Aq#;msA@^XZJ7ur+kF2-tZgZYI}fNNaWe1KkE&^cBBHU
zmh|C)F;6e?=21IyIMV}2l_CNHtN^gD5Bm>RFG1PIqTo+Pb(zrIlaW?uXI+V4L3muy
z14~mVg6x%ic?|KCTzYa#?3x6upx165a6quiEo4W<6gIYUE$?~lrvL=C8)egSh!3zZ
z`@;aKD at IubhA({Pr)E?~zHTElYNOa&!FdTh{Bgh$@uI5c0USYD)c#iwe7|Y_gB;V0
z+=OKWb=c#-!TPxkk<;vI1rp2911|#R%kH0eo5Hu8*EW_T-N%7D#V3T`qBrRC3QKqk
zt8Y=1A(mHmOb_uSGwb}sTCBP<JSaOOW at Xr7u$h+<VU?Pem)GXX<!e#Oa>+s^1}aw7
ztSZ0~Af$N-+Pt`O#Co{R4bmE`W<yX{5Q9 at 3Qb!I#yF at U|72erH>xcabIAI27xFFVV
z$HPjuaTGnfs+aVKBy!W}&miG#fd9{97N0L*aO4tQlJ4+96z9TY)<_d9_GN&N(GCwg
zJPx^8)-8qAtO6{*B^WOdwX&7%z*q^wY|oui5 at g+<_JS(tK<dKk^16r$b0ZLqJBT#=
zt;>HB7oTv=sU~$qyw=^~Gkae)dVb0kQG$FJg}Ca#-6MQ+`DFkz`5HIn&1T(D!_=d!
z67vKM9GBi at F=dxDiILA@^9B`vUNkzeBt&JEPkQp7*~Li^;_B|_QV3k_<oWV{0PG!x
zXxvnYfUM96TQ*6TcQ~3eRmEE at g60Klzi?w!RbQb5_zCb>o8bi1c^-!GK50Z$Z0_-N
zguDh-3$-7AbuMPFncXicer-}o!fv6&FU;ph02g5gFm&Z%M1bZ_wd~?nxvqlQ^FZ8F
zI-miN>Sv}>HkM8eS!`We at l&C!-bvHU*IV~OFoJ=+3O1wA-=q7(7YKK2h(L+6IzE8i
z&>~%xq6(sl4Lqv$@Fhm>eLN8~*LGwCp8Y=<8><5YIS&=&Ph)pc10p&7PG0+ToNi>g
z#LSy!@c?rUT;|PC4fKly8?U)*-Q{`4?LV_O(Z|q)(IdSv-kiFsRimT-MzvK^pk6_Q
zS)z~`LQPl+lNy-XFiJsC{VWJ3#gD?#RE>xMXB~~3UG)J{7Y8_Z0FtJ_I490~YppS^
zqR!`W3A1k_4w?-J(b<F}S56yHQi~>AE1Q50jcFL5lG=>Kd7l_K>~=$SEP$R91>EN9
z7Wy`fZVpeWWa5gpF!X!tf~w4u@`}tg*2k5TlFAq*mI3}+zc7SlR9BXD at y5C|m%h<h
z-2CPMB_1r<vvIvty64p3|H8+8rDKr4PEZ0vD195!)?|=D{~$Y^{TyLXgdw%6+8&S(
z?_75VcUPwa=9irl&Qc|~Ql0AVABt%6rDs3Zf-qnn<~)LtXg$j$^pDSVsARrXTjufO
zL6aiV=@;;0c1#GyD^%Hg^a0XQuzNkaGm1+qy6>{%={Fr7MGEt+s$u31PxFL9wD^N2
zBuW(_{{<=JGVv2brHMQk7|V*ilVx(3LC?+cTRnJo>dc%a2ABR;R-(QUNtFr>Ey9HZ
zIDQ&8vCf_f{6D~mWh7hTS-{wV$E80jfSsv~mWdr*jsoW1@|41s;vX~(Fvx3|)-RM}
z;E~d_HrM7Z58?I>sKKQv#Ls<SRH8bp>-rakfy(G&!DTqaU<Q+by#^>)M$m1FpV`XN
zDr2jDD*#f<Z#ohUb at JJgN^WnRok66XMdY|f*Qd=NWujl4!$)1txpK-8 at zX)=bvlN$
zpEUj%**tCT(5*k_WuRNL?O$cbPuYijpAFE1Gz)^=R_jykia^En^xVr_WBidDKi8Zo
zy%Ku=f-KuR8=#eMW#Rel1)(X3no!=K|KRzir`l#2^heQVZq+PEKUzGlsab36B={Iq
zElisI2U|}5jB$ea799k5h!*sK3~yHEaX~bDTMbP7XPc}TUJ&_F#@SUZi%|;05l|ri
zyVR1RY{kgZpgU|(_dM`g6NQUX-YEwY-3i)GenWixl*0=~I3l43Le+Jf{`6CVJn2{9
zBtR4;@V%lL-BT`SOAb(3UMx5a8QaO4dWC>!DX|!0qlN^XOCs5wrBNpLOaL5Sn1=9*
zxVrum^Z~YLB<$(`D&YiivYVIJ5<Xi%AWa#k)l)Mmftrp at 6xJA;T<nB^{hI29KC6_2
zwhwQ7f>)79!&3?$>L*Wj<eHY}Z0#_KY};$5QAnZO^@Pav>{L8PK|PriXPysJHLaeo
zWNvBbG{%W>#enf3f*+<kPeow+C|Ls=(yn>XZm8?}B`TV*ewegx>A^P?d~7xL8w-3`
z`*NUIg94<Q=bdA*;?Hv1%H2h>Id|!e9&miK3HWHk88H`D&wkpAHG>0>aCzEsAMn{j
z8K)jzD<W at YH$m8aeSjq7F0Z+FKU|TVS*V?ynOoRKTM>eutqnQ-TN!7KrP4YoR)v^E
zLLp_>JrQ<3f?&*AUqZ0 at O>FF9ANV%t9=w7V7}|+~Z9n=Scmi&bhSB4JZO=e)%D86c
z0XCBLPsX5(4Y5Y!npP at f6KQHM$T=S{6c!4?_NQoyCE6T$F;IbGS at lkwU|HUn%>mIL
zBn*W*aA0XFk9Rq8?oig3j^XsNO#~t4>uU0;MmC~2kuoth?*41;z6e#wFnoP{6G)(^
zR8Fj4kv^YOhD~r;UuT>zyAAi*2VNiz@%bFEgZzGmpYqF;9mES()LsYO9jRdEiUJm$
z&3IfblevBas~~>*b<j32?E(%z-kvqP(f4+JF>tornZga5Qm0rbYsRdTC!VTVAswJ3
zNs<a~AMmmm?GhptUm4?0RjJdT7lu9(4F=%^w7==?&r*MK5Y9s_scG2lSr(3fp$QFt
z#0dzQD<PEypEJ;On}NqPn+eYUAF$4?o6a<M=ulud9xkS<H(;T at poQ|L3{DPAr7MW-
z>hX^9Oasl$cpey|2?cnZIpvT=9)}o!h?Z%}MqpekA?*N98z=a<4q+$=U-}|j+SKPD
zva-Z$X8X-~3nhHA4Z~WJ|E!nM^z3%<f*zXanSQULf+$TH2{IlFYK7LG&BKb2)^#Bl
z{<&UZ?g1a$7P2Eu=OUanzD#5nIsf$ZSd0CU_ACAmu+9w|J$?woLLOryCl*SomT!-t
zwz0uE9!g74tqE|j%2nGpku&vNd6S&X{~1t+4H3lcCZNK-73M$YJ{u&2ypTK`Z;m|z
zp|yf{V$=kX21$GJ;TJ-85=CV|KM)%|u1HMqdtIy$H(axBm9KIn(1o%*<!8F$nDpvp
z%ZD%oBYcVh$Bh%jvmAqS^03AWL!qJdy`Bq-W@;lZ at sbn0CczmaC65v~&}`5dUlK{u
zeI{;|Z!$Dz1E$Y|!*!|!=PpFX9Nwot{DJDAx5EP<S)c*}C(R-7s|sYSYIShqTq*nj
z33Zt71_U1wxIQd=<P8|-){gx_;054K5c1Tc>QWn0r2 at l7*JJ<^e!)ugc7vt06T7lt
zJ)jHF&`!8vIcTFMH?lS9Diy(ilk at ZDE;VUUs-pKl%{}RQfP|nF5SZ_N%}21qtd at gI
zzE)s5Wa>k*gVz+2Dt<cS-wQcnsaclN<b79T`UVs?4DiFyV8L{YUlw`jIdSh@!}UmF
zqaYsQ+Jc6xVkB8I68UdbbxDXq+RQ(%$TCk|Fql3Z)AjcX(r}R0?8YvQ95$SdMXq2V
zB}iN at N7GqQBJq3^%&KM)j8=jtJ5!SFhZtoc1zmfOW&1989Q~Cn8>7{G%fds22#)!m
z)me>HY97jvPlQ+t7h^4mP%4p{-39IrB0e?-dHO4<MzG!~hMgaNLobo+0l$Q6@~m~_
zS?gcnpbFpIJ|l`C9lQFR<!4xEEsg~U{Rc_?H_$4>UivzV>4YN)C=&FWTn>nCgMWZf
z*5kr|aP1cjj1ORt3p8`@P`&x|fLt6Bii?W{1v3$brz%+KxO|0`089ymenD)u7-hKo
znSp$s!S3A`of=u{&<k*xiBeH-q%t!?at`aT$T4Ic+y#Ma${uP`9B!&-<(Y4`{V#kw
zloDsj-&uhn4U#iOgyBLJP-&)VXT!MJURHdbqT&9N);yd*DK1)TUhW9k44#mY4A#^$
zLkt|2V0&9<(U4 at kXh7ZqO#uj=MhPsN at EF#y<_`e%y7$X^H?|x|lEA^IvZ&ED%!sMY
zC`l`aBX?NX9LD07UTuw<<JC2V3c938N%Sm1LT2^C1PTUe`Xg3{w*vX^3&?`wR>9+o
zVH!Y>2M!aHS#zcdC^pc|(m0mFa<ZXpIKPEv&kFpD<5W0|!7$G+xJ+2(`v)Rr4`NNb
zfuA2yLN010k1$43)Zgve?iZ47uxlLF^XV`RPZT4(P3cd`%M!Z)xTbX$e<oM%Uo$H#
z8)a?A>h!Q7cbIa+*6Y6zb>#ni$eJnm?}q at U8RyqDF7@_I;)lF@;^24!gqZc<f1+V3
zwuf38buJN+0 at GKoX@y?!xj}JaD!Wy(Ftc?WR6e2vFV{WITE?0_q-!x)zCGBGpqG4k
z@*s<e{%2lG=}qz8MjuPQJQyekkc8DEP<`Zavh5$(A5fLJ+k;1vs;H?9_wa642-bw^
z7`kbNcFW~PJ?JO0{LA3C at 4f;h1`IXX_GUU7Uh3v at MESjkm(fsQzd8QO<p}uZ>f$Lq
zMT228?|h_EkDP{OdR9QG{^Y^-W>`lVz8&)waM|z{T|(xx{>)lnShYVt&(Y3U8zPn}
zA=uLizF$2nxH*qkUO9#e%d$<s;hm{O?_FN-H_u(K-k4VN<)OTeUFmbp{h={w1ay%X
z+Jg^NHkw-RqAMlG+D7IX_}?vR+xQDi&pFNR0M{zZISAcxkRR+}3PgK}M~_@(wQWVd
ze!$&`MQ3lYw5;Z9!4tYNp at ql61(5{wn?c{t{Yp()H}BJTte9J;B`CdVep`PK!4S=D
zG6nDdi`3=)l<?7&u9fY}D}iHyH0!og2x^{Xx)KOoX`p++IR&9#rBb=I<lLE1?H=#I
zyD-gLcOvor>#2nAOs{gJ8gx23m5H*dPg<}?+G1VSgmUn%BH0Vp>CLo}9MzpAeU?TG
z+hO=Q!g3OmMzb$GU2<;NmG_j|l;|`0iB?8zVX&MMilSMV4Bo2=6_&>4W;$^Z><w8H
zAWK5`TV4$t?Ju}uRAbjZ;@8fgd*H3=%5%2^8ARUL5p*w0qELhrlB{WuL8FJ3a&CAl
z$X%(u&`p&Xur9eMnh1jIm&YoV4SLBp#(jSDUaA<VK;wcV*&`maE2}HRH`X8cSm=lo
z){maKK>QP9{!{Qm3lLyAK(<Y=e*EW=yjMhE!0NbTl3<;lj%$bA&|+TWhmpz;3^fMC
zAx7$en;PZXyf*Vfq~>iw&$?t<%v-b0;ZMteIuCx=(-wT at eFv4ppIgi)_FTg==Y7Zl
z5X*)w#r}p>ozjzB=e>|rlSA--Fg2HiA!S%IAB=64kC?p|#<UB at Ca$g at Cln)hz=DwC
zw-9gv^G#vYYj{p0IJ|QMq95i+=?>r{LP=a3z2QH#(C1uN)!|h at rS`avEwPT!i5xM^
zf4sDPeX+M=o>^qtY05`voELs!k)bAo)F~g%9+p5-$w<T9scU`#b51KAO22Ct8jGyC
zv*nI>zer9fJx1It`|FEe<M9<(>J2IbH{N-R|F4j1kA^z$|DQ2th|!{QrwMIIqufPm
zYRRCdi$aZcDPz#EJr&A*vhBtu#(9dSMdh-a7<!DM+)7WmG%m3&4HXrs+*-mSJn!#}
z+MaWM=ls6s%pcD8>vQ{lKJUxx^?H9Xc3cYQek}v{xIVa~#EG#jQZot!C>reV=Vx{1
zFK^@T38`u<=S_kpB6Hrp=$g@?F>tw~2UEyfE55!3re{0=y;Hajm7N=CYB+V<*FKqM
znE`{FMh-jHFO;s`@p|5ux+`QlVPQjWc~!pKFT=*qaOCXry^}}|iH?(KQ(d2ipC)+)
z7zmgpA<lFK5CaPe at ql?5dQf$r?AMU3mS@|&x0KtQY4&UPC{hkTUIxJOT at afhPN(k`
z1+pmGK}O)PXaQVyh0h2g^XfKhQj6yb6^@OaHH72lWlYq^lPUPxF~~Iu31#;|W!XPG
z?~?zh!+$?A;GGV#PZ-q%_W@{v`Do6x6}=Xg0*$Xifg`#drg$u at zQ!f69yadHUZd9*
zXPiBX7<)m}wzHq_hVFJVrOyE0 at q1#fnmMtbg4!?!HA<dJuX9O+<EVnvjft4^NRiPu
zX1N7g at H&IrK~mh0QwNna&$+9hQXl24Her^)2)2Z8qL-_BUTg?}%1CLp-B2g6lG2AF
z;Q7RGW7&BTyu7RY=NAfV86_aJlcHvYvN8yUQX7G%Yyj7F#cyY?8VJCWA-L2yXg4(J
zhh7T)IbF(<qh8YHv&Sx3N<$RFL?^$Kr<HW9F_oP^UEshP0{$e*L5SJk$Fr$xVabr}
zgwVg{sx2{xNUmjnDExo}TYYkGnT6z@%s9I-onTm8dHA-tUZR at hiy%D_o{KraYSc{H
z&k at 3(prRJ_sk*-@`*pT1t8&1KYg_cpqtS588PlT(*!%p;3VvUm>@7NsC0q8bAToir
z{xP#w<!`@cif#;e?hsS8l9UavNbgqF{`-Lm6Le&OPfmklBre*xB4Be=V1Dp)Kgh<T
zWBoqdxus(`{RmvV4Uy3qvruX?VdeH+cgI53<V{Lfk8W7$?swK7z4TC9W=7=0Fn^u8
zW3-BH?-HHs%IuAJ4!;HKJz at hpJ(@_JntK%6IlGqnR<tk{S=R!ciVOl`ls7{L{Xe?q
zuP|M3%wvet<}dJm>|8T=xG((svEi=C{AqejQ!?>>t~E3HZb@%<DQoUx37gSujzr&3
z7Yg?q+?k(W+(gpqO|DK;_^kyL8c8Bwqmi=Gk?t5hsAoE*0LLR3NQL3knq2mF&5z!^
zE|2Y?X^XK+AXcRGZ7cSYR)j)Mss0z%sa|D4HvFa+uhm2XL%gw`N6rf(*&P>6xszO=
ziaXbB%~fH4^%R2SvO$frUd^sEL29S7dtUb(CG;rT*-PXE$<tKGP85<}IeD`4-=XtL
z*P5)Cqhc90!-HD9<3!$1N9<H{URakFZhysZ9n^sBY=D&C&4vt1t%{Bo#0<6H!gyLp
z+H!1MoTm%&&pxq1v at v4`x|gnJ3yL>7M0w6{E|(jTB3IRE1%@Yt*a8gLZ;skD`&wkD
z96CYS9j!_&j-K@>cf0sL%p6FFj;b<(EIZ0qan|*Aj~tmN<UxT*=vXig;*tIou>vXV
z9mp9WFeOoMhLWKAN8OleZR&QkR*mE315gZ(Jf?v+SwW=}Z%ij%z5<m2s%j>_Z~%}9
z^si7ZC6+2phSdDBoDGThIYi5mcVj8if92(w*&JkX(lgeu+5x@!!9SZ>^O)L5+nhJB
z97moJCuX|%Qaw`#fpmv}dy8J-bMfgE77;39#*J53L!!P71}jEup6*Q7w&^;ZcJE@*
z08XjT`Wx&pVdAwuUq|<BVEOv>5wd&o+@=~*11yw#avo<Vbg&imrg;Q2gXRp8ZeQv!
z05P!hA=C?B;WO(ZsVMmD5x=M&F^?D}L#6xkOah|+ar$;q=xPjW6+2EeeiWr#I7(qN
zWFE$zK(+`gf&lF*p7RZ=Kb(}TakG8gmtj)sUlw}#4?TVm!@G4li{c1_UFsND?~lt_
zCx6DmH^S`1t9a{6slkpkD-$jmTKe3F%O}kRbM$Vm!18``i0TFOkc3)67r)fP-DSX;
z^bE|DYEX~u_~1I7!%scGTWHU$dRv^^)jH{sny(FB5n5YXpifdLVOw1x-C<!Nw&P at 5
z`3omxa53<0FyYE`Inyjc&cI(_RU!W)VbStlJjd{i6+S+{i#rK89$<Pv&v{}+g5pr&
zN*N1haQ5Nb7B?JCzYjyE+IAmE at nda15xN|73%o}B_%1S#SJiCpJtpK`-a~PdcJR#r
zLQI$!>Cp_H{PFGm^FVM+czWK31j!wMaLjB1HwF(^o>3`)G|$;kMx5zDNDhqG at p}Bp
zPs4v5U$)T++9yg>s6ecsBdN=(&KzHM085cTf4pCj+Wf826>Wx&ciOl6&(P6x`XYbA
zB_bp5KL?rzx^U9<1vZ<w!A#{%)qh$`!M?FGBT#k6nxr|db6!f+WUI`LAq*%UtBnO-
zco5NqmnuZh*1;Mog2)tyTxM6z56`zPw$N?q?@tM;TrS*)YT7MHZCf5|O|NJf7)34`
zktWuglccLp_s_2<^oabjDGH*>)s$tjU;|+;cA7YvMZgc9zpo1z<vEmi{BaEBRlOMa
zJ_aI{@x;W1+<Pj2jdErx{Qv;cxI9z2YGVZd4^8k_*yNO{PQC<s97yy5{B2Q7?ldN6
z<8pH6x{L<L70|eiu=5zKa>3gBNu%q^gA5OqXxShf8QJx{)>pL6A>_2rzu$0EM=2mV
z!2Zsx{r2wA_2of%7up`HaJ&#V+{i)URqQVi9(^lYeXGYcTCb;>^q`R95uxpQ&+o46
zp_0tiON+dYT at vPcRYVxF+IFMtCni(AeiRi8 at 3u=RFA8ks$$C?wp0>6gskW0*Vw3=;
z{m})fZ*e<v at X6N5XAcsM$*mDZ7_jvUjn9dWA<+ at c+(<Szypq)b_h6cLhaW%CeLQZl
z!ruJm>KRXOac0h>8n7KQouO_4&!Mp+2SMG&&D0fk`n-Ct#bDOZQvkuiGDy32z^)qk
zHIbRZqCs2&@p1OV(R#C2&%}xvX{xg0Bt$^4A53pJ;J=4S!NwNvvmfL@%2m<47B%cW
zZx~O+z*~6nSbn*L)&P46h8gpqU_Ih>mXTW-(SjD{&emgn at 3q}eSp27>>$;LeHE*_x
z>U8QBUMnja66*P(=TQ0lR1W$QgR;Ql?mBz!o<Wv?LRKO-NYV6P9{E<)(V)RgSZcb(
zwz%%ZvnAm+l6@{s7ChV=JGR=iEpA1YIdXAkTHf;WV|0GV at 4IIyAGMNda`@#%Fwf#(
zo+1s<sFpWgF>4Z at WLN^AIu|I`q$C5tEIBwtDOw<jwh{neMV<_YrZVCR-Y2eOLevTq
zmcTEwXXI(T&~x#%5G_A3A`D~13e?lB1QP*MfS)Y;Q}W`RhaO#qT*cpMU+2`QhHsN6
zag8yHBQ6X3_)laI+B;sh%S?u<%hRIF<u at Jd=!W31)S)@<@=t15Lj>qf1Ln7t3`(-g
zQ;yP9Mo(uq5)0WCXV<eUPh11OSp7a`9VDwR9i at olysP2;ut(AlAZXjbl$c7Q8rhXg
zN+`(?fp`Q_q%5GiL4IM^&qPIEzBU;6r2W8WoACaWx at hq2ta!^{_I|4 at l__&Rg&O&&
z+FkmEUeY>w?fke;snK2;E5uV4H||2xEsCq<PdhJeXH5p=wRB9;V=j6_rNQg<8QF~|
z#!ea)O+n$M#F~+)KT9|9hCWI+RZYf+89>Y~=&DE;rcQjZcR?iDDb_Aw(Xif+Z&F(#
zYAs5VaOx1+KfmXeA>5b<S%VZN72X_M^8Xy*P$PaH_)FNzU_}e$-K_VeiwODcq5cOg
z^Y>H875Mt$Q{2En&G2aP*f1Q$OOC8pw;@sPszZ{;A#<WWeGE)Xq*3G!sJ_`HRt_`y
zKDqui*43*O9<a^^2Jbt?eDj++|EPV;%jC?o#&OC4l)N>Ka(Cb769i%P;_gg^fs8GO
zzVw3X+u7=DD}YaQW;Pdc#cxYw3Plib&~9|?z&<=8jzhm3Hc36i>7_f$*B*qrTHesE
zvrBK<L-^}UPq_N;5aag~O0W-*B3)_?5cpScG%c!bgPdu&ozt>$dTB;OU5aheYpi4w
zN4~T$hph~WI!jk%`hBXFTZlBh<ABruSF0z;fB;MWc)Rhqsd&fifp6q=RxHG~?9w?8
zif$S5;$ZBe<%GZ3IieXIwq3c;WK at _Lw2GGeD@X#CletERvacf;4ibmx7z(usw<No&
zy3bJuI}SsU_)uIu5h-)?ZVBW&<AakSN02whP;>bo8@%sP_9f}Crk*+r)29CXc|rkm
z$tc`{y>+cW3<uTAgSKk)cpRtKH&1(LJ!)Vpfcb)ny#U7LPxyi{;L=dxR>h(abIA**
zxrQjdWLNq~c4-sIM{8)m$M!$slnARNP*>#**j1OEuo|Sm_YXo=z4a!H<dU~_YqS<O
zxv1Wxu^juKMpOh!$`bmUJa1!1mh%$SGttxj=8ErZON*d>40=aPryk`T`D8!#=SM`8
zjA at B03g5zJK->t-J&=-rgKQjkDVnfxA7w|xru0jtt$ZkiAOHDqEw*)t;JC11aZ_dV
zO%Aw at gogESYkG6fzJc%Dq=<@+;k#LP;l)aXkJxeFra-pYJt at TEFig0DEdzp=^FM<F
z<Nal`iQ~ql67|pVo0#zG4=KH_(>ufQS-6_8b at A!M<Elqdb<qZLYp_o<WreawS1KxD
z7aTO~0;i5$*jISq0zWOj39$@zfiL>%CT#t$Z+`w)a3$Eabo2jiHvm7seNWo;JDL_&
Q-ypag?f2Lf?(~WKFBM+ww*UYD

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded
new file mode 100644
index 000000000000000..a45e4facc143d1c
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded
@@ -0,0 +1,2234 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nstruct S {\n  template <class U>\n  unsigned sum(T t, U u);\n};\n\ntemplate <>\ntemplate <class U>\nunsigned S<int>::sum(int t, U u)\n{\n  return t + u;\n}\n\nint caller(S<int> &s, int i, float f)\n{\n  return s.sum(i, f);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 760,
+        "y": 10
+      },
+      "name": "Source code",
+      "size": {
+        "h": 270,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 35,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 395,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 45,
+        "y": 110
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 135
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 130
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 295,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 85,
+        "y": 320
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 22",
+      "size": {
+        "h": 105,
+        "w": 155
+      }
+    },
+    {
+      "loc": {
+        "x": 220,
+        "y": 30
+      },
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 87",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 255,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 145,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 295,
+        "y": 285
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 29",
+      "size": {
+        "h": 75,
+        "w": 155
+      }
+    },
+    {
+      "loc": {
+        "x": 255,
+        "y": 180
+      },
+      "name": "27",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 330,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 295,
+        "y": 205
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 96",
+      "size": {
+        "h": 60,
+        "w": 290
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 295,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 32",
+      "size": {
+        "h": 130,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 510,
+        "y": 285
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 55",
+      "size": {
+        "h": 75,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 510,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 58",
+      "size": {
+        "h": 130,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 510,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 62",
+      "size": {
+        "h": 20,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 720,
+        "y": 285
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 41",
+      "size": {
+        "h": 75,
+        "w": 225
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 720,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 38",
+      "size": {
+        "h": 130,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 720,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 46",
+      "size": {
+        "h": 20,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 450
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 67",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 15,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 75",
+      "size": {
+        "h": 20,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 150,
+        "y": 530
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberExpr 79",
+      "size": {
+        "h": 20,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 91",
+      "size": {
+        "h": 75,
+        "w": 155
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 49": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BinaryOperator 64": {
+      "Dependent": "Instantiation|Type|Value",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 99"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 102": {"syntax": "\"<bound member function type>\""},
+    "BuiltinType 26": {"syntax": "\"unsigned int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 37": {"syntax": "\"int\""},
+    "BuiltinType 45": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 99": {"syntax": "\"<dependent type>\""},
+    "CXXMemberCallExpr 78": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXMethodDecl 22": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (T, U)",
+        "ptr": "FunctionProtoType 25"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-emspec.cc:8:24",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 19"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "604747699",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 23"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 24"},
+      "RD::First": {"ptr": "CXXMethodDecl 22"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 22"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (T, U)\", <in/src/ct-cont-ft-emspec.cc:8:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-emspec.cc:8:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 32": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, U)",
+        "ptr": "FunctionProtoType 35"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-emspec.cc:8:24",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 29"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2607168096",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 33"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 34"},
+      "RD::First": {"ptr": "CXXMethodDecl 32"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 58"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, U)\", <in/src/ct-cont-ft-emspec.cc:8:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-emspec.cc:8:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 29"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXMethodDecl 38": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 46"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 43"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-emspec.cc:16:1",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 41"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:18",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "0",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 39"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 40"},
+      "QualifierLoc": "\"S<int>::\" at <in/src/ct-cont-ft-emspec.cc:13:10, col:16>",
+      "RD::First": {"ptr": "CXXMethodDecl 38"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 38"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, float)\", <in/src/ct-cont-ft-emspec.cc:13:1, col:32>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-emspec.cc:13:1>, NullTypeLoc))",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 55"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 22"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXMethodDecl 58"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 41"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 58": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 62"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, U)",
+        "ptr": "FunctionProtoType 59"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-emspec.cc:16:1",
+      "FTD": {"ptr": "FunctionTemplateDecl 55"},
+      "FirstDecl": {"ptr": "ParmVarDecl 60"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 61"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:18",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "1",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 60"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 61"},
+      "QualifierLoc": "\"S<int>::\" at <in/src/ct-cont-ft-emspec.cc:13:10, col:16>",
+      "RD::First": {"ptr": "CXXMethodDecl 32"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 32"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, U)\", <in/src/ct-cont-ft-emspec.cc:13:1, col:32>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-emspec.cc:13:1>, NullTypeLoc))",
+      "TPL[0]": "\"template <>\"",
+      "TPL[0]->Flags": "",
+      "TPL[0]->LAngleLoc": "in/src/ct-cont-ft-emspec.cc:11:10",
+      "TPL[0]->NumTParams": "0",
+      "TPL[0]->RAngleLoc": "in/src/ct-cont-ft-emspec.cc:11:11",
+      "TPL[0]->Requires": {"ptr": "null"},
+      "TPL[0]->TemplateLoc": "in/src/ct-cont-ft-emspec.cc:11:1",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 55"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-emspec.cc:6:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 90"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "22820225",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 89"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 89"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 29"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 85": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 86": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 87"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:6:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 55"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-emspec.cc:5:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-emspec.cc:5:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-emspec.cc:5:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 87": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 27": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-emspec.cc:6:10, line:9:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 95"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 28"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 29"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "29117837",
+      "PointOfInstantiation": "in/src/ct-cont-ft-emspec.cc:13:10",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 46": {},
+    "CompoundStmt 62": {},
+    "CompoundStmt 75": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 52": {
+      "D": {"ptr": "ParmVarDecl 39"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:15:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 54": {
+      "D": {"ptr": "ParmVarDecl 40"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:15:14",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 65": {
+      "D": {"ptr": "ParmVarDecl 60"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:15:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 66": {
+      "D": {"ptr": "ParmVarDecl 61"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:15:14",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 80": {
+      "D": {"ptr": "ParmVarDecl 69"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:20:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 71"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 82": {
+      "D": {"ptr": "ParmVarDecl 73"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:20:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 84": {
+      "D": {"ptr": "ParmVarDecl 74"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:20:19",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 90": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 95": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 71": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 72"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FunctionDecl 67": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 75"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (S<int> &, int, float)",
+        "ptr": "FunctionProtoType 68"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-emspec.cc:21:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 69"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:18:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 74"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:18:5",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 69"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 73"},
+      "ParamInfo[2]": {"ptr": "ParmVarDecl 74"},
+      "RD::First": {"ptr": "FunctionDecl 67"},
+      "RD::Prev": {"ptr": "FunctionDecl 67"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (S<int> &, int, float)\", <in/src/ct-cont-ft-emspec.cc:18:1, col:37>, Builtin(\"int\", <in/src/ct-cont-ft-emspec.cc:18:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 100": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 101"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[2]": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"int (struct S<int> &, int, float)\""
+    },
+    "FunctionProtoType 25": {
+      "Canon": {
+        "preview": "unsigned int (type-parameter-0-0, type-parameter-1-0)",
+        "ptr": "FunctionProtoType 93"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "syntax": "\"unsigned int (T, U)\""
+    },
+    "FunctionProtoType 35": {
+      "Canon": {
+        "preview": "unsigned int (int, type-parameter-0-0)",
+        "ptr": "FunctionProtoType 97"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "syntax": "\"unsigned int (int, U)\""
+    },
+    "FunctionProtoType 43": {
+      "Canon": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 98"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionProtoType 59": {
+      "Canon": {
+        "preview": "unsigned int (int, type-parameter-0-0)",
+        "ptr": "FunctionProtoType 97"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "syntax": "\"unsigned int (int, U)\""
+    },
+    "FunctionProtoType 68": {
+      "Canon": {
+        "preview": "int (struct S<int> &, int, float)",
+        "ptr": "FunctionProtoType 100"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 70"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[2]": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"int (S<int> &, int, float)\""
+    },
+    "FunctionProtoType 93": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 92"
+      },
+      "syntax": "\"unsigned int (type-parameter-0-0, type-parameter-1-0)\""
+    },
+    "FunctionProtoType 97": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "syntax": "\"unsigned int (int, type-parameter-0-0)\""
+    },
+    "FunctionProtoType 98": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 91"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 19"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-emspec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-emspec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-emspec.cc:7:3",
+      "TdD": {"ptr": "CXXMethodDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl 29": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 96"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 30"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 29"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 55"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-emspec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-emspec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-emspec.cc:7:3",
+      "TdD": {"ptr": "CXXMethodDecl 32"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionTemplateDecl 55": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 96"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:18",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "FunctionDecl 67"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 56"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 29"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 29"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-emspec.cc:12:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-emspec.cc:12:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-emspec.cc:12:1",
+      "TdD": {"ptr": "CXXMethodDecl 58"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionTemplateDecl::Common 91": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateDecl::Common 96": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "FunctionTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 41"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 29"},
+      "explicitMemberSpec": "1"
+    },
+    "FunctionTemplateSpecializationInfo 41": {
+      "Function": {"ptr": "CXXMethodDecl 38"},
+      "PointOfInstantiation": "in/src/ct-cont-ft-emspec.cc:20:12",
+      "Template": {"ptr": "FunctionTemplateDecl 55"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "ImplicitCastExpr 48": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 50": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 51": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 53": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 77": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 81": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 83": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 89": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 103"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 101": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "syntax": "\"struct S<int> &\""
+    },
+    "LValueReferenceType 70": {
+      "Canon": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 101"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 71"
+      },
+      "syntax": "\"S<int> &\""
+    },
+    "MemberExpr 79": {
+      "Base": {"ptr": "DeclRefExpr 80"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "CXXMethodDecl 38"},
+      "MemberExprBits": "NOUR_None HasQualifierOrFoundDecl HadMultipleCandidates",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-ft-emspec.cc:20:12",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-ft-emspec.cc:20:11",
+      "TR": {
+        "preview": "<bound member function type>",
+        "ptr": "BuiltinType 102"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ParmVarDecl 23": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:16",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-emspec.cc:8:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 24": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:21",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-emspec.cc:8:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 33": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:16",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-emspec.cc:8:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 34": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:8:21",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:8:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-emspec.cc:8:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 39": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 38"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:22",
+      "LDC": {"ptr": "CXXMethodDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ft-emspec.cc:13:22>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 40": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 38"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:29",
+      "LDC": {"ptr": "CXXMethodDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:31",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ft-emspec.cc:13:29>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 60": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 58"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:22",
+      "LDC": {"ptr": "CXXMethodDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "ParmVarDecl 61"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ft-emspec.cc:13:22>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 61": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 58"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:13:29",
+      "LDC": {"ptr": "CXXMethodDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:13:31",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-emspec.cc:13:29>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 69": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 67"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 70"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:18:12",
+      "LDC": {"ptr": "FunctionDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:18:20",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "ParmVarDecl 73"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "LValueReference(\"S<int> &\", <in/src/ct-cont-ft-emspec.cc:18:12, col:19>, Elaborated(\"S<int>\", <in/src/ct-cont-ft-emspec.cc:18:12, col:17>, TemplateSpecialization(\"S<int>\", <in/src/ct-cont-ft-emspec.cc:18:12, col:17>, NullTypeLoc)))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 73": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 67"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:18:23",
+      "LDC": {"ptr": "FunctionDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:18:27",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "ParmVarDecl 74"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ft-emspec.cc:18:23>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 74": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 67"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-emspec.cc:18:30",
+      "LDC": {"ptr": "FunctionDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:18:36",
+      "Name": "\"f\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "2",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ft-emspec.cc:18:30>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 86"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 85"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 94": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "syntax": "\"struct S<int>\""
+    },
+    "ReturnStmt 47": {},
+    "ReturnStmt 63": {},
+    "ReturnStmt 76": {},
+    "SubstTemplateTypeParmType 36": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 44": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 29"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 103": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 104"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 104"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 104": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 104"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateSpecializationType 42": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 72": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 94"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:5:17",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:5:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 30": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 56": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 58"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-emspec.cc:12:17",
+      "LocStart": "in/src/ct-cont-ft-emspec.cc:12:11",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 92"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 31": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 30"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 57": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 56"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 88": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 92": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Keyword",
+      "NNS",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ft-emspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "FTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 265,
+        "y": 10
+      }],
+      "end": {"entityRef": 8},
+      "label": "Specializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 515,
+          "y": 185
+        },
+        {
+          "x": 285,
+          "y": 250
+        }
+      ],
+      "end": {"entityRef": 5},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TdD",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "FTD",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "RD::Prev",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Cmn",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "TdD",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "FTD",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "Body",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 742,
+        "y": 236
+      }],
+      "end": {"entityRef": 16},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "Function",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Template",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "FTSI",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "Body",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 685,
+        "y": 400
+      }],
+      "end": {"entityRef": 10},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "RD::Prev",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "Body",
+      "start": {"entityRef": 19}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 345,
+          "y": 540
+        },
+        {
+          "x": 510,
+          "y": 555
+        },
+        {
+          "x": 695,
+          "y": 495
+        }
+      ],
+      "end": {"entityRef": 17},
+      "label": "MemberDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 21}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 21},
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "RD::Prev",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "RD::Prev",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "Cmn",
+      "start": {"entityRef": 5}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 564,
+    "w": 959
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-emspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ef6437fd047f75c6e755f2e195268e6a8041afc
GIT binary patch
literal 30387
zcmZ6zdpy(s8$axPmgpd7krb6vlEY96p(G(Wms3uY(=e7pDTE{>Oi?N4oaQuhNaVCA
zG-5+cPFrCchWj->-}`s}?){O6_ujA5b$DLS>$+Zwzkbb#pGTC3iHV8-it(izOiZj8
zCMK4%TpZxZ5CN&q#3UjUe)Cq40o2#m%`b?FDKuvZl6YgRD+7~%!*^V!abLmXwF- at N
z1s0b$9_GW at z2iJ5O@8vv8D>PtX>zB1#gP6y_JK6K%kVkSbwjOJzc`OLUWom(U3Tp*
zY2l63>jTiZA1<Ow*Uc}x%opmK{Fv+{6=lBv^Z;%AH_t1<eWk at T^`Dne=#~7ZPEK*$
zXJ5VTHeN at FD45iL>F~C1;5x8#?vkaPZEwgIlTphvFFF!;n)x2IVBPAxR<(9Iiypge
z4k+rGISD+jlcJqo_ at jC(w)2F;=Qqz4cHW)xC)Ppjy{Fij6JVZqXQZx}x4uJ|*K^A#
zS^1ePr8x{jA`lng7V!BbDYi|E{T)n?b}nDoANi<F`qhVa(!56S+|S$QXq(3kl!C%I
zwv71`w?7|vYnFd9rXhYuxGkOZ<ISZ0O!;+O4T3(Gu1}ZJMt#!2Xh&NYG;;aJ#@wsq
zRDUiUs`(4+vFhz&`2O;7*V*GQyx~D)7B8cbor`I!RI8&mM?3YU)WpSKUwJ*ZHMQz{
zZc{gR%gY$8b?n}l?~y>~)cbtCaQ*r3A`9W(C$?7dh at L_nmRiAu51l!VR`I>@X<~Vj
z<9AnwDb!xep#Xna=W(L{^9_qzm&j4(M%H#`JYVh<73jSgJrZe}(sr_|df-<!p?|YU
z!NY=J?p!*b2h%+`U8HmUr6H$DSju4IlRE>-3CiEpi<uq{Ma8{2RDVy2Nsvn-nOfGL
zg4nrxs^?bwB;suL<u_AW_B3c(6klR=-)$qFq*>1?c=S%@<9i8hpQ;a|v30Gud}Fy&
zkJnp$8^zD)9g#!$KYZKr`a`4Ul-k2P1#)v{E6j7!u{pKeU8hfmJFlD!ulW1U=kj~k
z>nh`G4-;$;E4bTy9p!r5BocJw>f!i+i+$NcMW-Cbj%D7mKAou(BJT0+mT+grrlr4*
ziN{G8#2VhN`l_$s^7#%2g^+mHq|(yk9tC3AGQIgXAv{o-cjbX!e<&k4vfL|d?G8eO
zRQrajj%QJp9?M(SCeGVAB>BZ~WkVNzU3zR2Ics044-jreoShRuzbw17CfQeJL8pxA
zSm!W5I6Zp!N`kK=IoUynbQu0Lyx^%4H#at7{v#sv at g2Rji!vp;h<sLa?r$GE at 3j#g
zY;R^ulydI4R>f9oL~E><+|i%${=-_(i3kXG>8GX_{mgLJt1r5wV7(x^CAs-^2tt99
zZal)*-=hY#&ugxq%=_XP+Vkhv!{j&3>3OOvr_vX+&h at s=X@<B2b3L*$etB5G_0(zT
z>bhgtfm20k-+a-9RP~on(uxtaPl(I{;`>VW+4N(ldj*QQR5ttsUUqc1Pl{hHo;Hws
z%8$Mti03W%mKWMeLpbJg7^@n54-aW(N69>Bepp<8^Uc~{^D?jgmW~(M(`;s=Q2Mt-
zk~#4NW$=Xc2CIE&)a(<_yPgQ4N4LHrpSzRj{t5Au<3sm!<W5h1r-`GoI_DBoqAuT@
zN`Ck+%;YzAO6!W+;dVuxl_`;J%pj?q=ZApg>lbUAU<^+4WQ&uDW!2`)M~O$={?79U
zHfNx}i1_OJ#ebS#xjQJF4Eh_cxuU_VXT0^SH(1&8rFU6b*(CGxP31LxuaBAYzxxxF
zhP>1ZZjy%7hYxi>ePTNk7cZ|>>;-Q>qwds at xuslctzlYIUiSKxUtP|tYabO*m}aY@
z%ikPJZOUqM-i5NnUJy~1J2-IsvwQpNQEE(-mmDl|zRw`ll!u9W`^Ja5?$?`W?m6xf
zUaFzZN{9NbPv6$EJ;Tkv95;BFDBaR0K(TQ<gg?2B2zaWV- at rP^?sBfsYvDNA?=Mq{
zvmTG7@=HAJUfHv&DCG;3_$QJ_#b4y!H?I%<#Aftf6FYSx>BRL at sv1Glr(;&f^MVq}
z>15tTrT08@{=L at F_CK1#GONW>+ZmtJ at W=o3aGOzPu5JkR3H^M&c<s0W%+pzK!>&oO
zF8*~TELS=vrTuR!kFE^oX|tJcDQPcGRj^DpJ^ISD`j`{Wr*~D*LFl+Dd-pYg{z(i>
zc~S7a{LU9672P}e+5-FaIpqs<PD?yGn&1*#@FVg27r9s8rs}xIJCU9uov$mK>@Hn7
zY9;jI4%^ojYYpR$xs^MJ+WE at D!S8AWl&ebP=SzVXYu%n^6sdK!sNM7}C9O)pqe?G6
zBTeuXEEQ1h4RM%m2{@XCwS6wNSqrj&<V*Jp#2Li&vAj+=^`$76d2M(^R1hO$ZMtb=
zcJ8T2{Glh|#OIw%nO^2$Ls37FED9oB)L?U$8+Qv&y~@^({vyxh+Iu_doA8lOD6To_
ztSH;0_ihdNu%jIZzIB+mT~xY%wt(fVcN$6FK=o{XdeJh=g|(`mdCYp`<C(?jk!Mc)
zRr`7V_4!}*e`DB!Js+DR7P7CD%Xlky+&C~|(Mc-nZeefg&Hp2#U+5IQlBWHj-*xfw
zkqcj|iv)UWRxeap(hKi#(ad9$m8DXWm62u1&t#ZIN|~crGycYu{Py^>uYFj2JVZT!
zZ?Hti?8=Nw_elXuldxOMx4UEieo3>E`ckz))0{6T{Nl-T#JH?Nkq377rh0<nM~iOV
zN#7HhiEJNM#m8SCd32yMs`QU&CBEdlMr2^Yh9T;)mc^L at S(QdI_U5 at a-nIG8L1`r)
zU%PzyBz&AXYv=M@;Sa>G_cvP8{51-!t{qm3;m(&#-g?MnX}L0QnD$+jRrB=s5r6cK
zEmOCO<J=vkp;IlS8&*x#j`q_--Z$qL&b{w)PoL at ja4L{hA+hpS!IxIk*NVzX%i+A#
zHVb?GWCY<cia3Yo)idNi<(Vp7)|-CAzkWl{Hanh$UF*d832W55%4rdu!36W$eBEAO
z?r<)lY^~+rd5U3%lY2ycj9Ab4mY)y|yy at r|G&=g-8u6%RF2#v|UgC#zheeg>+l2?t
z>L+Rf)kXq0zb^l(EoQ+cbH_2|uZyz=um71 at Xixv}H6fYWHl`m}92^x<CUIOc=5KFE
zw{8w<?m8BA_f?}wp>2{`XxAE=z2LRuAw5#K)YmdpsMd`e<fAj*C6_`{gi1zOAF6~+
z$4Yk^e!kwJ*kN_&y5uFIMevE^8rfWOug{(pXY#%{w$=1+`u&3!r?}o2{<$Mt!lbY3
zW~xoT0ad^A$zH^h#m%1O#3!0p_2SRQt?ccKhXQQSwt at NsYsNj2H#$zfqkI%h8>uWf
z%M#PRVmtv4oGH$mI2p$h_2mA>t!rD!x5Llzk9^~67xJp=z9(gqZRLHM_ekzyF1m4)
zdNB$ovj4Y5XtLkmCg!{KCU>1X1p5M}KXD$E{KCb|W>E3oFP%EEB{d-&)L?85-N*IH
z&p$J2v;BnQouGTKk{y$5QV$p%)%7#7Y?C??{#i7bJNa+9Wl*f?eWk*`gI+)1F)P}O
z^j}*|LF3kbv=g^%Z#~i9fBGFF`tnNp<tD`!)VCLe>wE9XRArz1_ugN_Qg->t#SdML
z at 3!&?{QB})Uy at 9vrxv+J*AM79aF6A`v_s%?>g*Z at K1<e?-B at zj_j}}p;|%0t>9Zoi
zX2p89`s4zBaZ3}w_*{#j+bs2R^3_Q8!D&I`FCpwVI0bskPeh&z`LX%=cj~7&9o4ts
z2PEwC;Q&$LTTpi4H!a<M($czV?|$b8zI936>O58^x;3X~p;Lc$Zna7;@2=%JL+%93
z>yIYWj^>8?ajy0)$09H$=rOlT_nL(p%QBTFtO)Y=%2dn|E7T90RTYNIM9W-l=yA74
z{dhNlqTjWCr)}iZmA#F*=3gCkEQ%pjihEp>_lcLez$Th03t?05^za%`L^WN17(Qi^
ztQl6AlfM4jWcz&Xq3(^TQ}dR`uX_FR_qF#wyw-A6;8I)q=+}$&*X7M#tv4mxzHaRO
zHkQc!Bdd4j)dTfe8K*y$A0maUTAW0UIN=Y*h2dYX@>cLb*oH{T5eZ?RR^RE*2Mja+
zh(GR{(Oo at 97rcIU!|>|c^vxR`js(@Yb=K{JDZesueAkM7ClRuP#M7*b+Ck22-{xMZ
zdF2F*zK`_(;%xbR>u=Z;N5gX6@&4nG#Fl0)^hrC9Bo9lLY0Cs&v4aV9xlg0DL`f!^
z{s{%js!}Nv4sMP4GRC8g0>zKaX3PRZR1WlJDyRg0eAOGtB8bYqn&cPX?bKN)6{2_0
z4Ryk@^O$}_ZC3%VpI1}#k87_IH}6&RyYIi>=6mTqF?d?0F_DlZ-<M%{@^%0XZSN_T
zbFs6V=g(Wp)X&DkjMxjc2Z~G189F{H{cN;#VEiiKBeFp3`LKIxhNh>r>`<NHiIPZ1
zjFsy2v1I$K)1xwv%aBJ+KL&R8^wzh%+En*`ZvnG&48)AT8tD$7X>Y0Za(32Z<CBym
z)jFWu(POW?g&v_U@(QQtUW#Tr73N=eTjG3e-$vZ<D>jqvf4&3<Bb8w}*O}xqn15Pt
zh%W^y0ybOY at udgCukA1o>)bM$OCM}suyIJXh(h2)x$Bi(Bf|ZQgbr=6SF4R3sJhr>
zFJNYJYv?=$Q&NllaqXyzBT1l2y8Qj9GsWe5BK|}3^w9Cz{$A;^M+QI9*V8h}n9s=t
z2YUQ{^*N^H at Wq2WNr}{g^~n0g$W`{g^GkB)=Y2TXDoU&sSOTA`7iC=+)Dh4tPwO~U
zz at 4<cesl+>^6Ib5g-?9*x-YsGWAkVu%u_eS0*^%8r20Yc2ARfY_OoCG%wtdDDDA^Y
zP48qOA??YI?{`VMx8J_y^1L{rIHSB!aNdx4gXQ+eiaQ*4n>f#~ia{#~0&GtmOS;PS
zsa}acd6WH;BbDPJQ`~pqXrV!8^LVVPG523}mRatcQFUgnmD{D)`FNewuj}1si(XUY
zV)@v&Rpl9am>-+}#_;S-Un7EYK=BQEjXv$5okJ!S7Fvi*7y574w}+EU3Y!X|FLtUw
zX1$gX8YsA(y&k13bQtxL?9V@&?y0?&^WFKydLLp{!Dfd07ilU&xbwN5v%PkQoSvQ4
zi^+>I%T;2_U)iZb at yOa9v+lmP^+(Qr$$@>+H!$pZ{WSe?zvq38jDd?VF>m+kIs?;E
zfqieFqSb-3rtiy)-Tk%RZL;xMKn5aN+|K;o*wjqF{rl~c`h3lIpB;|BKmX|S!H*FK
zGxJg^S3hJ9u4d38!@s^XhkTuSJO1vh)zKnvR{_Mnc?IM8nEEe`DxHh5JN-XX%O_tv
zIJNn at ENbQ|vky=BC$%k0)RiOeLazEHOgX^1uiYDzOP+4WR<O-pQF+7Hvz_Vso@;LE
z9p%Qt$#<$- at 2m@#IF3U^e@|cex1pud_GPWvbiB;SB6i{XH&gQLL}kb0ij$l!F~tfm
zy)VrB9D2JRG8M}l2<dvY_RQh9>OYq;jTx6Q&lLV&oU9(X2T!n8jB{Uw99wXUR;RI_
zsNwf~w@;^G at ck0cYut%qZ>IPm2mWJ?McOAJM9&n1zM4TOYgNC_t?YkAKG)4}l-UWi
z7hNkQL7jg*|L}J7Fbfu^KyIk?)p$L!qGE*Pelw+O@}b&U_DbLN{#sF<01uw~lUGN+
zXX<E7<>=IZ at VDSPufgeuF7_C6^f)R)^!4P|4!Sm&9a`A`@zfJa^DXVsu{Zv<;9n6@
z+aI*|`Dlp%b~nw at Y#8p_;e7OEmm)DjUfBrVH>TkCzXnOUl&sRwUeETsXA7sZI?wC4
z*AhR8stnKk;}`sbJSXpW5`D7q>y->n&3>0FA=Qhep9(%Xq!)^bb^EtT_-b`<Q*E)S
zJ)3_e4;jt&wZAzp;>G&WbSg*A<%>n%M#mMStN8^h3JZR3?tLP&B%0u3e(p1jJ7TCM
zU`Tgyd0LWxy>Ea1 at -yjJS<a+it<Q4aJIRHd@@HZ)<vqGtXmW?E^i!rpK^b{cKJ<yu
zWQ!y}!q at EndTQcj^79uDohef72UOE-ZAUk%Mt at Y94SoHyU|wcL_E~c6HR3zj8FuMe
zfYgD}Ur7a}Dn~T+BnH-$U9YLb-fON8H+8+SzS8kXIZuW6pP<BxHvLOCWUr|PZdT+!
z7k1F8F5u4jE3q&9(MskOnGc^YxmBHMzM=Vc;H at HGMx`RcKX&GxRQgMKYy0<45_lZ0
zMzb^J<~Zi0Nej^Lbg4qfXLUcnx%GBZYGQSZg)2nzbz}tV*bmbyUlxiK%`$u5&#UfB
zwSJbktT8X5(4+ri!HihpJkA?p-~Ty<FjVROXZ%DHUI(vd`t6Qr(%^X>XjU7MtvS8v
z<)OSo8Zo6NPj7HeoucubI#inw3lUEf#2S0b$-gi=N9!^FYMF9qAqP<}&}EuN6R27G
zu6hjfZgIYp=^nqvO&8uA6YV$TPs|A3jqC=#weAy4foabTj>tdsIvYRh?AHIi@%s_u
zNU6Zye=>G)4^<^$XNEp~u2N`lNO;udkW9%Miht0^(j#CB6Q_POp=p?=<ZiJ|W$=uI
z#(eg at IVG)O`YSF=e)+Qe)UZ at Sozk%<V<$K_d|%Y{UA^L0#eW|a-xwBicH&q|pObY|
zVCqSc?+w11etss&D4F1ogbI1%>8k+|4x$e-rk9?;D^5;@6o2k}pk3nYGn^(HFfJ}?
z$eP}`a9vZf1yPdU<aUuIZs;6$Q#pi%1xkDn at tjTXr)q2V#@+M<nXyOG4hhU0W3Eha
zOFrlOM+mlcyv%FLZRqf<{vC4_=z?Bm_q(Z?yknm<xF|L8TYq^d*ElvQGhwjA+yfau
z`jGch5B^>C)P)P7nFDgKOuYLWSA0v=b{%QzGtnHO<Ps$R;Dmgtt4~Gdj<RCOwapOg
z5sB(K)<Vq{?CnOXO;^;!saUOXhXS#?-<<m9?jUk~|GiBkUU7OQzbWwH*=^#6*z7s=
z)bHae4JsF*Jc3~fZ~d&#u;5R9%zm`gaaBIC=cj74sUK3M;@q{VV^8GXyQtS#Xr^f^
z%?={V(phf%U!Bprci!}jmyvu?{t=biVU-WXM%u&5j*XOm|LLnq^2L?XPN(0gwg_hW
zDE+|V;f-^b8lD)0Ur=*2_|$by@$$aLFZC4V{k$LDB9<>azOtg0?tRc_;B0n8|F-*c
z^5J(xuDBd&akj*<^zzgqQgcV-%{7TbE00g^^FpVozb=Unnr$h+;#bb!`kwiAOU31l
z69??pJv}c3N$<Pcj`hqr<$kJPVvO%C*9eX`LMbg-oSfunRTUt|dSG+?>txxFp*;28
z3+=L3?xr~YGC!=-d^26*y~ASz9k#<Qjv+M<P(O=Lb{L8XESz~ImW2CO!v5+U$M<;!
zJC=I8!!!f^-0xPhq8ndc^~!9{x4$PFUAm|EaLDu?^POXvYtEU%!%hXXr)}~N+b){q
zpSi~43v;;OqHROX8ISy~7?R!8)*?EetgzLVdb#~=W at F)}-eqpj?Ilz_=kea^w~9Pb
z{Y!cNnpAeNlUumD4#DwS>3Cw?&mT!sVRw%r_n~>6gs|5e_ZtWOZ3)fbnO=(XsNzMk
zfASXlyc{0wggF?}r(WTWlc*RAovXi~Qy%8*SuHeD*RcIW#rG at 3LGJmQf!~z1#!6n@
z?9YIeM$%teiKkxt(}z;$VX!|ZK4*sv8}$D?va<Bl?ERHeqkpsIK9KOjwQt3bMMnZH
zsw6D~AObN`fm>_0`eknmpyltDuGQJzsrz+Sb at JQ!<Iv4BIiFj)%=1&N8?Rk-x)uY!
z(ESXKjc|<fU=1u7SvV6<<oggna_A(y%opp9{LFrWYCJz5!aI=t;d$Zlna!DOq)PBV
z?8{-r7w*h?c1_pFN5kLIUoD?jqw2MLF^8y^x)c|REgveh#gySL{wkwfS^MX5v8G<J
zYS{L<)0x%%sV_$GccBPQ)?YMKUFQBsNc?+GrAKedgwNwbo=oC<bgzp=9hQR)j2K9<
zTmB<-(tJ8}vYfk*sK8d()MP`29rkBOkB3%mH2)sB`?BFS`tCbVjo-=VZ5+&Sg^Q)U
z8!ea1=S*$66Rg_1t(J?cLxv6g-<XWA^sg`Xr1Tt?ymY4J#K%*)(P<==J5pa2g at 4)I
zI1hVx{nXV?7$^lbOY=P$JfxkM;Hs8z_%EBp#_yaE7*&I&ar>>kY`{okGlv6ev;1L+
zn&E|zN4=dSg|G$A9i_GJaOJF_H{7i36Y6bBe+Zj#&R##RpZ+lz{WPp}&EA_np at 6A5
z={b(A;Sl)>_2CvByKz9crZ%8d;L!mTducAc(!=HSH|3bA6X#7&a_HklYKJUIlZ}*V
z%arep*$cUW;{t?({sR9zlv*ZviEtYd_1gANu at vgHGTkPK6tDaAlj|S8I=e`Fm6}H1
zk!E`IPVIW#;j*ac=|Q1(A$|E2%{OLqY)2i8XW|Z)#yg*Vmal%~l5#lma%N_sFZ<Po
zCzfl?IWPCuYRou)6RyGD&5a*@wXf*m>?*&B_4__~#c{u>hLB at v!h${Ua<<$jpUs%P
z>POT^gYO9I>uCuEOCQ`{c5G3CdC~XFVC2=7!2lWK^R3Z354gC0d^;w5^0}*f-kHI9
zZ?osN4Th#AX0<q0jwjJ_OqY;e0h#EagPt7k`afp=ax*WB-XdF&M1BqMpE_2z<*9n-
z4fpEBb@%GIOUI=73`|<0HJMD!zutctPJpAF|0+NWbr&-aQsk>$Q<j)-FvmKzHYYYG
zx14H^Y^@!s+`P`?>cM=PF6D|#zH6oSYn_S7!R*SV3pYbYm&Ps1rW*ntO{#t1JJYVs
zT36L&_e?WKT7dt2bH=U9hfkVp9Ip7b>}!|rn%?DfEb+mX!KK~Ls{hu^!To}}AKKPR
zD`q$_z%_4&nx%*65Eu^2fokgQy_gb<$5LCBXmT=)4^KO(9QnhOG>;=DPi(I2Eb8jv
zrB35LMEadoEVokw18VV3n^0dVy3l_!GY4R{^Zq>Yjid_yPF at bIj=)HtyHRGgUO-yQ
zDK-;{f5P~*K=(_kky4`mD$x3x9Pj%Kjd5ajS7$>UV1l3R4Lwdbq=>BhxN94^d0%kD
z>KYL=8Y0Q2yYCQCtj=mA($5t!+_j(+0p?lmt8_z*(SPF;36*z3m&@9bed~KCXi%Xe
zVs5y0L020~mkeE$SmUz(S at FTkdMOdLPB^5~{ui8Cz2#@Y_V1Z0<I%oFR(Ae at N5lWA
z&xp#)$TT?FO<{J3dM~B!k$L&L_8!WRdk7jVm<BBW0qF{E1UOTRQWerkhJ|qmHbhpd
z()c<@eWgd8M^@oLfR&$Oz?lcRV^!E_Cm>N4Or-Sc9}RIO8aw7D*SW@)Yi^p>5|-|o
zio53{pboR;Ar=Y3^ubFNw)HP8L&m47B!{XdMi#eaO|Sen#bz|YqMVG|*=gF|9<v|?
zR1 at oAVtEgCtd>!$;jvB%jTey7x7;OuFT&Az#iQ2lxqnhe2$>AYlbT$xg6Fr{>x at Wl
zx?;@#QY%+q at X}+P=A#HaEqyIFIS>Wt;X`Bx{^|eTx92Kj>OXvw(ngvOh;bsDUh$-_
zO$_Y+%||z^O=a%vtu=gnT8v at _PELSf-+U`3Xgm+{K1^>uJt<6k7f?}O1VahmFsfB&
zDKBv2*b@*@uBjoPh$04B&736)({C`-m(LM3c#?|aAhCNQqCUbe+TRXD07=q0G++I#
zQyp6=FX=_&kPp%^@?)zws%j?(L-1VmGCLwlJ~4n4;tJ=$tVU(a_h~xqZCy!?CP!dJ
zII#XtE6jNgSexHDHN(~+{0vv1F*YQ5K5B1GKCqe~O=9dp&;Q;R92Z5{F)@y|iIRJn
zw`fWji6<7awK*ut?&=CNe;@L&ga~7yZ*NiYa@*f4%0?wISXeZ^QCx`(%#Q`r3lyme
zH2uFRX>MdVjJCz$ylV-2-$ovzZ=X~H`-ygPC&Pic3iQwsP!4B_F!o<o5B!Ezs%zCZ
zbZHWLj@*MU*ZJc);#<JcBH8HM8+0Pxo%PQ=a$bb2z3?)*_5kxzD(6uG^;M;Em7vC@
zYCU>c%+wsh`r^i7WG>_wTL}SnBvdAEYv at 2kb>1Q#&P2lQV41d7)Jl<yPMh)DrB>UE
zVLg-v6ons1Lk(zy1p|&#Okqc~LO%%8=FnXWy?Dfhx$+Ss;?dj40c;Wy<x{Q=PT0$b
zi1(DBZ_mf;%;(Zqc1T#s$k{pcVzXknsa at wmoDGEpWZ{Qf(PoK8x5pVB)#iDj-2$Dd
zXT=aQfy)T?Ev!Rg+s(T+5s_>$sUzq-?`Xf7=J4c`ESNa`SiI?Dh!k2wYjOQl{7rSb
zA@#tzeKAUFWlNG)YHZDc$YaF_;gV*K)U~TT%_!Ewv|DjA*#!@F;|1wL(Re|or)@6m
zbmUquW%Y|;H<Eb-S*b>IIJa0&CE*@g*zkEQGymXeS&GIFe37I at a?nj&QBax2+<xCR
z6^C at Dig_dtBK`v>B1K5esvR1nS9;0fw100CthW46JMw}uE%((@Sf(Z>b;PEBy>GRv
z|K&<CkvdLROdW5!6p~tbQ?4#CV%g{66-tCF6=TQJGH~)duu+9 at gi(03M?@K?I2;bE
zLZcyIG9{Wrb3e&8_MV%p=D+aYp{hy0jm;OjeXu}!CaxNk>xu#RqE{g*cW;`^kj6H(
zORh16jyM9xbp2VSiJ7Ix;5*2m#Ci1jhhFHzNCQ0 at 8j3By6!PHl1=!&hD{%t~DvO(}
zeT=EeG?xhxzs!lr^1-H#K(f+Pn&ED>M74^{B at uuJWcZlj&vI<3S4*^0{Gz*jr5Jl%
z0vik$cu3+(6)W9Zo+(F#hl4IOz(ZpRWw;J)yh$))y_e{L!BE$;d{WeC>0N%oGL6OI
zFe7-m2SD7#bqV%g1F8GK$y=0SodAf!jvyYiE@|-PwW`n@(w1yx8tE!a=Yc<q{o|qK
zLR{&~=w?DD7oA0g0~m?a;EGrzKcd`$Xd}~zY3RoTp_D%T3HD$5`wlL^F^j39#vC}N
zb~|v7(>{x;)FX6VR>V~g<(inhOwVUvRW;hsN>4arx9k{TuXC!jT;`tC8b4WF+G)Yh
zgv_uzwH{z!nIa6M(ImsGA3h7~;6r37-2ynJ3j86zunp?%J6`ahU}2_qc%hH!H1O!2
zh-t$kG&gsugG>Vt0>ivEw>ALxz<Z-d)Lw`H_XjWoUh37+9*`DX;>JMqv)O-feSYc}
z3-$r<;QpfmVrJGjEPifZJF@&C9vRlsn-YhwD(uUu5lMO8EMBTzZ_t*N?ym}WD#fd8
z+AZzF7(rzAyvBhWlXdi)8o{Pbkpt6;#LJ#vW(FJ2iyRk0V2&OEo2JR-OT<B_Eu^jp
zXNJsWX~6x%erSs at 6G=<RbfpH84=JRW^PC-^vJe^sDa?t;0_Pt{Zbzn6YNICfx)&qP
z<!LnZGd7z|w|oCo at a5K-1?ob<bbQnDmi=mu^<pvcWj+Qsw-%K7Tlv3zK^E7~JY%IC
zp`VK?ymQ`9oyl;rf(3yMcZY}Hm31RUc3tOgWoTj#WcUzHLo0Ud7^CYB{Fs5QYH3XH
zJ~dMAl6OZ1QIhK%5p^7)DCysuqliRX!%k>}L&=cG1hk}Iwvt$A5`S`YH9v<Q3#53K
z!`P3ZKN4Xfy}dDb+$U>x%)mW?J$(Xj<weNvgP$Y9wsP<e3OQCPYE?v(#>v|pH$0Tg
zIT&$!Hzbrt<5MNS8 at vA=UO at JC8{yF)_=x<(_EYF at 4S!k^P%=mDFF$W6;*@7V-UJ_}
z*jck7FP+?c$0=(j_XvHW_QGqIw}K%av|P<YuRV^ja=C}#!FG8O48P*QfEnZmZo1!Y
zDUo~qnYC*3j3BK~?!^YZA2*7|6GA9i1=PyT<Pz>*fjL>hiP-1RwGx|M2Lq;Z0C<H`
z#IgR*lDp%UNdG^`Omu%z_R|Kda(U9m(3{-DhtRk^|3M~f^r;J$kco at Td@|eyJ*02g
z^DG))g~TCUuxRJ8u@&AJpa$A_P%ggek}qzp)QAu~Oupw1f+O at 19*T{@&mod^HB=YR
z+r3W*2u1FhM8P09#bF6w^)IK<EC|?RCwF(U>02TS1q+$oKfUNr9GDpQfkH_Y9^ZHo
z2Bak}Oeupr at FKDpn?UL;;&PlobcbHRLPLB<C5`*|a-aIyV9WpKMx!DKH5^j59ImP;
z6-fntE at +(eqEtO7yA{fVup>qK-8}{`UGEWf0mcSw6~c`m)%u-@#oM$%IZVpCb$Mgd
z+km$>l7x0OD#u-38UH at N+`}!2T}0Fc7K67w^)xx*CnPa2WYmCiK0Nsy%;ZbSTKYKg
z2=IIcG*K_oN*!U<mCPS3J_v?r&~nr7N3xx==@{UnNknq_bDjv!3uI^&$XNb#aL{lg
ze5S&KTr5ZlqHQ7d9-PJKR#}rhQ at lv+pSrfO$yIBp)ZjGi at Qq~2b{w^UsQeFJJsh!o
z)w*lBahEbeE0~A8*gV8y8U;pvaIs<(Cs7{9E)Sh}3P86&pu_OMtd&la*t$bLv4R>J
zj!l8T2Zl2)g|H#*6isib*ZetE5Llffi;rw4uXHj1aQs0(^zdz?xEomUKlkNn4)^yd
zAneEs&8C;a5qTUKNK}ImB9E_y;Tw(<D~$m^S4?P0#|IN5%7!dQvnxo;Wbf*yU=0Ue
zOzK*Mn)ffs(%iAerC|g%S>txIlUsM2=Ueeq{PC)#x!VjLQwel;Iu4(JA^lnzvz#5c
zi?G8g0R;>o$Z)oskaBo!F3x>bJ9XOk!sb2*2I4FLoZtIlH2&%=-M#0VU9%#QPHCGw
zK+sT=dI`YLGY^U9Gh0JorqJCJgC}(G?1(ksKf^#av4IFX91{Nc3M#HGx%Y}>A0;AW
zv2?9dw$pBWWh{G1bJKa+Qx84k3;=ml3?bW|U^Jm^BAw3MGy(iTcy|^!Grf7{wxC)s
zBfj+iamyWO)aD6A8x-xvh7v)JJ!s13Y=gefthv(<Wq+N_v_6+Jn at i9b>|wAYuy<f6
zVEkMSIs3};3kiz-r=@ux?0{-t6yA&!a at JrKSO1L6vn!cM&0QpB!H{gzU?bBnBhMg5
zc|l-dL;yzI7~Kby;oPXl7CQe5lM>@JD~NxiIyw_-C-Op8B%%CBLe6PZ%6Y?-nkoCW
zlGw)0(fVNuV3n&ANc<dmT!XSb at A5!}eghBHKP!u{VeRIlC6#<?)TZmYNvhEpFFG=!
zkixe?$4mKE<gwdg=PD2Tk~SI!Ff~jIo_+Y<@RorZge-AkaRow at YeYid!}K=A7<~T{
z!$OMmds>8<zAMmtTl<uhwKmK+k`47nV(?W<9zEG7oz^Js>2KKSK(s;w+kkzzbnXI{
zTmv7%rggq#$;t;4jwv9%qtfz6*csaiDn~joF|6hc^A9!uExH-6k7Al^P4{I2Dt*8A
z at h6ul2iAY_(UwG-9flgm;oGf%FZ_p~_>&sBwht0n{C?*kpc*$053Xo83RgDR1RbV>
zJ{7>HR;A*`_z7N&{!1X-T$bj7XE}fVCi%&;V3>~3tp(tY>|Y_B*ZH%dad_nVX8_^G
zSl}+~7zaqzfTSzHD8(v>kt5X=p6qVaU$&xs_h;a-1A)iGZc&<Cs~{=8_jI)p;H`L1
zJsNupI44PQ5+GN?-|iYm1{S3vcLPnU5 at 7QHL3h(ZFgy6k2&#a~xBxB#6J at g5@jZx;
z4MeE>0H6Z#Y%f<hhc$Q49WNlcF>A2&8sU(oD*!Wrl?<$abc&Hkpjf?HOosl#gB+~*
zVaa~QGM4_AaW>+Lj4+QQZx&u-GiU7SF4M~o0GP8Ew0QvXgO&fR1N}1;MB_J@#%a|L
zs7F+Jf0Hcr&UV<;7)#7`NCRAf5mf=8S-nnVdg*x?OA?v8EM39gh8s!W)D%;N-1Y+~
z|DQdyD*19?N;NT7=r;q7vtC?DzZxsiAjbqTl##|1vp6udTq at qBT5i^`1AEWVzh at 1r
zg%BS6KnB2Zb_p5e&tKPJ*5-W(JMQwbmn(2}y8A509x3Q0Xz*i1B}xR(2_RBt>5i#O
z>+o!Je2L6vd>gddY}slNpc&(I3|JUDh$z3^v&*Bn=&B5Qxf>k-l7L@<;Clb>UmvfC
zR0Zzj=V^{%t at vLYn(1-nDLa#5__Jo$rFVBW&W6A~UvsT&vyLEo(Q>VtjfLLXLZ0l-
zvwKVqO!;H{9L&0vB*I5&g1rbn_xvcT at +ky@vD#lIcuo at I(PLa1p>G+PWY4_eAyR20
z{vc$h7XUtE&&_;@f}}59gGyO)w-hE8Y##@Oh_sR-;RqXp at 26;J9u|)!M(W7W2vFO#
zd&(*M{wA#^8%}-_Hii>V+q_U&*`8Z_D_F~cs45Uh);-{0MD=VA4>FE)PnxO{JYY0~
z99V$|A;aGbL;=>ZCnvlc1mlsk;aR?Th-_zJNZvd}OG?%~FBb6N+{L5tE%!p{YUkSg
z65MZi!6pX^_{IqyO!4dU4N}kg3Di3 at 2Nfbpn5lemy_Dq^dDDkh8Z$aqW6O*=RG at 13
z8a1U8?YwL8Kq2_kRS at i}l`%D`Iu;g%S-Q2osi=!LK|@vMH4CC(^WIgJx!f3Ktwl}V
z4^{%)`pUq)H`vqjf+ul!-8ZY7RYrN5;UIbx{8Ns__l>Nh6~<O94C*{`@##2ZD+vPM
zOPu`9BH_#2;ec2P4M at Nd*r>Gw`WUC3jb2=>-DZ5mGG9!8_h$lijbRHnIWa&nHv0db
z^34ym=fP9(ThAC_hJ$W>!MB=EgywtU3>PEKP;c`*0*WBpr6Uj=vP$Hck>NepN{CHA
z`*L&u1FGl$4<{Pot&u*mYkdVhQ*(Zw7987wNv>uf at u`jkkvy^J+kpNsB84FBbQh(c
zp?Y(`?~#D}>=`X9Mq~MkuUyPsFmb+iJM{Qi;O}7bT4DjIo6<|5I%9e<W^fSAfp{AB
zA<A#{0K at UyRVD*Xc8LnilxB7RKwm7rOY55r-{UfSKhH0Nm(?hOU%MlJPptL95h+=?
zGNa*)X0K4h%wJIKU?7c6$JMh(5k}5)*8<~;Q|@&L85b}i9jyOc!*uqOH-9fq&0o)_
zw(a8LrId$wCz8|}Pu|)QBe)cNSV(vCnzt`uaa+x;rwsP%ws##1qWJaSxtF({b0H4~
z at Y5xHseuw`$J=Ae_08_~X^aTVaLD4R;~Vnl7B&AlRtu}JR>~UK8KH(Yt}Va^0xtJF
zkN!Rf4Pi4cK$l|lOQ?0li1vZVWJduT$KCOc>NgoA`x#>By1#%-3n)*HiX*VEKeG6%
zq0>ZYOG`5)EHp0H<i!Fng#XasHJd1WFFw#UuTh+p;X({8FvP_F*+PKHJ^XEdR0$`S
zVXb-rHC&ihdhK8^jMk?^h`0ZqrCL&VoRJ4W?7TH9`$+?$n1ThsPtw>6CR8O#AOG55
z)H*=Se^0jK_EUs^mw~hv6JWC;Ay-3#ZD<Z#%C0l&pd{Er5_yu_Iw}7<5~It~+O;r&
zt<gsXI6*oOKEhith~m`o1}1>dD`Jq0bh2IW)8a`~183M{O^jl*07y*lk?q)@4XC;j
zs3jh?9zO$>eo`p(7-vS at ITwweYp4K03Z=^JQ3*jkS9R+VVJA<#sY~ZB&tIS$9xW0+
zR$K+~=(i2p4PEA8)_X!U3_qF at CuP$H3K&LtVj>|qr at wc*V0SGzpPxXz=bidb*Sk$i
z0K0iLeoh2}kwv$t>1K*7>x?#LFD)%eQ24 at u7(t|JQu!&4t7!)|;?W8<$CmHb9RODV
zLC!%N;Ck&tyjd-=>;Fxk0 at -fJx_R@DGcvGvKQ>HnFBl4MBaILDF`^Q~K6W!Y2GTh?
z-OuYwyIXb^5To5_1C~S|M5rf(QVk0iUi>dfBM9GA25<Zi*qpAnf>dDqaf{MG_9RT*
z6*c^K>1(C<*5b0jL4;fBvL-T><bkyyX)=_juH{h3$lc}!AQ<$*f^KATpgAri3ZF`f
z!Y55qPq_ at 7S@3e#)mS*9I(9o!(qmiKqtidcXD_jJBWP42q3%gz1vP<i)c7drL`6-r
zcHq`zucppIpYH`?*I(CUHCD_(@Y_}rD}Zy>PCi<0u$lIY$!`4Y%8p<K=Wea+gAl at Q
ze|p$>)l%;{S!a=Tdy?jpoax1ds;z3tQ%}XQi-7);WAWK-&{}yCSI9PfN9<{`ZXm}^
zqrEzvXNr5sSOMgREU}9HS81fH<U`jtl6&d?JQDACy=XLK6 at 7{=ZwpNocMXp<dXP5o
zn3EAnNb5;$W^XykBMVM>nz6ORh|0V~gnKn#>K0Zj&m%8>QFgP1X>X!&0NAdu-{=BY
zE7 at m1M7<o?6J^o;V3HU-i}cgBseNSa0wU^Pgmq5AunH>t>s~hBAPQpGEohc1xw(=E
z3(5oU>+&E{q&+!yd7Zs$v)Ae-^pO)}R}OPLw7%6!>)!R!C`^J6R&iD;rI#I{MK=t`
zw30xr#;C>j3$Zc~0cU0qcZR~x3LxMI<gMJ`ev#!GV}V0jn5^Fx=&>I0X&+kBs=H0@
zN)@R3iBfV9kuy1X<L9LVM+dS3LxpMTpv(e%yEG1;JA$0q>R(&L58N<PdWiSrVC4Ef
zSR*_{(cCp at e82~rW!5va*~J81&9U1X1rb3Q!B;}{^d0_+#o#$xNq*kzm4+S*T3c)W
z1vRdg9rtf8LEY;;I&s~BNXV>WS>j at B{#<oJx7<)sS>8mTmbV1eM+6kC4dXzwfKtRj
zL|%?o=z4I&e8VgL4_0GN%$UXw${DwWYl3yM^s at 7vyN;p9zY09SjjSyJ5}7WexO at -z
z7J?t2()RsnKtD$xGQguBj~g8>E>A=@u|UXUul@}*e38L`rht2v_i^n<?2I_Ua6BkC
zD0zWm?tIM$BZ_TmP^r9Zc&$;TR;nEZ?J0vE8o8`aPj>yD_g8z>QT9;00Ib{~-t!Dy
zG=ss at 8HI~SSzqByCGyd?1ay*^OgeIgCIJ1L>CeH;KV6gUiE$gbST35NvjFR|mrdmq
zgxGE<&MS~jgFvkf&7h<&#P+T5IB{caPdsTcRd2G&kh{@8w|`<nu3e!UB8Dg~OGHlA
zLxK&CE7FS|%a^{HvRTz)uzo;DTS2;jaA+&;{ne at PAqTgT-FH~0iU_-0 at 6kefx^U+h
zZ}1QucW5Ncy$rS6hS{sD1O8V2az$J97^*S{mb)UBTim$OFlVa`AI`x~XcBSja|3Gx
zBVuv(3In)+kQp^W&hQK6y_6gYLv2vf9lCM8xDq18Y<*7q{!Fk1x*r<yGjKt?+F5TD
zZdcO}#m4fHO;^v**a4Z_Rnq1&^?P9{-h;uDx|cwn&6v~;!A7^{*PJ27mM^qLGFnB9
zWTO}L5TC{Uh89LxXz-Vk**&EbALfwlm15C%RkLdSNU?fv*`2HHNCx}gEn*N*$BK!$
zZ<fDaXWvZ;{(H!ZD6Y(>xVHD5O1z(eUY%QkY(gcR&c!a^5Vvh_z?1p+T-jlgDsVmu
z at G}DJPX*D|`+RbVP1Y6r?^UG}YpO=wVYPX(&z4T|?tv~WYS&^iTS2Y!tHsa7tCzly
zI=Wx|nZ<-xI~#To<jDUgW7(IXG^Q4Q_Q!eFm{Q+MZ_YH9I at 0>~!IP22CNwn5u{}t*
z&5x;S6|DnZ3od$X_)Qziax%rU{|Lpt#(mBc3NzQ-dyNHvGZ5L;7Lp%uc;Zl*R-A1+
zvZ|A5FL?rIz!LQ^RLz*>IVgT}eS2{L<AM8NbRZx%Jsyl3_sqpBf{0it#fXbSSKNBC
za%CZ}hP3`^yY_t227*X=^#sX`!L+RLdCBH^Z($0F8k-2$JcfC)6EB<pf{grQ$B4Fo
zZjJfeI=~5}Bra>0f5$jU(j?00eIcS05ICMZL9%1;&7ufwHycCo>=+#pMEN$lMG16q
z`eN{19&5Wfhja$eouD9u10f5+WQDZ at rf@dwFvIb8`JaqTK4&}0c6O%flC>3Co2O(z
zRRzp-U=lXtKRW+r1je$lIA~0OMbcHPO8PEU3(%XnU*&Lu(HgOMMb*Pb!!pgh#xeM<
z>C7h-?-K_E_Y9GAkmg$|r(M|$U4>$X%lg_#16r-6!3eee*$%=Cx(XQJC4%rV##&;n
zP`01>&ul&=opLoyE+8JM!gB&804oJ)9K%>vka!cC#Q4bKj>iL(2!T<w5sWw8^Gect
z^5&8xEy-`%rz;qWCC>q3!;APM`uZcSR2L;U?npvls5Pn|ExpImH<4CQ!GWsDkxD&=
zw3osW1y at SLQGyc5zj!esCm3NF$h3+&#yXl#-0;jBBJl5aT;vdUz?@R*i}m6C(2o00
z_3vG--<9~z&YIwp$ek at 4=pPG#`GH!D-p&GCc5`dOg9DM${9UWLV98?=7UYzQSFQBD
ze`U|Z$2kyihC{oY8w<qVUj;cnWnZ2zqyOpEP7=KC=41nHoDa06Eon9%_DN~+ad$d|
zNvk`ymz!UU#pAqJmz!tL#5yG{F2E78q|1n6o at b>G at l}q$svN(i-hIiAQNzYF2J9L#
zJ0{JUft^W<Ta(leHe{a<epX6;-f)loW4z&NlNu~d19wILj3?zN-M_MW?Z0xuIr1jk
zEgi8teFPg>xH-*XVC;Mqisnbo-s*FwE+?4EfVc?|*%9Fg3LJfLcq;>6z$3MJ5gvKv
zshXIn=UiY#pt`-rWBKwrq{o=PwL?PonXwc)jqTK+t#C+ew;C^^m@<^TWNQ!N15*ch
zePSOFjwsdra+xksE$)`n);E`6O<)Lpq1P||mp+zGqF9jF4DnGxL`sHjxM{x9E=2?8
z0*t!xH0b_G=)~4xA1DrUY)?$!D0bc}wY7Mbc4SRr3gte>Tin*_>J+1@#0Kgo9<;6R
zWz4(f3L#oj+k$P14<(qQEvvlgFhLr at -A!1%=J6U$6u<oVF_`_oAq>6<69aL6nbHQG
z-2`bYI}tZM4}qaq3V~e!a{6D%h5wib*rjX>JVg8uSqv9qE>zLI6}30dUOpnWxW4qY
zt%;Xz?eoBOEcKy{)h07$q=i(@d9b%v@#>z%oCZa%&sUAUzH-N|mx`<EXr*Y{eMtu|
zdJ{&%`+FlsYJTjtW7C(y(tNNU+#gj}(u~r)*MMn(+L7#7AO*#+?f-%J at VZ0Y@nt))
zGotQ$rE5l64#<A5I1b+0i`BapPC)JCRI4^&n`Vuu!5M6xnLqm?KsVU6wq`@8tgf~k
zxy=j`4Tj`5r5V#mHru1IL!GLu2oH(x``qgOp+v48=3>0E8*vEKNwQe<6Eo5%6<>K}
zzCV0H#yb<Giu0g|orJGKOaEcbVl)N~AOX4sS6He>TDyb-{+GEiLNMutTZ1Y--aU_W
za!2qP_0+UA8WGy@&!fP*9D5${Mv?k`hEk&-z1$7hV9Cf6bi<6PB9?ju<&qe at NJRrL
zy&r(8PF~fBhF(Ki0TXcW|830%ODZK$`C^KC4&uyz2bLnSy;M98=w|-MT^RL0@}>e!
z;-t}<|E#2bDU&@wh5v>Vo&s at Q)o(9aFVyCTHwW~S5?tnX319kB)}E?&@fKe;(d=_4
z-}=kMgbx;iZc6p7Wt91JH~bcws)t`o^iguYR@<Xf_{bDT&f#^r20gmrn>taX9!jHO
ziR2sE;2~DkZ%}Ji)sq9!vzpNxGbHJ at kmATaO>KnC(pW}DQ3OZ89^r>W+%q;6emZT9
zS!F_4rg6aR(#K@|2CKJoVu5G&j&iQ{Bk_9W7&!hm8sR~bLc=(;N=f38DAD{XqRT;P
zqwr#Qw>WNuN-e+)fmR}B35NhVZzP?+Azwa?q4L?nY5 at hKjhp!FVo7@&#tjp at rDXY<
z%lYJN_MTHe+#Nl-GugX_KN<Fnss+^*jZ|%*dSc)mP$_hVA14NPs*oT|V_~F|ppGDk
zmxq0nQtbIO|FU1YacxIqmEO<v0SG%+Tl5cmAM!C58!G&4F+8n24nKh;jkQCM4RqK(
z=L4g+BpEQHM%z+c-L^o7Sr;PL!rk>?Ke9z}!@$Y_6Op2!0UirouL-xb!++%)OJbUz
z3wsi?Cc<UI2cO_Z6kw)7l`y69SqvV|Ja0y3Zy{&|L at KM1kT)xelAksSKWgObqC}K=
z*_D!9QOt-DrkkK8$R~ceH82=7kD8ZGykLanR?^itM^Fzb24sDWK6|td6b7iX;EoEs
zRFTjq`lXeG2t*ixo=WoKTn?Tq%BFXn9h2P-b=@)`H|o)l{Ae$$WBB&$5X96z5aQHg
z at eT{Wjj?kB*Qe*unw3c>&by=3wR~_DL{VC47v)#?Pw~F}<MWSlH6PZ&5Pq&lV224t
z-Qth>kocmtv6L6Y4D#3p=)G&uC0l)6pA3Fi5Ze=WzhrPt<^ShO49IjQ#?2vRiplp2
z1H(4oCHD)tNXT`tV5rOMrDfvW02x5eLqs>G6K+AwsXQQw5vFT3!;zhxt>y2MfmQ6m
z3v^i$vU^V^(EF7oC?k1)zEzuJBs-W7?#VFA;1{TDd(~ezcLX`dDR}nP3Sf~W=3cv2
zQo<L|E%KN<1ZGm4)VRHzFugGT#S;g+N5g;m1<JHw4L7j)R`93iHbC9W9GD at d^Bd@@
zcN2T=yE3L?l?Qqa6nAB?RYK;?-;D0r7F)M*#=29UcDT|8ibM at 3P)Fb%W7-M^-jQo&
z#}R;4*`P0BW1YS+lKut*0D$njv?M0GgZ~t2Qy=wq-Cq^IOW7o3+HOYeEd!VqX%>P>
zCu=v9<94vyerhdwyG1ZYas%XqzdA|v%>4^=juNz8h&UJrKky*hX_gk5w9XUzznVP$
zBzbsjMSIjzdoVC3`UbhDBvPN`EwB}1Phjk$=odJw`eN984nAS}Nc3Pr0K;J~Q6KMh
zD|Ww*WTsO9YOu8V)Dn@?b6+XqOA at +chiPuZy3)JY2i<5=Ch028m65gKNfYBEzZiuK
zhMxcd+qIU*v63c~SuxaT2kOE9z5w9X0|Ejy74pu*poCG{1Fr(327>2T0|jY5a6V)d
zXe2Y#z<@%=qdx<?tC3V`5EJ`quWjcJoo>bCqn4CjqPv8Fx1C2;Sb-Y|XdOmS>)+`k
zKaK58$>1&n_iioDjs;_W&$vuCWB1}vIN at CO@43a%B>NEpYB~BFPUuo9wd^S->%KD*
z)E at JRtt7FQ4XlcL@{oT3*aL4k+k-U)w_$~?ZM&eQ at 59aEOiGm;^Eia8Tgvw7#xq{n
zjf#Sn0ai?w+p}dpj1gvKKr_kF2K`qsDHFLw{cPesHsGz^m?!v>aZHBpid#`sZP1^I
z!C#~$?L$3{D1$knnP6<(kj|fhO#?@Z(0D0{Z7miI#G46!2mvo&TMSkgvXoV}lTb{Z
z_`_H2bV!O}sw5q7yW#sf?)~|VF)9Lafl&UyZf0T2?7fcB>sRc!VNDmZcR%SXy+I`D
z>wMe-X#GVEIS^2QTOI^024{>QLal(qaF$dSg}41HR<GCBEDt&-WYcOXI`RU30A7l%
z*~X70YTZW4-tuh?sz%*1R|dLz)Q*Hb#>+-!54=uUl>b+6tz<j9X$7%M_5C$eKpqQ^
z3IbP_qF^B<tM;g3Dl4O4y#($%@ME$fUEy{{($&OJ!+t47jB}=yGR4{E_4KbVZJoAh
zC4sWG(X{7m4M;X at KAT|48;1&{7y%$3JxLt{`2=N`bGHI2J~n?P3qqt8xnRL1BnS21
zD}8~8Vo=Sx|J|bUJuVOoUwm3$_uuN{pl-wIZ$v;*)qrKj;Kj}a2W1f6%Pamh23GAj
z(REH1?S`9%u;yC7A2)8x!{LyM!|Rc(^yL>znnF%!6>T9!oVVKZ$FEh#svd&-3Gqmc
zMNKtmXh#m-GX?yu5MXI{3Ub$IC3PWr`!HpSDqk6j?vKS6fa^M!tkoVvP~E8~&6ViM
z{pt*}wl&zy_Xb_$K+rnmrvG~o#J at hwyXyi&-vFrCn5i~)f;%~#tx)WKPYf$q02Hys
zRdyR^sKu?^zYq?L=u$6Xgw*>VWN}~`HAb^+7*}9oo&F=_L!KV|YWF|yIh3mr1Fmce
za$C#K-*Knj%I{pGvoJE`|2^VhbnSo>f>C6}<d--|#(#zEfqnu?C;4R->DA3=j7NC8
zRwyZ+VatE|la9-boEZq56lP+uuE&sTR>Yabum1)%2mXQooM9{cT!a<E&n>Hns`3vW
z?NqdUQa)e_u$*1^K`x`bx-5$$EJ72+<ry-}<Qq9Q0xpQ`q5(7%lfDvJ2CDIpP9yYJ
zLI3TEW!v at q&3=lXlmrZ#)r?QvmY~NtF<tmQy4y~q4wJRphsfEQvs}Fhg9++_?Ea^W
z8#@acMZdr$5jRA!733R%+MGnsA~VT!)c}gUi!O~IvSM at a7PL~9E>96vGJIHVOl`4V
z*vClHvG<`f8BY3Q=ElmY|I8ayZg+DH>M*c10+p+%cv7Pw at 9=LbpLT!7y%|tw*w2T^
z`~GY_f(y2aCUFLz4rLPD-5tJ#DMEy<%Y}f0a)2AWSqOA=JUsTP^zVa7E{*q5D3pEh
z;T2N|(|tBBjILUvQ8L)yst$wa3Pj_3uTOH(lP97=K#I=jru2bm?j4TJFK1?}4*|3g
z1gy;)w4|6Hg4GeaS;?y#wYnOtU<EVTtW>-I>sHC})5Yiak&BPAN_W*P?1>GgNjLP<
zPsKQ}8^9biKtUpkX+PNWF0oA{P#3j5G_r?v-r<Ps0MaAf?;hvnXNs{0T|EHtz=d~v
z4d~0Uvz`rXQPLx23?VU|0}_4jenC7qMo?e-yKXm)3qrB@%r+=*!miMHrJsN~8kxyv
zAKaU(T1or_l!nDf(VM>F45CVoC|xK at 8W>6+sECC#(~}ormurbt?}8anz{1!aOG^t_
z=S(ynw?LPScJlTets>=>T8cr;J!TSKs9WlSeR1pW-<6IaEz-Ckl5O`QjVx=nEkS2v
z!gC$meA!(hmsMF1I2z+7jVwOC4fKYLEb5jYfwmJHkdf)J!=Q!<^d{S$gn2As<Rle|
zA^uwB1D9_JD23#gu>K=q#4qYqKZT5XD<QG?o=MojGagayZeV^#3tjhu!_DCt+y75r
zUmg$T`u;Cli&QFP?L?)LbO=S0&aqYMXhR5DN7fuMF?ov08jhTjFsiAPonaJ>Aw;%m
z5<+97GP2ENnHkNf-}Q{n`F=j%*Z1}F7c<XuKlgn<*L^MT>wR5jb%&oI62hujJ!UcZ
z6N)d`#RFZw{K9qI_oE8|ktk&=iktWocdP{3ZYQNLXqw%^$6&0|0#HZKt?s8ug~RN+
zY(X0=oD(!%mK5gAQQ5{kHg%<!Rqea0-a$N8zURm+Y8hvg*Ex)-3cs6_2oG=9Q at MdW
zpJa5)H~qC0KO90z{@~+;6|~)A6>{>CzFfrETBEx2*ONl;n?xOa2fOX27b;vZ<A!$y
zk^h)a%k<NUe at h9uQN8l7pSFhCzhD=57++!LP0xArZA~#$r0>gnyY-#dV^`7Tz3lcr
zg{?}jV}Aq=xmAWsJu#e559eZyrVp at x3%bQ0`O~ZL<HV~?e?56?IlcBWGn6Bk|6c6U
zPjsoX3mT$xF9j4=6#KA;>4r{Cc<y}LSId?)bFz9YRiTRvbu at QuEH`yJn}Pilg0;To
z@>O6}^s0 at 0E^Gkh&UkaG#UR9g$U|}sRJTr55(5aEa`Ly}ZEVIyc%=GDJ-^f|%sHUz
zB+L19z%{3h(QDKfh0m<RCmR_{KIaMO0Xd68yq6flx}2R&Ee31u59IHQ$-netl!>A!
z-W(G*fN4tJZ8>Lu at -NM#L{Zq6yh{T=d?AYYes8DmyFBswZNR$BudWT6T@?_5{5WnJ
z;9_bK(_2(fsmIBD@*_-=ParRXSJ^g*8!BNjR1~d}a+Ty=JWW$+6@;DG8q;MjBamVh
z?sF3%Vbl4%9VbNJMC9uObR}4cw=?Z}YeQV=tvy;e{%kb71h2 at S$TkE5Ga8fr_R+nu
zbAZ0VfoOx%CIgL!eSj7;dvu&m^J0DGe!rD5*N_pi0_n1;?y<3-o$QcoGN}vt<c5+~
zU^?e^ziw+e)8pm^7B(AGzFqKEP1q5|w6pm*zK3eR5POchjSS*+gn2ndg*jna(<W6d
zb(8gkh3z+4ggCu2jL_HTdY>2%PZ&tsP^OXTy_w|U-RuC|+vY6eG0}K>j|l}0nm}=i
z2-ocQr%b-$UYue0L_Zn-3Xs(#LmhU1;*_aHnO1QJ_x(49eyEf7vr}xg>#v6y##G&_
zuEX+(ws6YDPrqhv!<){*be^LLpUWD(#%bj}$q~k|3##kbGAjG}4PTCs<&F4VPsJAC
zB4DY)p*ns)H><Wd=GrpUn4s#c_}f9}SMbF?<%^4U^1DjVxDm}?qvjK3l%OXT#chG;
zam7_ONB+z=*2Rh&J1y>#^<H(dn2TmZfLY6H2)3!J)KAn2ZV=80WcX5+EQ&;SPNGmJ
z;y0_7ud-B1lQ=NE%5s|kH=h;e5pSb=#xaqk=3JufrSIwQW^wNeHj8{-r7NzXYf<xB
zE{W(1d;?4+TES8idjdUA9%An-(2k8mt<vZg)UkL%3Jx<6j)H+`BMny04hA%unTeJO
zVXG8%fuJ(53?cIFjF3}q%vrEw7uF(LTeK?`mPJ?r%x)`oPUOCC>Y`8xbqb`YinT%H
zREMquk~K7-Q%at-Vq3NTm}B$CdW|?Ow8HHtX7^bl#rea+<Qbti8B!cJX)D#Aua~}?
za*66{6I=Y^pKEkE)w)9RB$49fA6aax_~YB**?H<W;p{lIto^8Mj;-2Ccp8+wAo{OP
zN7VAS_me`A9Okr2;a<(ArNE;6G;jhuNglC8bpW?$uZ0*IG=`2;34Clb^!mR%NwjLg
z$N&**cpIPbqy~j|zt3Suhq@%ufOvMTiA)ExKfu6619c=S2?N;HnR%BPHV#ay8|@}X
zWllKB5#+P at kB#<-!<86q*YnKYfeGTrNu5p}o=&~Oj2wM!=S)}beH&7oEROv|z(7s{
z<pWrbF?}eww||UadNc!)Ni<%$P6Q1-*(b$nB at t|GP|&r3yq%Y9C9QH^EzcaCJ6-;(
zU1>4FqeW<!A8}Xv1J1Ld&8IlT7Z~lCQ4jyyhmkq2&Fcy|oWb;USUDpz_L_wMFcN7f
zeu<9vwb`SOiN*3bsf%xGk1`V?f;@BRhD~`Nl_-{=yf=YNXubI9-{f70U at 3Uvf6)_6
zgx~(_OF+u^N7XNa#s+R4ydd9;3+sJ$h(D1rZL*ANE2gAlCM}{b1D85_qPadX16-Sr
zW`A3a#-Y3eD)0^-y(fkQ=GPS~t7?xi)RGs$YfzRvBTl^ugdh(7)>~rL>iF?osX0u2
zGRezv&v>|kB=sxd#Q!2bW8Vdn4{OI_Xwhft2|o^@uQw-h-7}PPpHKx+_Ti{J<%+KU
zm__g+VLg!>ghdyk9lx4aR<Vp6U)c&HAqU2(mi|Besp_H?h3bp`2Cjm<u;>uVSjd(l
zz_Y+Tv9=I9OuNDyV1{CW=kuc}i-}<g2bP at +T7vRshJ^z`9qcuuf^6XOFk9{GgF;tM
zt$?87$W3sqK{b at zv*cZ6(qonN2XPOYc4Y?W-<c~lP~3K>HyAYA0kf^g$$4|V)y~z`
zrYEx&Q8h7-Qrnt=V)IYk!IB4-Ep`T`)yhcDObNcypGL`FRbGZk+5CKTEAKji3B<~b
z5Ct`^>Z^wLCkQ_M_gSg{=Hhq%ogN;8yUxt}b0Bo$nN}f at Cv6&<#36Y+TNX1}6}Tg%
zp1me_cT$_J*R1Xph#rb%(r_z;4#6jvei=-+e at XAuqvgQy`h1fkcx$T$)lvAV)Gkrz
zEh7vV!o}3-y7s<~n0YM6X_Y}TbDc1Ezl*RC-LW}QB>|e}fnP)kM^i=cL%mRE)XPwm
zGv;R-9uD%<DJ2-NwjF<CzvDN3zsLR?(>x44KB^4j!pN-D?Wx)^c7=|FrgJ-b2`Fdd
zM@@v!blK<d<+-;eo{^HP{#3THsUDX#i?y;hA93D#e<;iAQm0YH(pq*R at DQF`OUB{f
zl<*1`Rf;26#slJCp<R90>U#DMKOe<<_P7D)?%XELp2;1u)15qV>s5gC`(-n~8=s$@
z4_6QlP-+~OQoEqJoDAZ+l1ecm%X0){2kp;O-W(3{wb2cm{TAM<K2%AYOIp#|#ua+^
zJi-VNi<O99_VaOxznjhEIVS57T2W`}y)63`5&^Ru(G}l&jVq4T?$x$`P>?Yd#SE<{
z*gNy+k)Ex`OTPz at 1C<^0_f1#&M0Pp~FnxP=I_j>^PA7dVjA<bn1_hby>XZh-2FjL-
z?A38u9el{X>J1(5ENz1Phbh^$I4nPD*A|USDi8u_a5Q_)vri1tr at n?_s6PyG<dS=o
zWtSnQogH8q>Xl?jbr9J}w^CR<VbSC)V=1CN`se`V#@Q1|*Ejm##ClP(FuL-T at -C{?
zqxpPrLI*3Srzw|@MWz)>zg_m1lG2-U-;psjaMG4jAQ_3Y(i40?zn)X-l)kV-Xj%Lf
ztVIOPab>dQppnGGRJQqta`$-Rmeai7jo=h@&qgZXnZy*wuV1y7p8ga>`cPS>R<R7x
zesrx+vbp8Gi7ji7Nreqw3_|aC3{`FrV?ACXBeZO>m#WMUJTz!z`2Hy`{+w;u4V1CW
zQ{t$EN6sJ*N=;?{^}Fp0_q;b5R}w-6PvMwA at xA58hg!)Rzjnz`iJ>PR6#|Z~9q+sO
z)hKWx$e%S>4_8NMtLx2_A7j4X0oESZlEqvu<nFDj%46Zyy5q!LIZmd^ZiYT~w^DeZ
z@!m{l_HuVXPBLA8KdJ2Eb1jr5N4t^-KDzR~T^~b;`LP9%K4ApeY82!VnEt(}vF;^k
zdE*J;W|@0fILqETb`7Urzj7qOjYbUlU>nxM6WY}W4bN}c9?MfxJ#?|Vy1KQ5Wd~jv
zWwDS at WbM2J3O{Bxdu2i8$g%_K?ZwA1R=D)VEl|<~`b-Sioh;l&(xgw=z=5gQ1LPNZ
z03_Tq%J1e%P at gSl_R1|MI at D^~#OZq-|AM*H!RG88Sjtg(1p&o|4(~*DC9dibvJ?WS
zs#><?(fMb2d#LoPhqF~${UMt*rw-utZhXBUc>(`ub;U1#HXhH)2=nm^T?+(HfZC0)
zcyGj)%%Z!n-qzG9nfkw*hV(SfiNp=`8y7`({@Jd>?SNaW at n*JH#Kds9yRW#`_=y-$
zD5(T83qs4=SzW{y6wsKy1z-X{Ao#phlq-b2xz3%64NwAdMBf8-qm+aRn*X>{K%=F1
z{3MCP5d~Z at u-^yk;>M{)n%{MeUEq1A8y=Pwc3fp91aw4C<xQx2r6*rxC9PB?s5 at zn
zHK})fv0sr<6u73~)Q5(@0%3^RQ>C@*tNw7Zw#%lhM0ke`SL?9)*Zh5%$*K>U{c6$b
zQ1R$jJ_Rsd#}xBhSKfbho7 at pv;^_hkKH3#oC-e>+2lkjBg+)3P>B*pwJc>^Vc>a`;
z!x>iE-W-7oALFQER80t+!Rzc+{c;u~(L<Wgxf#CJy^d{yNATS at lL{8SKY{Zath8NB
z?k=Cu`AFaAI1$x`L_`FOTq-E?+Q%}|f8Ymj**1pe-8Q7SqCJ(+-OR(czCW=K$lYwE
zPimAN0j1l}D#B5d$<_(6nOlxWw1nJl#nf0LCA48l+xLjO7rFbZa<6N?c5!a{8Il8*
zLt;DAr=6VZEL1iVDfzvz%P38EbeK+Tr$M8AhbxuO<>T#%O$HGKy;Br}x^?{d>ZJi0
za+bEC_EJLc4>fs0?T$1st!R7?76N~l at 5{&dntR45Ky6il8x6ZNb886u+>T&L<dUph
zhZyWaek>-Z&i_#xWf~N*8_l+!psoI%Y<Z|+^iC=i$S|rSOhsGEY1KV=p{w8TnKg}l
zz~;+{#N`%A+g at g_BEm$dP%ymo&Nir`iwLw at ebUQ~44>9KSj(SSZ%{5FOg_wbl7}aC
zhHo3afKH7)q%w3<Y25B_kIyxd$fU8_qK78S at im=UOo9ivekeSM172>(I6T+|J*NzV
z>J?ePD&l6*3=@zKR?l8`t;1{a127hpsSP*$Y4b~q?TUfZ$d;gjJ>K-(Smlr`B8%^M
zyT&1IBEzwhl-)f>|7LJ}y&V>x+-A}p1HP(JxS1;DgLwo#;!P#*eTja(Pc8d9R7upj
zeXAw(T+MwmSgDB2xpv+N{xTQ2QaEK0s-6!q$&nA08kCC`9v605%sT|BFg>1VhOh**
z##E7Tc<c;C>G^1&5o*L|T<BmIG>F at VthQvS`d)>=Bhl|e|1&Xg=~=avA&Zc%V<Jah
z?ZDekWu!07^X~o1vz|u`U<8BhC<_8TWvC;6gqBKKz02OK&g;KHh4o9Qnp?;1SK!r;
zcoj#BQI!?Y(~AN*z|8%Os+KJ0>(8~Eg2K)|I-GHG)u4Sn)KM+O2SD#$0?;AgitxCf
zp%RKt0%8e!jE?gYqd+sOqA?4=0x3^y=QPTpVF~&vsY*rYTTZH_o>2X at n4|I`-N8Rz
zbJ%FWwU#~PPh%GCO(sU3WGB`Y50H}ZGjRv}<>ECpIMrjuXo|$6ABJF4A~yW<IleU%
z!S`^IgcCgx&wC^F`L-DoosVBX{bjY2`4AvF1LBD0Ipy$TMI?os!Ql1INkiShuI+IR
z3aPt+FEUsuqo<9B6EsV}f#1t?{PJUuYoYmyRB1D>`*Ad?U%_ARRy%D(l8d at XeosRw
zR$K$YyGxYKuzcNUCehrsi_<UO=krYC6=nZUeq at LQkr$FmwNUwx`e(T^!~(0G+!GsY
z#)2I9jM;Z+LcoHPx#&INs(nrf9*@7K-C;5U#GG|=(l1#|eaca6|F^Cs at iS-S;&n<b
zhOirx at An&D8E+m*B2u$4GsY&H(HXBnti;N(9YHb(9&CsUCtu^~qbNeJ{ilNzX=Bli
zTFPtWgLf^XVlf>$fOs^WgCc*#1W1pn7oa;-GfSJ>4#Co%i&GR22};+JqaV^li_}<^
zmDJc)9<5#*fXPy3C;}XXmsnT61I+{oOr3l7Yr&>gH`+*V!FxdYF?@QW4%MKX{HUU+
zKisYTQ~6)w*NbvO1IsRoWSi%A=A_|k&FKtb$3}94LVQmCV5Ph at i6u;MfGL3wE_$8H
z>ogsH)nsRTJ*ZIFDp~<+{2LTasBAUc7!t8LBqRvRR~JqQCx7+RlCOGYS0!POG=foZ
zGH{W+l at YWSxv$N&b@<+lqXm{|-<#Q at 9p;r$t6QP0Xugpg*8o-V6j|ZqE-n6O!JA(8
z#JTTz>o;F^eN*y}pg^UD=G~hPB%UA$i%F-?Mmcc=ey*uy72RgZ(Y%p8PK>k_$kx86
zzi5<NY)poR1Ac%DKfg~&%V3*R)8_(%!Yv1Jo|jT1ZCBJwQy;kf_VcNc<G{+>K&GoV
zA3L*etg&6aUY^rGJ<u%l<XG$f&*UN*B`h^aTdec04+>+_3H>ANmB`tbl-PeIRZ*zk
zp<i^!?q-xbN9EF?w!NJ}{+IPo++hgNYG(h7AolxSF#k4C?7as(A?j{-L*L*0O98Rm
zo($0DnI}Zzc$?hgy-tZ_ at D8MemaW}TQzqUDfQ)8H)~4rgO3uj2B!wwB4aGUANg)P(
zb7iyF+1zTNZpg}%Ho9A at mhRR-P4^e|P%!nU>cxfsKHk-+!RiVGZLX?bw+365e_5}_
zHLYqVoND&eFHU}zdRAIl0p!EkWL_HlfY85pi-IdXK4Wikncx1Di at 9C<84ull9dkQ+
z{y}4NRo}wZX&2=F`|91v5$T1F^b-E;#yLTdW_<7crBh|`Q+i9khN;|Kgfw<{y34>F
z!MiGxS6hK(`~gU5_h;?Evg)?Vq~-KI)6JdT<M=_|fNbIjyFVn-Q@`9Q-5?*_a4*w4
zU*}uCEE%--$LNq9X9*wf3>{ES>NzIb+sqg2KSBbrGb_A!J$;rBKxxv>o-#LOk{-<*
zAfEBkj41!QbLxzr#px*5(%DDv-gs<EZb(Jf$g|_9ES+pVccXdLZ9)JxrqnZqh;?>_
z-3z;rrykEDr7o-9wO!+L=ANrI^}qYa>m-E*Z%l3goLW(9^ox at 3>PQTJUF%42+o_tz
z*pBNcAKiQXA4z*N20lOeHgb`X>gFTbs)KJe(I=t>0qL?zPc8&?2VZs#E<drkeUx9=
zXK9!=+=gGtkF+E@`!jUOyZRbacZ)V?-)iu?304D%D-0ky!Nu<O-E=LZBF24}C9zX3
zg5>P&e!+Wld$aKa(wc<JqP5+4Y^55n3BEub8~~i{jcE0Akb%dA)<;7{_`kxKS^KlP
zaCWBx%*kN;sruiE*^Re$yW4?xn8Y34d41H4Cf^U;O0pJ>9NLmxkh%o<==DV>H%7|u
zlutPdv!g;gTI#59&PFGQT{?08kFZ!KZSfLig#x#G^bU~5UlTQ9?8<9Rxi8qw!BNaG
z2V~Qu*Z(2Js-VECo&PFqcEL3bj50c2C36Ha7p(xayT)8XZ4(JJyriDa{YZOf?I<M6
zypgmDi&L}(^1&={t=p6pV*JWb&>sY$MhVf*Q6BjENX1#@cKaLvhX0(GMl_XW6wB1|
zRs-{EPsVnay!OEYB}ODZYlYl`^lD at 4X{?gQ*pFx??gg8L?E0TQQ9xxiEXsq%yMHjT
zEN2WOZB&5+r1IxhIEF`B<qljwOqa7NNQU_uiBYj3z<M-+DsQPe`OhcMUS_t$9xyq5
zf@<lt*Ufck1jErLH*`Zm_EZo^@e?9=K$NEt4{akJtn7$!1zV4wHQOjF6a2t!1G(YW
zy9DuZoV%q+^3Zi$V~(mMfk%js-JQ_T(7PnDd-isF3u0G9IHsQZbhVX8<l+nG!R*It
zhOUKM*06+j3?Dt9qOdksZ-{1Q$R>8<sW-^&cdSf_7Yi1iQl$%L6Mg?7$l@{#w(Ow&
z3hY at -`&%dl#G0BXxSU93x81f{AGxag#OCgjRZgHVCS<5Xap3Sk++6LOELFXs=B%WJ
z-xmAxk}rz2`g`5H=yLMP3d#!A^~LYp;Z!xG8ZQG~81SLzNRzCb at Vl*DFiri}dv5pK
zg6;Y8PJl3i+>dSnvC+NeYNTq^U{oLEhs^CTYq4a#Obh`vw~5?fH~y{W&urJ=2GNBX
zzz>m**qG)WrXFz~GdW=XXYaGGliCY=ptEpV!FLLb(*@x8zx8Bb9B5KF*8iwr at Oo74
z?{=4_B6w8Eii9RGZaLB at m#7JeozhLor%;g{i)n_PE#3VFl^_Hwl8&kkpezlOw~_Z~
z*W{D&e?QZo$~GFPt}O<`?QZRq^6yx6>=)7z3n7oogBU4TG^j*9(Midu3v!!F?pA9n
zvRyatlE290jmr7%r~CSUIAmC<^eK<9ueqYjzeQFTUCvk~s>#C2(xIA&+S50DAn52P
z0mW-_YtFq4(34=N9~L%&fD<H<hd3tN_Ok~ecw&IUsw}&geYP!`D`t`6H*<>g8SiJd
zLYSZfW7q1!$kyh%0b)!bTE^&k$Cz?=y~fJ6 at AW%}1 at yq^7}%8mymH$l)OlG&gjf!!
zOgu?2e69akPxXXIQI<*}4ytneO{;~vD%^{?;qjQJqNt(;K at +E<x??r{3UmwTD}AsR
zTaPi=J|Ig4fr{7Rw8E5ErzSXc&omWSjAqS;M#vI2W#s?y{xN+As75rM0+qayNRaI@
zH3x}#DD&o4b_)u}s(IBgz}fOEt_oH_^IRg#+v2+W`JY<+q~HC|_cJe<j7D{gGiNuz
z7+uG<1A_^e#z22jcqjrnzV|}$Tf9!U&*Fv2Ed{2~-n}f`1C|jf04|#tOmBo6&>}YL
z2;esuO(Sb>5e3|SlBFQa*mpQ<hBiKG-+l=Tsu!Le?P at q44#gz<Rw53>`3Qb?#qe}n
z010dk%p5##=31zEz^hM$c8vE2(Ud2~265ev at 95O|7CQpNNc0v!=S)Gzg9^K#%^z$%
znOHyZE3Vx>)Wt%}!Ch5tb}NPI0s7TJ8FUaWQKgwf{g6Q^Z8^e%G$4UFj=!~d4XDz%
zU6-K{@Dxg{&y4wB4sprCbPQh4{Z>z4uVuO?8uYR0(<&1I?Hiwe%j)m%*FGIA`;-}n
z3I#fym!LM at _f<FWdiQz)Bc{Cg3Us&upt?VrN!UZZYY(Rb_1V+czb%Q|SW=}aMAj$1
zb5G(v<ESXD*sBjkhSTx_?|*iv#;tzH{>toGjv%}Mf^?rth?<x48E_d<8u;{C-FB7n
zN^BAr+jFdU&nwXjd-Aky0RSzaBl*U8M)wp%JGCv4(>g5NCyq2K_?71q(L*YlhQW3u
z`r{fn3Z<4Nd at pohh&NUt*bY}=NA%gE2cZaCRkUbcu~~6k>}W-#cI*1N$v=3hhhO?H
z%rea2HMZUDhSCX%`NzB&d)?9IonN$LPbKO|Q}K1+bVL^?v&VTw&jGf$s;sk~&wv=^
z&Zab`hdd86$b0+(jP+12FQVt at C;W^Mp=D1@=%~*Xfl?UcVK`1|YnYc3U-Eiu97~0$
zFKaRMEl<!)pUaO4;Z$!BR at IRbR8ZbqYJ#q at FhAEF(+4d*GIHCWgAi;mtePNRJ&o=6
zop6O?6FL$CB>&C8ltpx>83R)VH7TASdVr+US}-I{bpn|fctTIGHJe|+^nQwa>BAM!
z%YimrXt(d2 at -?QyQLZYuzb4R5e(&i{v;^Gt{UC0sP~EnnOLoTpA>m+$+<ZaIw@@%7
z5r}?2 at F*J<^38b4+~*QPu6jLG=E7swm!k&@eQYa4ZuPhI1S;W&Of`F at X=7+ at L!02(
zspLr~bk1A&k=ukF&r{0F4qIQ4LMm&vTI>A4;WUSRPPIaJ>7&6+qyFjf at c6=n3io}f
zF>``pA@?%ZACzXn3dUln)abBlpNm{3v>UKOyKq%j!TmY9el~hykX?jFHJjbaP&%ub
zQ~b_|s@*>gIUR3!-(B~3mziw8eI^fh1*H4nYIi;FInWycg~Lx%PO4_Yp>V2aJD+H!
zoxY{f8F%4#53@#!mT(eTPk)Ul3dy&uS~osV7#H{}k&lUHVlc}-+cU^uYr+u;l%Q5W
zx|M^u`cUdS{8<A|^S8@!jn6Er;hhh~F|6K#u`Gii;NZ at kehvxE7t^#1j-GrE6o%53
zi6Kd0sDhWPPJt7L9|OcBikauN)iQ16<EOyilR_^LdH*8E=>ZEj^J*Pbmx5X-StWqd
zMp2}(Z!N<9+Y#Y%CVICr80Tt(Lg%*ob>}$Dw0v&0(|IBdUU;Uvw%%v!TYa;^yQ=5Q
zs{#y7&iZn*yppNL(i#rAV9s$ee2TU2+|AbG=9P=VlT4OPWK8PXdlj at HL9x^JvU^eU
zQdpDf>^?@|;460*5=i|LuWoYi3a+qd6q>9qk3xF9+LK!{wmN;<iVM4Xa8@~CkhdPz
z*8&D_KmyS&x^h74$Y+Bvh0KhP%?(Eyxt45QO`bN`eiR*H6h+mHm3hmb(2rnoXuGkg
z<5N`2=W!u0z))#db<4GPj{VX_Pgg*5l?JcP8~nQ7Rud))JK8(@{f?k$W;FB7o<Q7z
zK%+N4&W!!VflJy>lSQ`6fc4>q@%i?*DH+yh>|8JDPj{R=oc`p(IW&AlElcJ4JJ0;Q
zd1}fd`cpuI;4KGVz};HSQPCvTji#@@mZFAO(GtOpL6?~yRTC^R?_YB~RKoLR+IiHi
zQ$S_fMNT^?#<iZ{3T~_oIYHpe!RLClhXvlXZ?l%9(xOF%{MaQ3#rUV>(qYd==e)Y%
zycq at DWqLV~2%jAty~f%PsGNPB;*FnlxPK%o5w*_*F{*s2{*8$}D(Mgu>Wg8FJ at MsO
zV`U>~_y=YH&4>5QfBwyH&%gvug1Q}i%*>A?$vs_aDdC>;=fHHKnljUH|E|{teGdLl
z%-A836liQ^j3#2xqYgJmVWgBt01zU-y(jo#Xj|VuYe&;T{cX{`+dCQ+L_q{-Xp+hb
zzLx^aJrNBXg3YZ5aXoX}3b&uvJUddnV`cS+%gnJM|Ip<r10F=Bz<jb|`x$&!&|;+V
z7OMTyD=g~RtAvxcpR5v=!9X{&Nr;P^g~a at JxkTwI)M=6tmXWsvFsDt*l3gWtlGboZ
zeiD`~yZ<~r*dx1G=+e1Ar6I&qr at k9=7uSE&4<ZzdV<|><23Lo=T%$)(E3?LE$W{JW
zkd(=tDa^Nlk^7AC7zw1uaJycx at wX~$e?~yEy47sB(%HMN25s{H_%(is(M&gf`}+o~
zZFLFvnl#O_vHSOkR--)9yKZtGX~dI~Jzi3dNT`W!Nxt1kCw?$8hQ!Ge_K2fb>Zi56
zdX_cyfx8EJi0n-B>o&TaZYn-jx at xx~>M}>Ub}Kwosbi1)H8i@%TJxr at 4cibM9&h+s
z+v?KHfXS}cjnDpP1C~Lv3mqsgAYfSbzo6GqKrq=yDE&ou(jQ0d==gU#zligbJS_re
zS7AxpusaHTVw!z)!z`Y?gU#xgk0cR~=jpxiW~*r`oz+hgCTzTxN+5R!Crsmw`e2CT
zv3iL_d%*tSRdkg+WtkO^hQ7v`+W&MTW!w7h584lsRFc6SDcC%`U?vgyNr1`;>auB~
zbcYO3HSG4HY?I=#NLw?9EWdJ8Vw2HcC|+Upiy+cE{jZ;`2kUV44&FgN1ve{Lm9IiB
z>1?L@#=U92Ax3wz%ZMCD#&1rigcV3yw&o5EtU<KdIynF5r}iEBCrS-ASK&fm4m)a9
zT|en`?F#GV1^gpn)UQ{V;QeIl-;H)%i2Qi*@*<_U0>TKj_s!pM8M9)S3Nw1XIpw>}
z<zFuh71wNfeP~2Z$L~{!73(f*uQxAe!h$9oh9k)>`0~s+ZQQoU!0*)4z*GK>9-qOD
z2ZzJyjYLHGZGnS?!JAd%0eig_(oDCVkeR&Sv{P_f;~bq-I1-e#l~&*(MTLyqxI_*e
z|JztZ5)#-I+ODinq at v&y&YzDtBbwK(TK2Y6*%g!nW at zC+y^+2wt1ZY;mP7Y|?u3;F
z$M0#>Y#VOCx+ at 5M!G%+B64bMEKBA#_ZO}R-MY%}7c3W9aGs}|2 at WNYKwWRIgj_(ZR
z<S!EbO<>Z;Hr+Wt=Fc~PH!23op!+w!iun#SLN$v&TePm at G$YfIvAcK&?ZC5Hp|6-J
zw7#0=!f&VIB8Mr^S_Wc)h_(`z?O*RhmeXI(LF$Qkw^U!qZPStlm;+L3-W_cDh0R$f
z<kkb`456kDjjI~YNc+kksV>~Gz0hq(>Ia5B79Z$U+3txC+_b6nR)}ORu@`(N(xB1m
zv|fLjX2=JtGE8wzkwg89(E356l|LiO8?~2Sw7-<?1o at rp->;Z6qzW1rN?aP`@`(_8
zKY3XJvPub+aQ06KLCHCySCbz+y6*kCU6<F(QiqO1(Tg{VgMqb-q6O|&t}RyLwuy#W
zh#j>#y|Pvk>x5;y6$L0nUWzJpR5WE}6j-PY(Ss+6jzs7sx8N0s1DsuNSffauCv~@X
zph|S1ZVHutT at oDd?V=b8G%XzebO+Gd(y*LHxtsO6(`oZF(wq)f%WTt-P`#A)+{wQX
zBGS;e(DO?tNfP>UzESvvsyOGoM7Zqa|M^!s^V)xWC;Dqr{_)K;I%5fRSS^=Y;t9YH
zbVKdmU$|^{)FE^82Ri#j5P&$fQuZxL>r~FA9~Xc07{bK|oG$PG3qoy4q;mON(q#dn
za}<h8%caVtYKs>>h8yOV()YJNM;qMsiAy2?Ndd~g_bBbVo!sN-zeQvGym-CR<D4Ig
zkN@*RLEL_f%D{$&QJ0{YpZOqfYJWiC!S1w-jw6}q?fad?7QVnaoFR`tI)YC4u8tUT
z5aPzj^CioU!!86Y3RuLk9*V0i-Y@@Prp(g(bEs2AVMeL;AMv8u>c(q|Q&U#j-8X9b
zolD7w3RZGFEUs4cx%kZyFX%b-c;Ai2Uo&Th at cr1&N&dQJy68 at e24!nrxj8bC6bFq3
zrTd8E*O_0tNfTRy+#<CRWIwul=>YY)8XeW(s6 at YXshtQfRzAmA1N+nr6_|<<8-$j}
zZ%<?Pew1#a@!K!`=H{0==PGz|nb}O%=cq6UEt!OFF|Qhres`_rDZy0d$0b5_$?uou
zSwA at Kz>Lc7#|noX`0f5$GE{oZA2zh0@(&L*?rYT+3w~ji29&A at zh%$80y`#EQ~PJY
zb9IDtxvz8D39~U`I2afe-XcmGBym{WYa9V)ZGqxdEB&2Tv9hnYhf(QG0M!agTW0&s
zXl54JYkj`FRRI)5=|}xwNKBU}>OsQM!}Oc5*rl);-xbw$M{&=e*C{OjMl$@TmA2<E
z9eZra%L5<5drSCs-05zS&g-flu8~EMT&l8G&5j&yhnbm3{22K?!u>8eIn?rQ@}$RF
zgcft%I}k#iq8O%g at w2vYEe#IdmT2d6clfspp$svkk?z$0R<0ItQjKCJ*RsDTeV?6g
zmc<A@=^sB^PR>}`08NE!)<?cMDR&!4A=<~F?;T~zajqieaN~LMk7lwa)d)IHF_b6z
z#6$YTd+Ga72`5f3K4?-~#O;%T?8Q!M^zev&hE@)J-ZFZtL`bhkzN$u<IAXd+!7FfB
z)98zQ&!J&lyo+w3-%<b}oY0}>$opls6$RE_aScA7ZW#JN$M+qyX_cmC^w?9=mG;p?
z{B5TdJH+#~G}+Cn?+)>u!wbz>AGj-ysbok at dLJ^k at hkU}DX*mT|8)v9&g5#VLN1Wl
zz=(ux_OFr<x^zuvs*!Jm-?$yF*V`91oK+Ofq`Mv4%QPRfcRJ%ujBMJF3G0|px9VL7
z at w1|E#o>+|DJtbI^pWg6v_XbyYt%3hV9&^c0{MtPG_M~Z&PN7B(T$~q3B<~#V}2Xg
zgM;QAmDAqc9rA06bnvh{twSms2C#|7wQ*0UQvU3!(7VIQt4e2P0pqG1PjrT}7Yzt>
zNTws8sX8l#-B}F>xKE)QMd;-Hv?1ECm}k$%)|o&{t#2ts2g#krRC)+?%JEg(9FPi5
zQ#y#5TcH)sJ$jMO&SIU{j!GZ$JTb5W#-`)~aAPZ13UiBsxDRqkNIIq1*60M}oO<SO
zg6OQaLJ?QjsE5bJAThpFSVh(QDVBA`wJ3B at 3zeumdsJ&y^wjFgZ10K5+!_UC6a`Q}
z-`3}crdF#npp=}`3cZJ03n*dQ{Lk16mJe&$-`bZ7-$WK29M<a5&j;m;pMd%q=nkD8
z*9^TM0q#k)yq&h+{FA76SKI;3>v3`K(I#E1<<4G}lS_q`gJ_fMq at 5ZXf1(W*t<BE|
zYhKUD at M;$Q0m=>Su?<=h{ejUIegJwA{h&|!|6fsc{D;i6jA=aS*oijyXS8AmE&ebs
J`u$Aw{{y^qmWTiV

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded
new file mode 100644
index 000000000000000..e09aeafbf6de99d
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded
@@ -0,0 +1,1794 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 35
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 640,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 65,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  template <class U>\n  unsigned sum(T t, U u);\n};\n\ntemplate <>\ntemplate <>\nunsigned S<int>::sum(int t, float u)\n{\n  return t + u;\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 120,
+        "y": 420
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 200,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 110,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 19",
+      "size": {
+        "h": 60,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 110,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 22",
+      "size": {
+        "h": 90,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 140,
+        "y": 245
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 60",
+      "size": {
+        "h": 45,
+        "w": 135
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 245,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 56",
+      "size": {
+        "h": 20,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 360,
+        "y": 210
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 29",
+      "size": {
+        "h": 60,
+        "w": 295
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 635,
+        "y": 140
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 65",
+      "size": {
+        "h": 45,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 635,
+        "y": 415
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 69",
+      "size": {
+        "h": 75,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 80
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 215
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 315,
+        "y": 195
+      },
+      "name": "27",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 365,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 360,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 32",
+      "size": {
+        "h": 100,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 635,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 67",
+      "size": {
+        "h": 115,
+        "w": 220
+      }
+    },
+    {
+      "loc": {
+        "x": 65,
+        "y": 140
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 250,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 315,
+        "y": 80
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 27",
+      "size": {
+        "h": 115,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 360,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 38",
+      "size": {
+        "h": 130,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 360,
+        "y": 415
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 39",
+      "size": {
+        "h": 75,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 635,
+        "y": 635
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 45",
+      "size": {
+        "h": 20,
+        "w": 110
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 48": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 26": {"syntax": "\"unsigned int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 37": {"syntax": "\"int\""},
+    "BuiltinType 44": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXMethodDecl 22": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (T, U)",
+        "ptr": "FunctionProtoType 25"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-espec.cc:8:24",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 19"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "604747699",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 23"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 24"},
+      "RD::First": {"ptr": "CXXMethodDecl 22"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 22"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (T, U)\", <in/src/ct-cont-ft-espec.cc:8:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-espec.cc:8:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 32": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, U)",
+        "ptr": "FunctionProtoType 35"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-espec.cc:8:24",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 29"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2607168096",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 33"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 34"},
+      "RD::First": {"ptr": "CXXMethodDecl 32"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 32"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, U)\", <in/src/ct-cont-ft-espec.cc:8:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-espec.cc:8:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 29"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 38": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 45"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 41"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-espec.cc:16:1",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 39"},
+      "FirstDecl": {"ptr": "ParmVarDecl 42"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:13:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 43"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-espec.cc:13:18",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "2",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 42"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 43"},
+      "QualifierLoc": "\"S<int>::\" at <in/src/ct-cont-ft-espec.cc:13:10, col:16>",
+      "RD::First": {"ptr": "CXXMethodDecl 67"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 67"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, float)\", <in/src/ct-cont-ft-espec.cc:13:1, col:36>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-espec.cc:13:1>, NullTypeLoc))",
+      "TPL[0]": "\"template <>\"",
+      "TPL[0]->Flags": "",
+      "TPL[0]->LAngleLoc": "in/src/ct-cont-ft-espec.cc:11:10",
+      "TPL[0]->NumTParams": "0",
+      "TPL[0]->RAngleLoc": "in/src/ct-cont-ft-espec.cc:11:11",
+      "TPL[0]->Requires": {"ptr": "null"},
+      "TPL[0]->TemplateLoc": "in/src/ct-cont-ft-espec.cc:11:1",
+      "TPL[1]": "\"template <>\"",
+      "TPL[1]->Flags": "",
+      "TPL[1]->LAngleLoc": "in/src/ct-cont-ft-espec.cc:12:10",
+      "TPL[1]->NumTParams": "0",
+      "TPL[1]->RAngleLoc": "in/src/ct-cont-ft-espec.cc:12:11",
+      "TPL[1]->Requires": {"ptr": "null"},
+      "TPL[1]->TemplateLoc": "in/src/ct-cont-ft-espec.cc:12:1",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 29"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 22"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 39"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXMethodDecl 67": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 70"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-espec.cc:8:24",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 69"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:3",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-espec.cc:13:18",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 71"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 72"},
+      "RD::First": {"ptr": "CXXMethodDecl 67"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 38"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, float)\", <in/src/ct-cont-ft-espec.cc:8:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-espec.cc:8:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 29"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 22"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 69"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-espec.cc:6:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 59"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "22820225",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 58"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 58"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:6:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 29"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 28"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 54": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 55": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 56"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-espec.cc:6:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 38"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-espec.cc:5:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-espec.cc:5:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-espec.cc:5:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 56": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 68"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 27": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-espec.cc:6:10, line:9:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 64"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 28"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 29"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-espec.cc:6:8",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:6:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "55952531",
+      "PointOfInstantiation": "in/src/ct-cont-ft-espec.cc:13:10",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 45": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 51": {
+      "D": {"ptr": "ParmVarDecl 42"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-espec.cc:15:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 53": {
+      "D": {"ptr": "ParmVarDecl 43"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-espec.cc:15:14",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 59": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 64": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FunctionProtoType 25": {
+      "Canon": {
+        "preview": "unsigned int (type-parameter-0-0, type-parameter-1-0)",
+        "ptr": "FunctionProtoType 62"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "syntax": "\"unsigned int (T, U)\""
+    },
+    "FunctionProtoType 35": {
+      "Canon": {
+        "preview": "unsigned int (int, type-parameter-0-0)",
+        "ptr": "FunctionProtoType 66"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "syntax": "\"unsigned int (int, U)\""
+    },
+    "FunctionProtoType 41": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionProtoType 62": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 61"
+      },
+      "syntax": "\"unsigned int (type-parameter-0-0, type-parameter-1-0)\""
+    },
+    "FunctionProtoType 66": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "syntax": "\"unsigned int (int, type-parameter-0-0)\""
+    },
+    "FunctionProtoType 70": {
+      "Canon": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 41"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 74"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 60"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 19"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-espec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-espec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-espec.cc:7:3",
+      "TdD": {"ptr": "CXXMethodDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl 29": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 65"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 30"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 29"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 29"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-espec.cc:7:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-espec.cc:7:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-espec.cc:7:3",
+      "TdD": {"ptr": "CXXMethodDecl 32"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 60": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateDecl::Common 65": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "FunctionTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 69"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 29"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 39": {
+      "Function": {"ptr": "CXXMethodDecl 38"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 29"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "FunctionTemplateSpecializationInfo 69": {
+      "Function": {"ptr": "CXXMethodDecl 67"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 29"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "ImplicitCastExpr 47": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 26"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 49": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 50": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 52": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 58": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 68"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ParmVarDecl 23": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:16",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-espec.cc:8:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 24": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:21",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-espec.cc:8:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 33": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:16",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-espec.cc:8:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 34": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:21",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-espec.cc:8:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 42": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 38"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:13:22",
+      "LDC": {"ptr": "CXXMethodDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:13:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "ParmVarDecl 43"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-ft-espec.cc:13:22>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 43": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 38"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:13:29",
+      "LDC": {"ptr": "CXXMethodDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:13:35",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-ft-espec.cc:13:29>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 71": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 67"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:16",
+      "LDC": {"ptr": "CXXMethodDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-espec.cc:8:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 72": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 67"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 74"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-espec.cc:8:21",
+      "LDC": {"ptr": "CXXMethodDecl 67"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:8:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ft-espec.cc:8:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 55"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 63": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 54"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 46": {},
+    "SubstTemplateTypeParmType 36": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 27"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 74": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 29"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 44"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 40": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 63"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 37"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 63"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 63"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 68": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 73"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 73"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 73": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 73"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:5:17",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:5:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 30": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 32"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 32"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-espec.cc:7:19",
+      "LocStart": "in/src/ct-cont-ft-espec.cc:7:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 61"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 31": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 57"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 30"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 57": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 61": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "CXXMethodDecl 38"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "TP",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "Template",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "redecls_size()",
+      "TPL[0]",
+      "TPL[1]"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ft-espec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 815,
+          "y": 20
+        },
+        {
+          "x": 295,
+          "y": 20
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 130,
+        "y": 250
+      }],
+      "end": {"entityRef": 4},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 120,
+        "y": 275
+      }],
+      "end": {"entityRef": 3},
+      "label": "FTD",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Cmn",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TdD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "FTD",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Template",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Function",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "FTSI",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 465,
+        "y": 665
+      }],
+      "end": {"entityRef": 0},
+      "label": "LDC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "RD::Prev",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "RD::Prev",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "FTSI",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 570,
+        "y": 390
+      }],
+      "end": {"entityRef": 7},
+      "label": "Template",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "Function",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "Body",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 115,
+        "y": 635
+      }],
+      "end": {"entityRef": 4},
+      "label": "getTemplateInstantiationPattern(false)",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 630,
+        "y": 525
+      }],
+      "end": {"entityRef": 13},
+      "label": "RD::First",
+      "start": {"entityRef": 16}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 690,
+    "w": 872
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-espec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..071df617fca94384bb8c4b4484f028579d642bae
GIT binary patch
literal 29347
zcma%hcOVpg`2U at ij54xEg{Xw=d7Ls6Dl2ECj5~y6WuKPpB+9;Mn#I|(vK{Wo$u0`v
z$S!C6-goNr`Fy{>-yc7J)ZP2u<9VL<^Sqw*j=Er?&&tHl1c5+U4GnZIK_Ij!2!y7D
zkpYZgnzkDu5N at 6z^UJ<xy*xaeJ$)gNTNxy~U7z&I@?9(5sqKgL(=M#MZ$s5Hy^~y&
z`xKT+GZ#YpeC3)f1wCbNL0@(GlN%aD_rHbgze at _4b6W7I;C_Vvy{@X?oA~Ql_nGP8
z#JOi?$cRs2f<+gMbi?Lbq at zFWOdrnUIp4o?aII!&0GAT<YMpfjX|!hO=XbNH{L`0N
zEfoK*uv%w&pTqt5gG+btOQJndqm5b{qrcdUVY+v!6UoXSMn_+V=J$EN8UIv2w)4Am
z?X2H~if^%{Y*^vumEaX@&5|*MR%h%KKRj-x|6cf4pTh@#nB8ix&ewW2L>HQnu+7J&
zXs>2A5*lgc%zJC$P at 7rn1<v1QbV7x$6&+alJ1UwX$G&`wnARcCNu at M0>r~;}OSNCw
z;?Extn0Wqd*(I8MQQS*ri_u9TF8ST^<Oi$A*Wy+xDt*7}FO2BRA45p3i=P|0)ScX)
zA8z+cYxmw at h39JdPf>T3u*uD(;jqI2klhb<w!smcXO($01AQJ$Sj<SiTh{7e+BmNg
zP6`^+{z8A0WoP%{H2wHZ+fS$8HMSgR)0mu8xqQ#;xgex7I>YdCpL}-2eH8x-<I=R*
zHbO`CwX^N{hQ$t2TyB at zV}idoWh+Y`n#{Ac=Oy`@1^?b?(8~EG{*+yOCMauv9r6X6
zPzPO|*$cMHkS`I0t9U`%`1tT$$6mPU=Jp+jcZ?y;ZqwHNvM2ImUls(hgc8(iZV$vB
ze%XA_y74g*qjo>}bv*G?SmouMm3KN`*Yy-L97bMf(=#c(rKKUB^SqgCJ08k-QT#=&
zN6g&hv9#*==^f(_IgYz(7Yc4W%|{-2(Azf(Nz+I1-#wJ3m|kp#xcJH+dB|`pil8M>
z<=J`UY}U#rai&S-Q$D4rRoS0%&5<74`4 at i{BZB*mPagf<$dIc4-k0mdD+T{k0)>O0
zQ7bGZOo$xUKw2qlivvFup53%ed*rE^8+Fkwx$EomXAv$16<NGCX|pbFwZpS72~wxq
zP~#0N2K&Ng#_+dJd$mQo3d&rQzID0lBf;Svi{%bWz#Ctt_vh3Ikxv(<pQOxgDj)ZC
zY?U~<{+l_pFE%#1sP=pkG(If6V!-qLZtriJ$8{?iKdiWX?iIdRTeVz{e8cQmD{0Yh
zT$;RfHIKtidZ1su at Y_MNji$`;CZ-0Tk8ZBjgC&DUv+u=gP5XMnTQ7_|MP?KT9hw{B
zj at 9-Ww2W7~yCo+9zmMoS{!n=*=vD2C<#%mV3h~2=;^^Dd*^d^LtGDLg+T1!utJh`e
zzg+ at fHL0LSd6tCmKC}M4ePO at R+0K5A8(WP5ui}-fY*HejDG#g+PL<PFh=kYbkg5=b
zg)ds?Eg0I~PRXSuSdcU4)W41na@;c!ynF6d4D&$(2RqBXsaFvR>_1}_$X_<)3s??I
z_k7 at U-Jc*XI^x2YW5W{>_1fvp{*EWI!k=rB=bDQWT+P&kcuP0ip-07Gp_?~U1ruqu
z?iS{kc^4Bh534)$&)!q3^ZvkGcG<XsslP<`^gu#qf7}^Tr_t+|KkQ75Yc3=YAHMLo
zSoeX<fV^%l?jQz>rYU4FYvg4~yR-EDrXPJ6^DVOU(^2*!PGPcS&&RHV2Z_!vj?-&t
z!QQL9S%`2EDG>1u^CzkLY~6nT<p|o~Yw%WgT<QlM`zok-!h at kH1$1&miL&d7>0-H1
z16ccMmI-t;Ud-|AKzB!s)|O%9ua-5h_YJs1 at bwD(uR1M(t8_W0cDohFGj^2Xu9#kZ
zTU<Oj at Z}@HH(ZSrKvuKQ4Ndrno`cM)S+Ntpr35Lc+Lr2LukRC8z4`G$LEsa<jPehr
zoI6`z;TOKPu-ULjUpvqKI8!M8%c8(7lB|;0#*pq&`xmdC>0N<oY6z9;`OcG%(@nIz
z<81Le#E<{-+~l)F{DWvth&nR<wMf&syVp($@9%a~d&3iAClxs-Y;$rn3{n<v8N*y4
z`$~+-=+GMt^kdb~ez$=6c#pLk^QV2!AS3RrS8Y3wGMwYd&UnawH^QcP&NU~94yhNp
zt(oW?ZyHEGm&dB at m+u~D*c6kv at kK78$uP%3HEyiti|g*ap-W at tG1wQ7$9ER$Jx=Vu
zG0*kBp!^^znCVoDC4Fzmy%%cw7&^kCGcpR2vs+`5CxX$^@!O2oGC$wjSDJhJa)?fh
z<e`@ypTjP(pA|*C5j??^ckpZgw7gM3&`dJ4R+xQCgYL=k)r}${nKJ^|j{?a4uIFzI
z1aPMvCe&uXeRNK&I`TyKv`yg5yujs9-$`lCTd)n<<EhDZ5$}>EUuPG<(tOYjZX<V=
zoJQ{KTpzvjm_~y+@|lf?O=&eL>)3Z$7Q=+AZGkLjI~;k317n-SvflLIuY|OiE%DhI
zW?!`Zb<1<%4z4QC)<A#w1v8<bUT>@U*X8TXTl8}EWQT~?xt;2d$UlYCv>$X<9Sl=r
z8*uz)AiG>o8zRjcKl$PqhcI2j%NhZmo7D)mLAEP5CiL#U`3x%zHL~e=abbUd&7pHU
zyG8K*Z$pk3^0=j?`#d{oV!OZl=`W>wx4J&?Bj&PB*|fk2h~X*;x0`+o^k(q=rwigj
z4=voCd at lZxQ$)n!L^|CImjwF;7{bvM;VbuZI_qwfdt=Z`K1*SdrQ;WqR^J=cYsGoo
z-$7IzwO5nQb47?Yv%e`y%2Je7$I7W=8Rqc=^LU+kJpbFXS4z+3J4X^92&p;i&s1j3
z_4H+F4_dKL1YLP^A at a>`o42tazW?~AuZ2D%0iQ)l63&x3A^XZMUNT}Ou(ZWVFHId-
zFqfe>N!gY(EqBj7R<nJ9bKySpaasEB4O-)B0UhJ-f$Nhk=Zw#a*d#GW&0pWFy>pu3
zrSic;EgC!L$<5mu8RU1u&D-B9yqFeRUq#0q_1IPU(C2sXD)CAU<kYXSP%e1}tNqXp
z#?xjv?%7=3DQ-5AXJH2?+)+V|Md3G1H4kZIvVBona(3Tr&wX5SR>Gg?g?l3TvhDDp
zUxw%$nq`UZt;3rKXN8pREk(l~vszs!)YSFm<I%A?c6s%1D-<Olth-9EJ~=+}OOL?i
zaP~pMK3UJJBR5zr7iT@}l<%4K_S%c_bas}N+}1H-_;~QizW9TJ0=LzK$)XCalMI2f
z$>I*ljzI<YkpdTP9TK5qS$+SmCpn>e^l-P7noTouAX3L*pwj5!)<rg#WgN}xrS$gU
zQ<iG$-W+sk>~oDHxxr+ehM!u<8U7~|_T3+ at Pc@iw%2t{si1kb~S=)AH(6+Aho at ar|
zA;(0JnCs4o-<j<8xxQ`hIPoe9$K*UFcQ3-9p2)6$iKgb%nYbGds at ZeAeZ(1`3Y}FC
zm~C-?-gU=zJtV;434PhbtpKz0!4G{SNN at 9bt1Qo$)Bh~G*f~GsUxO65^twO!Ora;2
zTe~)qSr8_q(!0nLuXOp?FRpjf-s?Gs1>#nv at CHxLh;HxTk01SZ3dc8=CUd6pT!MNM
zEP<tBhIjvE>lQPb{2|wM(c4Le^2QC-oyQJ1o;~#JCwG^5T62&ZgQD0Xz2S$I&d;gH
z6ECjIxLC+kbibI^lkIyNIkwgQ<Nb$Xc<8#*bW5Lsb=&V(l at BFUpAEaL#ZANr!haIq
zwM|%iMo2jye#t14Lx at Pr;Zlgm{*JkinR0qP6_8M3!#opz at hYuh&`R6+jd&)q9^%sR
zDx_0yzj1HQwVK!OEfWm`qFo|IbY4WfV`Ir<dp=f~e~PZ!$gxJ-;Bpp3N_isx0o(7e
z6cHIauCJF`ma4nQ1Ad!4y%=HeY+vz~;Fz!@SyH3 at O_i+%#P9YAz87+xGHZ-jzR*|N
zgrM(c&H016-78mq at pgJ`U`s5G3$_sHx|N%nU)@SRWVJQ;)0-4uj&NTLdT+c)V#H++
zm883_pC48DId>mQXO0|bzEL2Zs>62uoV7!oD0 at ZHeuLJe&^OI#TQ(d**|A!-FMTi?
z`e`y;Da at QmdB=$_bV)Mi9K=f-Z5lMUhD{^&B;d`jl1fd<*~@Q9n_Hr03|A+N=!8$L
z+qeH{(|aHM at -oVwTYRVBJ#*?5E04AllC`$&xn|pOG5_`Ohi5kPw0YG6R$phDh||yY
zxkmMV6Q|2Alkqh{?>l{F;0x24=1(__?(2WoQT2Rzwl~Yq`UPj?n!uQ$)8H4>wX$Tc
z1L9du(;Plx0v2Kd8>Tm3 at wKy>I+p10C=X-C159)d+%WAv&|{usRDlUGtbB6lnwt>(
z{1G>f>WaCxhiOL#3wCckULX$iGnjvD``~3hx}>I=Um`NWn$W0h*7Q;V-C4*V{7CTZ
z`TgnV*mmy39K8MA?%llOjhI_&4D2Stm(g3LZudmsozE{eqnGCce|f)uEZrZawEa73
zJF`bjHQ~Z>(P~qAMe;Yjh2+S}p%l80+5PWBgmYB89v=>hpUV!E=jc82ISqF<UbKXD
z=58tHwDjfX=ZwB*`p$hnJv(_?N4T2)HSS`@PhS07x-OHypkcsZFC<=xxG$2AUy3g_
zwS|X7;+7s=czHyDG4*G!;EAI?sD~O~%}T`^uiEFAJ&5?}N4sXk$5_x^457R9ZjM=@
z7XFc0!5mJzaaxO)uZo;=l9OxtYQ6nLm_rFyy=Q}G#p5%n>(zG2FWd;WXAVIR=dajT
zy-zS9K5HNTx#(+na?arr;;hlYRo6CKR1sHNww3Zg`|bN*h|%-7%8u`EkG5WYG=AB|
z=a^Apu=9yw&)VwfYtrtqBo%jaA0>60_Gynu98&l$?e`y%Pp7JR>(fRQ+LKL7UW`k&
zJF^y~WLtlXmNPKlKw8Y*5j(Iy6$vv89gO|ak7$bEV7Hnt*EnOCH5xL3d8~ZFTWkIP
z6yp4Kju&sfDP5iO6ihJ*OB%k-MXI=&)Ky-60rSI~p}o$cPU^Ewp at EEKakP~=_x#%|
zubPi;X64txzZ+}5x&Hd<1xl)1W+PX>AKM=Pcpx9;gW6YK`h)$q-Q^_P%}+`-S2o<8
z^+YB6(l4j(Tyx%HNt&{>jJPJiCp;H$vP8iDVeFCaGi+0A=4_HCqOZ?Bh<j6 at rrV4D
znQ`pg;b6BG(Ym7vzam4w3b{6?37*&~3Rpt9`8!4*LKIZESlx;f9sGPu`?9P16C&?(
ziE{(B0is*cG_*(Xcf#e;Ke?{!e8oK#%sq8NkC2<xAe~!s?}S8jyT5Iu)7<rdt8c!E
zoeA-B4K%MK>6iUh%zN?mDTx%>hnmCQJiVE_tmo@;JNC^4+q16nF(p!bDs<w$Z;4gq
z502J1xp%JKwJdcIjEvASjlGwYX8F`BS>(Fs*yU8lH at ZDeB>n=8t3SVf`S{(HO}dRk
zaXO=6{%Y{sfRKFe_R&6x0O2ZgzTFD~!d(NWx-+m%xn0xGt8n9&)ht`)j{nNrTy*pA
z)=bvw=D5J??QK$(@ajFs&p^KMjC&5M`&6z<)WjcS*S;7X%rpCZ2UG3BWs)~3+`4bS
z?PRze&9!U&45<^fuZJGIy`elOiYosUw6)TAz0TKaz(mnT`Er-N$MeCVv##rbbuM$w
zG0*+;23v|w52JDhjk!-}XWt&su2{-Hqipp!xLs;BA?8a<5nF9ymJx{z)1ogv`%{W*
zi~fB&%3psx*(IPeEmZhDi_hJnix0FuDkRaYF6+!yxmLQYwg<rT&1-A!MNjTXxw6Sj
z&uX$|6wAats#&@;uxQZ}!2Ra>vuQt{U(>ID)RFsrKZfL?>WPcrXjRtu$7)PjE6Rji
zE1Sowf}@&s3xcAW56f{^1aQ4m=v{I7A>CuzH+OqkN^$!K!*>zmCp2rpQQb=>+)PnQ
zi7+liqv}Sy*1^^|ajgH<W}yM|o%EtA`F%$fISz4|JmHb)Y1?R0m#~^0m{^lcZoU}S
zrvmd%3%_TlzI<)WTIuFe^HI at 5#b>gGg_>OBFPQ)6JAJ^prZrOFVW%N)K^F7(i{YD!
z+nMN5!Ddmq;tY{mfvDkQd<Pzlo+bP27Jm~w)&1#8*V2!>Q$kCcBA554aTOGNe)j!m
zv2 at E=+8sX`RO3em!)}~Dw`BQ{n$tki$k2^ygqR^Oud*R~k=##PiF at z^8%{kY$l;mU
z%XYg3r=e4fZ_g&&Elxf=Xe8*|kT4!`^pjyioU*Ot(~JH*d{Ty%v;@QTr^9QuwAO2$
zKm0`m8%|718Ik&iYPd+xpE<nnzec}2`p9Kr%-1iUL2igozf(cUY01TK`Cy}uiD}@`
zZ_6hX&7Km5PSvPaIGOqN6YWM>ZPanUl*nm?9rn%FdW)l-64!K=Yv79wGD0^(N^eI`
zea1BrD>H%z?ms3F at 7Lyx_!^!Vn18rv-cd8;T24loB04UpDu=6uJDf0j!Es&O*^%=E
zvp>QA_;BGmChXWCe|o!8*^cJMg-<SF56*w%yg7J0Opb3V)U{dhw&!Ch$uD2Denc$k
za at LO<uGvNlw{r%afDP%b;&au at Rx_;djt0FeN0w#FU$vg+bo_olk>8A at 9_an#23tzY
zfgH>7^aE!)8Q#~a7xmP2Cp6d0pEapn>&YXpsmPdD at l0Ix$Ke(GE#=lyYFNEOry_is
z?Q;uXTw4zqP4?pscD7Tb84wjYTc<}SQhj?py8BumSD8+M>XZfczTu0P0WzvxC%t;?
zqK2(4NYOFK?^AYs2p)DL=~cFe=V!*xA_Hk<D*dM`c at BrFv$~+zKIRu$%4#az{XKr}
z at P$`~F*)g9h7)6I`KoqAWHSyuz9j0 at yTJLRvvXNuUtUM6+qox65+0F*(~3(vQj2b>
zq`PbBz4>iEoNbCqZv)1Y>&rw{&YAgHy!s_w_ifVio{=<j#g2FJ5wQ)P_{hn%)WXM%
z3$-$?D^{24+TM-CTKIm?pXs$2qOZWm-MSKSscJevWuM~fa-6ubr|)e~_Qj^e^?O(8
z1434RV^!*`Qv2={j&OvRyq+`>DsD{pHr=`;yQ9vf;bT&JW47i-NO0)XeY?k)ah7M}
zw_iz|`SHH`o1<ToEB4d3M~60h&5iU0=b&Gjaf=&$G-a#XuPir at _E~Q3?~w_F at b1gM
z5gl(^l3v!ZE3l<?xw&>GaJ;Je_G{-|E%u`)b?k$5=2s3T+g`o9%UQD|be^U^OkiwM
z)r#>7n@(FaDkLlaIaF|o-(4t`cpp>Ntnl)@=c;FtYqy1;y;sU>W#juC>DU&*gS1|}
zW?5%W_4ZSXjcZC_2k3)jB!Bfz)OI_JiQg?|6Jy!A_T_8g2;s}}<d at Zi_fB#ubz7 at p
z3hXTJB#*qU*k7TO=~_U%(1{XLv;4_<b*>yeoJM$wQ=}gu8N_w7`4vly4!hL-jKBMF
zk at 11@3#`49yxkjO`GckELr9%2j}srh9$V|;EBL-f;ADR|xy at fKuy&LlA+ppCz4vfm
zogj0R{MT}x_AAS4Deww)?&f2i95YJppC$aZ2ihdmi^s8?`Pvd^^adYgaKG!oo?zjH
zK|2&KAdOKEQ))G1)URqEjj|U=%saNwDMyERkBI%Y0TVdz{@m%&PxNPxyK>hlpV{J{
zIVN5Mn|(HiJ33`H)?@qh%gJ_ARN4p^qul)`;dgFn{8GAqizUFH_U!D}OK4kx*x$R*
zSKIV@?ao9{DYn%&)X_G-HAEV<DOpuXdNCb-fj{HE743}mjESX>L8^3bP{1L>O4<W#
zV%g5+ry54s-_shXY#%e({T=y$`d5w*KLll`{1HAvNLstrJvS3WcXr2r4<t13W={XS
z?;{}s{&FH|hsJxL{M4Cs2k`NT=Q)MuR^#gA`SIPJg_XtW<W?Tl^2C+8p+&-uXe%?G
zy1P9i3W?^3K;yg;;MaY#Em{YHuM>KLI*$6p>QMexFTrENQno#0W(pu!u2#FcP_!O(
z{32X^?ve^8UW6PQvXQ6$&4Q=3bbIY_b1aEgfl5yT4WegSy&SW4y_Cm5vg6pMI%QZS
z=me&a|BnAY4Bs8<Mmjct?z>vO^rtt6iT=6xN6?J1N%f(y at 2BFezPoYjQx~E2pb#<Y
zCmIwaj!Jkv0}9EkwNiSXN~R2idZ>s94T}0*hi;F(2ar91utWd+zDK=|4%kJQC*xH5
zdmIjT*w&H>!%irt{<d1S1!vIFp*al%*?y3+94-n@{tX5HL7#%7zwHBS4ItwGpM%}E
zJDzYO4xytSJTM4@;2#KcUVt<Hv*pm~r(5LAhVkv~(ecGv7 at SHb;K5fCBLw{{^VSZU
z0ikdRVa2dtWXCw~uu}LkFrmjkV8rZi1iy%BeP+jpA)gDZW%8s2PHoq6;2*<Q!g}~9
zvgm}68g}Ly&V?vrEHd}43~rBX+8o2wy<izN(x|cL0K9>oMx0g#qn^zmgdgrmkpMVK
zwk8|OpZ`P$ND-2DH|5yv1thwKB6rA;D8ys^9xp6m+|#`@36~H3StHh!y4a-_Ni5gX
zYLI8Y-v2~-q*Z=#T6wgU;QmYOf!k<I-Sj>{HP~PBsrl7roK0 at jul{it3B&xPw|r5g
z0w1+u6S4OK#y6}+N|AoK%HE?S%`kpUVSU1)^hfogu9+BGKo=kdF at 48p?Nghm)Pcc8
z+xOb*i!ipEpVYk9GA+;eVzXz)5v|!$71x)ELmOrgQbqi#SfTn at Ya%yn!#mt)+#pb|
z*k(0ol_rfFr~;Y+&kY$8avvz5!R9wfk{5B~@f^6^@a$u~gh{^bF;tbaP3RZ{DtzuC
z`B&zK_sjFhl<EEe5%Pn2+u3^>d-M!_TRJXTn at 8^<_I{2;R7jiG<$N#1G2BriK#zSj
z(z7s$9B;KiTW&Ankf~2-Mg0z8*nu9RU(%CGV)_P={dON+B&-v+b?OJsb;va=M%?a*
zk{uhlJ*7D|r at 6yVH4wn{&^5Tak>)rARX1s=S93p3%vrwv32eZ6(gI<)iJF^rgU{7v
zkGA&ICyX<o<c}QOJH&;%wXk(TXD4*}bLRO at VyrC6)LlEjk}|O_A-HCq1_%MzQkNQP
zpL~YhvB&aA at 7S&2Zy|D}<GP3f%kBx35EiyDIkOb<L$e!)xm=gP@>sW1Lw)$UAGk|K
zj0YWxAe{iS6V0y1%-IkvgWdVY_$o&t7aSRY1p*zC^3WFeEdWpYOrwBqnLS43+;XIO
zDd5`OVhJq7ScDNj(#o=@7qloGq$`HTQYH%Q3?$UTp^a|&^INbGM%Iel-Pnu^?l+>+
z9B0mWvmtRA;6aZ(dcD?K at PvP1U4%IFav)IXz$_^C#~kLOVE1Fm{f!+-4<59w%uk~A
zAaQgKm$LRO=?xvja1x|I1DK>n4}>48aC4Em9R*uxZZPy3KrAUUvyhOu+o!oA3QBu&
zxkQ*f3nxWr4$XD?_`zZqa&Ph_TNsttHjn2ova=^{K`^0T^fKQmX!jueQpMU~@P$a&
zWK&=9Zk|tdw0GeyfM|dq<S)i*OpbLiQM(?60uk_=UVR~O_06q<=IOleq`bA`<hp#~
z2C+Ooh}CI*TulpTnV1#?waN=uKlcd2zrQg!8JTah%yoRN(Xe?Vue^WL*k6DGMgUi4
zWYNT=8;QZ`#AGD4%>8*7Qd5A$VFyKtE-?d*07#aWeh8BYIsfr{s>fBeIZIwxe4A3v
zjigZ`ibvN at Fp7$65dNx)Hw7A^c1fjvDl68yR&9wMaS-B+Y)u1og7HLI2zTo|ufhhT
z>hL-(cC-bfJK2{f9sie#RfH4qs5;rM*=8x1lzl9Ws4a^2_X;d`(bb?S%N^I#a_`Fd
zoVKPYA2Uf<+Q5kfuGQeGs`fUg-s{DHz-oq-4x>R1D*C=*`xa)FRYU>bM~5K_==E<*
zc)3K#*4XA8|7vnz{{}@Dp$g}Y1?tee-87=WAp|A%UKIND(-jep6{BoE!V8^~>%(a(
z9xfT49yK?|<-2LYg3Z?07&<(dlj8*)n%`b;bXfB_O6CJ_2o`T-p1BYnHFHN+tGcQ6
zVn)s8aDRDE%8#}M(UL6#ZakusOSfK~29-;Ww(V>yhw{U79q55E&C0M}RK&!cIxvnv
z)dvN`#yf!r{9T5=L02h9&Z{&5Mv-_ob;JuO<%}Nis at zfDTyHJ*qmZY2-HiEFBdyU&
zrRVFnG-y$~O)qm at rfLIdm<H~omWgQ{#_zPOv;~wDnu-qBR1XAQbrQ$uVon8_h!#2}
zF4Le6(_`~i9H!FLV6=E!9v22w&ps?yp_07KXchxXR4Pgy(M~~k7jz5m8mGtSW^a&2
z3f at s-#=ATjXya7?V5ot83gwrNF<$*59iM2;C!b`W;pe?II+kZGSR9Y!##oT at 1Gx3U
z#HV~1+0xHCItL>H!8c*@k<GdBp6;-u?e6}t1+_)4)`1}+VOl+f2R>XXZMop}eVcn!
zf9i79jRU!@7FC7nj^q8I^=Id4Q51}TVx^9JpZ7}Cc{iaPKs!`0Swr&~MMHxhJBTU_
zzOnwUP;<i#J}ldUQ;DDTsg_)Kh93aB3@#}fiXCf0ihs(48ucJ|cXlrtS({3JnejF+
ze+$J1KoJL@>n}9Vj0f9`>C6(w7j>>REpFt5cYey{lNDd7%TFO+4|LiXA2zyXIo~Nv
z3zQ4+0zruKb%sa`t6f;LmXziH(J at HXhg@_D6rIRDiQ29XS|a#pz{X=BGc!BLjE}K%
z!@)w9t at U;`07R&slq5UqsV7`s=uKaD at b_5LRsTnq=pDSWu{4-|iITcPb{N`{UW%~N
zj@^m<v>ROwV`}Y3i?0KpPdPq~8|%x{CXXK8k3SjD4rDVc9ZyJkex0Xv26ly>HF4WX
z{9#-9X^W=p^VZJxZlkQI{&!v*S+tNiDrT<#mPJ_{{GBX?lH_0q`{^ZZB}N_9vw2|Y
zcd%eV&yH|Yl?EkWt+H^4oON2311<{CjujIc#@%Y|h!1LUGKbhV^I~NR+UfC|vu)Cj
z_?#q%0){Gr_vQQ}rO1?zTxccrb=cJrslO|)31Mqoyfx+~`uqIcK(q!S*`QMjW31#i
z3p1K!mlqRPqPiz|r5ch;Rmxqeakz=kX%CMDX9Tp=&p&kn&_+4^0RAa7EokR{S%1Bn
zz)27|QXn`L%1^7no&LuaoZ3$%RCe!@G)BO$Ku;;*0MO_ZI;a9rcgnY+p1{*Sbpf;r
zE-q+2 at Ey2$7q2&EKwE*o2U{3V0FUy?hccU at c?vFuY!r*2(qTA4A)_1jN0cq#12~4_
ztHr&6KbuvR2c!X++8;m-HWY_c3JSF at Dtt&BKOHVa+45Z!CAbM@!w7|zJ5CVQOriv6
z71lB+TL4`xMro at D8-=dw)hNGLGvd(aQ1&A7VctyRfP(|e$cHdxn&g@|gAd7uEjdz9
z9K;xg++$%VAHXYTUYl1=)Ubi|xi7r`t_ofgJ36RMCWK#M-7Mz)_~AdSh0@@2?4AUT
z^(KhBawz|odRW&^|L}@>ji%wqf3_+;F!X- at dZF^q!NIR3j+bJMucBXO$;(r(ndAo`
zV{xB?%m26z3gr}?ixQ9rBHZI1xbR0uz+~VE08>eovj35Q%+uy2w-#)oU%cFSgFCT&
zre1Db0QO|w3t4QW802wGdxJJDs3<Fc`Wh!i=IcNG at F#_dqK1ULCI`I<rL;!Pqt6~y
z);S6(tl7e>dYZ*4_er{nUJnp at o_o)uxMTWy+;f65QNJPK)Kh`M-TuJx9i@`7PyPJn
z1fR;yP%Mk+KyI0(r70gEin0UW9*RUY6~2n;YV)!=xRdMj^W={oswsp;-3CrrdEy+0
z)W at -vA5z(`B)q)-tlHCvawujk*0^2VR&?}D5ND?K{y|W=h?aX at Sq||qg`4&C`>YA>
zZ7<`gZ8Ny$>OA3}(zG5 at ye6(zlC3Q68DM<q8ND%}qTgpv`|9}dCwJ;s($}&ag<;dh
zb=JxZB(2#hAQ5m06t!FDOMe8rKQ>w8bN!sxwUzr#Qu3bkKo`KA?mc-M#T&bJEf9w-
z^7 at 5boaS*e^PX1IVQb`>-<A#5i<zTR>5sEXuQpU5dvd1UU#Kv?ei^geI3)w5-+fAH
zFBt%40`3tgz at 9N0PXG&`eEol!Tv}7ye-xRb0hl-_3Dxr6qI6DoBN3J|9~hhEu4}zk
zz*$Znx<=FlsJ~~o3 at F;Q5I at 1EP*kE~oBuv+MQlDTC9wmlLx}}FXfS2O?&yO4{+gZ3
zt6ox!DmI)_rS=G4DXc-DU1-BA+mg9VXM|zt02@$4iZ+0pg%)dw=C;FbvT(;Yiacse
z2rH&XCF*A7wkE39&yu>-?sGo|p(xeff%T)yk75dG@~nsRKZmV_>36=^*vi?UhjUV4
z2dm4ImO8i109Q}<b!0fDv(EW at j0HaTBhR}3+-I8|NZg)fLyW&j3 at JdYu$V5lt~Z``
zY4oVlFDPdoeRRu}5R>4mZCkNV`XHox)7o_SDH?<+^U%qMbE=VUM>gev4tY7E*PApV
zQ>R;bz#W6ss_|5OV)zDbf;V&Rbj^XGSm25IxaB#EoH~!G$4s{I*5t43qjDM}1Ndc!
zV&gau8M4b$BsRee{-xlWZ0WQD96%Oz0tlp8 at M91ZlJiJGbZRcSI<4vIlh4_|#|nJf
zuDkoGcGqfJ*{$n$17`!^ZHiS+KG?*R7F$vK2 at xtS5Ah(Xl5VgB*r(4fefYZ{E~~Es
zf)FFrr4<}kdw;=qIh**+5S9ej6~8!}N_TRlVqQ!yRc<k}tNfMoNwX}%nqle2`?i~k
zl=Xx&@N@$G%jr1VW)^gSuez+wQCbDGQpvnd^D<xJ^ZJcn#V&4jjxgM;qI7Wg)o)=B
z9wVLnN3zIAXo$Ii5Gsd-jClV!6M3dvkhnpgY8reI2a)N>Oz6dAyYU-DwI>0YlLeD+
zwz>@hyKSfCm~PhfP=XsETPJu;&};pgidFx<s-R$%UW=E0MWRu>Amatum?7Gq0VD5l
zv?RN210iLQIv&o2ckvIT0~*PQkwR&^!_Ff$Y)@{a26Ebr>PGSb-~0-Tu?VOsh|Pvc
zp_18_x!`kr+53P?Vuz>Gp%RNUxC+myi_ys^NrAkXl#V94y-S5Lkcy<^1LC!92;UXV
z?gNQXq+VV?Px%0DtWZcmUiSF1+^Jz$?W?j=C0)dZU>9$kuT at V$kD^+PqYFdxY^YNf
zvTozOfhvGWJ)K>R+!#?H7I4W-sM_hK^ILJhXsATYWr%%?mqi88B3ugiDH;NaYu?i`
z1V6sJI$=Z>C=~x`(U?biH8Ut}$Nh)kj!W?%k_A!0 at Ui2<z!d^rqAdI$N(J;C*jk)5
z&Dy719XNLu>RBrcsj0A6%~~!}z{yf30QUgl2lzp8!_l+9EqLzPxj at p(8s`gE-e?xj
zZ;0j0tFi*ePqB3!8I-n7W+RRUTLX6{hEY5}MQI^vjiz+?4|7qv#1k<E`u>#cJ_mEt
zABSvc$BM^eF?LcrLNEq&OI9BQU=S2*)AR9^YV92EtQQRycdb|ISJmyR8JbV*Z830%
zxe&S5hf#4{<P?+~IFiDe2Q%s<O at pdyAPvSM!s at x-8zy{Ex7TXDTe8Qx3Ywo53-h_3
z#oJ4kd#x6bKSJzS!Vw%VZcr&c<r>I}$%I|che}mv=SPNrTS?@uU^<=8VEyhPbSMjL
z3B6TVG+hHleA6Abo6KlF2NV#(Z-lTPysgxmrZgE$koB!YTP`^a+-|uxI))|&$@(gF
zm#%Rfm+M|f1zQa_L_<qkn33f|q1{d!eSQ3t<$&x{uV*GMs}$vzbUICK^iOunfe39{
zW?dGZ9}`|D>uKqAyR`jIP(*%E?F}(;=f<1QTXol)(?0J9k&$t0NNbQuvf)TN at p)R{
zf&Nl<8tgl3!QB0N{vesd-G`xxARmh at f)CO?;KOw7!=9hdbKB0QNA-^qf@>UlJ|}Qf
z%t#o53fS--3$2ladN?26Fc^5ywiL>TAG>iloOCM{I;4WpZ7Cbuk77Tb4zpJ&A>}=}
zSVx9Zpa^ydFQTp3xAA*EF1)-U(Am93+WnIAnC1F<VDW6;K72j1hVYkD5j3de(sr<c
zWDE0#rcM5aXg$z|^`r1~zSvwcKi@%YUz$1BWJFMn8ps4)_(7nj)Z6?{(Xg#U7M0wC
zBY67_I@(qprU-oKP79`Mfm|zs86~uaD8uuG?||IJnuZ?lpVllZCtm(azhmas*Xs!>
z2EvxAF^=m)6xBF5KT)ZUfjJxJ9mlM#Di>d_<phXI$Asa_&$FTj#4zB`+2CE)WE<R#
z^Rj&CQEOfg12Pq{LD0{9(-+<)v~7>3krexq99qP*ON&|yoZ0dgBh?qYs476=<rdt%
z>@!aIj=vR8t9mP at FwJv-7rUgrT%(~AV3KEfzTt|Z&FswOc%kCfZghEY2@@X905FOH
zUk=3*>G<nHYl4y9^M((zvEmlbEnND6$Ecrykg7G1 at q9B?#iAQyI6f<R8L=E^6=r;1
zqquzj2=1Ml)quPiv97ewa^#9U63T$8zD2Rla#qYcWh<|s{1APf);6TPO;&LAyHUkS
zH|EztHpTijF`@&dIn78S?p?s at q1UyC{h!kFV%quk>=t5tA+TNSXaFuuO|JWOMcHd6
zxm<TXOVh)dLdBMf`GZ0?<W_>>=Y5{|Ku|XsT&MzobDG<;phO?a$#Ek6{d-YX#6h&B
z?1Fpq)3<r;idhFxFuU4(#67E#B#3c$BLzg at j@sX8lkOH=KPF&UYh^kkpZ{X%MABUi
zF1#fzSt#i|R6&(?58ddKpU at 6@QcR+R1E1IJt%$LxXd<0v at MvBHRtw^M2K<5e)T*H?
z*<#O;#7aI&PQpmdN!oG(TKaKff~lSX$w_yeT(rB24qsOFxxQGCmFp~&Ik+ at i|09(U
zK!okbe`CRUwZEWd7LNE>JEuwe=IR8as!CxjVGVd at 07Ql*zZ;~-A5;f4RTpF5g32+K
zaU%qT-(A}gT at KBN0H_EI0;-ULy?zjdJ4J*l(4go5-Z>@h(OE9o4F at ocUOxfP*U)bl
zFFuc0c%4nnM}UHYnM03Pp0fWeG1DE-%*Zl+v9%gn2Xn1jxe5 at K4>L-OJOVr|JXi|T
z#o}MM77k=Myf#Kp!Q>VPCN>B-4N^F%;nEP-af)NOlo93r?(_U=UtzOBY0RV^w at dQF
z#lS at xN>1hY?na9$ga(jH>PMG%)S-!+^NUJy at W=OZO2^}b4=;u<>cLi6739MQyw3IR
z*4wI+M;Dn@;1E0`##Ot<l?8DqL!=>!#=Mzd`yynX{%n{Y^H6NiPBUG?gR#u#yK#mM
zyPBKb9hM+1rNfu2C)7Ztddq%RC`xZG8o1lP>}LQ4(DhG2COW>#)VepNP*<w5v(n>_
zR$_w7JG@^0^-HK!1r#zLJ*QO|$O5beZ>gcIID>#UiI$EpB&wm;>->Nku^aY6)7(vg
z+>O2Nq001}>Xp at s=1`B~KuNP&V%^s}*5m>W{yYrS)@Nd(g19 at tR+O82^uA2OfrbP4
z=C}v-Nd?(;we;X4_)(GuYx&bQ5C?KKYj*Y{M+WYIL5d%yv<v=x1wmLx^aDn=N?~wm
zKn1~mpau at D0$)LSL%&par~Cfr(nen=sj^i3h2M3_t>$$JiF5R7)IDy%K!SyhIj0oN
z-HN(>ST%sENFW`6!;AJou~yKbJU_f8WauKZt-Bqz?aV-;Uw;m{yPU(mkU;b~pXxV8
z;X#Ck?pqKWJor~24uU<es)L?Gz5gNaFlQZGJsnJ-FO^(ZENS%rhOnsk232s@)j^|e
z4*~`8kOkqXHYj4BY>N^;%YZLJR0dV6tbZ6_bg&w2_%F{kEGYRF1G|VTiWptcqa<WW
z-yd{D3^u=``2-ot0x58yGA9tFxOXrF6NkOoHE;5iG^8?gF2zG}jx_Naq(MlRaxvyT
zI~l at C$G3n>f0+f6cm|*p6cL!9J3$rUcR){U6tbbthr5;0KsUb7trin04a|DI07A8%
zCXal-=FexXz;^!(v0?&eXcX2$mO^b+9X-B39Z8(L(jRTVU1vSbma6bZG5y`<gf*0M
z2uNh%D|m3Xq<c$FL`|#gP8N8&p9x{9CU-IkL>ItlIFzFVf at kukXMgLoJrMhuN_>(p
z`#SMmfmNZZRk)W&sb4*8(p^5h^Ne|UbN)UKXd059%9NPr{4-|!r<F+PPywHfJh@|w
zbUmFA6=NwCE~mzP!_=ym5uGQW#YI)Cq{?@ZMIh~y5x!$dp!f8xYt15N2*cB%<~0yR
zb3s#n>sp{C8&#f;>v)TvG7PJ~_lOX_`$#T7K8G9?QrtiL<oEXRT379rzk-Q_`GV5M
z0sKp9z$&<H at 6Uozyz4x$Vvf|1q?i<?#BtCLq{ZWOc!ZQvX)9*5zj>)!7FAl4;es*Q
zUjCmu)xS4ivf at Oo;*?b6VjNA~t)0>fDM`z%^<m2 at Y)gm*xGlarsIAmL0(dDT?^8yB
zHb^JMJivM7+Vnh(kK1{QB;bziWx>(VG{L(-S!>p6bEHIRBIH2C0P-t&c+wp<U{lOr
zPSLpj8BOKGv};rD3oWkl2=D{|FA=OA3WgRUIT$03SczXrv!%tPvOGu~lm~qfP=<hF
zJ?=~r#*+`j`);@35a6~cB^f)f5&GLZU!JDk_`Vnr9=@@m-eC{hM*&F#dw_S%QYaYL
z7UPj1=%Uo<Q82*R7~f%V#1eE at f#am&HDWe+&~<aXm;MHpUTV`T;_~0+aDXzbv_lqi
zc!Arj;3$CHe>A8<AA&FqfB{3UhoF)NIQHUeDmcv1Bo{*vhb}{hHXt4?PdiH;yLUpJ
zC(374EEi%x8R?IGOgRTA?q`CNxiMWCho+gD;z2 at 94Yq+qKyiu|#XU`j8Vu4TYr2*_
z-VO^}-PJ!Guu7KyqJHQ7yti(=qE84lTBbMwR*W5F(8k4^4hfM$^jKB#;1Su|qk0Sv
zN-p at W*AOPDE|V&2e;RpY<GM~IxEGS46pHUg^p-f&1(+SXP57d!I51SI?vlkYp|Zzs
z%cIN5yx8*tAI6E5GYz7JfvKQs3<CN+xr0*)kAmt2FmW_^7T!D!&A+Q at QHSpVs%i at F
z_$xkZJq6F7nfUBhNQu?szByCeBOG%cf(T?rFfYiD3kVJPDYWY`bcl>{23M=-NgRiQ
ziN*)cfbF4Jhfa=_Bm}<|1o3 at 5FCq1h^dY1d=qYHkX^6u(6x9&klajRAf}4Qt2{!F+
zBGvi+VTBeoAHj<Mr0l}IXsAj{5iNw8mi!g<`Z0LSj?zk9-aX&ogs*P0UnDerZAwXY
zUBZlbB4nsvM at n=}q$Fhs7hGIzUla>XCi7O=Q?ib|8nHh-J=q*2*7=7kVa!al*f})?
z0P-{2JXDaUgjW>bBg}+K{01xW?<ENA%#7<1Z|5PV- at JMulg_4}G}WeA6tBF(2d at bi
z!g8UBW;_8=tXxv9FmJKV07|2lYG;;XxBbf+ulL+8%^ja}-Tt9^|N7h+_rs~nv8QI!
ztAs_{<>BNW?$!}n)Zjvm{KEIacSoxo{QU$wTB6&^XdM1nD+B%mC|Uym8j9t{b~F{`
z#1?g27h`8Y1w#@2m2IgH<>Zx|5S4m1$?`uHX+Fb&>Hg7HU(mJ`>8U>LY;z|leAfal
z&p at h^LRp}>3rho9?<fB86zs2Mft66LAe{kKH{SU{&*COU;&1`??+8ADJR5w_90A3n
z at 6hsBf`xSW1;INhd|Lg(-`$*Q4}$exP;3_Y6R(0Jo)<`&B0o<z?YUGg(tJgsr*5KR
zwI0Z%sa?$TA3m$UkMzUW(}Tu{Dc8nw^yjzN_Ph#7YVNokSWF4fMp;nm1!hgcpRer0
zN)(s10$riFfgdX~sYh8ch95NE0zNqfo;C+l;DD(|v~QFS4D(XJspZrd#p(H*F%R{L
z8(n6lsuReFV>YNR4NMUJ3}C^!b{|+;&xA5f?eb*6$R4KP#9zOsAVppEG_^VSPryhC
zVV_#pN>Bnaf4F;u0NnB5^?%1GG39zA0}8|>)BsQdQ+M<RWhhJu08RQK at W6qBMj)$)
zuP|7PoLxBhT?a%G3Q at yJP|^nLFw^n2Ft63hlNDv6PJoB?Cb1Tq(3|1MDd$nl>Pyb3
z>AnQJp8cTixSCL8^=;>Z3DxjvQ83O|TiaU&ek9PuoG;DY^$K0w7`JNpy-i*mFClwn
zUYQbhCr#(Y#;^0KDg%neQYeclvM?MGra?*JRcLN=>o{r7ZQJ*kBO2O0MVUSz$*Ok>
zvm7aybHeb&w?`v~JNEB!AjRm$#YU`oc*{MQKx|-wgIc^2Qvz2bGeC(Z%DgCw_D2oh
zffQEU`%z$XmBA7*{NT2}zfB!Fg#;QB`RCv<XH?<2LXXb1AFI-OOt~wda0raEo3rE~
zsuK?iZ at J7Et1|v|K?xu;4nB$)Zi0Z!a0I-Tsfp8`6PhlY6?F0Q#%0m|uL;5os6=aa
zs~*to=sztV<LJH|H}CDzIv>|<$yaq?a1w(0baJs&+N at C8Vz9`vAsbn9eS5pc)1Jd_
z?>f-ypd&E5dDY8)js-|v{hH~jS8jGDG)>1aCqJWY?FfZbey at F~K at g><?MK1Fy|$;k
zVn*9E4gUPT{<DeHU8Dsrt;@}o7PWc^u0GofdhIbChN_g{Q}X~SIjR%2k;R2>S=<MD
z%!ND`)oF&<-x{WfRd+;D13*$r6FpEAT2z1p4<zoNVT$rlb*PGGZ!gHu?%4PNJCJ1n
zm|Q;u&j*bkb%w6Bl$n!MfrUcwCpmclBC%rXSn+w{XJ=EJ32LZ+m}LOw3RQU2_K<v5
zHE~WGLSjXi2XX69NtDY$6rxzFv<#>uLxv8)YkY(hawN3oA!$1IM-D&F*rSu3%k~IG
zBw}(Dm7>JDfW9~bm;`0<V@?Xc^{goHhE3;rR`>=Y`idCA!i1vs==ExDg?3iT2R#GP
zM>8j1RoEx=FBQF#AkKJOcuFn{s-7IqU!;bHqL+FMw?w`?%dkyYJwIkz7jBu^$HiE_
za~LSZ%du~d1b{mw89&sc(|FwX1VWlwDZO=zOR^Y|P%^IWo*aFBZo_MEyQ2Fb1sgy~
z47kFd7fj6kVMW(Q+2?i8qO>-!@%$mnIpskQP}eB;YfK)Y at Zp74pd4C%6P8nG2g}w?
z5T!+>`UNA;xb!SS)0#--Xvx!@U>=7NML&Z)ceq{uAANo3&?85esomGpxTIMYa4vRW
z4YlpzENLxc5O>|3?yX(|rF{0i6}M#`4#nFd>+`!I02+Gsdi!u!B at mDU`Fc{@QfLN^
z$DGDh!iCoC32 at R(1)&E~dR(}x{4=Oe|J%+7Z2oDR(JBB2UXz0=@2_+)1NJEmBQwx_
zfgb$+4GaRcFdUf at rw`vI4-R^rtmoXWMW&~&Xi3J*l4WkP%7HHL256@&)vU2&5^vI=
zRvS7cO9i<A&&4#@QaZ7fUBbBSv3T`kck9~Syw2RR at F&m-Vd`?T@)O335+HGpljgJ!
zR_=h-Upaqw$^OoQyFX{7))vQic9h94$td-~=TbG}W6KPv at z>L{xtommKkCL0HwssN
zRA7577HN2CRch_x?WduALZf;;Hmf+K*L`{POHIu>&2j{XpZ8;+>3_1n3Ywwg4!CoS
zR>wTJ49D9lvn5Onp!iR%5(BMVqo;rcTkR<`2z9sPLdEvirtvyFxqJF%hy`T*(;y8r
zZS&Ws&8MVGOn6{$?R%C!B-&c*#PK0(Kixu*qZSjw>n`Q+`WKqrPZ{YkhQ7&wLm)-a
zM|X+Ke|n-&?MF<lceeLD=pkAi&c1k<dMd at Tj3?Hk{O~!YIJ+**ftomCfp?<clat6e
zcRxZ}*?~i#Sr3G^L2PaN-JSPGa+G~RpX6oM3hi7hAfB=f<-(|~Qiw5t8{2~el(!Un
zw`!f4I7352fyuukpd8|xOtry3>f@)EWAul!==jvs-P|mB(>(cq&|s=d4fJZ)GRpQC
z`x*qS;g2HagIUzf_n#43g{Y#NB0%(inotGZ2EKnl>CXrYMUGTF<4~rsQK}|NI0p2N
zVp}oss^pDi!}ocUm#btzi?j-46MttzNOIcho98E5C_)6vns}4S6gGXVV3!(G8;%hc
zdpO>gipd7sCOUQrW;Yp^yaC-y>VbO~C!ADCZR(!Sd2F209i|)<a%#{VH2fGS*tbW*
zaGY_JxOw8Z4rhLr^tr- at 4M9#LC7|sY|7yyRf6_i|wcxftEP97LzXAK+-?wH+r3;A`
z{|CsTn>-X`(-Orjgb)8;8<h8XU8#eOznC+dld5lu1DRkENUnk8_E;JyN?0BCc(cZ!
zsjfa^Fz{-oiGHtR{GU06oXRfkFN3=O!`)vrpwO_#4DONfS_U7c(9k!*MP+-SCc~)b
z9kq7!ufmWBQ46!nbf^Uz0GEH7 at jx7--^zOs{X5&c4dD%&-GfLga?}p%pE^}#iCx!(
zWm)C?Ad9!vsCrh)>jKTlS-u~6Je&(sr8Py{Pmtc`;D$*1QC1h$cpioAhOTBxK6NKa
zEW at aEs8DXa%c^NlQGz)ukJr=n&3MP+G30l}AE|0~%tN7+wkAAS9CQE%`oo}U<P;Ee
zs;efX(mu!^(4Vy<A78G>walHbUqru{T~V<~I*C|-4Sc&E_lEdRx2XBRfG`M!Sn&RI
z*ivLTrT)R$t_uMVmC)-!@O0S6K7$Ev!-5>U<sgm<oJbYS>t}A%_;E~Jmj0A->b>CH
z1`;f*pSp)AxbvY=DU at iTt9<=F#*qr(r1zupYel@%*Ier43>S^RAe<4YU*c&HlI#nr
zk?N4b%^}c}7JLoGjzSAx(RcAG+=Kz*$qvjz)|akiRysqE%JXTj)>w at e=+&q!fTx4g
zrv>mX_T)^cG4M5j?O|{3);3CiNrPNyEjS8}gbZoJN2+2R4<Y0p`Y3k0O%>c91Z96q
zW>kLhwh55cqBRgTjFhpcW)J_Oc?1n!7~YE-#uWv_qHNYwo^yd$B&|0s;<SUAF?HT7
zL(($WJ^_7)u(DNp?FR_8ulSCVkAFqmhU9wPwGMKrHIHcf&%wae?upA#6v1&Wv)Q|)
zY at 83jFyB!C2&6@!8$*o%;Ba9vx|?YIhK(k_7BPo$LmDevvO1L1-HxVg|Hqu%#Wf1)
zMCIDHy3m%tD<nXoozL9B(>=zB3Mi-E(jQ1oIVT*1gpxTh+dHt}9d!w~D5uX)^{?}V
z=oF8m;hbP971;LTEa6p`%)kn#72_l*c+K$FXsG=uB~W9a!rLDH*74#IrJK6QmGso}
zMJDF at twblD@h%e<LYnGgy!&%{kMVZ&!c+9~AW~_^WDo93&~%ej?z{hN0As_S<bE9L
zxU3Z<ZNUuP at SL2lronodF!;9mWxqS(*ROeUc6fF<pT-`o_Xk0D0*R;MK{jP5jc^y!
zCGyRU`nxwI29vK}fz3sNM^H3FMKafd9FCa1LX`e0Cu+}GXOm6|>&zl`GYg~7mfDCx
z`A_V*F7mYM9Hy+AU|zosGg1oL87(E at l=OQXTd>~-?-FkDqm^pv*FTLD)VQ`i7MEfn
zLv1 at EG6j0qN_C!4JS;?N^+KRLh7^WNmF1JKo_2cw(rp-KX!bpj63uYn5la=znunoS
z?$y<dk3wiAes>oscL>$ju3m%(BPwEwX%YQRJY4NY&x8A7=_qlM6pBoXSX9L^VCU<D
z5se_|`{O)^^dV9!_$&0N0I^$C2Zc@%5)D#pDRR5+<t!-(7yW~-kizTN4P01;P|Hs!
z at e9bxKdzoARVjLHc7+y8kOc@t^<R|8?IW7VKR~EiH+6s6JSH8_HCzOuSlYnkFT`1K
zdOVSKsCy36Ra8t+<4*;3O?*x(Q9Z`d*Z4!CwV>!yhuG175M3ry>|3XM3Mr&EpBM<9
z1FDWUXbyV<r}sB-7xVn+C_hGr%5 at il0zbF-rt?4ArkTpS=3f^QoIn0#ffe1NPP|IR
z_&@lXZTzU;$K_wt|0lru;{`!bp*c0CdttoSq6k at clmT_c+GNt$&RxGXTo-w-Kv;e#
zZOwbVj287ba%O;&m(QaqBE$wmNUoDA`K=EvfSAM#{v(=ZG_jQX^K2?-F_C at N4m^b8
zhj&Ub2}N<%xpS=-EcVw}er>Bpat(tZ^l$z`tgBq^KU2gdWsxc-&SXzLVCehFoHd!v
z#VikGxoVJb|981+&!PD_>3`iZl;p;OV8FVRW6I!#6Dr^w_x{xUpx!)vuYK5g=G5rR
zm)P%|?8&_r{2z(ElrTx<e#`j4nUfpc!i7#TjD`+{U$PU_*Hn)Y0tf#mJc at EWip4B>
z+6k8W&31xUYQbC&X+ggDSF6%wQJj#%fFq$jmsLSFk+Y^j9vlV(IM+p9EZ-7<uYb%R
z+gfx-NzMrIU16sV&7JAN0R%Yqgg;Si=LcFz&fUHFRD5zNF5dT50Uh?dyThEuzwSJ3
zaMZp=2{e~W)#Q6gOI>SQbKbdm0vqwp^nWAIp%@P38!cX0Vsw~7cj)f2$mjp?+sH?Y
zJpgz2yGV;#O0_N9B$b-}g9gAQ57QuAy5MUW4VK7%LK)y^LxvT|v#S3)fcoJWk0WkQ
zEp)oL)BgogT97&cgm<Ys3o^EU>;oiywAeUEArkhkzf@)icE4?tQbzb!xFAMcSAlmn
z8uu*9F*_jZ2Z9gG(!i7c4UBORk|n$o2Ong<$~6~J=JK%secliHzjpY=jlK9Y%EbI;
ze?JiE-{20^je!d(T-xRO{(_!*C^ep}?#b;n)o_`5#gFNa)6NGie_kx%-OYc=BHcs3
zl;aG|4GVD<!e&_uBF|5bGouKD;-D~Jh|K*H{&+|(cW`Tnpw|l=!^lIZd27kPK~?!N
z(5VAYuev{%TK)kFVSdVM5SSpokq<EUC(_042hYX9tEEz8;U8VnP at p^lq4a|OUcwia
z=ipVFOAq3Y2MI*I#!+5XEHOh!-A_UZp{s&1e at RkEPNl@pVZO{mv(x+GNoOBYVs~e8
z8dL&AVahE*!?e46WpQ_Ro7^AJtywb!ssmYZHyNoJh*>JAd=TccCH}8is7FurE at ht&
zxpJIPg&b2_1lKJ)5)Y>RC?$*L5T+a&W%Vs^xku~C=rQWU27?XbHH!mZL9m?klR|FX
zOfs7L_YSTohG41uzxRWJr%k|wZZcA$$~QP2F?)6{m?@%EMQ>*mJS-UW>Y6wnN$F at A
z-ZFO)LBA|wht2T4sHbL5X?OK0?16V-wukqYcRVzx6<Lm5zHV+}dTKXXcWOUaM`tAh
z9=v45bwr7u{Xcbmc|6qn_x~(t(Q at M=St?s)sjMxU8uw-y(rS_sm1SnKG*?1KmelQr
z(2S40m`}7AhA=4Wz1=JcLtP_dYf-rvQ(=VgJ?|Oa&-e5DJ-+i-HSc*X at 3WutJSRx+
zEK7WCFVp_iK#OPd9u5cC_(G(kXOCL4q8*k3H`RWmfHwOa+f;gF7m^Rud$Z;wyqz_n
z7W$iJkW90J<{!z(r6o)L=PhVxn3@)S?s>P~bl;{FFkcX^TgY+Q5J8JRZ17k%Uh1(7
zXe+_QIIy4YL(<ofZ9|(8luYr84r%oYpgj-}8)VM`3b~TSku$qup1x3#y^31O8yP*B
zINw*rv25EIIGXMm`ec{W$x^oeWC~4$OPL#Wh|){BuIurvzgUI^iIe$(h55R)eZn1R
zfd&nm&Fv!+I=iogrtWxD<qnesgx$14g(o=+3+q at hx*jnnN@#{i;Y5{HBh#+6I=Myd
zkAXV3nqT(`M8wCZ=4#4X`P1%mdjo43 at 6Ni#_3wCC^YIs=jWg|UXSanWT>9fxHMCK5
z#tAJr0q*b;$WegMzsMaPKBE at CIdRNjyrR@U3pbSW at l{~0Gr>C7!I6g`p!>S&X6V*c
zrf9R`{f28C?o4iwA3~@x-iYQ*emFnzhidrOgbV1u9ohPcd0KhHveB{cMsdISov-!u
zc-2#uM+~XmE9VHme9C+kcUcK8j^=i4dcQDZ&?w(r#=`B&+a30)^<ulNI7ziSJKUgG
z5V`G_8#+3jMoTQw0PvOUYGOnUX+U1Qd*;o3%TDSis=z80)stD1dcj<WLxW$PYr8ca
z?Z_7#W_*sywm(&XU!fuMD!1W%LD}#y2-B2kpp8_cW#rM}`(rn+`}4lLN^4l1x<tm-
zbs>A4C?O7&+S3{42k+0Q)0vD49b$v at m4C@S0cb11NYa<3KWbRL>ZYWNZ19H5lK`om
zu$om9m@$`cC8{aCIN4U+Iex8*Vo at BM-epo6W!<>3AS;v;)Cas)rgvnhW?reUso;u~
z`aPZqhh at u@t-;4(c;GIbuSWSt;@{Qqf2KDVKU9A at w>jmLlnt{-#gCS^Ybi#8n{?kX
z1=FrWWa`UNJz{1I5Z;w*-)li=(lDatynC;o&;>Amy*#FqG2XNIDmvr!(soUGYPYdl
z^7e|i7s1|s=U7N3 at RcBQUL0cC?V_8X&;`Km`1JR{{J`PrNL|i={j#OHfyP^%HoXg>
z7?LB9jqi4)8BtrLU^ehm@;u-m%Sw?KB*C9S?F6cIkQstnkPZ<M4dXan#P?dnT0>p!
zk0bKyApS>02?{?FK|}bNczdLCfSy=9S!L%iM3g@}@+eH~ModV5w{y0&fd8g{gcwR|
zd8G{E2b3KoES?C;7OP*fJ)8YDWo#&8-c)TY_sQhQc%~{dhw1lZr7X8i!Zm4V0TwMB
zb`*6_yVvN(SK|`&OgP~!_H1^4T6y!_D9!of`tU2^LAV_69kY9f9-kr^{pf78PTN~=
z3Ggj!8MC;hcst$~_o#$+SsQY7x+M$wB5&rc{1HJ?b-bQm`Z&)$wKP}j=+<PwLrQyh
zXetl4VWct__WdYV&_;q^H_uvFe!0dSzU*e+pcB}e^UmfD?OK>(;(_QFVd^!FOoEAl
zB0qgfReEQy`|y_cE~n=I4uG`e4ZFflIb)fBDBxW?jJCWm${qfr_UEJK%tsSrwA5Vo
z6z5Y at _%EHU4?bp4Di(zyGz?K4kfQZE^{tig)A8Dlf=f9wgO}%$`+~^Tj_%Xss){}2
zU<VAa7H9}yEwJ~NJ{`M!-%n31MAn6gZ<q2)W(%o7KDUo~o$9VblEM4{?M_1dFzhG{
z4L-dP8=%by9PsaLqB`$h)N`po;+N6E%eF^a4NeVE9x6<Sh^9!(F21j&w{5{tD=jhH
zZs at UZdlY2;%ii6tU3RINLo>K;;~gCV+955~!6}<3+xA*`ekkJywZdO7e8YLmNu at i~
z2e}YO{pcOkF*McL=p>FqVtDd?C-RC- at gwoYRRyQUiFE;UtZi;pMIiwfR>$a$VMjn~
zw4#K5CUHLaxUu`@k8R}7nPj^OeXUh&S&#uGj;v=fx;qgWi)!$Q8ClUzjZ@|__*~V2
zk;|F=$4mV3T at FE+3VF1j?!ZQ at fJD=v{C!kx0WV~QrA}=kwip82Knm^k*VEt={TH&q
z;H#Mg&e?+O0F}>XbSvr9iuSB!)Y67MEu_IodAGAR33EO+6-|#)JG&-0G4m>D2`eMo
z50Nv2gyQ`5zmziB_xC+?)+45Gsn;c*|3RW9QHaO`ugejLUXGc3(l*>km)E><_~~qo
zz+hqSPzIrUGODnxVz<j#PR_sFk~WWvPad6gl(Lu%Yh%H07}%g^Q(o-W!}R2|lSV&e
z5KiBbZ?jR!ZB_RbJ*Fs!2<Jk0X8pu2?GjW$fHvyCPUiYAC*s~)&bmb0#~ri1`APSW
zo0yZ@(tT&@2bW8=DWXctqb#sPTE3U9$<}5#9F}|HXpqJ0NE?qe-Mmg283qsT#0ZQ{
zaqu=FGOBIbM)IF2eLo<mmf&KWw19If+K2n;i8`vLwJI7 at C4ah#`sa?X{8~gGxs3~^
z)hyaL;PyTlDyOWmZC=goP(fLii(DlXF}Oi}%rU!Kx?*(mcv|{HqONm8JW6V1fSh4l
zSk@}6y|bgkAsn9JSAeOzA5}`n8GaFEA$mP&Qjh429nZNU&T-?=^$uK5ajSRYYnv9i
zxlsuJIVU$0%~?`e@`JJ?3(&6IUB+TgT($ku6RQy03q at CfZ`Dq~K;quL0BTJ!|K&nU
za*>#=pv$19d&tb2b|H<bQDo*1a#SXpQT(HVe##Z_8<rtb_t==~T&Jo55${@-FxANz
zVM7Vl&jq@(UDRB&vs+(XG_N(RTm{^TFqxy_8Sr6*if-!J%+uJFa at 5a-KikURZ9Dja
zPKm9mn*FQU<i-2tETIe{`v?jgQQ;{6BR6V%TL`|DV|`5aD5gfw=%!ORN1|4d`m36|
zY5cS=fGB+5 at 8_Gx7G8Oo=~TvF7HfD at 5O{+!`$+%(Xav3gG#pN<{Uo{`qJ%eq-#0VQ
zbn;gAtg*jVLU_ at EDW=qka19Kv?XJq{zS?<<D(Jc{VnDE56*S4W*G|j{v2e*hz%C(p
zc786}ya}i*7?UU&<aOFal`kK<GwZS}4f at A6o{JLao+H!{h&qf)`x$*EyQ$ptqp{~c
z5IJ%3)`ag04iTrw^U96Q=LiN&w%^fX;WrqU=ZLcmCp34H<kZ{2NM)i09ds{e-%M+j
z^4gj3-~opDOM07WX<<+2RbAZ3V}vKC9x?c8J+VA+KiFd>T)JeZa^vr+G@~~<Say4z
z{PApbPq)|vFg)9Kk9*c5DsVZK%$A|%SL&9 at wc3hP33uofFK0qTExsLPapab2Wz{OJ
zfB#1%%eCM8*<R)}8zp4_ntwmebK9lKau(V=>bQpI^e$h#u|!TJ?y6h)hg(7B5S|W2
zwAJo-QNKOxfI-zxjCs_D%bW5%zP~pBxt)EV(S7 at 2$dM7La-%IOH>r;yWd`n9H}!Zc
zQ#lCD*a&jLQ`rFoMGeJmk at hmA0W8Q8I*X&6249i-%pl_hk7b;Ib|plf1}i;~PAjQ%
zfkjM^F+S-ZrUf85eEHAQNFW%GNCNl~Yml%IT#Ba(5 at f01&&pl>LAADV)C%Rl#&Fq;
zyNZbRmH6O}zx)*~_Q8)_evlj`_abX0^}l=<?g!FoMo=qslT4ngDjUcjkJlXNF!sK@
z<-B^wujM&C35CQZ5N43nev7&OQ~^WPA2-84H$2=o6T&Mu?P=Ls5MEZJd}6FUnvcy!
zIac4<#rbjnevf5nGZH^Kh43{j^3-P+ at BCvwe#*j7Nw82x>S02`bvwh2Q8pD=Qm*`)
zCJH6#oY#ij3W?@_t3+T+zfFWJ)!0>B-)A~}H>(58_EyPSQ9nj$O^mKg`vdiM6AlqF
zuKF8%WY*a>z5 at AV@PCTZb7$nnN)D=!)rvMU-Dp!D=UHE#4;0XRxdQ*3t6)QksMeQH
zx_aH2Yw>U9i8YK9KcO7oZv}^Wn|{r^(3Y)nMHTlTzT(lCiiGGwW=?6?Yr|DV2g at UP
zS72dqbqE(x0?LLn6MK&T>(8#P{aC7p$Dz?tg43NI!Ta7AJ8<S<WWdKiqf*>*r+qn8
zl0JH!@U~NY^<<mh$mUSXuw(sn*U0j@{2kMk$KWy``$?ZJA*N{^ZeyO0u8KhtyR<^c
z at G_iL>r4M<ORzmTXN`?bj%za~oD$WZ)lMc{N^yK>l8r180}c>Xi&aw`w-Fv2uITUB
z?=5zv5tJB<?#g+*sYMJr<Dza}^QNDe`dU(p2yrCz*{!!{lRS5j6V(__-;d*mp`M0X
z2|PZN9a%)G+I)V6t?6CshO}E6r$GLs3!teASt}6-HO85{m7%Sr;DAK#Hz9LUtwoTM
zNoP+LX5CItAWO%^UjK9nWf9E+hg_*(pruue;NC_sW)ByCRIiL3t7+rR=6=iy$VTXl
zaIqXvUN?zOpD#6=nf6ILUnKcLAdg;o3xvAJ?x^)#l(OvI(cQ;wBQ0klr!s+}fVfw0
zpXYp12tj_`N+=lW0oB at DQ5GNT&qOHxWE>@3nG^TtMDO6m3uoRi{GG>A5gu32M4WUz
z-Po2rjYqbV`szP#)^m#5Xv&M%mBe-qXkqrkWL;WliD^<)?=nCl#OSt6LFfxT_Rt(W
z?ih94JkFD=yBah!5`{?gf*kZTle_aXbaVvu#$2~92`o#}>9KA+mC5FeWB>C{Iz+~A
z-3uKGpJ!Q?VJPKGn`T0J7ROePCzU*?o_Fr46b#%zfFX{C)5i_dL-)XK5kktfv)6mY
z*I6rYnrMa0qT5V%|J9-$d6oKARHi|mV8 at alAj;J6cvgV?7O@`CdbI1`!{I~Dn~1iw
z(8vYxR9$z<{T!i}V)kf+fr2febAH$F at 6&byv!t(epch^FCzx67z>ZK%%M#rRS0?zi
z?X|S8)UW8kI;QjP&=!IMF6pr}3WZ2Cr|3zLHv_GRl?LXU^I{|RF?TxY5%U$Z*DQS*
zEq27uPE~_cc?BEB;NLno{Dgtj1dKv(6}@&9*=Yrtr-i5H>Yu-a^7o65*+Bx?A~!Iz
zw&wnG<-L2(=_EPDKY89<(VuhWi=)CFi4i6 at N<Bh^#$<Q3gO$fGI1K--U}ky-OO*t#
z&u*OfqO=piU4c3-i(B46@*-PUW*T!sg1P-=acoKecU6XqdOaM?S{fW6uehOwZv|Nn
zxKWrKG|yEGMMUXf|10+)1<DzMokqZNP+}8TB!21~n2&xb3gOiTid}*SD2;zgVnJXU
zxJFH-tZ+Gd{-+nBy2RSRG9f=gYrt3cHD!T^@+VfaZ+J8HA(~9tF5#pX50&P^C)S!o
z at iE4%hJ2LJN3M*qyR{`w`FuoZ#P2P<7{o8o=s#JCf>5YbG#RaO7)vdE+u5?8=SqYA
zB#20%q;*f$|AD!G!<5bM@@bzB;4|m++>h4(V at ycSNG|J}Io_2|e1c7sfU<zOYSGkm
zNcb;|rPqHRtsn<@8BzapG%-N&JUOOh&;J$MB3vm)O}t&-fh;1ut<-sX7t~%7d1~e~
z>4Lh!R6UbjAqfHzhhm#7yycXU;k4=gZtUwJQ)yc1DS|+k_&aekU9%NUuA%{6;{3v9
zwB^j43o|9%@yqZdt;UR9dkIQdF2GuVVb8#cEl^zIYvsPxHwSlM1fqe`fO9%|KH=gJ
zHAu{7Hr<*#H}Ms*#ab!I&dB=s9+<80?BL*zj@<kAXAh5vaE(uq*8=$hptvkcgJaAm
zEio#&d4ac^+Wih3$In}LQ{voh7u?FI!L$k;WdAa-EfUK5zli3OZp|$Hy{%T!t+#S2
zj3e`HbU~FBz7kr~Q&g87c>ft>aPh2r<*CHiO1Nt)ApgJO!Dkgf(X^fqI!f#?%A36A
zcC;QPbO#3p;k=%u?GZS6Ks)c6b>DUo92{{2kcIYVqFe(-A<r)LPS!a>2SHYcxT2j8
z?-lVh1lJa8t2;36zuy>mv<h5e?sCLGfSgfpeaBj}`Q3<PqDuq^1GwEx=Kmq}_jCr5
zm;g+QC4V=_6+(SbZjzMWB0dyxR}g83$e<{f?U7l^tYHhqhSyw+uWxl=*Dm_d at fLDG
zWxYJX at SC(fZS0_o6aPCam9`HCGL6i6buEpZFHF90quRUH{(7M}GN>h4{_U5LBsTwr
zYWiLCk{)G9K1lciSD5MPB`nRVFBoXQJ05ba1^Sj<5)1G6mGm?j{`pA{?`yO?Ect;~
zq;t(zU-48;V{hOk1$_c>Bz at gn^~X>nY1jc2z7S_OA?oyg7?>_r?|}xWttPc^)!SG#
zPb>jDu4kJr<2BKGexlljXC8(u(7BmqZDmj?9H_fpHu!7#;yQx<C}kJXXo0m(X}^o8
z+;x^ios5ZUD46WN<9)GHpC8=;a{;nGc2@?ckEj|A46O^NG)~_O(01;-P(mxusdMc!
z`dgpStR5(OwI;=hh$0ORP_j>j at 0&?q<kW4D?Z<Qi=G at P+v~}sX{VF44TdvrtQWnC?
zvX#Fj+&bhfPm+5;Pq;t10HwYxK!FZS)|P3iUWXDIJxPC=(o}+#+F7gTeqp*u;E9Ay
z<pJ^}+Lx1M!Xb*w;W%!)*Ygc8*%oxiG0Yu%==#-L*4|JxyytAM9q+LN`yyGMWX|&5
zn~3RqZ at jpG_#i&+0#9vv)Gs<w6CW3xUx3MA at T<0ANE0M1_iImI5wDtW`EY at quZZOm
zp-_JM;kthWYcphtf9>~dMtx{j=5~bFqT4S7sAJ6v-KwsK{^p`?>nbWN&)X`E4gW+L
zy(AHh<v5tb`s9F<#+v86{MO;)21-%>bxZ#Gdo-1)AF+m2Mh<B`prFt_)oEBllQEOX
z at 9dAP$%7V0z%u9dxbmQKJi_wU>mBNI|Da9*Pn7sD<lC7G%8ho;fAMcHQ1M|^gyOId
zlhc<+3?=$u7RsQ$fuAG1=LRPSBr&DLUUPXELDN;u>P`EF5i21%$g^i>DeSvp1 at ZwJ
z<*xE}vQbJ%mM9a&G1tp6Kb})2=5>!!aD5R8<S^Id&0~)qjCPNPR4?qN9*R*(^?Y*@
zCLhSb{k{5^z3qP$t?ZV6pJLVBGGhm;)ojU&JuqKv$(qxw2ut{$OaurbikYMQ__)KV
z!8DT*gEBELFlA>{dF0U`!S1=k_}P7Y+rZn1T=uMQzhLDB%j=_zlD=6_1^nedK5XgS
zlb{*4?W((m;=ah;Qx&g*ket4MARbGGu3CAjHu%`C?KWu6^6EQ{+fCeg6TPH%E&|=x
zM!c67p6p;O*EFp_4x%X%XO+t*j1SVn0$+jehG+tzF*GSQ6FY(ea`W#gLj%*;a%%U9
zCy4EndM);qJJ(%l;9L2wzaPegTX9<@p53ek%er#5jBHlm6B>IX*>|prqTE<Ikl|!?
zR7p6z^M%s+pdI#8Fs1<ufd!JoOk($Uucd|mV88UD7RznUXeP5|eBJ+Y!JvaQPanhG
zOtr2Ew+MaKS^k|$(m0y;$N&O+&fM(-BRy{nZ~OsB)$eD#=c+KisS)~jSl;E|`*tN6
zTwg1PU|sdU- at Xz!%M5Kzd?tN&H2mz2v$8&rxRRyX#t1~CSDoXGC|zUgTneT`8lEQi
zDdfz$q(9P3UZQqIS(e*0RSFv8R?XXpx>%P(mA1#Te-0WgfcfVkU#kkk2SazhuU$fw
zxJANlBWlN4ahS?)wRC_s10{VZ0qXuWBQ8rgl)MDS?yrMk3yTn+XY=PO0-h6n!=xUS
zzbdP&b^uGI_!ha9^;&B_zybRwE`hgQ8ndU6Z}MC!E*WQuQ1RCDxHpL_DYDZzRdeo)
zg=S(_W49na{Z)F69wnecE4V*gsLfjnySt;QrEgZBG(o(f$%DKB`p)$@7H`qob^lsn
z#oN&szsD$L;xAD at kDfHqL3i5~CS1xQHr!{2dq-HVvvhU~gLM!uKdM}p6 at SAj-_I)F
z{u^778~a;?K_1ozC5(%*$d~oERw<+2PH5m)c at Smj^tLyv at cEVE?r=nRX|U#I=j!Ta
zT^YQ2aaHz!C~I!YC*@fO;Xq+R3|f#%Y7ds<mU{gg=@2@*(u*hYiD)RU-CTOdlYJO9
zqu-nP-Ow&)i6RjVj+wJsYsJ8uIL-Ei*Tc)J!5f>4JS0yNk2mc_m~)oY&aRri5mEHk
z-|{P(O7peKR6S%vy2~bi%iINNfWAN>;w(5KI&zZh*D8Z_whJ|oEP*G2B{HoVo7DL`
zc`~STEw{h;WGQ_$G;^{mbEa+?04Mig1w|q`ZoVf5>Zj-XF4-uuJ5ug9owzP(h2JwP
zJk~|^h~mpbhrI_fu<TNu$AH1T>bi{f2b7c+0Av`TjOczj4y8`+v!f9lNQ1d|Kxlr3
z1nIC=Fx*|e-TsbhF#F+<Vez?jk&}R;5<rAZR`1crtKI$u at pB|yd;&pbK|-Wrn?#1u
zL%T-oFPcx=DzV~!B2J{O1z+L3r!ivl!EwhOZ>(EJL8O_xdedk#l(pHApaA`V1q}!h
z8sszJxvPj at frLkrZ{vdqnW~w=s$pulgdxLdVo#>I{F}~z!bf9^nJ{q1AlLdsdzM8?
z8C{*Yx`~JpbUMvt5s(1P6hFS*OOBd}C3*F6_ at v_u^C$F*J^_u)X=Ieu>6dqrx{5>k
zDx1V``kZG`<mONy0eB|R!0{mGX&nVU(^Rfi_uMaVVh{WI-TU<hrH6ya#{P0t?gQDC
zxd_4=e0MU2RPNgE_v(7I-TP1{zamUKoyR~+B4#9_6Fi4z&H8}BQZTXaN+bc5RGT3#
znybKV8 at -yg#LNxqMaXjSc0kFjMw9Ll?|G~cY`#8m;1e21(gCBs&mx)<{IS?C&)Yto
zK+KcDDQIg}ZBi3v?GijuxecRZYzW0@(3VhNlB@);J=3}%WM{u+TX!kQu%xJjycb1>
z%Eq|xfHg>41R_)tCk;}sRqqA+m1+FpB~pSy*7In+VV;7+|CdRE7OI6{rJIic7DzrC
zRJPQYIF*tUzNa{|L*wINoFeJ{XWNLXmt~0u&#Y=6OVmAd6<?~1^o{qxm?13pqaLx8
znUmf#-+VE4%csNK#8J^$wU~13Aup<a8&=>pr7Y<JMNS$Pbkw|3`Jly_xPs3~eN!3_
zox(LKzALPs*L=*l#aYw2yS%CF(TIS;e}JI|LU)@4dqEyPbm6kZKq5;R$Z{FhM-7-0
zRE57XH&~--KepQdKqf%2lohYp(+9{xfJLT<{XIr^cX9simjVzYvoqQvBiC8y7ml$-
z@&?Q0RHLE45lo@~guu2LAe_*2n at e{`r=zYc63<_sbz9fHGb+V#*d$3|e_dFotS>k2
z-71*ektRBT&#x8Zepu2zMuUdY>|wysN_${dw3pMYo(CH}AEga)W^cskpaduJnW4g*
zQd<nS2DrzOD35dvNVw^voS3J6g>V1DpkX6N6Yw<&2%os3I9~+5R$(93a`o{eoR2uq
z_Yz0D{KxjR=}Z7+0Z!}7Tx at tz+Lzi8y~_OYq1*oewBFtDUEMB@*Tn(m%e`Ei<O~!7
zLb(D4pk`a1ApEv*Oxte?jMS5}MHqov*G3R1;H@<s6tq8aM6ODV5{4G<S3eEM1Gqkc
zZ9%BjArAof8p3+C;a<e3?1umVsc}jqJ^nfrHJR*4`%StTlj<sxNCj{L+#^Sck2O2C
zx at Fij;;kt*1%m#j1J`OAAHS`1V7E~YLlP4tUfbJFru`fiYPk5rxCHi+L4CBp_ at _UZ
zY-4<tkK63*R9*IZf9#?uzdm#q%w>o{iTH at 9@@G^2$=ET2Qn7QrxUE*jO&j`eK<))|
zQNgmLx&>GsE(KFYW>73|m0%p^GR&7j+~$t)2U}CKl#5z^>P)ZaPR|=tk0AY#5~oF5
zE6QSpO#W%@<yy%fj}+G|$B*D_BaX|H@`L=%Qnrr+(ctnZe<+4j?o7BO-lus1C4A_I
z63n87qJ^+p#qiPT)gXQ_pT>S|271>iInV=jh;2Y-I{`dm2qvnXP0m|;#bUV at PVo}T
ztTs at B(ZTfqLIY^De_|s(u7&%mr at q*u2Zo1{H_*6YAE@%Dz&*`Z)kSxOV`t&nr7Xq<
zXd-g2BX=t%P9+4&QAAiXUXWx=*Uc8=@#o|#bo5P#Hph0KiV|<dKi7QOIaU8c)Fy{G
zlWW$TwQ?}(FX&u-3(cKL<=SS??OT|N9KT`+aBx79NB|J2D8aS|aA>3h3YlL?jtVwq
z&E3{en2_|*OP<<S=rHEGk}m1E6Hn%T$&Ngy at pWCF?c@}BZazc}*XS0sqNb~4<^)(@
zVLtsb31T5x;aMXp?b_pk at yENnMjzYO4hR;yEe7jhn~n=RN#WrGtEeI9r%h!rzA@*A
zDz#i>>*Jp>!sR*%d&3lS=Wwa~$H%dPr83QNAf!3u-}l+?=V at YWIm(o-ipjbBtFsk%
z$9y6?Jmb|DIwKP2`%AO=Q(<k}zGV767OOkZLiaz9nCSO&>l%W#9MI-&QNa@~H2HQ~
zKCeSmwBe&Dqz$zNV`4i?^*6<yu50X=3D1=+2+~B%&&mp${inCQY<?kVIAWrSyO-tJ
zdTCqLKuZL>V#mnZvE3;h=O5IPU%JZZ@*oa=XdVe|#jFc54wQkICnw2uYp(m0`NZFH
z&F?jFGeiuE{gT;E=rGhf!g?V0xaCUV#9H>hAIKg6jHYR#?rb09e2rpzTKApbm5RNT
zVGcm}6eS&IYkuUv^nbAyIMHc2)w!?pPLy)D4bfwL_aX7cLb1~HLE3XK(R6E+h#wSR
zZbyEeGgY}?+%Y3;K9?}jdt4sI?rdWbZyoabrU`z$jRV>!>7m!A)JORv9^#94I9u~8
z-?m2gP)$eyh8 at Dzz4sa8dI%H<241%4Y=q7}^JAX(eoaK|D>=H-Q>9S at e=hj>Ko`m%
zMjRY#gz|(o(wb$eCdRjHuJ+!rX}n4m0LFmZgVg=Vx~UcnV(113Ksnh^97Y}au8~!{
zvzF>i-8uyWSv2v_)g44D;&QrlkA8rhlkVRhIvq)9Ba;AYuY2|Uy3(Gu12EuXja{$?
zw`nw<vCQ at k$4_q=loX2W_xGA||HQr7dx7UY7Sl5L<Ef0N(POgQWO?iH$V_rJYF(!;
zLd1;On+<5r7a9U&LcnV4R}5Fx)&%j|`=)*kyQz;7PKm}0FjT`;2m}h50u15+FAAAp
zfF!vQ?+nx;A`&xA;mth2|41K`eyyc7vz3)z&p<~0!qDpdFesYsr6HL&3sY6)(J)7N
z at z>IEu8YszN3~*aO8<<8B5CVuD)Ke5`#CwYxJlR!1{wh6&@30n+uxsq419X}^jR3j
zOgCc9RXMK4FHVV8LkU!KC9|+W5vf57_g|8!(J%@s9_GgFgM+{a<&VsML_PonmX4K{
zoJ?{x<Vx_FIDjvGwMnv4huq at 7Ay_ly^ZjAT$t0^tega2c-0c4zJ}v$E77VgE+)BFF
h|Fy2bbz%M7#ysx>KODRb|M?_}V100Z;ZLWd{|A(kt#|+c

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded
new file mode 100644
index 000000000000000..d0a0a074475b5f7
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded
@@ -0,0 +1,2028 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 35
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 640,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 65,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  template <class U>\n  unsigned sum(T t, U u)\n  {\n    return t + u;\n  }\n};\n\nunsigned caller(S<int> &s)\n{\n  return s.sum<float>(1, 2.0f);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 765,
+        "y": 35
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 215,
+        "w": 170
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 110,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 19",
+      "size": {
+        "h": 75,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 110,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 22",
+      "size": {
+        "h": 75,
+        "w": 215
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 110,
+        "y": 535
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 27",
+      "size": {
+        "h": 20,
+        "w": 150
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 65,
+        "y": 570
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 59",
+      "size": {
+        "h": 105,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 290,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 78",
+      "size": {
+        "h": 105,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 245,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 74",
+      "size": {
+        "h": 100,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 460,
+        "y": 35
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 32",
+      "size": {
+        "h": 145,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 505,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 33",
+      "size": {
+        "h": 130,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 505,
+        "y": 350
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 34",
+      "size": {
+        "h": 75,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 715,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 84",
+      "size": {
+        "h": 45,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 715,
+        "y": 390
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 46",
+      "size": {
+        "h": 75,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 150
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 215
+      }
+    },
+    {
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 460,
+        "y": 180
+      },
+      "name": "32",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 32",
+      "size": {
+        "h": 425,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 505,
+        "y": 460
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 37",
+      "size": {
+        "h": 120,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 715,
+        "y": 490
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 43",
+      "size": {
+        "h": 90,
+        "w": 220
+      }
+    },
+    {
+      "loc": {
+        "x": 65,
+        "y": 210
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 345,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 110,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 18",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 780,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 50",
+      "size": {
+        "h": 20,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 310,
+        "y": 620
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 65",
+      "size": {
+        "h": 20,
+        "w": 110
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 310,
+        "y": 655
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberExpr 68",
+      "size": {
+        "h": 20,
+        "w": 110
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BinaryOperator 29": {
+      "Dependent": "Instantiation|Type|Value",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 81"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BinaryOperator 53": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 24": {"syntax": "\"unsigned int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 42": {"syntax": "\"int\""},
+    "BuiltinType 49": {"syntax": "\"float\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 81": {"syntax": "\"<dependent type>\""},
+    "BuiltinType 89": {"syntax": "\"<bound member function type>\""},
+    "CXXMemberCallExpr 67": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXMethodDecl 22": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 27"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (T, U)",
+        "ptr": "FunctionProtoType 23"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-inst.cc:10:3",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 19"},
+      "FirstDecl": {"ptr": "ParmVarDecl 25"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "ParmVarDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2295439228",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 25"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 26"},
+      "RD::First": {"ptr": "CXXMethodDecl 22"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 22"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (T, U)\", <in/src/ct-cont-ft-inst.cc:7:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-inst.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 37": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, U)",
+        "ptr": "FunctionProtoType 40"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-inst.cc:10:3",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 34"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2607168096",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 38"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 39"},
+      "RD::First": {"ptr": "CXXMethodDecl 37"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 37"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, U)\", <in/src/ct-cont-ft-inst.cc:7:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-inst.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 34"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 50"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 47"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-inst.cc:10:3",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 46"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:12",
+      "LookupPtr": "null",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 45"},
+      "RD::First": {"ptr": "CXXMethodDecl 43"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (int, float)\", <in/src/ct-cont-ft-inst.cc:7:3, col:24>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-inst.cc:7:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 34"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 22"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXMethodDecl 22"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 46"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-inst.cc:5:10, line:11:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 77"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "23926663",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 76"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 33": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 34"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 33"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 33"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 72": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 73": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 74"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-inst.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionDecl 59"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 74": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 32": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-ft-inst.cc:5:10, line:11:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 83"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 33"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 34"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "55952531",
+      "PointOfInstantiation": "in/src/ct-cont-ft-inst.cc:15:11",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 27": {},
+    "CompoundStmt 50": {},
+    "CompoundStmt 65": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 30": {
+      "D": {"ptr": "ParmVarDecl 25"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-inst.cc:9:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 31": {
+      "D": {"ptr": "ParmVarDecl 26"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-ft-inst.cc:9:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 56": {
+      "D": {"ptr": "ParmVarDecl 44"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-inst.cc:9:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 58": {
+      "D": {"ptr": "ParmVarDecl 45"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-inst.cc:9:16",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 69": {
+      "D": {"ptr": "ParmVarDecl 61"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-ft-inst.cc:15:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 63"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 77": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 83": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 63": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 64"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FloatingLiteral 71": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "BuiltinType 49"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "FunctionDecl 59": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 65"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "unsigned int (S<int> &)",
+        "ptr": "FunctionProtoType 60"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-ft-inst.cc:16:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 61"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:13:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 61"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-inst.cc:13:10",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 61"},
+      "RD::First": {"ptr": "FunctionDecl 59"},
+      "RD::Prev": {"ptr": "FunctionDecl 59"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"unsigned int (S<int> &)\", <in/src/ct-cont-ft-inst.cc:13:1, col:26>, Builtin(\"unsigned int\", <in/src/ct-cont-ft-inst.cc:13:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 23": {
+      "Canon": {
+        "preview": "unsigned int (type-parameter-0-0, type-parameter-1-0)",
+        "ptr": "FunctionProtoType 80"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "syntax": "\"unsigned int (T, U)\""
+    },
+    "FunctionProtoType 40": {
+      "Canon": {
+        "preview": "unsigned int (int, type-parameter-0-0)",
+        "ptr": "FunctionProtoType 85"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "paramType[1]": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 36"
+      },
+      "syntax": "\"unsigned int (int, U)\""
+    },
+    "FunctionProtoType 47": {
+      "Canon": {
+        "preview": "unsigned int (int, float)",
+        "ptr": "FunctionProtoType 86"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionProtoType 60": {
+      "Canon": {
+        "preview": "unsigned int (struct S<int> &)",
+        "ptr": "FunctionProtoType 87"
+      },
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 62"
+      },
+      "syntax": "\"unsigned int (S<int> &)\""
+    },
+    "FunctionProtoType 80": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 75"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 79"
+      },
+      "syntax": "\"unsigned int (type-parameter-0-0, type-parameter-1-0)\""
+    },
+    "FunctionProtoType 85": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "paramType[1]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 75"
+      },
+      "syntax": "\"unsigned int (int, type-parameter-0-0)\""
+    },
+    "FunctionProtoType 86": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "paramType[1]": {
+        "preview": "float",
+        "ptr": "BuiltinType 49"
+      },
+      "syntax": "\"unsigned int (int, float)\""
+    },
+    "FunctionProtoType 87": {
+      "ResultType": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 88"
+      },
+      "syntax": "\"unsigned int (struct S<int> &)\""
+    },
+    "FunctionTemplateDecl 19": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 78"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 20"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 19"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 19"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-inst.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-inst.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-inst.cc:6:3",
+      "TdD": {"ptr": "CXXMethodDecl 22"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl 34": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 84"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:12",
+      "Name": "\"sum\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 35"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 34"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 34"},
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-ft-inst.cc:6:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-ft-inst.cc:6:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-ft-inst.cc:6:3",
+      "TdD": {"ptr": "CXXMethodDecl 37"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "FunctionTemplateDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 78": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 19"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateDecl::Common 84": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "FunctionTemplateDecl 19"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 46"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 34"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 46": {
+      "Function": {"ptr": "CXXMethodDecl 43"},
+      "PointOfInstantiation": "in/src/ct-cont-ft-inst.cc:15:12",
+      "Template": {"ptr": "FunctionTemplateDecl 34"},
+      "TemplateArguments": "\"<float>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "ImplicitCastExpr 52": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "unsigned int",
+        "ptr": "BuiltinType 24"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 54": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 55": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 57": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 76": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 90"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "IntegerLiteral 70": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "LValueReferenceType 62": {
+      "Canon": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 88"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 63"
+      },
+      "syntax": "\"S<int> &\""
+    },
+    "LValueReferenceType 88": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "syntax": "\"struct S<int> &\""
+    },
+    "MemberExpr 68": {
+      "Base": {"ptr": "DeclRefExpr 69"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "CXXMethodDecl 43"},
+      "MemberExprBits": "NOUR_None HasQualifierOrFoundDecl HasTemplateKWAndArgsInfo HadMultipleCandidates",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-ft-inst.cc:15:12",
+      "NumTemplateArgs": 1,
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-ft-inst.cc:15:11",
+      "TR": {
+        "preview": "<bound member function type>",
+        "ptr": "BuiltinType 89"
+      },
+      "TemplateArgumentLocs.LAngleLoc": "in/src/ct-cont-ft-inst.cc:15:15",
+      "TemplateArgumentLocs.RAngleLoc": "in/src/ct-cont-ft-inst.cc:15:21",
+      "TemplateArgumentLocs[0]::Argument": "\"float\"",
+      "TemplateArgumentLocs[0]::LocInfo::TypeSourceInfo": "Builtin(\"float\", <in/src/ct-cont-ft-inst.cc:15:16>, NullTypeLoc)",
+      "TemplateKWLoc": "<invalid loc>",
+      "ValueKind": "VK_PRValue"
+    },
+    "ParmVarDecl 25": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "ParmVarDecl 26"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-ft-inst.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 26": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:21",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-inst.cc:7:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 38": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 37"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 37"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-inst.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 39": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 37"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:21",
+      "LDC": {"ptr": "CXXMethodDecl 37"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"U\", <in/src/ct-cont-ft-inst.cc:7:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 43"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 41"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:16",
+      "LDC": {"ptr": "CXXMethodDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-ft-inst.cc:7:16>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 45": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 43"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "SubstTemplateTypeParmType 48"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:7:21",
+      "LDC": {"ptr": "CXXMethodDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:7:23",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"float\", <in/src/ct-cont-ft-inst.cc:7:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 61": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 59"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 62"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-ft-inst.cc:13:17",
+      "LDC": {"ptr": "FunctionDecl 59"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:13:25",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "LValueReference(\"S<int> &\", <in/src/ct-cont-ft-inst.cc:13:17, col:24>, Elaborated(\"S<int>\", <in/src/ct-cont-ft-inst.cc:13:17, col:22>, TemplateSpecialization(\"S<int>\", <in/src/ct-cont-ft-inst.cc:13:17, col:22>, NullTypeLoc)))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 73"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 72"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "RecordType 82": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "syntax": "\"struct S<int>\""
+    },
+    "ReturnStmt 28": {},
+    "ReturnStmt 51": {},
+    "ReturnStmt 66": {},
+    "SubstTemplateTypeParmType 41": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 32"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 48": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 34"},
+      "Canon": {
+        "preview": "float",
+        "ptr": "BuiltinType 49"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 49"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "float",
+        "ptr": "BuiltinType 49"
+      },
+      "syntax": "\"float\""
+    },
+    "TemplateSpecializationType 64": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 42"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 82"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 90": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 91": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 75"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 91"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:4:17",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 20": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 22"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:6:19",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 21"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 35": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 37"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 37"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-ft-inst.cc:6:19",
+      "LocStart": "in/src/ct-cont-ft-inst.cc:6:13",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 36"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 75"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 21": {
+      "Canon": {
+        "preview": "type-parameter-1-0",
+        "ptr": "TemplateTypeParmType 79"
+      },
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 20"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 36": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 75"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 35"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 75": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TemplateTypeParmType 79": {
+      "Depth": "1",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-1-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 59"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParams",
+      "TemplateParameterList",
+      "Specializations",
+      "Decl::Implicit",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "paramType[1]",
+      "Function",
+      "Template",
+      "CTD",
+      "FTD",
+      "Cmn",
+      "TdD",
+      "FTSI",
+      "DC",
+      "Base",
+      "MemberDecl",
+      "TR",
+      "TemplateArgumentLocs[0]::Argument",
+      "TP->NumTParams",
+      "TP"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-ft-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Body",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 325,
+        "y": 155
+      }],
+      "end": {"entityRef": 9},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 8}
+    },
+    {
+      "controlPts": [{
+        "x": 205,
+        "y": 15
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "NextInContext",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 905,
+          "y": 290
+        },
+        {
+          "x": 725,
+          "y": 195
+        },
+        {
+          "x": 360,
+          "y": 195
+        },
+        {
+          "x": 280,
+          "y": 315
+        },
+        {
+          "x": 280,
+          "y": 335
+        }
+      ],
+      "end": {"entityRef": 3},
+      "label": "InstantiatedFromMember",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "TdD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "FTD",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Cmn",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "Cmn",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "FirstDecl",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "TdD",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "FTD",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Template",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "Function",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 670,
+          "y": 560
+        },
+        {
+          "x": 525,
+          "y": 590
+        }
+      ],
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "FirstDecl",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "NextInContext",
+      "start": {"entityRef": 19}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 290,
+          "y": 170
+        },
+        {
+          "x": 260,
+          "y": 220
+        }
+      ],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "FTSI",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 875,
+        "y": 605
+      }],
+      "end": {"entityRef": 20},
+      "label": "Body",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "Body",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 925,
+        "y": 605
+      }],
+      "end": {"entityRef": 17},
+      "label": "MemberDecl",
+      "start": {"entityRef": 22}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 22},
+      "start": {"entityRef": 21}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 560,
+          "y": 645
+        },
+        {
+          "x": 495,
+          "y": 645
+        }
+      ],
+      "end": {"entityRef": 4},
+      "label": "getTemplateInstantiationPattern(true)",
+      "routingAlg": "RA_DIRECT",
+      "start": {"entityRef": 17}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 689,
+    "w": 950
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-ft-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5fe93332efac50235e110959d280bd107591921
GIT binary patch
literal 36329
zcmZU(2{@E*)IZMH_mF+fmKyt-y~UQ4R7eaX%%DN`vTv1L2+39`vW{)+j1*!R5=LXG
ztYJ)9MvUeEjK1&t{;umkm&-NtJoj?WxzG8W?T){B!-S1lkeP~#itVbY;VmjE8Wa^3
zsFsl)cmj`8dO=0SUl4rfuKyKpPfu4be=4d+c?7*gFT81b*X2{sp7>Qf`q)&$2D%Wa
z>- at 1cEGuv7iZFkJ;o$VmlBXr<k5rC!E5dJjq|Xe!lj<YcBQp?&r21Ja$oN6E#jWEt
zCw{uKM{*+!k6RhFgHJ6xiPGoj|NRR|O|RAeTOBdR at N{gHxE-}P9kk7_IcdTdY+_M;
z%$>C5csn9IB;7o^m}XmIXI^e|ODSIQr;-6<ZyM|(UhY8kV$aMf&E!VlcFjI|eReLW
zb1l4}^v8~b$=K>~qpJK<p;;LuTKttu$cRLUkAP$E^dx*i-n>q5HONhaxpUFv53PoJ
z9@$x~edvL2mf;V6R4K<B*Hfu9{BDgwO`Sn7P7?-2+K0H*134kOdM&hs_)X*>^tUi8
zUC)omGo>PpHqL4(8o^-#@W^7HYPLpVcI`VWJNtHH3qBv-8}ra2*Tkt|(?OkYPf(Ad
zX20Kfl|{cNk=$rcE=B$23-*r?m^)^P3Y-d9H?e%a!Rq+L=ja}p0VKa+-Ue$^B30zd
z{@I$;F*Z>RYSUDN#)c$C<tinRGGwnhaUTmAT5dMdUQeYNcB(V&i$ZZc2h;Sc$;P%X
zUzB}1Ds88VPapUpAu1Vu?)Eju{Cg$HM>kCm!i7FKe|^Eig5N;7=0+To!=BH{aI?~m
zEr6&Qo$<8YUkFNti_?S)gtr$}a?d6{ihlalyyo)UjJoCi1=F{cYmYpA?u}>~zrX$F
zL9yNU?f6Skg9|XnC!a^RIv7jNeR&pQvux6Jq~Xy`j-h@&Bp0t<)Aua%N5k9WzSn$X
zvstV5)E}!sB}l0Pnm;(NAQmct;TWG4lOKgg>7|tkFVzqOw`V677h-NEj7h(U9>Lv%
z<T1=kNw0pWJO2<_7E3T-*pz(@)mmf5rBge_V}|4h*?XJ82eDOmFJ5~`w9>eBYL_&_
zFl at b_`?CmBZSv=O(Uihm`Qv^z%SF$IcU3CS1bDc63Cyf at RV>$w`znQ5+C5Fp at csoQ
z;BVrx)UrZT<JNS^y<bj;4KT+vj&fxDkr=xXhrPRO*QP#~MeSmvcD2jy{-~hinY92d
zF<3gO-DQfyC^5jIw?X3tjb5kkufw~2n6)%QGvUyDLfNl1v=1|@EmP7~E9-0TS3J|q
z9-)a3LVgXLZ)l{SWvE{h4<maPcz9W~XIqHqC3(lFVGj8d(^Cukb-CMRxIPMxE#@EZ
z!%Fc{$2>;@x*^<q^H}X at Cj7ukuE_o~cNTDag}S;(>6K%p>$RBjCUpY)VNZh|dudZk
zuh_J&4t?3#RLG|LYTxbQ at 4T$61d+hcY6sSyYb{9n`uUc(Gjx~ipT#axovs`pJuM_Q
zXpR<jGWMuzqg9ZnQr*K*rpufh!VV1XB6rpC7n0T(l?e`gzdl5m_iRCL6^aR-LGZuL
zB8TUF{DDg~4%*sRK{r#C7SGq|HM8xleKN$pO{h*jQo1hi<cVzdn-Ifq-XCxl#2d?(
zR+q1q=Y(zl7Jtcb*XHtW at dX+c>=neo!IP}NlMG@`Z;A_lzL|aUhnBOytzyhS+9bxN
z*iUU(m#s6F8kv0Laf|i+qSD6)ZYtQ();YNkvK-E8)f1}FYucju?E61v#;3G$*k|ud
ztlk}OERgaU4EW);>8srHDIkl_Soq$ToWkMXU)CLZzP$A0hp3qZ at -6F|N*>-4o7?~O
z*1;3 at EfY3);SvAx&XV=popByDRg6Q&TTkm(zJ2xNOl$trJAo-~nLp{ML<hslam)Vi
ztCz;rZ-KwDUUMNl-Pb?_AvE7Kk;6}O<`6t at oRZ^eHe`0oxOG`Rg|&y6eCfJ)Rg-4>
zE5+*WkFjs&q%w4LH4BOaYo4UBlX51lXxKXpw2ZYa=BTx}#h;!XUc0_vF>1fv9S-Uo
zYC5?7QkCP^z_kZ&Ymle7q7Cr^0S$?K*ZNQ2Shjt&z!a7GWRiFKZ=!6(u8!@`3Z)~^
z(TE|9eDb4XPhBmO{n&Q4dB-~cgTV_CT2DW9wtsefD()ZHHy<@BA|CQrzHY{w%Wc&W
zPHl|&u>z$N8P%efTTn7r4dre2NPf8=Q^<92p_!BW?7K+qfs~)JNi+mavAh^1hT~I2
zPEPUQz~G1M5py5RQchJp(R6xVM05S8%EjZDj5F8ZCO*O?$Qh at N(iVTL=<KEsHz_sj
zSEv0neZwmQHpb+Id%O#be%CMVqQN~w>Da_Q0a0xS!#Mr^c=?BL)JurOJ?(A>9_iX~
zvxj~!yQscg)Ew$`whJ3Ggz?CIEj$w&z8;?b#&vx7RAUcb*MOf at so>fvu-_TaK>9oK
z-s&F<bZ^m<ZSI67$^OZV3tLX_<IfH at 36cKfX+o2!r$m?(NlwVjFJJK%1hp1W#d5Y$
zD>#bh-JlVFieM!LD82XX8D^2b5p~A8Rn+)uhCo`4kyv0JsAnWzt=uG+b_o0BA-!C;
zo$y%sBS at Y8Fgk|u%cJGq)H-N#xa|1F+3Sz_jGi&2my{*z2M1ZvDSUU$GUv5?xX<&_
zpp9+$&W6KBCf%H`<4+dPl_%amCw*>II67FZiaJ7lg{_Tjxc$_XW!so~>uinui<Q^a
z1__6HXR3Y#>h%x;$kpi+$Y76qJ*!}Mw!zz at f+geM?!~C|)_)a>y&b-q+&3wNYD~%f
z;V)+R#NOrN^X2aA&x=$uKVR`Uy<TtDn6MkuF!0+HBX^L|Ty;KY`JFA*Q?zaP9o@&m
zhhMC2fl*cOtPv(xt8iHf_s&#l+y=+$6tsFcmCQ at 7akivCczf?rf$KH(F{Rkho&gC{
ztFxI5H^1Iod~IZO<x^}y+C#kF!1MbFAlj{5CH6nUG$NO1)vsR4a$>q3+Z4wx at _a;u
zExtd>iIr9A+peu&VXgpVH1a at hle{xsGJf=@;y#=qe4_>?XE3R2 at mj!R`StFt9D~i$
zh_r}PI}a-x23yy&3|S}qPUl at pZSb(Z6giU6FSc}55X$I6JZvGUW4zUG(}<UpJ&GKq
z>&Ys3I<5(sG!jfzL_heWSxr^bbWi`aT3rxn!(%R$+5vts$>h&tC8ITZgmSVmI`T at o
zKX#t=(W962)M!Qe4*l_2a!}WvWAvC&c(7ljrGLy*+IBISUtGD at bUglgG-yX?C0M%Y
zzJ$(R9O;2&JaeVlUzTdVWHBmR`s-NkB1qf=FAcvY{HHakQ;b}{7N2^5>r+(nMRCPU
z!+5=^UWrZ~57ucX5ss*_w^ey-@$x?LB|ZDaGOJlnJ)X*qH!cY5ey2*TlU(6T=?RsF
z4@!9Lg at +V*xlbn$W&@;O-HQvYKh<ZPUg1$`M)$&SrP?KHY^&XC?skT)o^;N5#%DS8
zsGZyVdLm9PS3iL4P8mNiWIswtU$*>El`5AQXVXw1SND<qVaNEDeu>t!v4)R<;AX}r
zR+fzMET^+?C03 at DD8ID0dPhBYB31U4ZhFb4RvtEuDVN^%c{r1d_Ek?U0g%AY$J80W
zkIwIw4pwpmp1!6rz;}F}xjyd~CSxYF$v=Yknv1?2UjvHf{rQJS<-Na8Lt5CPJq=qM
zGB_T=O1qLWGk>~|mz=LNcS4)LcGgn4GUDt1lyCSw%veVtzauoP`7-VP<90ra;$B9i
zo>FT=&*%FZAIOF={M$cTR%JViuKezkFt=oP&nz6l-*;xFDf%PBAmL=T?(|0ZIa4aE
zGfSC))rLPH<lIxu%v$@~7WV}=dE|Io!$Om~=LAe<_9JF98Jw)?7 at u$!?T5V7GpV$B
ze7nd;{R-7LDd%=G&s!-(MpLc7#+7fZ@@|`?t({-k<JLFE5TZV~Zw{3+;DT|;N7vq%
z75_SYob04|Kl8VAP!Qfy<GzchLSNzC$|0ZqlwWt<TI*@$-jC&$i^yn2$G8fDByYzb
z3f_rpE=)M1ElfC1=QdD(6C}nq2jMBO5D+Ky#Oyq~GiuIH&SqY?CX!oksH{?R5k=s=
zCh29dLs;4F*?3lm;dLGQ_EG7`{V_Jsp=`AOo-sKc8U5MaEYmiTDQ83eidgw92rK7~
zQaax<8bcg^b|ZUhBp~6Li)D!W>RcLY*w4_)x}kHAGwq+I_MZKz{`zeJgXV=#(;r$6
zS=H8TE2h^OzZH%n%%pj*gE}p4e6o{jPW6zndOy;Q?napflmDo+b<nb0p=a4uhW<ds
ze0n0xD^nx-goC9o6CEves^J-(-k&*rHsq~)x3<3AC+kg-CS6!|2u+4$V<Ur5s^%~z
zD*O3M)RBlHFCE4^+bj6~t{b;XV81&d6;5;GG!OX6$%Q{!hev;PzfW=9;5)VaHKd4R
z^l2FK64bF+?V!%LA?|+9V+A5dqG9&C3FujI$PiIV?9t*z|27v&k)s<Yt#N9K28XO`
z95Yv~^nGr2^-I^t{Gm&@O&CdkkL&k0f~)Kw7`+q{Vf~nv#6Xa;y(yq;5Dqz;XnTnp
zvbjY=Zp(`eNTYktysCevfBnkKCzF=ww;HQ<;a_*(jj6p%Zy%`d=a?UJi`Fyz4SH`E
z@#061zd^n*Iq0)QUuvWbYcWaKI_$-}OQ%Dr)vdlMKT-D0DMuUgY8_D7bbfh07s<by
z_%$`fE9DCEO{lQSo8e1z?%!iyi))5Q)7*-D%vu@<q59D706yK*Ya_C45pZdw{)j#L
z;%A|QbAsUsPYa7KNeHg;(mmv_j&mHWiQt<Kdvdn_jz9-kDco1(>os@|w*za78d54@
zows`3=zxJuP+UsxUEJ at REUUdJi1xfId*Vfwbn$+Aw)u0P-Yjv#JrX~yXWl2a8ugu)
zx4}N7b#nGO7qwPa7~^Rl*;{RGQ^6~{@gj4ax!JDjqMwg$rVUuU##Ck)boTJL&*e~v
zH=d?Ops$+flJQ&pp1Do-vcmIgF=7(L!pcH!_oci?6FmcY#t-0Iitn4waEf&&%51f*
z$!rxXUzj?m81a<m4vkM+&L$pDul3&emYL*3^!Q$}sIqs)a?3a6uXJQs$9m^_V8ejw
zysM4Oy%31+)AT5p%tVjseTg8i?^7ehXlMK<HJh1av!J(1ufG>%xy~4feF(H+`p|4&
z$__hcn$JMzo_p%Yx95%a=UlQIYeBf+Rivlf>Gc*YRUQG9?c2=z$te`q>fvu!7qvKH
zg$=n$#dqy)pv<2ESAp|WR^t+U<+l2Fg89#Lpq{l-J+Dt)?*IH&p;)MQ?OJzn8GS6;
zPxSPo%?!A!_&E?{*iQJWLTmzA>dlu0GcO6d;Mo|j7Kw}!(3`V-FRcDp&ssKKa27Xh
zRD7GR0cmsmQ}k(3$0NR^sM6A_1tYT?-XQ<M+MH9pjZL4w^s at 1KqK_a8myx1|`RM?r
zJCy$nur#mMd_zmV$!!~MqsOkj9M5IX5BT8oyn}b at ns^swg?!WR?e#5bis_zuW?LkM
zxN24;@yxdF&iZkUFs#wyQ&wC}<I9wB&2(CV{KD--?)OjJN79E9RNv&5^n7c3Vb#@y
zdlb)>NrbsENLHM&v-iCBve-?w2<of;`QH0B8SblhxJ4^ojL~Vk7co^VNIo2YVfE#H
z4P!<Pk`v~Zz-)@%h>6gUnVVI8<`ABh;eXa|tLIg+;;X8ffmssgm;K!{lYGmF&SthR
z6D8O19~!&uVsgtsf;BgNMdJEMvkh7A{9#%}XR}P8aPt`d$Iz)6h0ANR at A=K5aVZ}-
z>(dS5jO@@=rXDwPEAn?ej>Ug-V;Hy at mmfrYw4aj8X*sZ^c~x9rRAMGNucyhBmSm~Z
z_BOTRh3yz`h4jc6CSxqoFO>1Am#Q7?SK+&7E2aWLhEw1dH|GvJ`J6u`H-7a#S~vu`
zxr)+}SLk2F7tRO27#EK7$#PyDY~c8EQ9A#Nl>50wGo~wMc%z}nf#3Ac_+0o3{BlYr
zm(Q8L)W=)ZzaBLcPNDyFr7Q=l6zk6TlqwglBrCeI&bF0K`ppqL-%aJ27Fw8D at VuH`
z^_SA-ZF5|%omQ{Q5>Ng{qR|a$tk_=VG8t}*d at 0qVd;RCR#&Z|kxig!u4dE3+-ZUn1
zuid}&t2uE=nJV^II6G-1-buTM=}KNZ?YMcgQlD61nHFea2ol>B78Twwp!3_5H%Q&o
zie}>5rSe;s{1p6Nueq|qjb!=4F0JNvnv2W6I+OEG*@<@e((%JQOgA!rxvBJ=X<C?6
zK|*Yk1k>w;>#uh#=f^|rRm3)KtMVPLF`Hj6`DJOGF`(t+dYo#uYGzW8P5C->FJVaI
z>P*AkTaL1Q33ox7;isb<)wr5%ubWJrkFx8K=WPCzI<)n<HTmq;dRg1m=XSaI8f7fL
zX95h8{w_)QJ_`?DwtU+>9>FSMV|Mf?@av3Jn`ZGwVO<-YEuNIs{|&Y3GSv0ypj395
zYNJ&4*r#ZEHjCK8G}M$BsIOD*&GjeO@^Fmjk3_i*Q?qVEWl(bCuY!#DF43u`e&tY@
zT59 at H$N5pe?<moso|Sh!Tw$bG!!WvMItW~6?adF)`uRw0Hk at r{@VQjz2gU=xoB$KB
z)k8#-z at IZlW;fzXN_kiOO0^a5d*0#5zIlz%_4y2)U%Auwy4cOMAi}K4MhnC8unEk*
z#^-LgPr~};flYVwFwom=@lmE5%0`{0&c0+eW}6pcTE>L5wRDqPA*bWVT%)_Y1rwL@
z8b5Pv4<zXx*&n=92 at zaarZ(4NA4#KHwUKXm!7*19cw7GzajfN*qzTCEsuvAI_;vRt
zp({xDXkH~mngk~F-d%^N#9^7ynb@<50z+e$ve?68U#%OxaqK7VB*xn?$?o5DJbZzq
z(z at Sgy7hSm4*oe3SeAYkZf!cU|LM@}7QFUG5I1N;oh3Qq?yoxCFsSNjcE at qQ<#8^)
zq^hF8uUxfeCcdBpuV%Pc-P3j(7GY1eq8&XH?VsQ$f(BGed1(WtvWs}Z6r~?6ke?Bs
zoziBc!zTToY?BhG5v#^!e}y$Z$K2JXljJF-k|hzES~xtsZ=D(8dM?mJrMK*G?)}HQ
zWLRyP$0g1_&l{$ipZ;XA^Up+$+I&)OkT=p%2v<tUOi7*WseOy-8(KbV_i<gOk0U}7
zb8pSZyL<1z{KJmgsT6||LLG_h=5IYwBoW|~%JnjP^pp!}jFVqp?dOBM=z&a9 at m;Zd
z>wR}07?ixO at G;;^KfG(fWRN8o?n3^P at YSu+^)%+|g|pb7T#7|lg(A+THH8m%6{15*
zF_9s}Q(!`tSm$#7r9lO at pXOzLiu0GgzogZSy;nO{6^JL7iyQm5wA~kPeDwn7f3~e}
z_Ok*XdI*#@)gJZd%zpELx{qUGq|hf1roi;s at 7D!k#DuY-tN^<>a!XzK_-{x at h=prS
zebS6V((~`3-zim27VhcT+iGUQp?X(kx*gbWLlkd%ZBli2-EJ4x&d?q3%BXqfbn5!=
z0RI=>%sF>{i{E~KSzVz<>8Xp{n0B)j%@NJVq&_4^heNRy*^G~nKz^f-dke0BEq!!R
zxBPRxI=!MLT{>OoNo;^^orMi at -inCr)6BNg- at h5{WKBa$xBIX`M^~tN^*G`BLp{T9
z%N*a at nQPO%!TYocE0R(!j2k^l^E2@!eu>=|KHZFMmnp_8>9BXwwr{G>bJH+y?Dvy>
z)K9%u4Jcduz$|#g)E9myis5iC{80&?7CHFW(sQ$&h(*yDtG7Zzo#KVVhK?R45yfBb
z-+FtsYbGVr+@!QgSjCF%f~BK$cZYRC0@%?Y^9k)|Hv`r`$}<}qioYG}`n5<q)e&KA
zfkPV+D(%T?aS6;lsdE9LYqI-Yx)>tb=qm%{rOajxjeqIcSyN-yzqcf5q<CxUM{ob~
zWD3?XhY!HoH&CzJz6?Mv!2^HLzWo^{NmY8)KZ~0`I^cfJ4U?{z-4ws$_dNogSXQj7
z?kqyD8v$#2nQV~LeZ#m at 67+~+l`5=(?@jT>R!7Bd$k{GJvT?{+8?o7fR9f&#;_r1?
z%d0kD^C3=C!)`k1-!2<ITDxuf>QKRh%Ay^V5%x^KcG_z(eoE3pu9)<Z>-ER`S?BJU
zK6ulwWc0dr;*HjyhZ?HFoIzDmG=q+kPTri}71tHG<m9B-pJXI1kzN?axOq{PrMqx~
zQg|MK#fqi7T0Q!?6+YaIetjmr`t4DY#3H*ytW+YSvGO(g_kQhboHqidqvu5i{;>B`
zbzZQ_P at Xl`wloYi?xNd&vR;g$zhbCwZRaz?=U%O!`PP9tEW^xZ?DR#)s}<g5rLit{
zyu!HVjPISDa|I at Dg9PU7=+9mj_qQ0|52}5oe`q8)g1GAxzh*We=Pj5~mKt9;!#kN6
z6ShCP^74Qn`J-RNq at -5FOtBiW;?PEvD|~p?Dd5>Ry@~*<(1-p<fsSR-)LKe at DOiD>
zn32Nh@#>EJ*vIJ}+h_gXX7|zPbn|vbM`VYJJdOBS{MqhqcnyaI^%-`Y_A!GzE<y?F
zW?@4`6+nO0 at Y0<}-v~1^RqNXIZ+~ISG^#N=^e^}VCNJo(Uv at -514Xa0(#M>Z)}!IS
z>*soYM=`x7n)PT|OycBI#IR;?gPQZ?69z&YZx!ya3QsK^H(|O8T8>BO;7xvgd(tOE
zK`6}_!W<D!6hr=d5X^`ZHM$s5R0JQ)58EXkhcxZ&lKYQDE<JqU7_z&_cvEtj7RPn6
zG*1*kz~2~MvD{=ba-nr-)>RUpRB6yUJJA{?e==Z{7MUDANyf7tSjBh}gNq8`O*Dx3
zILe1NieNiAmje}=g2ARLj!n8%xsp at z6rtA)DW3*LgzB8Zx%>FGqxB;iyMIj4LEAi%
z2sfY)lKxvgrkkYbV$`~99D%>*efo6BYZVq0d at aF6zjObFwadRrM*pp7Nc-Q$an>;e
zOM1u7zLSj%Ur_y9T|xqSZTrbH;~EeQHnElv$B5(76QNA`%3)}T&NA(J^6x9KjGBF1
zoay03LqjvD1RI}(#4UqUoYZzFUtd|yib}%<q`U{JD}sa!DVs(D#O7x;j$+SGj at Mt`
zq2c62N`p{_hF>8QsI0Yf^(JSmfwle{c$m5wc-o#KJ>WC|${W<bg8=$~@#w6$mC;2-
z${|6oQFsw$s|B9L0m}o=g4J;;)z>II16;i7wHh=uRO>nrc`~uyigCV1S>1u731AqQ
z0Wby-OIecgcq5X+KCsh&1pN0Z2u%?&urM%8P{Gi!BwSpgD5P6Mh0QFLSQ+<n28$`U
zhUHa#Af{x{P#_w1 at o25<sN!Rg!HQL1_j))ieA(~U)cvK>CXS=I<D-a|P3lNGP~}fw
z163M3*n~b6iWL!6)yoY0z`lhi=0wS>0`D;!a2RwD!-~j>BB);a9yGE=3{qwOq*^2U
zydpa{fVC<hIs6z!o(em_kS_$Y6 at Fbw6gFA<JIjhHn1k!-<T#hPRot274$2I%!G~Pl
zV?eA?t<-eYb$Lf<Q6s$R@%7OGu$cRSF|O*TFxu}b=zS`F3RUqJ1{$=b76yscOh0QA
zin78k+jUQDk!Rt{)!8mOlXIiw(B)+wTuKi%BeKRfB1#^aFZg2>BD49fwv=;{#ryck
z;Ff^l?17l)*?n8@#c}de4WTqWZ4>X#!kIp7XKH=gV%nBK)NsLCn)?MBJ1lX1Su>bu
ztvi{vIGiHwrytzZ<=ny-zYf9^BMDZq+pA3x$H&CEuEKmHTS-pbidHIO8F5_5)ku$0
zq`?<3gZC%&Hm58X1Gjf=X=GXriU*Smnr3C`kO5)_1pN)IQdR8oxJsI55|s{e=fK*a
zi}PWPEMIx5Q}51@!!w;#;@Qjc$SUGDp{UQ2kMzjZ at F_;L at fqE^{DMOo6gu#8?q=Fk
z9~5}Rtw;La)H)Sy<}y33HMQ`em`#-D&Rp>fEnK${J+UQ}tYYIIF{D3PtjJT|9XRPr
ze1AnLk`Rg(p~lO~&QhZ!$t;K{!nOi*RI|4Og0AM$#*{5c;N#^cgPo_h$mY(KzM;d}
ztrBgi#E#T15Q+zT7NFNSgJs89&7^Q`){ln(>ZHL9pWiJ|tLDX36AIdy5t2-AU@?TT
zbT?{zs=v{2_$(Q<nNppTGf=T#74*(YIsM{l1te{zZ;d#w7)4mwVnXP3 at pRC@j9pEN
zhgDl8Y>W{mgB at ubgJ_b@=i-exTuKT<HO|o)p!7>+e_N7gg3R0I2Z)~uUeI at BAF-}Q
z{c5i~A{8o=souqibdaLorIS)CLf2&r)oGgs#D(HQg!ENfU;dqNNCyaS{~*dHhsg$3
zoOGb)tE)F9TkL0DJ&=G9wcGtuz3XFP{BzZFTP-1^?;Hr<xP=Q2KhDsO0M|=2rPuGc
z7<oyr4(K-pjn5S?Dj^Shbx}ETJySc|F!$<jj<#u0gn2=*MWH5faCzi#U4JP^FMH#?
zw|-Z(4q!x37FspgJN6s!U1b_OdK3noC4d7_XErAc0z+ZYwY^5gN at 39dV|3C;SHRQ&
zBb2Wv=Lq1mQ~z0AFNd~YBVgOaV1;}Gz)qpF%?0$R*$?$`^7YGK>OWy5P{7~C$f-lh
z`2WoI;3(mNQIOQGsw!ns76h=h-O{;Tzirijj}}iMU4h5y){oi}z`ha3ZJ0S%?1UfB
zpMVoIphuyz0IPECWJ9E)cli8k(32;tQ<eeVks{V_W0%1!pNbFvigXF=u at U)dlaInQ
zaYr*Z{Bz-5?uVVNmGA8*r&NRb^qP9YLpc%SJeUI)B!sSglu$|gdkWwBYJ$EWgkOY)
zY|o at 5XHJBBR8rw{pmx-~9oQc;(6-xC59!agvs2~)5+NwyLBPqbc?L<{`Z89w;@)mD
zxhAiROrCyV!#2}(?4ZYx1OG|f?SSfRVj58bkRYt;BzYP>NDB?|{%8&9##qqciy42~
z-uW|ke5??H!b}Bq;H%?&Q7Px at s%EhOuVKPCRHu%|H0eNpjK}iRA53L`eYZw%4aDeH
z$nnPE5Mvoh*KaD!fF`ql>t)!6q$>zHBX+`8Y#f2-?;&0DTo+bcaWg2eh4-Vi7ue67
z6FDv~fSXn6)%X at y78^NQ8+iWt;rZ%{#|R=V-t>+}h{f(fCkRo2Zrg3HTlPAAE0W;g
ze6k`8Sry&0qQ4D*kD)rZQSy2S#|s!q1P8*qGhGVi_SrW42$KpQh3<KM;<@VIAc- at E
zl2$LAM{Cq=m|w0MAW-2uGEClsU+#T|hGZ?22_lN|?$QvCOHSAz8~nXdp1rk577F;T
zu8azCP5rK~3&pNl>vAJ1il9>gyHY;{X4sKo47hS&g?LVU+6p0QQRU{#<N=bgyDB7&
zn!wN<7<guc22`~&0GSz7v+lI=X)MT2EBj*gvv|rG0dD(~k|H#$TTy|cLF^W8m;my3
zBqSh`s+0lUajE=1diUeZQmx*=?{D~v@%}W)DcLGst3uEa5<>S3c+)C9FJZlIH144c
z*mpZ8H;t!d_uFO|w4xfibT-P<!g`^9E{F9aysJYMyvfrrn81p-!m)1|v9E*9+GB!}
z$w~YnO<29}x}h|HITW&@mONacI!uUE!F6<&mAxnOkjxsT3LQje0k#5IK?pZ)*8PdR
zjg7r`bD^Hla6bKsAyRB60aur>Hp)qHh^^5lmZjbcERibeJh<L+$3_V-E_xKlaKiNJ
zlI_f)s_L$r)g(@!Z)>NzPzPpI5ReL+<b*hWYLKaTCf+bn)%NHx%s0q-!Sv}mf_{Fc
zUc|;=kO%8Q^oC=_5X~S1P6Ryip^L(#X_nL20+rnsP9{}Sn>g3M*Zhj)Y~;GX(83lJ
z`{yjiIYbjTJiAfe>yF);-oG*bw*{)R=DNtJR^6%zizLW?H~5hQm<ulswfsmug%8)s
zg(!w(s6t)_QR9mP8kW at B_Yd79D}&fS)ic_<OeORlXQKlf{)pr|@2m!shUbDcp23M4
z5?fuQ50*Q6(=4cBe1iR8e=A&lTGFqk8i+LLP$qiLMXr#A*#X1LU}F6$TuVpsVMSiN
z at RfIY3A)d!9{8v?`C!A9kVDa)4>oZ15ye~GsHI{;lofzFj(oKud+Q2FPxU~PZc^EO
zk*Qq_3QSVPqv=p#P<+TRc;ngnzRKXvtd8o&56;MyDeIj8!FW>>>>6LUhF>0!>-+$@
za^F_;@o1ZKi;Y!k!T|_xhCF<Nt?$Biw(UdK+RS(FQ#P97+0%3yUajt*Qog9?j68pS
zQ=l({Zn)f75Lp$Eg9$l}vkk95YMM2Mt6f&xue6FLVEk0-2Lr}CJ02%_Dn3u~_jU*<
zB(S4`bRQHi${^`b;BF0?ijLocQMsc5O2BWU`LLo$-0DVyAfi70s>JI&ccqntP!1fd
zRmfT$A-RiL2 at DZBEN1&|S`(YLEX}eli4D~-iH!4%u(cWIc`S{yHW*Yb$SnmtXoemL
zf7m85$Arr9X`+Ch6jCG^x50>#<O#OY)P=UOBWw(r;Kq*&=}}f4BF4knaRfc6-JiW-
zPW(WKpH*sVsS%*G)-tIH{?`hqQRybi$S{7KaW9UPWDx?!r6iGW`yAGn2+b)#fg)fa
z4=tvdcYK8MbvszVnOvx5I^$C~w3?thPq%s-jVcXdrorbpBWl7`wR?GSD#$RmkAVxG
zVMZT-n-=|5mE~!!A#KZ7MFS#i7EDQ_1ybsxAuucJg at W}`E2v##6~cNU^LAo#7TjCF
z89$Jq`^qO|!J&T|uD9!_2KFtfAgsJxV*Cg%7%#}?O$)wb?E(#f+bq<}^;Z$GD&mgG
zg~`LtK)g~_*`Jsa^VkOIO0qxdt9Ko?f<eikztmA^(kL`!S(oBjr~H@@GgmNx%B%ce
zObZ>P_*ZEv+J}IhkKc8I0!F)yP(CqQV9Niw%Nb$Xl-`{qm at LNpdBJB~Yb$tapclXH
z*;wsNYz)3;y)ZQ?)t1s<-~99F{Y#s at l#r~+7()K!g9+7qc`&h(K_y^y!>{L6o3)m|
zCaxOvV<pf!dN09q$J~b&IK|Ch;dMw_#P0NjO*d(HO<P+Nu5Lf8H+<8XWXp+%5K~9@
z&~UL`h~ijaL}z4`FC*Y%0o at e?Y|Q(U-RS%N_Ry&o`Vi7tA?lTxQbq(O?tHrd0=!gG
z+4`)`4?El*A>p@~qF<2)2j3dLgK at 98q{W9Qy!FmeWNs=ftAoLWq^MmQh}BTR2EHq`
z4m`4hRtVo?Lz!%Sb{M)&W^uI{%nO at rBlPDr<;<_=Wbd9&vx4b602DOQ;@5>Xt)+wR
zTq=+syL}awm1x{{9+j!}uE49>k>6QoOaFaqwItN;@v$Kq_0zWMQB+n-b at Af(ZK0{4
zNJ7TIwkUE)w~wdKvZK?Me5#6@;$_V~l9&&UK-0uI_;bEJoi=;54Bt;EmA=z-ctuz^
zJxVj$bNo?x&ckfa1{bu(SeR<PMJ8k&ran=~RSO9-u<DtpB%d8?t_-y{kwjT3zMrLU
z)`=$EaNUPs{dWSvg=6K}9jdAEQ3Q6V9o at 6huoY^2MV!YwurKeudQQ9|wE}WR_P!k*
z3Xaw-zMO(6rTbk)?}ZJjGQ3pZCSjvKF-MC^BbWRvsNP7>^*!G9zb^XNS`uqb(uSe3
zuZnL=p*vV8!o||#&9hg_`Fy9gH~^bF!d5rutUTbr88`W%rcG_W&xYLtu!kiQz#v8x
zcvcNtW)9FhN`FNo7<^wxansVrA~o7`@laKTx2}9G)WxxWeg`Il1EJ=zpCPXM%t(md
zfzy(Aq<n<deI2fj{91bpzJ<{;g!c;#Jdf>1UR)<TqTW*68IfEInc-;(PV)5r=-bPW
zUnRE|fqkW-b?d=(%BZzAi5j`FkklW;Kh(Tw at R+|4dX&ZL|2X0|P#vycNiLO1QXRjB
zUJDFeXi)+CvV_85M)atb%Knbs5i8gi)7_r}yB2ESLUve_3-IRt^0_>F;N&Gpy#&$v
z-ELr7%}Rps=eyGxaTUAm+b|<hfh(Z_2WV at p1|b~D#VF+<|MSIA5?-fX!h}k#&bw;k
zYn=oQ-Y(U-^fB>o8&7t~iqP)M2Tgpq^J6)C*P-Nw$4-<O6Y$OxdfVyC(~UGJOl24q
zAY#hH!mh#@18jIN!~jT1zcKuaQ3DNBLlpGvPJ(6mQ&8Y15Pbg&q^T;Jy*dk1W%M1@
zhpzbx<zVJ@#I7vjRuTec0uD{;eCFs-s>4=G!NYl}q2pUc`Y=MwZZu()Fc;8n6W~S+
zZOwV?T{tZ*3~X-gbG at UGh*%iD=amf)p9sZSh|SyTrLHg|X9(@7(aMxaz&q}UfE?<7
zVNih%3~C0F4<J@(iu8O?(8rkMvb40mC->#%@bKZc`XP+&yDF_{$*pjbeTAr7qHv#S
z!_IXm{+0KIO<|Xs<?;Fpo93<sZ!yB10Gqqfo-Uo=3bgF8OHYTY+Ztyo=94$(M)h~1
zVJ-#|lkea&qb*M<q0Esk4kh^Bgl)RsHCV7EXHnw2M(d$K-_6GAmB!V0FZiUulP^t1
z2s=fk^EJy!o}}rD`T`n&=R-7!HA^J|J~2~2yy7j<hX-wnNTBpa*nw0;6)A$Shqp>t
zQ{C1`e=&ni^LZ|bzC#x;IT=A~hAo<C1N?iEr`2h{?b-5R+dF%gLAW|nx1S_RkF$H7
z2=1&%@-^<}KRLbg)z2b5X?4q?U?8#msMo<c#0WJ4jIMhxso#zs5#l7D0sX}W<b4!Y
zm~qCf`zfJ8SxN61X6qnn6zupIGi*;#G(r&F>{AUbhzSEJ(I1ll-~J#>y`V{3c_g<@
zf`+0xq-3bhH-e_Bz8a19l-Dre6}-r=ZyyAYsaB71w at S=Wqcfc^!$0h;;KtgzC;0J?
zHp_H+akFeFy<J9C<O~fWq^Ot&2xGtd(V|THP7wh}SWyFfePPVoHp#RGz`3g)TDur+
zd|nkCQfb!)`-1)afw0uNsCxD=kIu6rCvZ+Bl^|l9W*3h?-!$fDU_ at d99McQ~B7{qN
zC(x++Zcu>r!ixS76~3U%UoB&EyoCw~*S<#MEusl_OU7XzI(2KKNF`fZEQpy93_=vY
zJfzjO=7Z7adq<`QMxKZ>zDxueKm^=b6+Z`=4hiuQjg&{yHGZeO6*VuXqf8yJfC~M(
zb+A)Lu#uccXGO~Eu>*x1c~$T;e<K(@%3tSeG$645O&d|Ev at -kbIAfJ{<EDTeU#T`R
zj7}t>zoVlZ><4q)cr+VaxMMqb?g2jzRnGvJ8Q>&-jY93x=rr5fdu52C079n at gYazy
zEw*?%AhY#@vbddC?zKV?ekx5o`FglE&Uopj*AQK9j$+Gl{fcT33R@*AS}%#p*{jM_
zrzF4smZgE>SFQ6P8|6Bs#vEO2h#KfNAEVvKBf9P?f?-zT(Xq!&PS{YE-jpX8Am=12
z<yF#RLTk`gPyK?bY41G%@V_$64aS3mrFdK0X3TK7vYluLMLr<ZkLvWP>VCoe0~w^=
zwewbNs8NEwbW1|00oRYJb&*>;po_LWz>xsq1YpMc^r+Fe7jg15_*Z2fMtt+;FEnYM
zj|Rly>U>Q<0%`r1#l{P-98u~Fp4jPzuDP9IZ~QmKU<RC^^B@|90&j{?<<a%8`ZVe}
zBZ~WKDxCni0b;>37~QHccwmH(oFwugjA9F?cpm##-$*vg;%O1{RkckEQKf^UH8OZw
zwEaR9A5!E!2%Nosd&qCuk1#YzQ(G5=ZD7Eu(BKc3%4dEFw at tpJ80=e{D1zmrGq4Fz
zvkSTCW385Dt3~?{LffQ)qy_{OC&<H$EBzz1u*H#1C|S{s${tAT|LGM)8^l<EsOsb=
zWf6Hw6 at eaghpn=rUSc<;Hh_c5ZmBey;D-8b3wZ%9oz77X!zOte*4Y$l`Rau%gA2wR
zb^WSg*Zb~-8BF^`(BL1x-dxxL%84jV9&5d={(?gVowpV;;JU}ad2b1!18MyW)Qp?<
zUs{{f+)>vI^7nXi7LuCZO&YRorl0}z8pj&R97yj5fpWp2t=jJSFG9(Ju%&^H{p$}l
z at Uw*7bvt5cXH|<o7>#0P#HPHb8|qkA4A!eAo$;+M-o5r<CWri>SC0unhHet~j|zzO
z*zl&~w)LqlI616g$Wn=Z;Dp_87lN at Eb-gPRkTl6Tqv8m?=h|Op{QV(Sa}D8qGc_xn
z+mZ0?SNTz+ZZEbO>+1R-0c<8sTEPa>k1arW`*#bBNaL&rhX&lWghTzh>n9 at RYQg^6
z={Qp~I*th%ExQkZM{$PLLs9DfG|xN9eO0e!SJ=yPAM2T*S_YM=@cXiGUW97e*PN51
z_V~>W%&v#(fP(bWO2D`QHIm7My5wp*3(op1Bv>0qYHyF99 at 8Tue-_Z99wQHTW}qRB
z7ALIuCijQkK%>Olh?uf<MkHpHltY))h7PpaECY^il}`jryb855P_X(4RC?S`HZp>?
z;ra0^wUxB^a%X!s)OgyQNH4DXuO2c?5oZi|gn55JwcI4m1B_Y66s~aY?ydfMUxarX
z;>e#_!Z_=`n%rM$-_YQ>8z_p`sgr0@*#KeyFX;=bGgw)Bcv~MOH5qmmqAQV;vW6RN
zXu(IT`_qy><s8~l<acmd2M!6ZNxy6blnH%|cH at Dgr$ZU0c43PP^$uI?1I%rxX7-P(
zp=4Bx#^b_s<#`NaDFk|yW3=2dHK5c$l|2}#w|^w};StZTjs$CxLJ%)qa^>1?{Vbs=
zg#+g?5<z!wczqTyKMw&M7gD<QP`_)HH-t8x^X6LASB$UKn#bY0AQ2!p=%6`qeQ)2=
zK?e;TL!!8ot6`mq8zw-2S3JZ6g|L0|rv5L;aCdH&-j~3^BwxX2B8thJwkD^ULnhU~
zW&T}*r2Q+$Nkgys>)=rOb^@70pq2hsW3<12Az)QB_#NnjRUt}2P4ywrKOpzz3{y>{
z{Xx|OUdax&1UEr+|AWJL2f!0yyGOmPVMh7`4tYZfp$*45l^C0 at H7yMw76MM3f>dfE
zUh$obsPQhJl)@k{$_|t=B*Ng^_p=}r?SI8Vh;XvYk~WQ9>v_M5EFipMMJz|kH at iZ~
zXa<PW;6cHF9hUZ$&mmBFle_<~8aW_@`{G>m86ID$i~kp9AziH>)7S;G;zX~{F96M=
z|H_t>f%9k*@w91yC*WQvWX;}*JlY`!!MlDzmOONVM0OJnA5^WakVUY3NY5Cylky~G
z7sAlPAd)R at AUNC)C~kb~0{>3ch>em at i=&7sA5EI8<3K0_EZSZ6bZN;^3Z)OuAs!tb
zTe at g)2Z+w34#ZUt<n{wXv)0@=RSSR>nxqU3p^w)aY|w9u?oJ~PXLam*k at P8ALZrqk
zve`NPBbqSZt<f4<g7=gv7oh8rL%{l&Y}TEzyWZYX0E6doq^~?dNqtq*v-w(#u)JrG
z)mf2VcX)`|PWyJj<0?CHmR9N1EP`j*%?3HX2*59rr<Sl at 9%{`*phfYJ838rw5DE at j
ziBcBQhcAmi`p{_*R%pD6o#_tzq;<rFGvoRM2uaXcXM{(KB^(T-G!K~(@ttg_w7U1f
zhzN`DXdS;(m1fT$*@QnE-!<~q%csK^XLp$_e_!3Lns<lf4tz}4!~YX?xGs3JQW=%=
zr-=t at uiQ&wao&lPr^eUXQ(G+#vuiO13mr|#{<yIxVm-&lLzS2B^LkmdLXiIJRy2G;
z7rRo_rGty6xB=4G7H)QD;-C^Vh;eRH0jp4YW5o}x(k8zT3)2=ywuMk=`IO+kXH3jq
zC6`*kZDuE}BEkQ(MHML>tcD|L{8gPlf=3Z5g=t62esXW=RCX#FhulkUf7r}|D4uB|
z#_<{`gH-^%13V1H8m}i?*{3CUXy0!;pL+3~5aA!4<7;IrS-SK3#9z`f_kkTKiVo~>
zj|vr(R9l6qP@;JqDCR6ABGk6ud6ybBs{DRRdA8%qo1!t!loXERZ-7Sp&jtjqq`5Sn
z#{uloR%6}kFXo(f!bbgACH>YMs#N__?vb?~h~hEVm_HX&P7%-`!x{#B=}^l6_GL%p
zc=AcELC|K0Rcmr04+8`J108?Yp9BazwXRE1 at Nd_s!V at aK)1hU>X82ZnMJO7}c88*|
z7<*cjq4!1t2GdUVH#jj>fP?>fYX5cuN|FEV0F)_!omZIw>-m at 60G|4Ee*)}HR at FVA
zih5$_hf27OR|y6xpZBId&I`g=5py)QnT4GHbq^d_Q93sY!fD at E9nu0J*c=C{t5B!r
ze~O(f2t~<ac-j}aND?NEA5sIvG=N3?-`iX$et(0gEphQ1O~oi9;P>fJcl?HPa!lAL
z!GtFiPm`B6XV at LMU=O0G%EaRtA;hl`?Ag(oUFk=ZlH2X8xkV9<(qZNNi6`JOQ~@rq
zUIx0BClKM;3igrN*I@>_q)~(>!C at d71Y$9u0}6<ot>>pXa;V at oC4diMJH2%hru}<$
zJ<3xGh_dVOxmGPf2%w70N@?K|=ulO)6FDJ2cX#U@?zcEnVxO=JC;9<G-2qa&CRM-O
z4V!=1q>3DOlK|+8^4xkQc4^hpkR*FKr15ADTO-j5pZhl%I4eNFTma8#ln?@2RGZdS
zY&o+YM2oO{SSR=tR^{zK)3vt0wmL5~HEBx*iaWrLfNgAFMs^6&2tC0#{H=_%*##qK
z^ah$Fai|GZzb+eLViK9 at B;*1R{+BB!UR6ny4sX7Bes`^{o3y(nIii)gA`%w9ecZM7
z3lj98%_fq^)@0#tahDd^Q(gRc<BAN|bbVpk8Y at EVInUntvETin4SIufnS=|iRRxR2
zsc(0i>X$i0I{=?t3`m6<kJ$ECyDv0ju)EgOtpR#4+NHX-VGCD8!c*Ta>+S^Zdgf<i
zT10;(2<tJRNpH4r)@Te+ItG;rKy{e^T2S2pq(mWj*Gw7*>%*a1)r5dDTm=>K=Pu8j
z>zfJ?&`sEg4^MSSW&Dnkn5%N8Mk!L`ySB!Uj5+NrKh?J&OeEi!ba at ZG5t=y~_d)3k
z<?#LWsQ$j9Y=5X9%q}@utX}G~Bn(_2fL at b8!69kKFryTVGZ?^`DiGe3ZyW&Yba|^N
zPnW}SvOoO`%SV`Yx46q&JPXDV90*4$RE|Q8WS3{uD5sp`B`27padx5t_e at jT8kgR)
zsrk<Zg{3|6fV#0Dy8OKx%(sn^`8<p3 at m$u1f~uVOg0O_ki>q;-ij}Jg2i?l3j*Hq~
zI<#1#>mzp*fE0 at Td^IKJpp at -)zh|wSgW|d4EBT%6l<5Prl~KjOU5E8Qm5jQ`F!zsv
zt~LvqfQ#A7S-i(N+#fj0hzgQsra at toLCUII`r#5l8pQ{{RCa%+qE5nOS2-9nT8)*o
zO*G*$hKOWT_oGqZ)mQNj8>efB*0)xaBjoP`S17a;B~aT3*_I`ka1c&EV0cP#sD}Jx
zo(3fZl*Rb*vtj)kbNSAQ`tQ5+NP<8F(7;Ovt_~ojT}fl;z)#bqfck>);y}H(*3;E!
zI1u6$U?Czvqx*_yZxvS)E~YmNu&x32C0<LcC%Ej=;5?)_k#Co~<<Hf3v7 at Rs(BCI~
zsPV}{V2fA|ziJiaxG8W(1rQJl6GTIS0>DnIjJc at sgDYq1X>Xu;bt(8p>1%pOwTPzD
z+AVTcguIxNM;?0E05C>D6<|0p1cN5g{g(<-fQ^z^oWL>#XeXMf9uBi0t-63N=}FLA
z{+H61k%p3g at 5^g<IKY at uv+m0q0|Cl@$JG;=Ik!&z-|R>~hsdh^Dr$({R)WpZk{2?+
zF at p0qG3Tr(u9F6FiGpn>u at T_)+mv*U&m)J7741fsiu(~VtGcaX#c2 at e|9UODhbO|L
zzN;PGUEq4J(6u<b>VKk!0%{*(5bzqvw1$`^02dGm^qF~a*4R=}+fF*S(K6U+R+HAP
zVOl#*J6Da9&T6*W64S-!Tf}xMJ7|dGM^bsBx7sTpCA40bJds%x;aWF|t?v at mhrJ*N
zQ^+4{Bt*GagC!sc=!U<!vndPc?@8v&BHj-S05bb9OX~$&XN2m!HyC{(_a!qfoCR at A
z#~ev<i6A?wOT%4TAV6)eEY)^^!JD=!?=ZTkaoe;Zz;-F}q(dpv$4&6BVj7PQ4=evn
zS+sHJX##Tphk5_fT$v~WhJcx-v^h$uDc3<Vrz+5-!I1;ai?#c at M+${g&sL5c<!v4x
z0IqS0jt=>j)kXCGho#hjLs?}8j?y}Z4Y7R1b5U!>wvUKXeJDUTU$J-|+g;HeIDT3i
zopl~fk`ol#(-9mW3TOBZAlHdfsE&+*%I2^Vr~J3Q)$Zfk%&|w?XxoKmJI-Ow3wm}$
zR;0epvnoF-#PJ?{ZyJftDguP^e2S%z=QlF|$nU|Cz_GiMWN{AEj%pr3wBDnh+lF)|
zyJtaeHso9_o2r2A8>4EVtg6bX;=Zk`NKfhY(YtRTk|;P-ml>6_U<JrCz4d4L4cGAc
z%&A6Bya%#sh1rhNb6xMLb!@}(g^-I%Tu%T9H<i*2xo!X?%9Up>19K8^Dv7uaCRCRL
z9SSHVI|f(|Uvzg7ySMyj6?eW{W9thQFyzZK3DlG_s!CzVTg3U=$;kl at zB10!X!0xT
z=^cf7yN{@*wGB+1XP~Yk5@<H+)1o4X^Yz%G-95fK3GNfs5y0sKAynku8J@>3NuGg8
z>vnyB)j!G9MZV3Mw4c0t66ym-P8e(r;l0#uHlS7k_O)<nY&4j{^rvm~jwTI^R`y$=
zg$NF_t)z65oW3lLrxY}%SaP at kVo%F&WkUt~+ijb~4XvoXOsN|IhkD}9Qv)O&8ZD*_
ztpVC^otXx1Ed}e~Na3AaW+|lkro5Dcr%_cZLbzx=oIuenTELT}w-yN at QakaS2s<*<
ziBgAilu at D%BTCNm3k(h670^q30i)h#Eiyq{Q_|5B3yPAbX7qLBLV8AfuC;Zo#ZkF)
zR2oZSFz7&5M6vB7ic&+kTwTJ80cVBZ`@hJfof?Qtb~x=GQY>S@|MNlJQzqownkY{h
z_uJdViV_PRXCKOBO5_P#wE$j9Lxn`~+Jd!Jv3CQ+|3e`Fq1d<qk)WoAnt;~cGRH}R
zMX65#kflTo7>Fs>nT$_v=9wZ4l~3!SfQ*eE<%i~-KCvZ at QN~}_VP6IYT5dbTv;VkO
zwSWsB9-jh4;t;Ju1Hc3TgVxTjEX|35S95oA+qwfMj$F|J#!qiisH$p>wmqaivD+|+
zvvjLt1sX*c+%cCQ(32?T at P4|_9OwXm>~7g80o48jisa0n=lF-;WydLu?aRITTe90W
z at s(E+Qe8jy3uusEh5TEM!n3-y*DE`vx=`9L5|%@<{4gg~og2;f#f<(l9tzF_Y*zIS
zut=b6Afd&hUv<!^`(gm&(g8+T{kfd!>ehqLn0!20NRcs;VAoBWTNXQsbkTwH$|zf<
zcGdg2GbX at JS0SS;sEQ1H6&3#MI&e`+MDkx%37=dqffaPl6^H<?dla7(e5C_Ev418E
z57e9PO at 4DA>b9oE1w2rgE1124=03suirP(aBt$Ef0I^L=%^DhZZaWXITd+iDedPgm
zFgn%;O%{9%Qza>rx#~-^IVh*d3b1-7rP2um5K_y8vo=K7Tv}b>$CnpqQqB>G2!V{@
zzt>a<xKtBa5I1c0g_4l{!$aF1;8G>B<6O&3wj at O+|IZXA+znd1)n|fn-;d$gAC?qn
zOi?%BXp?!MgMu;?x?-Sh5-pIOIRJ%gxU7xRX^lH4*(jh61FY%`4!)$B3*h<=*PW7#
zs4A4?gJWu7@`=__;B%G3Rby0h)g2i7;UAII2;0Lq7#X0mZ|(eq;&Z9(0_cDMloHme
zTfaQ<wN at 0B04@j$f-(PyNDlLIH4 at E9Y=rNb!j^Q}G<M}QgXKE9L~=Uawx=6WK5!vA
z%H=~~4T at 2`<%se;Z48U@#Omu(BTT4|nVg?jV1+1~05s1~wFt#ZZjtkiSTE|HnD=Bf
zf!JOP-|94;m`PxS7rivu=^0n4A~=e`*Xj#eHS30F_d+O<$FsCGWncZ^<;y^NLkp0r
z08X6&TFg##BtQnz&^A$oD#XDg93Nd=+`7TctV&jCwfE0i=}flIUeU6DteZCXA79zt
zh>F?h)Fir9cO2kbSxWL4pgOzKZbW{(gSf~qBQ@?kpcV!mzC?PJG_4BUt&9XzSqW#|
zPFG{D0<u4m8y*hmLZFcY6AJ#k(6-vD%NVtF8kt;>S|0*6-c+L8<%}Y*2!SoXPro6b
zLc2mM(r6KDHDp#~)!)$NI8RuiN$Ora)J~*ZqZil!$X(QFRlIFgy{l|o?Ogy-{_+g?
zG^Y|^gRByC#<y`y9k%%;dAgX6 at Sy>i0FDP8D2TJRG0r?iF<uX;FyNY%18;R1IJg&w
zs*`}XDKt5xrzBB}0(G8%^(n8$V&_+qr{;2RJNw(OkD^?SWF(+uUu4IY{6UJhEv00h
zTv8K5;5=1T2JXC-B5N@&Hh`e0h2z%_IdYczCVlv6UwDA~iE_0~@>H<?uPTvzW(HrX
zn at 7sW1J`|kVCqWFb%1%`8Yl$^7NlkC|2^qqL$ziD5n8eov~3H?1KW9~l1ph+19xLi
zgd>*g_IsG`-KZyKcv302(rT+IH7{EPPpz{KTw$hY?5+wW;&ac4^Q;(NvGpqTDN_YX
z+fEUh$gsg?Cujvluj?eT30oM=-{9Hkn($l#9W_8g!)=J=-V`Gar7~yoE^=^KOz5!E
z>S^JSJ6?6p(_aDKzt?(C-_Ic!4qkER-gdb1Z>6Q$d=RSsJK+X0?86Zyjs>B{ftx}9
zUu$n35B2)~kJ~F!sbq`Fw3 at V7L!-^sQK?givCPRb4l^l2X2Rgqkr+osNhn%mEW>2P
zG)$*LwrM(Hn9w=aFqCD)Sbo=Qbl$)B=kfXdzJGl?kH at J8ujRh)*L7dZ^Lk#_9X^Ul
zmKLmgvHlRZ&7jSUXINj#5&6%d#>;KF&doEv!Xrw3V84)=2_ARUmq2XPc#1rE?MhE$
zq^R){jTdZuCvfWr4#x?#j9;luaE>0xpLEQxBC&G%w~(*!#4>z62E<@=jQ)Uc$nG0g
zJlub=?u>D+Y%98)-XV5kWj|cJ*HWIqz4p9;l3yFDTi=*FW#FDi%l?4ml7VInvo7+>
zKNCx|eiN$th)OMPq at s`|MBWM6U^MBhcH at 0;G9Co^ID0S7mm at 00S<HyE`1hREC5pj4
znO2?Rd#8T=>xRsqJSC}L;1eSz$MucLI9w>>BKdAr>8fU9VL-Gpx^ZE2KNIMfwg&5_
zHvcn-+08EBW>dY&Q~Lnj(RU3f2-b1}{$+WgoIrJt8_)4L^6KOs(n}&hz5RIzUV?0z
zult!fF3GfoLLfzv7~1Yz$3yQ+6jMj9&Jt$+{7K29!~-Kf4tbO_Z$L%ggymYidxI1+
zaKPh<^c%@kK}{|SS>#$!7l=~_vIiWnANs?{>8wOM|1X8tfGAF64bx4XTwRiF`|b|8
zSl&#VZYpfV)F<lLj|Pt3TeGJmiB|ZyI{HU+0()3k^U6dK#o#dU8#1MsIh2Lp_SQD{
zD at zs=F(ucR^8NFV$qKr{y|{f5iTNy5l_smbNqq at y*C(ZOv~EH~%lOY5|G(6o=FvsN
zAkoS`xb!b$=3|0&>$RglsIK)D`CKX=FyKXKmG9yOzZko$TeXDwKW^AWZ%il_%6~{6
zX*7KG<tUEz4<v}+)na7-d*#5SU*{JN$G==n;BGv?a6=!~Y->8rF(FwtjYP-)hJ6I;
zOM+D(Isr=iQM~#LU1nN at 4yJEg3^7DbppGmqSODPsHUuKZF9}ir5FLyE=%})&;oGd%
zi;xDY0R(#z8>dTL1y?@>E1 at oMa_S+p_BuI#Oy0|ZPhUjE2ns?k9SfHGhs at ATqTax?
zGxKZpRFS6xoNKZa9<GU2>UZ-|UX!Bu41N1f{`|&83r5ioxSM;%&ixhq<bwj_Ii0-Z
z`H1r-&jdhhatU&C^I6{6UywVc1veuq>nLX9X@%{b4Re|9Wrh3u*)>;cB6zp5HdP#`
zJB~aQnKV?A*9^uxhP)$u&v#vbe0_o1hh5?`DMHWkqsX!#(x;~?!`#GCe|Nb{t02G!
zKiU|7pdyR0$v~?#A+yS<dM;(kntO%>6$e^!i}w5HO(E7mwQ5}EQQXLzeqk6~;dy9!
zJ4AP3qsBBDL40|mq13<A0Ixdl%u;@8$g)I=!`oRwGY+d!oOsZsIXu at qDn&(*H)Q(3
z+Vy`9=GW~NF_3d4Di93CtJ}DKXNuKUpr^<te5VdIcE8QsA!v*BV|IU3=q?Y!ckjkq
zABKbhy8676HNkm!YB at dQqUV{SBXfJJJf7{Vib9x(p{y!_`IviuMUcRdDho4Nbn595
z#{AB`)uE5l3B8e)Aqm7wgyBKZWstKKG#<RvTW%@vH9i9_mH2zL;&}RT5Q5GnO#P)S
z6guchz))>u)8*(Zc&8r2RYL80*Kp5?^+y~`FAU1E8KkMH at f`D+{7y^k)aaOPl~&ux
zs0o=P8a6HHw!lX1=2Oq3gY;2Dh&LRqxIFGt6-VUACWqb+PMI1w#Tbux_-R;HV0d<L
zjz#Klte=b__I-EVh>^*|2=ZP40KwNg87-YG28yF1fXdbyA7upiSmFfBj(tY at 8G_DS
zEEwpm-P<4|NbB!8E|FT~`a2Zi&7PlTEpz3WK*g=vsP6K_wB4+v5`D1o at TX(+L=Iu%
zu1$7H^0+*hLK#){Rpn991y->DV>kjvb{ch(&u~+)36m3a2AEjrAr8CDq%>|%z|L28
zeQb^Ew?b>L*umfsPfxs`?%q5XQnr`L;Dm~%H8muZHkrx4aTX{sb{zrllMPq`c#DqW
zD=CM<tjj(+nezQwIvOHHyZV7+93jikEWMNMLM7kal))ZYaPP{?uXPq10wTvuX$03E
zdG{+^x<1bJsx=zz;Sl}d^hTf4-L^@;BUqsJt5EA}2$}2p^FyF$AJ at bXCtt)j+>IZo
zY#8k9_HcT(icUNv2)sRE8blHWa at Q9Ylw;A9NrFyGrX9j>v})f7Gx?y8OP7CzdXP`4
z+sUVn9O=1i_xNx%--h#bV3aXh7}+{AqF9(yZ#^~cZw3l_ at t$=!@zer4I0K_hu%-Tf
zMo*4l*b$3TY0vxOU6@@_;1 at U=DeZ={UzB8w0s%F2KP`r>2^ZsgX2<U?<BupZ at suz%
zfFM<!WAuR>Y9(3J_7#K$nX at ZrZC<@FMRzV$pBg#BRqrWU8*jx4JyF)9fz#3mL!W~w
zBMyrEARgE)^Vu%HMg9FEOlHFA_O5$R*ePfA$on~|OA&z6W6syezx~!pJ##8JXNZ+V
z#H#G_(h%X9?W>=m`(lNT&ONl{ubjKGd^T0e)WwGr$Wr$aWwss`=#s^!n}?H^BCbE;
z*nt>B%)1(X0klLrtrakY3fc2VAKF3s4QxBuQQE=9xEPTRnEVph#vRgSk4|m|-HW)Z
z`gF$!r0wsfxBaU!k++nJ8{C8}MeF{|tP4r9*uKD+f|6U)n<kAAVq<2T`h^4I*pZ7N
z^5bDc2K}ki(u==PU=HgzJMSSkVQdj(+drRPEd_C}#EK%c`hvp{Y#Y*zP5ub4x}s8d
z5^>SgM#f#F4~P}^&seYuEvOIiUF1|rolizYSNoj|P7C`atH at UT?W5x8;6C53Zi9iS
zBZbP2`^D|vgMXX0yiTqN?U_f)F!EQW&mA14ccxq&$oHzF45>&>d}6hUD|F8ddGN^_
zMhe|%BNq|SA at 7w_`Z3HbleEvZ6;zUiHlgTzb<{$oOitHm<bfMD4z7Yaj(}%5K`<>D
z<#AobU9vftp^+W?a}wuyh3 at RX=3c1zk6s<t5<*eWvta|D!=oT_%lIFfaJ1u3bRy4T
z))$aL&$G1&T%Bune+$IvwXt_P78o%YQbJmHVyJZ8eC1Q}DS5tAqRU_+zd~&=tLoTe
ziy+IQRE-^LvZt;V)&fwWEO}aIsSb5wl^o0uvI5=QyhC}}lxKQY__ZX~+U#Z^%W{|o
z8a3{?A&>7x9~4VxMvtZKp*hRYAKR6OgtGNUo()&{Za$W`UuSV_o|yX)JSlLT#^Qu)
z6nTuF&Q;55x1I1VZxIw{b|q1WeY1siC(@*`Q!*e0&!M!15 at y10;;Z3U&Tk~kwwc~|
zi3j>qG>)?<+0fkKVj%BseaH;R{3s at Sia~xT@&IyCsy~WZ)ulZL)rN%L-TPdp0>keM
zmjzFXbLJ8vnYyIqgwl5(Uvt574gUp_@<fr>BFJs)HX9if1@&L1s&@Pls^!H}By=cw
zwW(*xG1EpM^md|vsvYP`?#-_G!)0pVn-rF4F!@zH`1f!SJR>!h7<w=qeZ$p6*0b+8
z&O4)^%24BbQ>0d!10$uu*BbnWa~bZhTG;Ow`pgZgNfTE at m$ucPxs6(;PtkV_8E>TE
zHqYFPmMEOpent={-Fo(Wmix-|8sKxWxSqwqsa0Xl(eP<UD{7+ktzU_D#s~(#j9JmO
z%`%H(^=ZE&vG&#c!xIm$E|Z`=fN>{>IEBi3XcTMDDbsx>5%`4mhhrQhJ7i?B?Mn$s
zx~VGP6Jstu(z>wLgvQdHN;ssz%-2Eog=z^>1E)`1&cuIJYt)@ps=?sMA059BiZlJr
zn*icE<-G_t>v?M+%E0yH{F#QD<D-?fw;v*#uk);m;S{O=+LrN-seSaht)D)yTmRXy
z`@r4sSd#0O-RJ5d+Yb9d=?O)+qIJ_)nt8knNHMZKec<}X8{ztsWacrWcaF`*XKWF$
zTuJV`{MC2y*D}R0E@^E40a7A$-qQ7n-aj<zISI@@_FCzdW5=JLxXTH at n!b1(0SweC
z<cSDque#Nqb+tST$V<1RZcy|MtJDcat9Q?e=Xg!B*sD7aXc5pAlHV5&dDOr3a*BZ2
zVQmOl2wD4u!K3}?z>kjN;vg)C`6T&bNCDO3cEO7%QmR%*QC*1evZpk5_aPTABc(F-
zWW%jjCa2Zz&pnwG502#rxub_>2P!W&Av<yzA*X)>e{2ND>Sn(r=SaZ^!__-9<wdD3
zgXFjq<zgWA+elF4Q}cx|RviM31t##BI<<_lleSd{SfLpC?&e5qQ7L|bB7|hxu<KOk
z(*pbhd^znGje?NUYecKeW?HvagkgucVNyp6=AFNH=C^NE7 at vN}^r^hz^C^tviU*FS
zZbVkaiUId2?GQ_3ZA5<~S<u|i1JiSUchY%t-61Z?02ffN++jP|wyNw<G8~GxRBD at a
zOkI{!gD^#81>g%a-8Se$YTQsJuQ}x4=DaKT3?!PPcU(>&uHA=L;>Q=FRi!u~QzP-`
ze at Py?lQ@#Je<h0R%>DkvQ8lEmaU$PFjn3WxAHj0O=o&q2Ax!&57kMXIWL(1bo1Rs;
zTp%alk!X3!&eF`VkB+p#D=G+Rv*GrBy$|fYrzwt(9JFFY=RzXc`cYNCrSR7`la}a$
zJ0 at -Yg<<Jz_d=Wc-?r^%a76RP0Ssn%js4BG`o{HT>iT8by|q|C;$H_pKh~u}K<%+$
zt*HI at mIg(^F!~7aX{*xG=hkiDN2(D}z14ZS!+x8CY at B=Y5(ZK*=Ak;WD+%Ll#X`+G
z-ZuiH`j)NdR!6E<LqgW5hM>!$$$&93eB;}0ijZd%!XSMgmSNHcDGl{0X_A%xvV=Y9
zG$h1fGmPm=<eWmxo>AK3i^(rNkFc`SoqJzoHY@*;0wrBG`>|UmbY$rfmi(qG=d%Tx
z;c3s$4PWlvSLM>N2g}%TMT4-=)Mz<l at LBI&XM9C&g=Lz%T2bc;_?SugJ)`@mb;}xT
zJ at nkzZNi9j(;44=KR*-=-;(LqzzGD6=&{2DpksFKa_5Ek<eWu$v1}LzY*AR2(JBft
z%Cs&m`Ibv!mqoSmhypW5MbJ=RTt=SCuT8FaL{gxDGiK2|jY_+%!LQUL6jhWCKj${k
zUYWEv29#Y4aSPU_2+0+?qbr!`YU&g$ini=NRN%pYa>Avd8!Fhz7K`cuWIHByztG!=
z$k9EU*#6JqiHR0P8uU3GexbVQ*}XeAt|@L at AMjj@7<jX`h+6Cj+#>}hq+nRAw|hn-
zN1ZyjnX!0dlaWdfj>$@9o0~Fi^<yaGxYDmKXmfu}Tk{_F8UBEHP`RHPT at Y6gr+)*<
zWLe|18pGaOcodQLPun^5Bo}wHyZcf7k0(n;se6CxD|SSb3<A!|3bZQ1;ol)w2i~&=
zle8bShCmjtM0bI)3mrsD$A^UVC7-v?areTn=eBB{U?G)Hm3X{jN9j=e32wvS++t;M
ze;mSjjOjkBQCwhG$otEh80v+4`|V}<p(-VQXNO<zm9#ZqcD=yLlAq%Hs5>Y~$d4N`
zLo^w4`#C}UC(+I_S-#We=e3*52aYm%_muQm1o?(5%LumB(j$9pKf5GFZ|74#dFBMm
zWnyT~{d9loLD(TKUTYCfK!gh4DH3W!v58Zs=oo*yq+znJKvi6RB&^xgGPdov-HbjO
zfqnOjd~>E4%^G!nM|S0sL)N+d*Asx}AK6Ksb)h#>i?kZ`%*N95y5Gs*<vB6}5?%Pt
z$vkKdOk#8JN3t8^=^B+{U=pV}e;0z{6yMpx5qaS(?wx#M?D*QB-ng~yIweTK<dSva
z5&?}IyaXy4#m+USq=AAw?YH~);ZO?lnMzg_5S-sHDY5_&QB?tF-b5=x^XkJ+yBF8q
z9e5UO#=3LRnC~>XqPCEgEspGsKrm`aULEYsE?GgXx*&5eDNr650g8MPB-Gc72KO>k
zIxgF0WpqZkm21P?fO;bh6bz0?6h~Zn+dV{$%|HjqCAij$LakHx`_D#pZb1h<N6!z;
zU{(G;2CQXztOhVsi;#?>goPn3SQ0H9&aZ9oj8t%UfWqWFv^w~|n3*d+9~c8BHZkso
zt<CLCqfBbkP at P;bN0b%T<OP6ATe&PVbBO}DQDRv;2kM at pe9tCk+spxa#2&;^m4yAA
z(5DsIy3-vE<O|Jr1AG+dj{{?cyea&v$287gj?YWN${E}Jyxps^CeK%eT;Yg(G+a=B
zB}rjh_FOywL~a1+dd^8PGxf7GbRRflbdxsjmGQ^?anGgD9~hkzg|d9hN2fY&y_W-&
z;W`*m;b{~z=O~xdw`4<f<M93F<l&CG4LJKQX at Q?ykQ^aL%#&sE{DS4rI>(yOJNBK^
zx<1fZ%C+V7bnPs3=JjP>tFGJmgcb78P2;G#nHn3iT`t{F2661$rQ6o5a~?f;W;Cq0
zhLc*U#B7V}bD8QIh_q@^x%y{kNMh)g7FDPfRgh^u-G`vs at LehaGJZ}dy1#+c at -YZi
z1NQ+#y at 2av<HL|LFDX>nquqhWvCJTT=@a6}CPjWsmg}WXUMA7GAxR_Sj-f#rej*qN
z at JDmIT-_-}eK#v-EdH|JZoU=aOK1DjJBSHHxjpz;NmXVt4$Cv%DR3uF2p9ZrfA-&y
zH?<?E3Dufc5v?GZM&b6ZJQ4%OX8%#kn&_ipDf20(%cd&8XUqR4Bmy=ROY9YlyCi1S
zoxhkIG64;x#kUi0+7|7g`$VpU#5taiwawoyKo6$Jt36sy_=4Fe2wHdT*V!vTKX}EI
zH*tvPI|0=+tW?KOQlyhs$YG10m!N~>q4z?|_sX)Sp<gKld0o_-t3;{&$>-ms71r|J
zAi3MsFFKZ0LJ$Q2U at XzGBw3^0N6S8kH#o?(CZs`aU7O8a{0#(UWs9#k>n|ag=6{bC
zMm=7WpzZ|(jPX`Z=p&WBwsSDeYuK6hlS at GR=zh at na=vB8;#Tzc;j%Dbt4R5IcjZ+d
zfjBH2g3Yn_7NeI--N}e7Be}?$7~x-fR?4w~rpG?X&RWrhjVm{vs|P78y|9?_#nB)q
z)rRqSfBFf)xTxis`U=bm#}^1^1x#);WEY2ZMqfBET$-G%G)SyN&JN0^=94a?^kmhV
zoXlA;3+v4}vmu}!>xVVGJNKMRPaD7D^M<)iR=oXkA*EEchB1>FA(Id#O-Omzurl{4
zJQYB$VV$Di-*i6vo7Cwxg{V?$!qM}Mr?D6J7kEcw-mS)p)1;B=%(P}C0x&r6UE_YU
ze2Kq5ZBUqLoat;u)MGpuZMUm33_r7$fIfg-#&n*-%ky=7I2(S{Z(1yv!?HKDXCwE^
z3VMffWds%#`+ckbkP(DS;P<`WuS~>;eJ-_^C3l_Cc38I$EhT|Th^LSjd#+$Qk85XH
zJCXXa=k+&yspK;{{Jghm%4>bmZTn9Z>gY)PmC_>TJ*5_Wn>EJPQeizh&twFha%V6P
z?nj5ZCub=$!x}W)r~esm3NOM>Tp|6r_e^E3=iG<Lo|nFTm*In^POpK|C+&Bkruhkb
zN>hjA1sd*~(Hl3H6bueMf2}UyMTE=nsWt=vczDxsj8pBM*B;M!?WRZA`wm->mNa^t
zztiv2pLv4uyVGRL5}0hv-g)mg%)GzPBA}BNR6AnLyyrcnH{~4tE%dm~qz^qYp*XSf
z?mL^qSyIe4 at nQo1-TQ1_{;|=AwM^H^{sa%RW=s}|Wa^Xsdz)9>%UY`F8jx^NQ{I6q
zpLc#ztXQmUVdjuMY2vfi6UHC5T)f0eTmDj2d4%VsdA-htbyY^d)@8Dl`#aB1qbqdF
zD%iHELSg*Q at Q-Dj(7v<dogTY*`F|Udde2N;8Pxvi^xVymiMQX~TdQVBlQ9KANP?<<
z!|@Zh&UGm>(b>Nl=DdWO`8;oPRR53?&cXr>Hnc#)3(Hf&`4l}+p}U`|#t$ttx9XCY
z8{Yh@;MzDrP%w$1&u!%YJlp<ZTvOTbbFdn{V7(VBZ<9f{>lxFyPH_JEi+x%|<xkPz
z@>?*RPxx at 3@|Z`S{C-lTPGV6Gs1R(g9S4ZS{#C9CTZ at 2ABa>NL9wDsw(4%fCP#kfe
zYu9U7Q4oLec%TgSwG-$uB&Tfg at _XZor)M=%GL~Hh8u{?5oghrla%d))m4vjidmA8i
zFDtN8`=Cu)Spc%LM2b7S$%wpS1WL24<<vkIg82iCmc+cw!Vf7=1~LzIr8`zOdu>Tq
zHC>aD(Tv9Xa-Saa9YE~fnmwY-r1&9EUdR=1^R4f4DEi6=^`X=Ypuq|nKTuXrKzX)a
zjs4gC1dFDX<~N&X^u~iH?_Lb~I92B={<G}kUlfGC^uZ6O+GmPlE-HI*b%nFGyo4Fi
zuIT@&z($s~Ct7F at bt&sV4DR9&>fHIF$!8s4w;He<3c~kc#Y`=JWof6QE#d}pQkl64
zb~(Q|K7J-6&-8?fqVe|@LL2Cpk at uTX^2J-|H4Rp`8lN|{HQ<MYPS+qXMIaaOtpvYE
z6CHEr3(Iq9uS9y;t{C at PyJ}vGamF0sI^r)avf#E-T+>|sh!$dXnT|NEGy&Z_7;j|w
ztK*Lf$MAKZBY#QIH!MPkU`YN4cck!Kp#`GIgi*(D<TYj9+IyPnom0X-)egqE8Q72N
z5WGU`3JF6`O?o8ZXcOWVwinh`^G7VIMU9j6k_;qpmtj61)<~c(ORxcsm*N^e6|W&|
zj9)+fKeceEUC_tD_?LP?S{*i{mD>dn3B!}^b-_0=RluH(``RE557CxH?l8i7?o?a)
zr<U~2PE$@**Hq=vNb=!?-4rB^vHc~4o{0YKe<jM-nZvevHg^MNUNBBR033N_k7qm!
zJd=}^7#XI()ctdmc*T~bf|Sz0O=c^Z&U;7`x?=w{8mXc*qc#YUCmF0O at QJvnz?&$X
z(s|=b<R>CRb2L$vZsU38fII<p{ZHSQdnyLMtjnm=6W<)9E*GM&X*>3+J~P*mtf2iX
zlNk_l|0~GXXfUH=v|3Ihg-Xw_X<!~Y^Au|b(>(IdRRPOd?+-V5X5io?!T>{UdJ=YJ
zNE?`Ki_DO|@*gc6NLe|w?LKHh2scch9`C!VO4IeUJk#;u<<MjLej}Kug5b_Nzs_52
zFIB%$*K?cat;&*tAqwE{5fl^tLefGF;t=ajp9G at y%~zeH*<u58(@PF-Miog0QXTEB
z1J7L;eeA+dz5!xd5`IGGN2S`-Z`G#IV`p7`{3q%BwES9pRU??t$V_>G-|aHROj>of
zXn1Nsz12ULcJ0s3 at w1p_+~i)w&$#u92?eR6>eyCncRFIixGho4fFt=Ns_wE|g{$=w
zW$I2q=y>VN7n~qC%4+2I%m}}NmB=SyE#m{DR4~4EdikYBFWR?8WcacIjZ<yOJHCua
z0dXTIQ}N#fDrD=S%^fGzxDtUzgyGZ?Abc*fXS at Ff#YE;~EHDVFkd=c++#CWH&4HE7
z2J~#R`5-mFwxH)2ro#(;%hpFkwt2&ZN<gmJ4FC$fcQy?>1Vpsu*TP*u&qT;@?hiX3
zBsHHJe2(dx>0R0KmtJ_Hs`6SHX8xaNoZlY^+P;eJ?zR=+n7pS*_8pWUcy7P0 at _z-$
z&LUgLdMS7p26RVfDeTX-Q1*vxIOFYUVfGht3cvemK>GEE at LOq?0fEH6h%BPj{N6MW
zl-_n{+mYGY$}ArxDpkcJ;&|6gi9Gn&tAN!JB7dCXdci&!A7$(fS(2wm{`!e7Oxud^
ze-j}m1`j>TK9nRcX!-OYdHQ5d at C|04O`?^0(St99EOLKnVpEouSs1UoK%truevUD|
zcFHOeabeDW>+47l)BV|b75%XfP7uRF9c0Cn)ONM?W-nB^hH)*eshBbGz&9r=XIhbM
zfVQW0t1 at JHb7jw8kNc<!VC#8$f!rfUT)J6hTaAY at UH^eLhKp&PxIsavE<kxru85)N
z6BU^FqmO+#?%o#8M+<ekisS^fd#$<lTi!dpJQ%mW)md5%rg?JJkB9yW9itAO`cb||
zgObBGq0^R>ym-E7garzz`RpbD{|Dn&-u|+X`PylBM(51uDRHOA!KeeyYSIE;Zm+*o
z(_xq1iw(c^>2ZvqBLYDC1)HD`SK(z*Id_-Z9AScGNN?0p!e|jtX%VO>e2MOq_ll+%
zq2t(7zjL{MQ-jBTE*vPQ-Oa>rMvpazfc6F^kI}|BJD_K!R|)4{PNr9>{F6+4&&rxp
z4KA at Hu5f`2(zoiLyj`_?N1*UPp4m3Jkc#58FczFn-dA0Q at VO2sGIgZ-*otR9ya*{O
zAg8fVKr|$Ys at 6)g2ZKO}kmNa1aA3bO5k}0lMCu4>e}F%Tc&n>{&9(wbK&8D>0O}-h
z9dzU{F{o}Sjp8yk>{!z at X7;HqvAkkuI<ItkB((5+3kbA~;MrAI6YYr6E55v7EXKCo
zrF}- at YCyo)xZgdJyxy;$Dq10hjv9wrsh4<{<Sn^k5hJSg`=^$*RxAiYcj2xVOZ at Ys
z6RKT?Q7+s-J;hm79IHe|BkinP^iP^)Bc(-$jKW1I;f>BaUwGvNY%p8&JlIwGsvUMC
zBMC2fVeXKoHp<@J3!(;aUFbWlDhrM%_uy~_&f at 3KzS-QiKlhViHzOmV=!c7nJm;ws
zt1bKkCMpS*v2S%wV*Io2&snmPP(ns$aI&x$$-%&rPP0m^I!D~~PrH0}UiZRzD0e%Z
zjB4<Vb)_FdOr|50a)at~cy>(7?|B9zPrGDr|8+#&K&yniMMSv<U$yV(uFX^@(t~vb
z*jzaKZg6tYV|LnI{sOn?FnPXBONK_Kqa^Nz7e-up6Y3OQrAaWnI-M}OHdl_&5dgvA
za)gCZBqi{m-~SeaY4 at N-CQE=sz_K=YSui+NhUY94b3L#97?sZ}=D7sokbKD7Fu2dT
zYQmF^#P!JYFFEz3$<H at H>apg&6js?)hFQo6I8qK2a6o3Sdk30y*G)d3FSI+Sp>e}4
zP1Vd|audh~%qF8I^bsd8u~i!kZdwhqWKUoSvGdolO9-(yucA=@7Fq7nezcmB<mxol
zTu7OHigEqWCnI6WA+g4zi$fl=%$_zpqWZk7H-Q{NLZ<P8{iDXWi-{)<{>|zFvNHcB
zJ_~5#)$xbHWUi(^w)mWCmwp3r3DP at v8jioXPAM2Vwy4^m&}LonmP7!S+w2cX<Tz3F
z>P|$oA))274QkR-r4R;P%RW at dReX9%MkWdY?tvNyBLoHkZpi$H?86m_z at 0-|Y?uX?
zcfNa4LU at t|Lgk~R?xLtF3-R%{2E0+jp<%OmM)0YKDyza*&82DKySH2XS~GUf@^VMC
zkfn)cXBEj^lYrpJ>>^bONi7{Qg5kizL1qRg)Tu+OK!BCXAAVGHyZOmi*kqzDAP+$Z
zZi0k~%a0YxKu at aPQGC<_M)0&HENvk8QU``p at w%SqvrV{EQpqj2V at 1eOzRKv;4SZ-A
zScg(hg|>{MmHd)wjb~_)l)x|TO6f70$BmCm at EzAs$*m3M*+|6-J2_y{&7((bLE2i8
zZn-;7+h{4F#5MUBZ3g2bI8gM)^r%1lMelol?g3j}CXMuy%75OOP~3RtE;}me%)PX|
zN7A~zkQIG9j$*3ZW&d>dxf0(7Mz9DQneg??%Kphpncgb^{9<ubOAzV^2A6(x;*#^5
zP@`|B`)2hlz66|9f{H|X#9lr%raR%MlAwjV#!Ytad({Zec<ZK at v-dkx%~oH`C?3t}
z$F?119mE^ek>qpnQ=Pp2Fsaeei>v4n$Gskpsgn&hF!j2$D|C~#ewSjxY&fC%{7&N}
zp<U1$p4^Rs*)_?X$AEH)9XcKQVTBJqw7dn+#<7Nq*U%%5dHGahAM(NpMNcf_Om^Bl
z*&KJw;UmKVjDOQoe&G_Vug|su1wnEgky}BPn#sp>#T#W6z$p_2O2+gKNOy*Yy+8X4
ztj40mu{8)-N*Qo&bl<9M9GOep1>9s>_uY;pPp_*k-3b(+ at up-<{8nQ4L5E7gPeT1h
z9I=PxQ7fFLQiNmOXMIw3Fsd~WQ(t$26#T|S at dg+rP_XgvpFzNVMBV2PZ^jAOpXz|=
zir5=3LK-sC^UJ{pIX1DCPE3UKI%0_g#3U~Ov0dC#7kqa_9+?_|%&qyY;NE%LNY?98
z?y(eU!qGRWuy05 at d>!_K8}nNk8}Kd(sP2ng(e8BkbTWd1r0%A00`1|j@?XQBibtCT
z`7gJoJ-atz8Pz<FrtOzxxMx-zTLYt#RS`J#F!AMe;RHtTM;l9vm?RgKvY+<QEUAq0
z*qnY$@bRWTne#$ykL&OSVNt3iHUMN2VWvkD_W}@WqR4E^bynqP7BIpD1%-KxSD_R8
zNReyi+_`}aF=M8E%Hx20GUA2+G{PQh+jjwaqDBixf#Or8NWfbY at F81-()U~T@#@s1
za=^oQ+pzbOG}E!Q@}IX?ku`<fdKU$W>_l&Y26ChsCs1<2EW4gv?-3G_u{Sf=nD3kP
z3uIC&L_FvuiR9~%U0HDeM0D=tn^5nDa{*-3srPxq<%S5mzO=QnpM(S at -P7tLKdmY=
z;L3bo!kjoS0c||xn1(FA at 8>5$_j^I~+luoXy$D at UGuf&GPc8uBvtb9QN??^D`@V2j
zh9R^=NiE`w;-7^zm8jcNz76jyaY;tQrVIq1(XcRL^o8HMoTdC~&lu`$AKslT4A*<&
z?OBI)qLwj`gAe4t!5q;eE;#jc^j~kLd_RHezuxMx#g4-~fF<|I<3e4F>gK$Bwy{|+
zw}J-TV3{Or!sVR$<_?4x=tQLLg-t`@TE5;)-oMl^*zBumT~qBDg9bM*;P{R$rSo#X
z at A`<$mAow}etB{&h3N1^-1%u4$EmH{XlANv!PL;f1mPX{CK~?id^=XSeP2^kq7)$|
zV=?SO(x9mn;=bVNUGB+P9*{eS<s=~#F!`J}e>~gqhq`vR#yg`cy~%HWVs{lIsw|IV
za#OWjwXM;Y%stV)?x>sm|NA&`#l=j+>g&FmerY2in%<gtIl|<~FQD)<<kv1#$yrv>
zFDh)3ueYk=<};LXPc&KgPA26K`K4)yk#J}m$Hd$e_Xv#*u>7;3g523YrDN+m;)J7t
z=2*usDOtm})ZD6>WsNf(OGis}E+a7BV-%UmYD$5X8^A2oO~myN?0b^A_f*@oBDSNs
zq-L*|X8O|g0SW#;HmDpk>>$)6tK!IOAJ5JWk5;jhn{p<ta=5&Zse at m5l?iT!5-ViB
z(LnY$$DyXp+n?=U@#FOnloU~jYhM<onu&MG+`)HgM+f#Us&GudGeWT}E?GrDxhLCJ
z-e`c{PoPyks&Z0crI|XA_K0f&68cw{Wku*}1RtUm8<?59YAZv^8k9V6$RR!w-;X28
z`4+9-CzN3(&(YK&6%4cbNrm5ZzjY651jH37zJy+Z at XXK-bpf<&+DxiIpA%S6MS7?Z
zrQ5I}n$I3xZyQ+M1IaG-_$DfJK8f!B=`*o0g0?sBKdV@&j}F at Xy%5>~U4PNUpBlE8
zlg!$~ynnb!oQ^S3K9y)F14KTjP#HlP*GsE0`$~$t8H)=1!P@^+Dj7TJtSEtmMRNCt
zRn4GgA$!xd3}}f6V}7hw at vHyN;X64Enhy~fXjaYtAy at wSdq9sqLx245pMd^coRuUL
z2e;rqug606N)wGR<bOQnrML~>XN>%?L9%d&X8>R^R75}|22X~<2YChv3Id)WY<!qA
zw3LL!1wjYr=D(D^WCI8sjGXR<7d?`fBV@@iZKoo8i!+EhBrKAhLBh7(`&XDhOBi4V
zuiU(hFKSgy;l5Sn+gNHz3p9ohhXo1akPJOD7K(DnvoArf*=BiKyKpOS#0Z;5BXcTw
zL_ at m!GA27~_tjWyBngi^8t#F9!6t=hUrQ|%PD`3w8|FgCVDY2OqC)9CEg}u593MqO
z0pz*^a%I4lnjbHgC{uD(y at wKoCNx}KJU2H#uwc9D%7obPq-E?t=Un`70C#>7X*w?_
zsIz%Agm7!9oR5l06k%IM9-#F!-dz0s0E!a9d9hSyK>D4>-TmT at fq8_cU~d{rRDDp<
zY4&1HtdSfiG}LACw*TrdmRsfZD}(nb at 6K{5N5M8FCWfOieSGbHL-%XgEWGGC0++M{
zCqeUW)rHW~74aDk*+nrzjZa7$+Y4!cvC0S<)UgMZ2%|{R=;y9N4zG$EnH7EQ7;GD)
z7URQ_S0creNt!tv=F0QrDijnd*?34n&mF%zy)G`vsCs8YdbAKi21TmjM#LR~C48I?
zSeW^0d8~?{^sD_uC_Up;=zi&m2C@>O&uvffkYcd-Pw^{|j;`>I$eoaw?E6_5f|~jH
z4RiA5Q+)Z;L&%qKP!K>))yccels0DP+~fC;-r|^khwcaq9ZRyyfDDJjPPdKV(vP2b
z%L!FmY}5J$v`BMeTZGgFs8^v7X;)m!xu8rDiFn+|VKyi3zNKm=`1)wJ6xd>ts%h}G
zVH}kv6=6P7TS;JIf=_o_8SLN=<hd0W)XgQ$it=>Yw;XbAo|i)8o|C%nwSKPr3;6ge
zY75rKlEXy3on0LoW=Y3x7*$05c$HdoK|s`Luh^yhPJrYe+)leCnquTk0;$6{vLlCR
zEz(~-mvC@$z>L+t3nq)eV|t%F<;pgb>?e%q9b3?2+xeLxXe!5jG%&krXqp%r1#X%*
z8LmV25E7k8yJZVFp{?OSqO!_a#WxHMU3;x4yC`j>9J1%*?jqCwT)RQ0Y@%T3#G^t!
z`W#DX(QJ#(vr-cL<=RUl76qEKuIG;dq)1JP at VbBZUyheIqYybq26n#f>@S5T9HfN-
zE?t}EYFsVS$6 at zYJ3$E*G8l1Ob=|_W=R%`fpQ-6F4sa%?PmkXB*-Jgx+;+DWdKfCw
z6GyO6G%NR;EkhR}A1zJ+x`TFt4_xU}+4<Dn6j23;gQmcgx`PC_rT-azS~Rib;bA#K
zxFHzd9|qDwgET)wJgA0g>GY~{o%h!YyFa=+CKH*#zY1UuI=&N!j$aT at opr5om51H2
zoFKgm at fH8`<Qor}rZfDQ*H!iRqkT4$NY4{n%*mX|umi4Dqt{>9NUQUA`Mq2vE%^G}
zh*r at zvaizko=>@d1aD_un7hT|fGu^vgAJEU!`EAFdVy!DeBU42=`>*y1Z3Kj=mHpz
z0H_-$yxd0BQCMlF^J$$$TnfZdTTYN!H9B7?|01V`i3WFp0=06$5DBhk_WhFB5SWgX
zvcqm~W0Lv`3eIkzcdQ{K1)aNX^3{QPie2EyDVb59FRVI;O%ZRH7M^IG4 at +l2mn?{;
zp;arIikEYX7TPFlW=BCOvvi9}uJxg!$uQpz%+Puab#UCkd{n62QBkGH)WE%q;od^k
zSaA3!S|3e?g?WgVzL3P^rZB>uQz&Q!22Abv&YKnI!l3cJ>5Mpj)K}Z~?F>Z-Y=6~`
ziugL8je~<>Rj0ZJn4^@2!S3&KJ4we2na$=4wm^piANEs-klWO?a{#uFNR(fz3Mzx`
zJfuF|;f^EQw*2~80d{MllmPa5@@OP*wm_+9MJM^Swk`j3AMtNdyqAh}Z45QD%POjM
zTrfPJUnzpGc(2CfZuyJJu+a)K9L}^QZZM<9<fd|YN?e|?GkA9gQNZA(XROoCkp3O6
z9$CR;=t3Kg)6y>r_NJxmma+lOdn3*3g)G6gD57V-!<P}{)!4q|UUHG__0HAwMsVCN
zJwKNK{+aLU1Mub2<pF-rQvhUP at aX&+cTwKZke_ppHphg#obie|(~kd)WJ8ecDf#ra
zF~rTm&~`lNZ3Xnhp5lD-GadAsC=a>M3FXES1J&MV3KOjk;kT*FFeh;q<L$N#2`ddT
zMXGG5-&UkY)ZJ$|eCirDAKB;330;4_#0xqpoZj0M1hLTY*=BG)0;L6Y0abeTri;7v
zGgRI>;>cmG?NAZfGlhh9HWdR+4e{$;D$fbfPdd%&&#jlPW^~v3TEmJDRQf<A;R|Fj
zC4s^LtwTtFan!WGj5D2%5_rlBz(I}}ds#Ny7_gF{l(W+@@*hjX*u6aPZXsn8j$`Q+
zuVjfhP7m#@q*|{dL`fLEd;428e&iZ|_~#bgdtG~U5kOgIlK=gub5DnjEFhbp!Pi at R
zJ#JowEzcxJ3vV&LN|sH6zv{}okRu#PizD~Px at R<gAGNgVD?>PCC+L{^_bhYq*Arg*
zbJDKST1;<h>|<r23lVaMmDQ9fu#wL%Wnxa=opv`u1&s!^c}YEOzW at uAQ61j7_k@uw
z2MF!PK1dCzl~qyTo*h7X(}tf^Gnbsi12K<+EzaVE3g>3|(1RXuw$6_&ZjX}9JQzdg
ziKeTIF#;#<rvlX>3+yiQ8ev;l at +3$E95Dd0dwxCiPp|fqq0x5nkVO$U#}POGd0Fn*
zsrLbM87^U5bK9hxnU~(W`8==DX(}YodHBDtQ-r5qiNZbwybWIsg(02_g3b{JW0St(
zg_N38#g&Qxgrb0plI<XS+dzeHDGlVPy-6oFtxfz+rOG2a={mHgi{C%i;o>|DwQB?6
zzx)`@x>zDj3wl3~C4Bj<1UO2a;M~BgLLJN62j-#ZD#RKwV{y6Jr>r at mzKBTiC+162
zzK)GbY(11!k+Uh#y3ba6*RAgeS`LRLIMyA-iJ|PIloJXi`;kn5FQ734^c~EH-Znui
z*C&PM=p=3j-R|k*r;rCvj+5Gj at ZMrvajeyZr~_G(ZfyCVGeg%mkJp=XLDW{O5EWhI
z2w at T*Ak=futR}xR<R$#V|B;HymO2EAl9bRAY3bwG&!6T&Hna%q4T3u*jc5_b7UTyG
zNYLBri`msF<pHj2;J>~hu(GWKVc<wtYebxUT5>m05PM0J^?xNw97i&9j^6;r`hbB{
zLDzQ_j!ZUFG)H`w4u*{RSYEj at nrR%oz-?)6 at 5_U(xJM_}!F34Z1F<a8LggAPyD?|d
zk=P9t6IIjyV63H(O^+-o^1coQgQAT>=wz;Y%l1@#7dJb(iAJ>kdt5KRU1I7hwyi<n
zy+uFwPK?l{?4PBprslWKu#)G#xP+~RK9tuxVZ!x;Qi~R5myVY}t5~RQVWIe%0lkwS
zJ3~Nd5APg-9f+O{rTg@;>sG_i>ML|1C&tAED**a&bL1VT#qh|42Yt&}!*IlUSX`jj
zp&vef%Gyic!UJAd+9pyc%0104Gp!x}tEd?AMOyJBr<j4A^o)+j<}6FeJ4n89nSa?i
zE8N8UuK3s#$pn4MUjMs5=|X{-2hv}UrNOO>zwZtuiYYtjlMSnc?uGgB+Yyq!#0&2@
zy9pZCki1at8n&5fr6(=M(-5fK1(jhmPtoV$HNRvtdeR`xm6~S!!I91h9W(3>*Y$~0
zyJY21w8qy#h)^g2pG<sxd}#lv%^&QXeO0V8(|)pZGb@^zAi|gd7Cq|qt<pTu=bUnO
z5v8F2IyhX8+;#MbO?-p#yGI`@5yV6LxodXpet7|P4=iv<T^BdX^LZ1=BU&h{g>Ha$
zA<gkq!l^?c88yS!ei4+IrF;+B!Ba__kSPGU_jf7hH>q~vM*y|+Xx4&4<!PiO0nib>
zbCNS#9&FK*7tpwR9OjG$GC2g6?XQ0&T6*Dn?f4<+YP~SOVey8EpE<@!`pILl1IH03
z74gsEF%v)I$o3hw6Kn5I-e1+*U)<<zo#_Gvhv`}fJo;N)-rRQ<b$CW^>i1~<h at 4l7
z1dO3opx%Z!rx at XyvSkEQDM?U5_es1o;~@)sYsbnsSONwUh&fUMFy1o at Dsmg<=9k~*
zZmbBaD#XqDZ?L5*@k<nzVZIzUqHk$m;)_wT5`Vm9SSC+^3c>>LNl-EsZA%AhEvf6(
z7&hjP#?b#cxj!Rr1ZcV&meA+6nN*u7-e<q($1C7pnfx_(S>XbFB$9os8h>>nMleD~
zD#zgMerlhW^E2n5d%B at meOehF74dlW5~kHC$;JB738Vyoo*vk2mSB^N7Qu+%*Tsi`
z5+}7-!I?JlRF(bdF?wuxFB3;K{_rJ0*&9ejkxm@~q{77VvW}o at q@tkqe4yy>%wTmu
z+7m6Eht*`U*`{ZPZI2k)9P8;_gNPyv&~NxE3Pvg!RXv;jt!mpM^TH|<gH)VI9MYfL
z)~Gz#@^kCIqWkNGHN01h-s%5bpi8muae+f+AYPIc(2k{|H$Dt1XL#M4OmD8Stng$x
z_)PrvEY&E+PL?t-y+<n|a^8KUDZh&?HfIgz?(3@>svQn%w)8IYnXI%LsoMQ<1H3m?
zr^f&8U1=c1d(5SGH1P&Qq_No%nqRDp`d!Rs8VB(sKulBHncyY>mx-)p(V`7E?UEL>
z>@O-XJGW4ngU|ew$#vax>3Nc^IBHTb at Tok_EC^MfkrCSvKHL!*IKk?_2R4LaZzOK}
zJ}34o_q at B0#B9neZ5eZZ5cE9Bx!wlo(F at K3%*=j9M$1 at Q_l?;nQ!jl*TgaB#{qxZC
zrpcOH4jWW-8YhrRM#Y(7pDgjVxf1|qB=Oy&=LY7_Y#=vRWVgP+NBL at _K?tI9D7iAe
z+=F9-taTKT)TxzjWume$Pjc!|$9ZmOUaM)qhLQF=gI<F!Txy5{==ri(q28*D(#mzW
z9bW}FlzrCW50yV at zMzAF-w=E6qH%{E6G^&Lk?Z&4Aq;+ReJEd(k~4Yct>u~5-b$--
zLZ%ub%DphKE|Kd9+zNIR<q1*}oJj2&PV}P=J8+AqLbaDL131jQld_v1MIZdQl7Tt-
zL3SU;C(>Kn@!;CTpQeVn%}m{TZ`Ad+?(}aTvP0Za;+tk03?cgM1dTq2WSNZUGM7tm
z0`rlSQ*Fa$_u2sPr9xR#_fTGd=E;ZgHV1gEqr&(&Kao$LyL$q8s(&!d at L^DMAPJI7
zp4mg`%a{%_M?rS(#1gljV<}P$YgU141qEQ$0`N=IzOfwS1o6cuIH^**P8|>JhHkpl
z+Y4yv%b|~;4=c+YT3BxZqrqHHz-PrFv3C^SKsIZRY1~B!IMHr*XNU#otr(n`LYhT>
zhh~u~FV1h#BzLO|TmpTrSGM~-2>g at q*2p+5zrs;+Gc;6Uti=C9n{+`31S)Y1YVI`7
zT6|EQ_V+Ysdv4glE%L~p$kal{Ym@*5ejWY4M7(w at nVls+oDxP%Y7w*Zsxdt0QAcIc
zjQRSsktO_8(*!i*nGCju184%xw9DCN>1ZIue!_uqEWPc$90FVG)Ab4JUA)hTy3aBM
z4Z>XLkD4<*P^<aTYU-t5o3Qt0{~se2yF=Ms6d^zlCt}z1O^)+ at VXTUFFqAAARjUzX
z!|s+7Fsi?5K`)HJB?1d2<adV at Fsi;C0g!F?lwsm8AjXII`~qkgr|y_ch39ZYl;|ps
zH6w(BDI!<!nboZ}9MRO<Hi6V$Qa-yTvUIlDM7LkOL)CQY!#Z&-8 at V2ZV+~qCn^t_N
zb){yOKo%buBdDtRVBVrfXUp^rm}EL#j9nenwF*fx?4T!x9&fq?Et?vkuX)b(&tw#p
zH{hl8X?|C*LTd8B7oLgh&~S8J*PP$nyxu?UV%@)$p$VtL5@}c6pSe<kbX_JYOB&l3
z79;FBU*}TmFWsl&ovFX(>gP<M&FAsuBrH!*TkKx24L%VOr{uc*XB!nnvysDf3;W)@
z9NKpm0y$RrI=*N&Vk%6Zqm5xMy*zaZzb+-mR2n&U3kjTE-Z0UcB?jljXXpj{G8 at zd
zaF~!lbJJ~f5}X0HL!t!*o8W8 at ZMx82$5 at F#)~ySa)1FayzxrQ$P7MFe8`{Xp^Qnge
zX#s(vFwVN~e+>O(C81>bf}2 at Xsg(vH*#C~n%<jeM1tXuU%=j2*=YuWTAwG at GboAus
z8yqJm at 4moT;!s-WFFGzG7J;6>=KnEdV|DwgVB3Z@^tl at 3cmgCkd0;hVq<0;u?u$6~
zTKxxx&~^6Rtvf5MCUjmn_QQIBHvm?32OLd{G$06!5%QEB!(ZYBxt;LUTq2f7wR$dM
zI-$P at M3pvX&PgNr*5+GUiB?v1J8)tWy-~`3-IdJsW|dxDv@)0Q<D{sv*V8Q0srT(w
z+OJZx at E<U3_Hw$}VJ%9W&?9tAz{HddJA0LCbW(hrfKZ!nNd=FuwZ|V at Fdp^1ptjPw
z at U1o^K3G5?Rr#7-W`l_viM)2#aCaU!9~={{$vhbWBLuLRX2%c{K2^t-`!Cw#<SE|S
zgJ|xd^{XSqE(U~aw%6843+_NaNa%Is{NWUbn7F3kiu4{urvBN6^{=&Y79=71vpT<U
zH?1~g+d;swkd)Mp|6}Urg(y(R%U<qdC7F7Eo2~>HS!YFHc&X>O+c0oHr(nYRpq`T@
zYL^V;K8QLrIZev1MMIN~&rkBuU+VrVR|6TFXdy#$omJE?RLmMHhb4k8{0#9A2}E-M
zJD+=hzgUMK37v=B&GA0g)SaHiLe)i_NUFQ-qBld=nL at nO1z8-to45!$-p$HN3|w_m
zmt0v?(&Lc)6lhS?F4>mi{lyNMQ>k4cLReK0?gA+WZD|j0wCMBKQ3E_q<9enJF{iXi
z=fYe^Qp;#jb|J`*<q85t81 at jX1Z~qpt*t655vu<`zzy4-g}Cvne_S7fJ!x-+@~Nwx
zN)c%8SP~|%#gSM3*FHNI<_G!*{0lhIj&v#QgSevu#|r9 at BY?Gf`wcu)L>IxANsaT9
z=Vzu^EX*&A_QQ!0uYUFJ;9VPY)M#sm at 7mne2nVoyRbXy_1KpOhX^fSlM%9Lf$|sH1
z1Ws0ZKf(C>>_qq`*Zs=I9?3t{KRI``8DflsW{i>T&?ZrBj at kn4nND9&n74U2<*$vZ
zLXzd<IM!eLxOEq^(FP0DhTilvfja-g&KFyB+ocKQ`NEk(O^=jkQ_ve<M_{M>sHKZN
zG;*~4Qp(1>F!+H<kDqQ{1A<48ml-98pT>^I+4NnObkDbYBO+ii!DUpN)3#IcAZ6Q(
z?XJh^)g`ZM at R(fpOiEB&L5576W$&N|^!w9s at d#^zW^K?25$cHV{pga<>yEqhccR;k
z7Lh?e8V+Q*Hi!Y*%<&bYc-{7u1agZZI{w~uzKzz$I-Nzij3x%k8HyL7C+_7Ir#H{T
zJas8r*P(P|A(s;VleL}IIN)cN(4uhge4SxZtfczILV7XxV`2aCxh&s?b=p~I?+}!0
zSc at pcXnmf5BienRdT_+=$v=K8SGpuO(~wyC2~O~rYWeD~Ky=%FrjW`P`5uN22T0=#
z=%(4+&k;c~bd7ca9N?iC)%M1L!3k~t{`aXD|6UUawD#ot8c54Nt#@wsh4F61BX#+;
z7^$|pkM{whV(jJ(-MP+`74%bxL#8Qox6(p}qK^rs>F!}E<P1u-xOXW%LYi;s)8rx+
z3%jM5!s*YUasrE67tWlRS%Dni2wHG%JKqxH5B+h4K=U*H<%--)$t_;i@!3w9`kXFX
z(E%A65{V;MYLE2IuG?3(fIuk3Lw-g<;c`@by?1MeAff^<cBW)W2LW<`bRUth+*iVZ
zd{wqp0g1)z_&OWr#nM7J{->d#VYcAW&x=;#D4=s~=(}*<SZzhl*R#sZYGl~F)Kf at b
zcCfq$;P9S>Cb|0IO35*l2+*G9Y2M*r9rpLIdaL4P!j>e>tD(p{5l0?UcuQgtpsZ&U
zz+x!5f!=C;#mKRpi+kraM`YjmZT3HpLblq!_r|P|1m%btSXBR#@*U(H$R9v4@{Z at L
z2<Qkr>TX)r^epK~#}W9EmFsHc|B}NZB?ouHI>9rLKY(~h{zzW&fBTB+$tdaHJ-V%f
U|FC)_1%HlOpRg)CjEnhy05+*XJOBUy

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded
new file mode 100644
index 000000000000000..56b5471477e91ae
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded
@@ -0,0 +1,1073 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  struct Inner;\n};\n\ntemplate <>\nstruct Outer<int>::Inner {\n  int t;\n  float u;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 15,
+        "y": 280
+      },
+      "name": "Source code",
+      "size": {
+        "h": 175,
+        "w": 145
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 35,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 190,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 45,
+        "y": 110
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 135
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 130
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 90,
+        "w": 20
+      }
+    },
+    {
+      "loc": {
+        "x": 250,
+        "y": 30
+      },
+      "name": "32",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 32",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 290,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 20",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "loc": {
+        "x": 290,
+        "y": 145
+      },
+      "name": "20",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 20",
+      "size": {
+        "h": 310,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 19",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 615,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 28",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 470,
+        "y": 380
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 27",
+      "size": {
+        "h": 75,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 330,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 330,
+        "y": 190
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 41",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 570,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 23",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 570,
+        "y": 190
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 42",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 25": {"syntax": "\"int\""},
+    "BuiltinType 29": {"syntax": "\"float\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-emspec.cc:5:14, line:7:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 35"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXRecordDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 34"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 34"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 19": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:6:10",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:6:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 19"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 19"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer::Inner",
+        "ptr": "RecordType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 21": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 22"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 21"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 21"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 37"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 40"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:10:20",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:6:3",
+      "LookupPtr": "null",
+      "MSI": {"ptr": "MemberSpecializationInfo 41"},
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 39"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "CXXRecordDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 23": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-emspec.cc:10:26, line:13:1>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 40"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 26"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:10:20",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:10:1",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "MSI": {"ptr": "MemberSpecializationInfo 42"},
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "55754082",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 39"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "CXXRecordDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "\"Outer<int>::\" at <in/src/ct-cont-oc-emspec.cc:10:8, col:18>",
+      "q->TemplParamLists[0]": "\"template <>\"",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 26": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 23"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 23"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:10:20",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:10:1",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 27"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 26"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 26"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 39"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 30": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 31": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 32"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 23"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-oc-emspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-oc-emspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-oc-emspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 32": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 43"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 20": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-emspec.cc:5:14, line:7:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 38"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 21"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-oc-emspec.cc:10:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 37"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 35": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasOnlyCMembers",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 38": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasOnlyCMembers",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 40": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 23"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FieldDecl 27": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-emspec.cc:11:3",
+      "LDC": {"ptr": "CXXRecordDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:11:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 28"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-oc-emspec.cc:11:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 28": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 23"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 29"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-emspec.cc:12:3",
+      "LDC": {"ptr": "CXXRecordDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:12:9",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-oc-emspec.cc:12:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "InjectedClassNameType 34": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 43"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "MemberSpecializationInfo 41": {
+      "Member": {"ptr": "CXXRecordDecl 19"},
+      "PointOfInstantiation": "<invalid loc>",
+      "TemplateSpecializationKind": "TSK_ExplicitSpecialization"
+    },
+    "MemberSpecializationInfo 42": {
+      "Member": {"ptr": "CXXRecordDecl 19"},
+      "PointOfInstantiation": "<invalid loc>",
+      "TemplateSpecializationKind": "TSK_ExplicitSpecialization"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 31"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 36": {
+      "decl": {"ptr": "CXXRecordDecl 19"},
+      "syntax": "\"struct Outer::Inner\""
+    },
+    "RecordType 37": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 20"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 39": {
+      "decl": {"ptr": "CXXRecordDecl 22"},
+      "syntax": "\"struct Outer<int>::Inner\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 30"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "TemplateSpecializationType 24": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 37"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 25"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 37"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 37"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 43": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 44"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 44"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 44": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 33"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 44"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-emspec.cc:4:17",
+      "LocStart": "in/src/ct-cont-oc-emspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 33"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 33": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "CXXRecordDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-oc-emspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 265,
+        "y": 10
+      }],
+      "end": {"entityRef": 6},
+      "label": "Specializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "controlPts": [{
+        "x": 170,
+        "y": 100
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "MSI",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 420,
+        "y": 170
+      }],
+      "end": {"entityRef": 8},
+      "label": "Member",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "RD::Prev",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "RD::Prev",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 515,
+        "y": 340
+      }],
+      "end": {"entityRef": 11},
+      "label": "RD::First",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "MSI",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 660,
+        "y": 170
+      }],
+      "end": {"entityRef": 8},
+      "label": "Member",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 471,
+    "w": 772
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-emspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5d88a206dac65ca056823372e397fbcf40c734a
GIT binary patch
literal 18238
zcmbumcUV(F*Do3{$fl?P0YzE at NR=+q1wymY1f&-WMXAyu)R+L$k*){`Do7U)=|x45
zj!2WL(xe5YgwCCyzVCPLInRCWbMHSS*?VTqnl)?vRvRAbXlWdyK0^(I!H!+Nq<S3&
zI|7Hn$OfUK;0bxx(<?C8336Y3BX<>NM at MTXcNok&ZOIJdJR(hhAb at oVET`nPzZ^i|
z40>|jH2dyiME^4T<9AlvAA4^knO)X;ytGj>v4V<tlpD&%d)KYWsR#EM6)N$bBlLY-
z{VUHPr)aiQ8CeuJD0NHT9b?4Aos^N*r{rjO#TQOKdy6qnu^$pi5)Lo<{bV{zRKMea
zn+Tjo at cKt3dcKJ+1+{NNT;1=Rif6~YHf4zP1GL at F(WlsGk0w0+rSgD&?@B<8yFUZJ
z;P}I at IwEX?3Tx(yu$%i4=7SBv>Vt2;G)b-J%l3Rdwtj<cu5N}HGT+PpN-vPn$mq2n
z%Mr)9-6*PGj0msb?W6mSZyExf at 7Qb?pIU_p6>A0C`%XUyFR>3*$%HH)4PWBW9_mX_
zJsRJNfYW<xXov)VZP=tS?Im31La@>AJvOt|7;<GSOk`^4yLLH44=c?*J?3<}u=`{0
z6JpMDrg)>i3j?1s0 at H7{pK##ul at hA%lDu<Ak|8Gfx~^Bg*ypd8LwZI!(->*Zts735
z+b%0VkV$(Q6%crPK(foqWln^tKBp)BcfCu-h0i-%RF2D^`p#CcPRRylxBgPd)2&Or
zFC8UxweG2;={fTITW at F+{7?Nj^L0<~^<bB_6^jNTM=d6};4Ocw0hI2(Mj4yBX at CB=
z!w}oct9RnMOvN8PB*-#dyT13ME!YPA__H$a$DHw(>8j1QD;7R6_I&-~8S^aY##<jR
z3U{yPL7Elf4?Y!o5oYSDEhg*alJ}fuo{*p25dRpF2pjnxa>YCJ)G6spM|xXp))JF=
zCWgF<Pl)--ZWJ2irj_RMrCQe1aB;E7VRKtVT?=sLXN>D_>-qcL%Z>KJAK^u_Gj9Fh
zy^yCF)%@KhVq|HNXejdd*e2mcHPcdJL_xPeZ~mnh>+44k=<JloM_Bn6-yGZLioL$u
z);C{BdZ?YYW$?UJPD=Kern6LaR_hO#kK5(hqwch8j=Fc)=WOrRu*E7nyUV>AzPUIp
zNv2ylASK at SB%t2FqAI@@VWMFVdxS-r2m6&$Cly^|Gf!bdF- at mPTZ|)p^9O at UN`&UW
z(T;5W3Jx<;xvI;~*-d1nshU|57dg5aKkjfrmNPU#N0 at NlMAfy}uA((YNdQLq%j_m2
zVld#1>uBq*)}HVIZlQ05r%*=v^HulEpG}(K?_a;;E2naFR*}j;QAMpg#7CA(<-!wX
zugBx<dN!fvJ}BJu(2dXMsx~<)LzoKm$j#sXq%A=A{75{B-^oUhyRXpG7g@@tt0XDP
zTzLQbaV$LOlI<4)r2s1?km|_7DZ#I0ej;C23l(Z1GU*K=`<{@ewa+S}Ln+6CJz=$>
zGjz<}%oJ)l7ZB at nqR+%`2IGY(GKokiJ4<y9dH-jYOlnZund8dvAT{xa&wmyE7&f-b
ziTVDD?HP2I>*WYzwx+tACpPxD at TH6!b}_M0&@H*-<Hs*?Vw<lW at o;ySeVS^we_{t;
z>87IaO0xZ=zL-PC^(Jw(FRUW+ir3MsbQ+2%mS7X74EF3N>U?1W4<)ZG23iR5>L=Wt
zqD*O{t5>-?{qbQDgE`qTIQPP59b at sMW{-F-bv;zj`dR<6GvQjBX_atl>*n0zG3w%0
zRN0`z`iP at zrHtGe+T4Ab#GbRYI0yR41?oJHBVLcbO)b%iQmtJeb7u9i_13yW=|-jc
za?A6=^iSlcuR$MgD>?LJ*~*Qll{|=x*|Tz#jcsp|y7NA>iZi}|f at i9gtMLei+n84M
zw!>B*UMb+sud{d0DnvavD6o>_S$@;4b1uI@=BTsrtuxYTna%j9<8ceo$<j(z`KLr^
zq|r3rsfE$C>}ub$@YEe#A~<7><MJgjM*^ETDcf{J%|^A~QJqOsa(Hk=`(x<}(DN24
z_T%paZ9f^VV!A__OtB7i=SqbPPa)14SdE- at eJ@{0R&D;^qvKgz?!1*CEM5lnzKCu`
zCh6qa*2f>q*H_1Gnil9$r8UP?;6;b!SLYaGeqRbx3!Q+c+_9 at Udujb%uzoS^^LwZ-
z65H}T+iL_y|9P@@1-P1`f{Xi6ld_Ah?nl)rTzfF-o#@9-`F(diqfD%Niz%4)<R0L;
zUBA)XVSS!-DGQ5sp>uw}sWx=RHYJwUOjeP;68fOXnlktGeemUVq4#=GruRB`U#W>#
z*ZXs4+j}%V)Ekq0G)#4-x5kH`$s^-+E)UaBMQ*0C!2O(lzgvyjl9b!R=x1Jix}5sM
zg*`+{nkT383^?QO7uyzOWg+?Z*8-h(<C?SOTCzgU1o at tmN{fr&eOEmD?b8r-`h_mL
z_~yQE{EnSgGD{hV8u7LTd7WihgRK=8#L+2_>w_V&)kRcJ+vZJ$W6Kq$o$2)|?tNbO
z`D*o|F>dhPz$4`%7|NV{iX{&$dAam`^t~fd3Z_34O{wLpXY=F at 85#Hu`1<Ynk_gAk
z$H^ANB?ek%c)z|j>dG5X`P#*0T{%>-#~qXT$mgQ(C@)!Ol$+HnbaCN>YAvCmg<Y$b
zPF~h^h0#}iRxeIvJe{WBU_IN2I$rd;urxfZkKdb>?G!E4ZA<sKJ)DiUuprs~yc-!k
zh0U=4gIbgCF5ePI^};;5Op_(QP%v(cNC$N?Q at mY&P%ihPxI#-&H!^#KZtUT}E!U+u
zs-`}Q_%gO5N=&@e!Xey7x=MGo#A_zE{So4fZlzu>X-3#xAMv#r;i4Pb5#~||rqbTN
z)Q>FkcjfaZv_)*1EN^Hj&Ci!cgv&?q8s=a9ob9iFdfol%w at g}<ykxK8Gr`N>cUo^M
zz3I|5^u20)zl>iIr at QN@ONj5*DxJt`aPE5wJqo`0j8f`=RXwIvphNz$52o%tXU`^6
z;`P^kp_Sx0A1#en;#p0DDpULF{Tel1QP<>Pi+>LfD5|rpm25xGPfXjTr_8-*X5akm
z=IU|VyTh*tR0F|3O*952pVsn=|3Vd=v9#eT%X^@s9BFL7WU$EH?C0^l=T((u{$oA`
zYA+|ZZBM2Q*Ux8$cg- at Kr!Y}MxDTvx-3DjIO80cV;f)m>5g((ahjV5&-|vT>w^Px!
zukA|s91vK)^HA#LDUpS(PdCVRzgCqf9N%=RXbK|V33(ysp?$n`=(%ji<Sh0kBGdH7
z2hI01&#pb*xg at ZEkn4X-BgpTVsAvNk<=_3Dl_SbP_M>EEHxV;_38z}(qJ{bbr7duu
zw at N}L^m(<E=~Wco(0$-`a`ur#qF0(jk9GL-OmAAzPA1_eN082`i#<{%Rdfboy3aUv
zRUV(%n|7>NdKwsI?fyPCAy>qTqVSWrW{H)w-b1Ck>+-c`h~buty>|iw5C>Wp#C{KA
zq}>O^#zG^X_`9HI-!)%%{?XK<;US$t>3ux^p+mf|Ywc_MzSyJhnApRj(T}Uug8i{h
zdj_gc8hOtP4IaN9qd?pcO^T_A#KLMe&oCKWp)^~#v(ufI;c#w+5|_=4mLVI-zCq at y
zk<5F%5tj8#apH%#4X$qO*mw2kp at J(Ec~zZ8O0(icALc}V;gt8dgG0vkf<jD`J0*<d
zA2drCjZ&O5>CAyKJ-Rk7abDiXZitqiXH6@%?uQwio}e&qy10gXbR)Y(`xx~r)7M!w
zUsUdx-!F_MHa55}4A!uBa)0_g{Q36-;zIHLM>OWRlt(<`gEfyQKj}ZR_TYTPfp+VN
zxtsmImmw`dKC at fFx6^##%JtiC>=M0lM#f|BJt#^k3cok*_<1e!lflRSEo{TVNN(k;
zP=2=a33}48CyxY0s(xu(b-cIIav!xlUOM`4Te1A)PvWBLcBY7IZ=P1Y1VMiH&58iA
z_pNKjySMd9C8g&iuAccYT2qOmqZb#GXm3nlOn8?v+<wM*OiQ`m+uRL(MGGfyee<!T
z)@}|}8~#fmE9xgCop~k4Ip_7!Pi$wlih|wM>^mb1p%=fMZTL|y at _GfX)qHqBE7TW%
z?pX4|;GF(?dqOI~(2tpa!qM=vV_~*SlhXZr@)Fk?uK0Rl^ak$sGTf19y`jUvS6k_u
zb*F!xfoskKiF>uH6*NlO%YznoXJgPPS~KMs$(gA-Emi`xPv#EUpp%$iKcV#46FWXl
zap at XUr<Kx2l+nZQBM*<==4J`amkD3p8 at c8jolP7+6)>W7%j7eMO26FN<0D at _oNaH~
zbh5F&t)^7 at mOEHDM3MLy)9GufY(G15LF#-(YP^K7^3BEp{?}W_XDlj at CAm3Sl|8*D
zr8s!3|0yBU>>%V<<96~|(uGSE=vREu#Aeh|sc&(cxX90%FQ!LJ3(58_*>#qj$(0ma
zlw82oO}<6EMM|d)F-vK_GVIa%mgrnaVa9y=)US6s^gSb85iu*`;qfxxt2)l}{!BEw
zPCJW>_a36!vN^M$ymCu#x$yPr^IgUK>J9~MV%E7z_*kYltu#@pw$YU1l`9(JnF57h
zz9k==J35kijhFvees0?<`O7vxcJoRfM;qPHtFO#^YMxSe!-Nyl^e#hMebz>kzZmz#
zAMe0((?0QaVfdEp6Mc%=VT{L2HPrkwK-(X6{Ai{7%=1$xCStW)kKqYQ^m|g at DQQm_
z>s9X0b6tM(IR4K1hfGAVsyD3UiqJ=tq=8l$r%!XNb-0i9-QRw7mp)<G?-jws9y~*P
z^8VxuVB};p<!(jZn7I at EB+8x4_GX;5vD(f1-?U#I714XbEtDXjAoGBsUUNg|ax-^R
z&5uOe7mvdX99G+?v{xi~!dq*FSNWHC7UP$u%GM at LcXk>Y5B3EfEobb^eJ9^Y+-pF~
zcEf7!pZ(e5EKp~#^|9VI5ECNOA53<nYK}Z!j^_F&nyl9fvT84SofBrNB!izYY`0cL
zkuO)Y)~#G=;aR2i^P+$KFgC{0Yx8aPld1fOt#LUt;n7!PonyI(q@|vx at jtp<Hk`b-
zZR{Su?;8#sw6zI7zl5zS$MwP{r#tGfuk3!!8a$zJqg(HY*qh>Vr~a at oK&LHuzD&3z
z{?wVPTdS+~Km7v6uv_aN_J81o*w7;My6#gRucu$Gez`FBfiJ~DZa>W{zcpo8*GT#9
zPtivfChHE at xovXFB%YMd4?XW$*!KD!(y#p?X0Ay`!L^6=g3$DvC8gHv6~*Ah3H?XK
z>r!7>f*cNP9{XV``}^lwLTk)jiVw&nzTfwBFQ~49!K8?nRh9L<zb=iL7OhFgTYNi{
zFdGvHQ=otEX7~OS#iG{LTdFI_E51xCS at mCit_ygCoxMJ#cyJ7))01Vpw;91F441k0
zA#kAPJzK`sCP#T?SAjivh*p9iGVob13_mCq-IX#7loJ%_PWRdvYB*^4Em1~T_hK%l
zp6ej8RP6?4xUFp!5_v(Y4#Q2Br_>4r<rgam>>38xOxHzI at 3gww)>~R{WoINBtAim3
ztW8szPpt-%I+e1U8h7|?$86{Ja`r?9;_#)8?!jA{E9F5;LMGW6%tAe;V_8{->)q9}
zcj__L{$1XIXfR9(Do4QC+bgK`lkcn3D6e^dXGpkS#Ht+5>I=qTe~FzOJdsC3`%Iy6
z%c8x572{GSlhNB9i<qc6@$;?;&+ at w^+Ylif+{dfaA4bx`tRzs4o42S-jvc8G0hF{n
zgB(wn_>(o(qcew1&QGW`9UVCZ^D}~AN{8PN<W>>nH?1SotiuM!r_XFz#CiCXI~Awr
zSRFwD;lUjASQoF0Mw&$%Oz=x22%%tqo?5aNuzr-3i+SIlNX*Y)8}5#w<+=(fK|pS>
z7-2+Fcwg_yx+w4QTw+^Cd+(|<8ju3qct1bgk+LqkZM3i_UUsuP;c?pn6&W}l1o<Q#
zg~}B5wz1SxJ7s#Gm}_EBeTv706{~53fiNL53q#h?erg?|QOtOLPA0+J=8zx`=8Z!v
zdY(`&kG1Hx4nqVTj%Bw*u0 at wi0MTUk2IXbbvIzxRCuHXjTGz9n8pn3t4u2*C1ApEk
zcN;i`YCH~VGe|fLg at l8@fJ+264sY1KTHsdj2uL0UQ+oGjS1?rL;B(S>0cMBlVKD8J
z*w&T%oPrM|cjlMdc{!tpVNBFbf%~f&s4e28==|Ok=Dw@(+v4R~KhEzd$AS=H at ib6y
zn6%9iB>ejnIT}ft0R>A}fj42dF9Z>(n+V6QG{kgD2R*fJZgN{&web%fz^q?fo<c+F
zg!X8*D#9L)&{Jc^HL=ijd%1tMaQ7Hn85vqs4eC1XB%wWD77@~q7G02gTBkiV)yEZz
zgh#V=U-VoochU&Vsfn)YUD}OaqKBd81jxC%6=a9r6g|3=Bxt&}zjF|G#C0lfx_4If
zAW0$kPO-3oDJ*&*E}jNuWG*V}89Ce_X!ru?u+R9g*Q<h<#aV)9$5}WGQvNP*d1 at lH
zf$gbP^uB)udschjPVM-5Qr){N5Y(iHYkd8q+AfN<TZ2O{ulvcbog0Cn{Vk(&&Q~B9
zdS#mloBpoy>+XoDyy}TfIjE`CLj%mx5&~==P at Os`3;#+tf!Z1ANO(LJU4;XOl(8tz
zQ1>;_aigL7uEWQNJile)X5SQfT3cAk$V5qt$y6c8TcRafqQ|p5KZu>JDatZ`<B7ob
zwv4vzQ5?=+5ZB+sY|QtunFsr7(`Rcd^~Ph?dE7|TFwtyYZ^+jwTsweOmEx`3d$l20
z?G>n$_l5a3nTE4p%>p}?QS%^#?JV4jI{0?W?(LRnB4RE2oy1khhQp1DENGBM+4J15
zd|j>^(G2ukUfsk`kqq=zoDHrCC;&p9X`w(I8K1XJW!iM?xnFkhsT8tQmbLrLioIP=
zok77?s8QZOI-+b!Mt7!uV_eU|yBWw^j<<-3>50M6lh2o at u79233gm+0f)JaUI0OuQ
zO2^eNPSN`u1ZJ!fs~U=TcG40H&j6{vzkdxF6&k4}OoN-uojhQ~3Eo7)|Ei&UEgre;
z3^-C{Eh9r<KT5B0rXsMj)PHreh(4T&T<Gs$=}T>H8qAz<oRTU;27ol!&zqf`H1*H=
zVe#z&a<V7{U5f(@r<7&}k^T3(h1r at 0vA@AQy-0nR^N<_ at JA$9QS6N!tA|Y{i-+w<Z
zi at PS$ImNhqUCt&@kT?0q-Y*BfhWsV@?IAXF?B34&-dWcUlh+*TL^?V&Z1R^7+?IEu
z?Q$YQezpu!wt%8-REl=l<sfAbjs_LTH#rdj0ds|%7_ixbzP5&2oZ`QB>J8gZ?Jdq5
zv|RFvy^{Rs-dhoLi59eP&YL)4A1bWU`>w{;vT)IKn1(v_w%YV*RS0Yh34a*xytZdL
zCJ;@%Up8x2=T*L=K6T}e{nO~pf;O-4eVe+Gcw at x_evi(!E9*{Z(OZ^m{=0KB6?Ynv
z4><@YB08k+#_)-&L&`6nsJ%%^)s<d%f6{|SIHPjgX3U9*$k9+=YYZhyM~9lkGEds+
z?#J_jhC5}3=eaWa=rit}itP|DoEO)xL&YP?38*=t^Mu-0n|aNdww7%7b#I0sRO|n&
z#Y5ecD;O)0Zpilf)mtlOG4e<z>=xSPO>w;@WaD*z<OSX;=SiL#>GUr0!~652mr+KT
z6HSA7WOZ?cNuY_4t`}8P?vk&1^0PUyJlC`y>q{in=|RC23<tQlewXi?GxyFezVV6{
zXQ+C1e}GR#OL&!fdCXRztDH4$NoCjxQ#W$&`HrrQC|0-qEE*UM8cO%fbZhi-MZp)6
zwGXw796k9T$Rk6!xc(140m}42j0J{5 at SY+m7Wm$%g17pxSSe9Mp=P6F(K|MG&j+Yh
zlb#0iJ<UgkW6lCxv4!<6bbAFItG*3aH{O)Z2KHF at fq9`gs|{8-7tPAJ^;x)<Fb>%u
z(n*h%i&2okO-A4DD_YP58ZTdhN6L8y*m(A(3tHAmuyS-N#4<<h-dptGJymNAaqeiA
z+buE^8fJ(3By2CQr^G!SM2SmXUXU}ZyI6f(;-t8GOib at IqQxNyA+H2wl?7L5+0|)|
z)S-3uEWS_uwnpW;Ych*1Y~<eV&NJ>TTi`59_YFwaEt9de%rHKFzvC#>#Df<7e$Q_j
zcRufxZ~v#UPZZAd*fs_DFuFd6<$CwE8Hs2La46v(qTk=1g##~PfrJ+_Jt%v*JjYlx
zKJ%R!jo1Q9W#K0?R>Z9DBtJ_;BNRSb$1wMI`(z_VJ&sh}z5qjuDnaTQu{NU}7rx)i
z$TtMyn9M*KZV4K;d)-6jo^vC3?VHd919yb8x{aFqc}ljXUB{g}<{pPJuLwAbl4W-6
zqPTuCp$h}$QLM7ykZ$b2%!3dPeDJtll!*}4u&!|4Z4ZqQJ;$fd)rFFQv+!P3fEPYl
z&Nq)V*>USuI9``c3%E+X-50sT0{pPGwTQTOq;3f55H3NgX=e5OaLZw*rG`WIh#<cY
z6b7ess0=Q*82+dO38Kj9!1urI5;)O+5cA>FbUfPSJZD$l57jk^()LGt>~#|!AFA_c
zJ!*GWT0@*YJB}(rA3os`@&$OS_17e$nSl+NL*uTNaFolxm$j;p$?ZXnk8Q=#2ON8*
z)*BP~)6Sjvo-)6}S;K*=p7p^URmdF{dh&l5*A#(6%3e0MA#Y5SfE(HfEvJ%se{lH8
zWy at P6ta23#1(T!?pce^Oq4{d(72ivc`o5<T=tS^+70 at u}sSJTVfkjn)v8(<bv+HJz
z*s>??whTFO-4ErRLlFAa7o+Y`yebMrBf-(5T&zwTUD`_b#?Yv5gpA5nldC1$CLuZm
zJ{o$Ga2Z4>EB5YY>+1@?JW#pihywc1Hm}p>L4n4Q0Ff7<5rAZG{kYwkTgGpZ=pKnS
zovDdL-H@#8-*;wFDZSQw;^aCrN0%0TKShgwaf|uT4}xD3Q60XWbng<xsLWtc7=k<q
zfxzBuUNnf?A<7hTdQU}V7EXWFJbH-?L`|He;ojGRB^I1}(K4l4ffG`t=WxIssHPFg
zfJHwN?-4wnniM>@ql%jp<`@0I2M!PoBaw`rwJ|y4$$(``Ci~}Ln(}d0vrHrxQ^a$Q
zwcmhm+k#6y7bvu6_Rm9X1^a3Ifwy{#q4dRL5r23iN9&m7{9az`Sizist8^zic=7a>
z?T=;KS)SGk&pWf%kZ=G?2(0D{tF;MVJks?<@R19iPN>r|G{2lAINtJ{=K3=rltCud
z2Ub)RVrar8kWI_{iL!=DIbZVT7lTzh`ww&P<Xu?{yR5GL at ev|IX|yd=LL_&5$k-(^
z=EhmP)eRyC8VQyIJAlZl1C!Gy^0zIt$9QZ;_5E5D;9fM!GZse<_g||+?Lr{v?v1n(
zednXTC1RlE)7EoDg?uR*jf=bj at Lp@qL$=7#LCt6#pYb-7eFhTl)hUStB1gh;llQL&
z`3Iah1Wg|fB>Xt-h<WNq_FE)39VSfxcHJ1<R8aIA_asknZ;L7z$O at dwFXRdNs>tf5
z<in^FhR*bkJwc;Pz|`FZnM6`1<H+ZNqRU>a4MplUCcpN|GDJvGDj6zPBi)R1ELmL5
zZ at q5({D~%WwY77o%6!rE^(vgwpU^<MYVrokE^3w|l@}?_(MSp=nS>&{leQKmQwJWU
zGhy>Tjc2t3ixgu)!cD1~3<e*xK3D3UEm-~@tI*VKQh(*96bb3;&%#qby*Fvz2xktH
zh>wUe8CbmknpnoT3t$3)UBV+x^*j7J$IznoTcw7s8lERexX~YIOTCba*4YZE+p)JF
zvq^q%8U)o!Pz59QUdCi9{e2Jdu8T=Ooe+1Y=ggzygdmc87%4q(0%c|N-3#t0*Re5W
zP!DUgyU%&_a2*Y5<?;sm=OQa%Cmm*9Ux`0hwC08z^`m?GOhkY9)Q!;znxA>|=j3 at J
zkA5Ce;K7^~)zjCHc-V^;&6^~QrGuRa!4sLVavyGnti&wK>hJBVDgoO^_xRubX=)0I
zn^StyW9iy2L84coEb~E=gQ7_B1U8=>Su17FglEh|a%)w!Lt#B*(I|eL>xIBF5)t|l
z-{njpb;flZtjv_fD;>FbwOtT!Y=`1AH^?xTUlecaDZoGiW5?8?<}eJT?tua3c{NyJ
zVZH(A>B?P{kqkJ#Y+AKy7S)zLOPMwVFk)P$bEO5)N-GR1jG;sB)QRs?STCS5z&#l8
z!F%(E!zoEpCPk2wFVG0)aJ^pu;c&>lPC{3aDp%-!nposqWOtZ5l>-~0Z0th*5p==6
zg3U1+IbTfW?Hz!`P}7C?(bTBMRa|C{lHX?qD7&FA{M#iB+V8P!LQDJ&EnVo6K7|V;
z$Rp)P*qbenQl;h$XJjjVHSL$Ni?g;#LUJ4`_QJThva3X<&$bh<&aw=zpW0I>N<x(u
zWsh84s1qC+jCA}g#<H1-C`fr_G{xtgj3^I}pp#haN_pY^1+(5|k(P=pv9+0PyW`q_
z8I_H8(NEjx()Vv!9LlyWtG9o`4HCg23kbF-2v1G*(dbB~^FJr|#bvtAcb1)*Um&|?
zMb%Wtx8`TZxe(j^bcKwnb}v%ym?8|XPK8a-W7D&w-KI+=`Ow;^1pi{@Le?6nY3|AW
z3}HC)&nSn!RBNNxnz9Gv05f2GOMP4s!-<CGWo5zL4A at jc*@9-XHY2tlTj~15eV+mt
z9ZXac@~jEX6jy9_K%HJ^Go)#nOA28F5!^4|Lj)zCltd%g-UdvAT!PL)Je&57lV7K>
zt^Sp~F(dVHeb%R;NCAre at 4jn%Dybe!OX3X7WVxmCf^RR+S_1qfhv{wHRY9~1yD5gP
ziX4_n(8&0RmevAd1sjRJG!o$QhYA%^%1g;TNdufP3G7{z$N|ET(4>)!3OE1~xPtc}
zk39rJ)>z>F{`Z020Igezz?IbAfLN!RFYk`~AB6!_9>FWQmDtT35C#|f!0*HCf>f{p
zG6J3-R1HW9LBbdm?9gfCkn-e|hM1>yJUeOm-Bk;iVx#&2jCo;$`2geJG0D_Ty`^uS
zTMgJRGhvO}4f!{-Z>b-afdJKOHLi6gkO_tB#_Pa?gWR*3pWAwCSh-$Ak|aXHIwKyq
zZL`OW44}x^s1Wm1fjIwq7?|l_uH?0#tnL{1n1^O+F-%|jIqQ5mK7?5p6iEOiCY2I!
zlafMkL-YGth6Dlv*thic^8YYzII5x}luK|x<qC6wZ5{5{D&d(Lu<K=!(<p}Je-Brn
ze|E~I at K*LjQ=V=}hst02N*}H at gL5Fc7?73y*)ovSzqh!5`#^wjiZpD68-?(3`^)_~
zlZ$k~Y5kqf4v=&2A*h;=oJQ*deCAs at y1xYDC_!eiL-Ti9nEW+Jeca{R;SN=BlXC<O
z3J{6?95GZ=RkevxqD04TkCxq1<UA&bNA3_4DaHw|1r{%}tr0?S6X>ER`u7Ogh9v at P
zOyQMJaq|TtP3Q>NDrvja)D3J_2NbByAVk`m>#8R5S$NFLX71nhfgBAcFFQ(i19(uP
z0HlH at j+Y!@5!V>8`Gbqx at WPg8>XnX#GQ-7~@V$=Py+nppu<y+!*p3L)WQ#-U<!V@*
z6nZCU?(IuqgG&ob4X0|VjQ`!bF5zn~$d{R00ciPMflP#sYM47_9n_yOxcdeqRS`e|
zMLo^a3m^1y1 at rO2c8d3s5%TJgNmfZbLN$VL#s2-65L|BTk`PWw`Iq8>=NfS$ez)IE
zoS4K~_ZCY|V$p#gp1q at DIp!{R6>?{$N3Yajvpjw~GeQk&?+6Xu)Cp}EK|mSsnIys3
zeManTpR0>|pNl$qk@|-5S$K95$ktGmIhn1yHM3$A6eQscsY9NudgkD0u~(Go_&JNB
zeYmK at TmR9yfG$}m$mayg-EodjoFMUCAnQM at NMyM%0Nq#?<}2mhYh(Nv*BpW+$2IQL
zpfmAGB!YN~X2R=Y6El4ceq9|HI3#i+DXv1p{w%!-Qa(fT2;Y$Dj%cL22Jz*bt#$g~
zj(KVEQ-uQ+dl?PKBRCi}HEAL?Y6f*$cXXX$M3Cmw)B39fV!*sF7hFdNMiL90fU4Zy
z&7U>EPZIo&Xq-&4w%K1|-f8H^(xrwXe{UI1l&!x__hBoV at eK<I%^%blyg5ajGv=_(
z=pB(&g)%c?RtIO{#f;e2k8E3}#UN0AxmH_YpwG^jV%Y3Xh-|AXV~a`Is+#qBSoA(|
z!glJ~z+cADE6k|PJ&ZfE#)L|&&=jT`)p<@jgBvb5pu8^ibJzwVV_<+SHXz|rG|F!>
zP5Z6wfP#L~o%Sgd{2kZr6OK?FY#F{F`dxjon5wB@>x$}f>nR!ox}EbVZ#*J$bEgaV
zdF$o9E^P*EuMiJ_=LSDcXO;__ROrdKr%0n}5s}rQ$Qs)I>6%q`Y-?1-p^*9bRH5KK
z!^J+_Bn1&suFjn2DR$3;`DazjGcOQ~5iFMWKV!PpRRc=1Y1cP)6t^9+Y3YEWTOBY0
zqC<WO&x##VJas4!15PLyLW!OLc{OE*Hg!`Q^9zlJ!8Ya&j4dT$uS1vE7n$Z*I~%}{
z7TwsqrC7mHJQSm`djr?luZl+Etn^TJ9+o4Hfi-SNSNoek_u0 at ndn9wiS8<I24vOh@
z95J9)O#+)H8l2TY$7Cuo+TvK at X!4_{#x=6;_ZRAHI)vG)0tF;SHv4 at C(IsyYLorJ&
z{d*~g2)^=NSVaNf)T_CmAo1X>MY2$kdSsrYYvuRhc)Fr9H=_`XgVwEo*Rk_Q!cPdW
z7x5$vy^fiPtPkhfIaaiYk*;p|-ZA0Tzo7~ZFwmEUR60IQ at l|h`f2zT4dg)G4^^y_o
zdItxnJD}hjw|9Qcft72YdmEYScOkIjY`&Bz?{<GWoYlmWaMNZL!nLn)g11tQ>+^a0
z+Gh1_CcDybwjEmad9k?+EI6xi&1Mpff<5n?PiU$pb+l;yiCZr$Enaq8ts&1mEzW#<
zU{QWz(tM9ma8FL71EvXWFklS~Klp0t3l_6?$x|u5iVZ90If?Z at lwQ|z3zstwFI<Ek
zYv7Nt?L?UUj2LudwAQz5s at V~YUY at uNZLoN{uU)>UKk>r>^?Ky8v_#y*$(l2Es38q#
zv1Q{2^NtvRNj(Q|eKN&`J at wjy#e9bR;};VjP at ueX5c(R^rzK at Cucc?osq=pF><g<O
zEEsMUl=wvSoaKgNfPxJLn2o(uAJw}8S at 6Lnc91u=r`I=l7x`1lDARRA8nPNVQKGIX
zTWV99*|<7gu;lMI{*Mt3UqLDP-uhhrY#GkVqi?cp<}y$L26{Ab6njPhpi(|t+a*ft
z6LKdUQz~+(m8bXN=*&!=OAu;h#Pr0*UGxf8Hzdy=A-MOObMHqfmsR8(DgNMdd$2JE
zWaqE{=1 at C;GNa((lrtj50(^^oBnTs6j}pkS9O{4-eL96#`fyPbEDE7q at Vcrr!C`<o
zK6YR^{w9kJAUpvt8BTEG8ZQcMSfY`)GI#(rU?Uk!J0d8=YweTd%?}_{iFO3QaT4Xp
zNiH<B*mny+328Cu%`gOZ^0)ahvbXKIw^FTr-g(WL7xl((zTvr35b&{MT^m|#*qE4I
zZaCx&8<k9mKH0c9yX4BsQs>xVR-sEc9AODoBjv)AXVEU6&C3%94b^AXL9%>u at GuXO
z2{spM at 87YxDDk_tjBwqUW4OEf+(`eA!gW<>e`MeO;LX8BU1&Mwt|QTyrSmbbjT-Q9
z@!h>tGmC(R{TiHA=9wj<x<ZEH54lL+;yGsz18&tM!Rm9_HR=d*;G~FbJA?`}h?+8Q
z=tRnXQr9l(%@6O*59UfP+h!9t)X*qgXk{FU%Xo%wJY0>Q9HupNf(ct@^NX3cs&)2`
zlYBv%zJy^*-UMo-|F);HZk=)*Vo?OXLE0GzB1G4ye-z|f)OD_BYlqY=WD*5_Mha8*
zqd`2Eb4U~P13>Ndr>l#`x8AaIf)QDlBo5}Wx4w9BlW36KD9q*Eek-3!T%e))rZmRU
z{d`=<CAKnk{<~3AkC<OP_c&tbDU+?Hx&Bf|ig6 at xsR5iPtdVL&=bh;>O9wvd_ebUG
zhXR|gHG_2+7_z*PfG&!(=>PJA6cK^I2R#1oH*C8{QpY7!ViBycdub^o);N0cgSwYj
z_Gy`0t at FJaK%ocscZ&XS7@$j|TrPcDa;q~kesD2<L6~>6cjP4#b{2pd;K>96LFhR_
zK6Ue_d0nn&*sdzb at oWxD|0uLJlZp0qC(mk?o{uA#v8kjV4xbnfq#}dyE+*3`FFdDH
z*t${V5S8Zm#@4fM&Ug6c%l^2GVc*U<rxVd4Kt==!;^B^Wj-XvUT$g at ku>5>5D$#Dc
zhC8JoL+rR<Vw`j>Sh5uK&H{k{wm;Y#*uM(Fq;CdZf_$~U_IHoG$jr3}mb0IUDT;5!
zsA?|{6FK1odXjno;e#x2RP!O%lkc`>Ri-|Sud6TGc*>Au`0s3Z;A8KZZa7~t>!p<W
zJ?6FWfc0n0HIlUtl9mZVBsg7(jJ}<|q~)@<?-hC7^#- at T#(av{l~29fucEKJmhUEd
zs2>`OGob+o3p!bm8qT2*LS$(<xS;n->QF}{Pk>e*R!AEvvz0K=;bUjD1jYsS3^EBu
zbqf6V;6tH-;FM(Ue at aXLf4*6Oj1?eAj0h)yBd~)>vJn_;N8D+9tN<i0Ft3As%R1j<
zL&?gd?eQTmj=!KN5qSXg6v+t>ht%L!mPbj|c_^41jUqc71^^^8ti%-%0dX-vsd^J7
zKJNegy0GIf9%IRP#FjAab!4#}#P>iMhc<~-vReoKi*r7OEsS(Q{>(r)@eC;M`*d{t
zOuJ5p4`5)oEC&}gc(?N#Y$GTdSpF^DbTvFI{}!6=&+?$;TplJZ$SQ75!|;a^3~Gvq
zfTTFdH>^SSf`p3*bDA6!hrte42PJ<q)!m(gkHVCHf9nYA!~VMw*uPbRIm!RSMmPjJ
zqy_MfkMsY_U at U(- at 9!kPUz?mHFa``>Xy*lea{>6lp5?*W-)*GC at ej%)!6zwUB88#k
zhsny}p_2+~MnZ6>DTLJ9V8p2D=w2t`wr%mJi?j1?%iH6ENrd^jqKnQs9%|6WDeM8E
zcGGn6DP!=bSu_7GNBkmoy2iISzkB4axdP~#6A!j5IbR^i5!lzw_pVag)Xg}dQr`H{
z-MlB%?KE;6HB^#fzbnK^#bx347SUl+A13-H$#%yvj8xh|ZKfkslWh|b`o&3aO{Aht
z$OQ^n>)Lxq9s#9L-e_BAL+jL;jNcoRzDJc??z$$d;e3 at GYyk}#;q3hXl1KwEnOzRE
z+<&_)`PWZzB`E#>_)2UfJhL5vLV(8hiZ^KZIGFmc<x_ZQzkQO5jx~1HjweH}n4wM^
z45=4qY0%84J4s34k!9n)1A-{;AjGcIrX^nysh5sQ8AH4DGxGYb?;l5<ejTZuOa>x-
z<mdlB$*ws`hmFEd+EtAUgT5#@gwgvansT#ztZ9^;Zyx9~lM=Jj{`kEvChT}t!*(6i
z^d3K%NAYd`4M><L0uT0=3K%)RqILaa8Uhtfmd8vrATp?FRfGAl#|aPzVCm4hRX0;X
zYLOEoejc<<LHm^pm*x6i9Odnk{47kAm2uBD#yXuPE+O6e)wxqZ(B7elg0#@dBHfVa
zbknDyR#Tv$A$+N(b3_U1P;r^%Q?Zr$c>^RDpmjP`Pc6mR0P4dZtW at d71<Lc$CB8CX
z<4ta)bVlBi6sBs9h25Z1p87arj9vldPw at 6Ho=he^2`AX0a^;=BxK at Y$)k9M1%(T|&
z1)^urh5~v>qH_nZJ*Uu56a%T}f1ZK>Lf!~c9e*UkZmA05c2JdI=YuP#7~ex7dP(_I
z`Jp0%!ueX)t*d`L&|xeysb(Gm5^O&ZXRFQq%yY3FJPYD(lA<@h$0PfEfw$VmP0l+P
zwmebu`Sk{;G)0C+exJF}AyC=9Ob3t<11Xo6#MBcB6I~_(;u+c?KC(lB+}b-Ap?WqL
z5w^$$j|<FD2w2~pyM0(JL7;<@A!X-NS#qYLChZM*bM|AH`z_+FtDu>97u8xzq(-&w
z``-;Fma*n1|FmQNV}eLHZ~LRWV at UY#=S<jMbgYlO0ODKsMgHf}?1znKl9>*vLIGtz
z<l(kz&h9?h_?>=YA=EU{Qk=wJcCI1gGBm2vBM6V11@{?rdogPV8ov=jqumykjM#=4
zOCdcQ;{e5YASJMUnCYlW$;h>41C*VDr+$#FMMmANK>bBq_K5nN)7Ey+5$=JWx{yf>
z8{=f^pl$IG2jfm^OBR9uP;M|3->3>g=nGfzr;ZvOM(l9RCpmnk<aM)|m)~1$Eu$_;
zU4g{$zEhIDoVB0vIfhp1tq&2{63`&Q&&?JvBoAkJNaA?G(N+>)e$QumkX>}4H_*}}
z!$b%kN8q#(7+>0?ukryM*U8*`&9w>JV$fpdoFHZ9z}iOFje*@{^1yq)*L?o!;ziS>
zC3T$!m4f<T9<<ZoC+EV~hYc2i*$}I2yJaxvc80l%^4`|#O_h}f@`4*DKWbDX8L&4v
z{LDk9?wW_N8?1RzE9al67gj+-vL;Xw^-Kev0E!0TKUy2|yX_edxD at k$KjlQPJYQD9
z!SZpLUY?8NK2Si-kg5h*c=Te~6-ZquV(~28IYpt~$5N$59^PQ?kd+Nn)A(0gXkq{;
zqOXyR;({9*t_T_~akZ!O&j_|_K`UobVWaRW-z`;7I;`$aixb*Kdg1juU8rdfM7666
zcBrrbtp%IW8{l%z;(XZ+cjm9gv=EsMb<=Ps5olf0(B5rB)Fy`;BOfasvG}i8o_MSJ
zD|M_RW3D^%XA-(~C-Cu13!zt<Nuz2r+hZ|6XFw+cuLQz-Ci1vYDrK95XRQr_T-#}N
z8(q2~MR!{GR7jwNxPKxT1F3fC at 0Mm6LS)M)vDvq7PW^sU&9qM2p30^?7rm_6+ubH#
zOsu(MDTmn)9dM2QdNfj8pT&AE&tA8?ByE at uw>&q_ at IQOU-tW?mkxT|^dbx^-<XiR)
zUoyBZ3N92h+cgu19qUp<trq3sT;YxBw=f1xGNc!CRCw7#oL^bNKv|&FPSrHAbu^mi
zTzkjvh{Q%<J_VQf3FWEP;(FT!XN6T+v(9zI-f_d?n4<Tsgx<1?T^G6f1Rf2a2*?=e
zYo6;`zHETnl$&Vm#aXAO24X($JHN3~ok4~9?e`NM_6lt+Li4NGvnIaHulIVK-cm4e
zyRJVQOmZ_p57CIK at YDY<sv$YD at g5cU$%BOmO9z8FpQSOh&d<l6SHIp+_Tgs!-^(ZS
zL}tmmtcT91<PyY5(G`w?O7VW$QqNN<X5(>I&9b at sJPIQnV`#)!Ocuf4v(N47P(E6x
zDimqjN_1DrW9liR-m4)EJpF5g9?Md5pc*n$5G`>2o=?Vk20mbSr at c-n=ewBo{-292
zu~l at K3WVyu|HfwjYIaPa9m;6<e~g?5WtnV5M`dstg2Cok(Y0$c><~~baBAwi{<BQj
zHgRIWEH8D_98>%-xTI5#xHFFNLY at 9ad};~_w2$sQZ5TkWq+&ql_aI|WN;W;v{$lX>
zFis-FYl97#IH>6RoKW^;&TIFYRe;B_ID*=c*Qko92_zn)LBY8@%rdSLYaTNHdkhSF
zV- at fKac5a%bM#tsFLPMF#C|jbc5zjpT^Ur2>w!nKPk46kRQ8SJxO5DwuLg7V_HzHS
zNFC8Zb&6N6O~<+6AiKN%cEYnnBEo&*6lmLv|F;;#^`Bx;!20$akqsOhn>C*x#x_IG
zJX#yvE<wbAe-xn#76xFj1G)pcA@$;Ah0FmHGJ3xt)Eu*Q?pqJe^<m5O<^hL#0BWz=
zdsuLji$|>sLD3FF-L&WfqFX;raO>g93&|q!2jW1he`h`k7c?Br=t1|m-7Z6rcbvkS
zC&wUKi_j}GKS0eFUGhr--g|M2%lg at NRW+zck;?Rk)uA9^(1!3SQfIqYXY0X^E$i-#
z7FPvA_~(6rkpa;feP*;x%8m4$m}`~lr*p$0M$f{z#@*&C*B*@X?pR2u_maqgSpaJ7
z4))uoj1$H7 at F1F~x=v at _W&C3iTr at EFW^YbMUaJj7e~gIfpp0dny(o7yU_IQ=ejhhb
zOU7l}cNUJb!XsFt7&%f;Am!@)Y-o4q8Mg*@sS16Ls6)XlkEuXN&}fU#^dc`vPjx9P
z<1n;UVORL!;&}mNm1O`}|4+|BTO-2`b=r8yHhgwGf2Ehuzhhq3t^vARZA{?ap#Mwn
z<vMDPJ&U>t$r`^q;Ic%2_xPQgz*kHjM at cW-ivO9UM~5{w4=JMF?GQI4Z~<Xnhq|hV
z?o?0f<E(BZKg%aqEbHjs0q&jTYB&98l)D+%(_4H^X|g~RC_ILPn)*y2-=bWi{J at 9_
zf)U%{`jbZ$3ZYT9cQ`0Ju+T&>Jr$XBK)=qfq9_{AS(jB)M1f<`ZV1i%Jx0|efuAgF
znd&tUNp}a4TFpsN>^6t8Bu*RJLeU-UX{o8+AJ4U;p%n{Ia at U#AY&IN=y)(Z5OR+i%
z+!&1%|Kg?h%Rq`71^?+JAIB7&&WyEfJxYdzZ at xsd2EH6yIk$?RED73)1-~?Fz8OQx
zcdzXOD|9|Q_o3IDax|#T3PhUYDV$X?ny}`@3I7cOGQqL?o{lJ&K5?KNu|{6p!-n(|
ztoYmJmkMamE+Y!?{{1b`9CruT9grY4D<=g$C^(BdbM=|0v-7|5djqnvX$?#TOvW-G
zazFw&iNg{=xWz&+xDgt58e9woftxr8I6%2b{xG})zY*kdlpXq`^Vh%hP3L-?P_b6L
zh&cwdn^bxtwVvX#5N3OY>)tQC2~MEPMXGy|CZUn88K4ocH{ce1ads|buGJqw at _fh8
zE*Gj}NI3&yD+%Bhn@>zSksHi%azG&|fJAvf52lmb{K#SW6;|&>nBDGd2DK~FVlckt
z<kW+VG3&Y9*6x7iIS=ekg$AufgCH)5l|&MjZW%;En(kHg!WgOU!IGT{yD<;~g9-;k
zwi19kE!n11-rggC+H5Q6s%a1MI8ZuVR0#?K_YLxOSUmK88OIH6Kgmi!OxmE3M at R_@
ztoAk1AjO3EH=2TF^1X2_z at TI4$X!X2f;B#&zK(z8q5XH?Fb??}P1U?`ihtAjuG}00
zm4|)DkGkOIB4E;G_Ws$g&D^W<MnoL)FnI?=j<+Pn1?naIcbS!ytTiHG_y_(+#D8gr
zUk7sz?@^!tANc>L7l(Te>WsL~HD*NolWM{I<|=QU^IKp)^x|YNT7^SS|Nc_r2fO-n
zs4$&`cVG+u^F?L}Bk&tAC0*);bdr{U<n)jkkOF{n`7<6EJq{L>#W1jEh__1QQ&kMD
zJRGP4w)K|-CEa^tw<{34PXo5+odapsCuY+XW*1*C+GYsF{AVmKQxD3b*msUQ*db(-
zt`#o0ady`Tm=z~oCLJW~kW(E7tS&ylomm{+Be46BgqN`B3fnk42Nm(#EMKof0pPl6
zR)*U~?Y(E(AohaDL~mn~yk at UJ1sujcU8duIFDNMBFM_lI2@krZ1 at sn6VIDFH+J~7z
zBpX6Qs_Z=QRNW9x(v1W64HHsZfpp0S0_rbHDnr@>q-M||!IpQ1blXHrHsK^G;8XWY
zZY4VS2coT5+8k60TYy=U(p8v)Wk(_3^P+Sq40ANM)yDSbV}zd%7-ISFOxX=P%*}OU
z<VCJ`SYPBVqpefpK$RRbfa4LPBzFF=WglKOXYe_DnJx8Jk+0;1Qm2g1vMV=G-U}C=
z|ILeG@*pDKzD;CuOU$q7#|mLy_}VgiZ!5qpzlM|}Xqm9g<h{P#1Kf9Ngb2Ca^`--y
z3#Q+WqG2Pe0ft^&Qqj?TGXhe%U5_Zh2F`fIP=n;Z@!}KwCY9QHJRZrV07C^W`AjUc
za}{?Log0FJ9qpzrs6w*1Ov#Od;lOM++VYu`xgD{7=e?9|F5>67Z3|_X)H~v1pSFLy
zr(n|{0S+r@$@qY9O<A&3$1j|=GIUaA1cBnCRwmGX=r;}ncS<&VQZIiMC==~A8SJ&r
z6+U at 5WedagLG@!ShYb4K%NRM5WZt5r7`^`E-j&Nw>_rk;*V#0}P9IJfK38_@<t-Gv
zbD1C97${>&$TsZKU>c2M at zh}0izAG>#ekb{Rv4z{G{;L80ebhR!*@=aK%7z{4Tbp3
zSsN$Pp^cP*<0c{!c5-6QndE24&EE^qUQi`yHXmNO2Q~uKW~7Gpje1Vi8IRoc^nM?x
z>!OrgThAQYU!Ufh^I+kk7Z1>;5(Pnh98jIum~N$O09RI~myEg3jKp>ffsB`=`${yy
z0I@;OS!p>L+j{BJp^zBdDo`l+ at 0)jF5Sc at FR!Z41Dv~ZyFpwljdbx!~=zr`fj-KHn
zSszJDKvG_gCm}OmCTR}PVvBL~ir47DoY6rdRrR64$~kloHx!@a3rPMkHxd422S0gv
zq^EVZy&aE~jl1Fb(hLPSZj45|ter;bbkyBv0axg(TF=#y!Wa_S at gele&Svic2V+3t
zySnvlyZakEzRe>6Lhu at Al|t)sO}fLx6|j`4%lA}a!?fHmyyRLiZ}&;8`CHTo0|=i;
z*s27bF?Y=?eh3s*7+FeCfNPJ0IOzSe1{CBzvAI;F%Rkd)p$&}#pBi65n#)Jk)QdUT
zlLJ**;OJn^C$V;3QEiF0&@0DKLmn)pnsnF~Zj65%0uru~{V`H_rW{clIMmDQprRmj
z3=Opcv;Zu4gHE=3*u&#AXV`A?RCDl8rpujZIzH0V9|e5-A%Hq`gA|vEbW!a;dO|v^
zAVlNFxp0}0Sih^#{>D`|5r9Ac&gbDx4JtBJ5PA5&F}3DUfa%fb8I)b8qRV;1rs36x
z;9o{iFwd{)8k(E#l5HKmwx`ABz*VE+kf}F9 at KoanL5VXlPN|2O0m7XD?*oYm(~XSK
z#tU~?eCt3%m+da#9vsj~98%(_pQqnu>qPX&tnPq{Ma2`rpe6^d76&{jIE*I1F0&D;
zwyBN^H-u&c$_5{=IEVnt84e-E3E+GhJ at GM6Q$c>sa7*6KtE}Y!@RAPO4K?MWwD2Ts
z7X)#zdRK3=S-w()u;J8<q1u?qApuai8`cfk-zQ$7j#fX<NlDT_?<?S6bHeY<g!DA*
z)#e)pXe{OwEf?KAq`8E%O6JrT(*mLlVgt9EGV|6BoEY5__b0+D>(rS`0Z$MasHq|0
z6 at m`u;Big}35~Fa at _`?0+v`>lLm>_-e;m at vqa`03x|<z75{x5Y#vf?)(}7C&`tV at b
zzbD}8Xr5FW_2JS9h|@EABq!j|P0i at zl?+Vk858++B#Gq;TRKo<IrL+V8>3>ix7;~%
zT3sFu-~SeqbaTBV#*nK|Rb%v3^uxfl$BZq4BR!8DbJvaBQ~K#9UQ`z<T!C5-t#>G$
zz}#&8WlG1(><znEuYoq|;3!zTf5y7?(pgjwsf>ezRlZ1xV3KXP{oayMDo$`|_*VXG
z+hW+e^Clf^nt2}O_2b;|if4}zW`&_wB2>F8Ho|m6F8!rW<eLE(-#Sc2OhV$y1}ds)
z*Uh4y`b-lw(JLPvbH8GBjf?1nEKGp)E0L)|D`Kch0bh+%Ziz)a+2I)jviS at ct|Iyd
zWynEgDgU5s`E at I8-<7|EtuXa_^G?oU$wC*h at kY}}tpMy-+p~oGg_b#~6rcJV=TyuR
z8Qlu$jMUc;iro*uAw5f9LMNmCY|J|Wp}J#IEIi{|V}KwZ>FKLLp<OuPca;7J-R)zn
zbJV7*!CI8Sj7c|v?VzroGT?(|bMF(A2~VK0cH<Wq%x7BXuEj850~=zopk_fjtBF)0
zk5IAMPJIWK(qoPT|IBdT29=Y-1qVy~waa~%|Jws56o8k1226rz5*Pr$B;hZJiAi7#
zF0g>E$N#1PhgMB`^*_+}kK+YXZgpMYKEX&HmkyJNKHK=D!gg!ir^h$0e^%aB3tSYM
zY(FIq8YVE%BmsW_7L)#x?gfFiAnDKl_s5>o2jt%Ay5^moAu%LMm({dXi_lis{|ll)
B+ExGn

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded
new file mode 100644
index 000000000000000..4931b52838e203a
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded
@@ -0,0 +1,1588 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nstruct Outer {\n  struct Inner {\n    T t;\n    float u;\n  };\n};\n\nOuter<int>::Inner i;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 540,
+        "y": 30
+      },
+      "name": "Source code",
+      "size": {
+        "h": 160,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 35,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 390,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 45,
+        "y": 110
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 135
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 130
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 290,
+        "w": 20
+      }
+    },
+    {
+      "loc": {
+        "x": 220,
+        "y": 30
+      },
+      "name": "48",
+      "nameAlign": "TA_RIGHT",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 48",
+      "size": {
+        "h": 60,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 275,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 24",
+      "size": {
+        "h": 115,
+        "w": 255
+      }
+    },
+    {
+      "loc": {
+        "x": 275,
+        "y": 145
+      },
+      "name": "24",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 24",
+      "size": {
+        "h": 350,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 85,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 19",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 125,
+        "y": 235
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 21",
+      "size": {
+        "h": 90,
+        "w": 135
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 125,
+        "y": 330
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 22",
+      "size": {
+        "h": 90,
+        "w": 135
+      }
+    },
+    {
+      "loc": {
+        "x": 85,
+        "y": 220
+      },
+      "name": "19",
+      "objectGraphNodeID": "CXXRecordDecl 19",
+      "size": {
+        "h": 200,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 26",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 360,
+        "y": 310
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 28",
+      "size": {
+        "h": 90,
+        "w": 130
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 360,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 31",
+      "size": {
+        "h": 90,
+        "w": 130
+      }
+    },
+    {
+      "loc": {
+        "x": 315,
+        "y": 300
+      },
+      "name": "26",
+      "objectGraphNodeID": "CXXRecordDecl 26",
+      "size": {
+        "h": 195,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 315,
+        "y": 160
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 57",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 42",
+      "size": {
+        "h": 45,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 15,
+        "y": 505
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 43",
+      "size": {
+        "h": 45,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 255,
+        "y": 505
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 38",
+      "size": {
+        "h": 45,
+        "w": 195
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 23": {"syntax": "\"float\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 30": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 64": {"syntax": "\"void\""},
+    "CXXConstructExpr 45": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "Outer<int>::Inner",
+        "ptr": "ElaboratedType 43"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 32": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 33"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 58"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 34"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 32"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 32"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 34": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const Inner &)",
+        "ptr": "FunctionProtoType 59"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 39"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 35"},
+      "RD::First": {"ptr": "CXXConstructorDecl 34"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 34"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 39": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (Inner &&)",
+        "ptr": "FunctionProtoType 61"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 40"},
+      "RD::First": {"ptr": "CXXConstructorDecl 39"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 39"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-inst.cc:5:14, line:10:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 51"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXRecordDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 50"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 19"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TypeForDecl": {
+        "preview": "Outer<T>",
+        "ptr": "InjectedClassNameType 50"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 19": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-inst.cc:6:16, line:9:3>",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 53"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 20"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "FieldDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:6:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "19986147",
+      "RD::First": {"ptr": "CXXRecordDecl 19"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 19"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer::Inner",
+        "ptr": "RecordType 52"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 20": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 19"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 19"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:6:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 21"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 20"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 20"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer::Inner",
+        "ptr": "RecordType 52"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 25": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 26"},
+      "ODRHash": "38049550",
+      "RD::First": {"ptr": "CXXRecordDecl 25"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 25"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 54"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 26": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-inst.cc:6:16, line:9:3>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "Decl::flags": "Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 56"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 27"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 39"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:6:3",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "MSI": {"ptr": "MemberSpecializationInfo 57"},
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "52240715",
+      "RD::First": {"ptr": "CXXRecordDecl 26"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 26"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "CXXRecordDecl 19"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 19"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 27": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:6:3",
+      "LookupPtr": "null",
+      "Name": "\"Inner\"",
+      "NextInContext": {"ptr": "FieldDecl 28"},
+      "ODRHash": "7466073",
+      "RD::First": {"ptr": "CXXRecordDecl 27"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 27"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 46": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 47": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 48"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-oc-inst.cc:5:8",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "VarDecl 42"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-oc-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-oc-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-oc-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 48": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 63"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 24": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-oc-inst.cc:5:14, line:10:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 55"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 25"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXRecordDecl 26"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-oc-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"Outer\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "21622129",
+      "PointOfInstantiation": "in/src/ct-cont-oc-inst.cc:12:1",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 30"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 54"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 33": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 51": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasOnlyCMembers",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 53": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 19"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 55": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasOnlyCMembers",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 56": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "CXXRecordDecl 26"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 37": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "syntax": "\"Inner\""
+    },
+    "ElaboratedType 43": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "\"Outer<int>::\"",
+      "NamedType": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "syntax": "\"Outer<int>::Inner\""
+    },
+    "FieldDecl 21": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 19"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:7:5",
+      "LDC": {"ptr": "CXXRecordDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:7:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 22"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-oc-inst.cc:7:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 22": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 19"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 23"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:8:5",
+      "LDC": {"ptr": "CXXRecordDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:8:11",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-oc-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 28": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 29"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:7:5",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:7:7",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "FieldDecl 31"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-oc-inst.cc:7:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 31": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "CXXRecordDecl 26"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "float",
+        "ptr": "BuiltinType 23"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:8:5",
+      "LDC": {"ptr": "CXXRecordDecl 26"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:8:11",
+      "Name": "\"u\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 32"},
+      "TInfo": "Builtin(\"float\", <in/src/ct-cont-oc-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 58": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 64"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 59": {
+      "Canon": {
+        "preview": "void (const struct Outer<int>::Inner &)",
+        "ptr": "FunctionProtoType 65"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 64"
+      },
+      "paramType[0]": {
+        "preview": "const Inner &",
+        "ptr": "LValueReferenceType 36"
+      },
+      "syntax": "\"void (const Inner &)\""
+    },
+    "FunctionProtoType 61": {
+      "Canon": {
+        "preview": "void (struct Outer<int>::Inner &&)",
+        "ptr": "FunctionProtoType 66"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 64"
+      },
+      "paramType[0]": {
+        "preview": "Inner &&",
+        "ptr": "RValueReferenceType 41"
+      },
+      "syntax": "\"void (Inner &&)\""
+    },
+    "FunctionProtoType 65": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 64"
+      },
+      "paramType[0]": {
+        "preview": "const struct Outer<int>::Inner &",
+        "ptr": "LValueReferenceType 60"
+      },
+      "syntax": "\"void (const struct Outer<int>::Inner &)\""
+    },
+    "FunctionProtoType 66": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 64"
+      },
+      "paramType[0]": {
+        "preview": "struct Outer<int>::Inner &&",
+        "ptr": "RValueReferenceType 62"
+      },
+      "syntax": "\"void (struct Outer<int>::Inner &&)\""
+    },
+    "InjectedClassNameType 50": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "Outer<T>",
+        "ptr": "TemplateSpecializationType 63"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "LValueReferenceType 36": {
+      "Canon": {
+        "preview": "const struct Outer<int>::Inner &",
+        "ptr": "LValueReferenceType 60"
+      },
+      "PointeeType": {
+        "preview": "const Inner",
+        "ptr": "ElaboratedType 37"
+      },
+      "syntax": "\"const Inner &\""
+    },
+    "LValueReferenceType 60": {
+      "PointeeType": {
+        "preview": "const struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "syntax": "\"const struct Outer<int>::Inner &\""
+    },
+    "MemberSpecializationInfo 57": {
+      "Member": {"ptr": "CXXRecordDecl 19"},
+      "PointOfInstantiation": "in/src/ct-cont-oc-inst.cc:12:19",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "ParmVarDecl 35": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 34"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const Inner &",
+        "ptr": "LValueReferenceType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LDC": {"ptr": "CXXConstructorDecl 34"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 40": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 39"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Inner &&",
+        "ptr": "RValueReferenceType 41"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:6:10",
+      "LDC": {"ptr": "CXXConstructorDecl 39"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:6:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 41": {
+      "Canon": {
+        "preview": "struct Outer<int>::Inner &&",
+        "ptr": "RValueReferenceType 62"
+      },
+      "PointeeType": {
+        "preview": "Inner",
+        "ptr": "ElaboratedType 37"
+      },
+      "syntax": "\"Inner &&\""
+    },
+    "RValueReferenceType 62": {
+      "PointeeType": {
+        "preview": "struct Outer<int>::Inner",
+        "ptr": "RecordType 38"
+      },
+      "syntax": "\"struct Outer<int>::Inner &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 47"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 38": {
+      "decl": {"ptr": "CXXRecordDecl 26"},
+      "syntax": "\"struct Outer<int>::Inner\""
+    },
+    "RecordType 52": {
+      "decl": {"ptr": "CXXRecordDecl 19"},
+      "syntax": "\"struct Outer::Inner\""
+    },
+    "RecordType 54": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "syntax": "\"struct Outer<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 46"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 29": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 24"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 30"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 30"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 30"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 44": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 54"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 30"
+      },
+      "desugar()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 54"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct Outer<int>",
+        "ptr": "RecordType 54"
+      },
+      "syntax": "\"Outer<int>\""
+    },
+    "TemplateSpecializationType 63": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"Outer<T>\""
+    },
+    "TemplateSpecializationType 67": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "Outer",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "desugar()": {
+        "preview": "Outer<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"Outer<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-oc-inst.cc:4:17",
+      "LocStart": "in/src/ct-cont-oc-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 49"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 49": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 42"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 42": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "Outer<int>::Inner",
+        "ptr": "ElaboratedType 43"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 45"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-cont-oc-inst.cc:12:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-oc-inst.cc:12:19",
+      "Name": "\"i\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"Outer<int>::Inner\", <in/src/ct-cont-oc-inst.cc:12:1, col:13>, Record(\"struct Outer<int>::Inner\", <in/src/ct-cont-oc-inst.cc:12:13>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-oc-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "CTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 265,
+        "y": 10
+      }],
+      "end": {"entityRef": 6},
+      "label": "Specializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "MSI",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Member",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 170,
+        "y": 100
+      }],
+      "end": {"entityRef": 1},
+      "label": "ST.CTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "DeclType",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "NamedType",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 505,
+        "y": 250
+      }],
+      "end": {"entityRef": 12},
+      "label": "decl",
+      "start": {"entityRef": 19}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 568,
+    "w": 673
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-oc-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..0001afd5effd9192fb77b9f5914401675aa0c46a
GIT binary patch
literal 21816
zcmZ6y1z1$=^F9s;xRkDxG)o8wg3{8k0!v9KA!$%c2+}PAYk-7E*W!YLlFHIZSaj^7
z#3G?0u(ae70{?TC_kBPA at 6YS<LQXu-oSA!O?wNUvH8n;s(R0yLP*5=G>uF!3prFD4
ze=kF5fh#sWmxd at PSdpRTH~g=7- at WVX<xfEooV#q#;QhV6>QEy3p3gIfdh5m8yFRDs
z>y5D<atRThieXaOf~FVR at s{b~!b)%Ia*pmlI!#E`?tac&d{<$#uR at ZkE9>W<908 at 5
zt#6ExQ~8a2%5`&k%b$NT51Ie&@LDR+TMpkV8uQ_49O>bRv~ZNW85|g&8fmPi5|`SQ
zW2g}g|9XRyLjQGm(<a+PwfX(~>)K`_27e<rzb2d=eODzs#rLCiXLV5Y%hCMaT8{B!
zcK at FZHrKuF1{P@?pzw{OB-M-cj~_c+vQU}&R_R`Rd)Q;aV3}j<arOd>z&D?_jKz9c
zw5O=XIuBTG|FW$qwAKtieKf*#`gBda=aHWr!}6D9rBtpd+83<9mCVkH6<B3z{ah4?
z$obWY{LS&Jd)vf;GT`39$?W!4FFq=>(;ogGS;M1?&;?m;+bk<ryAO)=C8vbXH`&VS
z=F}FBoGunl at hx*ptJz$QOv1 at Qc)LSo`x^V at oSfuSt23^d`PC^5E)c3Qiy_zLY{d`8
zx5l$hpB9-YH9H!a5^)YI{yI;y5%NRgWzl<So~o41S;x%v;HaXC<%Y<ycicPLuR_~@
z$$7Tj$keT!VrGBaR~dpcBm~9=CbVNxI}3;1F4^mLE9n#_ASI)mni!)3ZHh!JUJaMg
z``8MPnQy8*yNVmBUsd^WzMUZ~PC`*f_*0u-G3 at 2uemO&uw41 at nY~!>S+!kq?qlI}T
zuh?+Lj%@=Nio$h{Y1S8K#bK^K53ch-YJ;j|n(qhiNN3u9?K{XtdBsi;O{C$BPnFWT
z(a&X{rGM5e37jOEKd_$S6=dYpcCxR3m-zDXU6%bfUM at CGJ}(5S^3ffdv46|bvwlDY
ztiG+Elxx+!Jx16*$kB9@<98dic)%#~(3(?PYU!DOLDq+BDIs6?w1iMy?oryla^m0r
zstmN8f<L*>V^@5K>yA%ZOx#!OL0eF9ZAJ<M)q7r=!V?J)=jzY!nh$T)N6bfBbuirD
z)j1jR)xQSveB{X+H0I1Nyg9`;<nd=fBA~C=b^v|f?4570czOBAC_jRMr^5H;4ejlY
zWafK4Ul&{w4t%OzSC$kkKc{h9GCgLzik{Iz?#pV;(3&%DGNGLnV)_RaB!6gC%9p45
zLv};1wryH^aC5G;-?Z$u_0DpIW2>`iulr9ReSd#)uK%OGfQ<If%$##1?(Lq!_gOMU
zlV~d+pYdH^K5=G+Nm3_E0q4m{A<i>-Bb-hElR4$1n)JoeOmU4L(cQ=RcE&d_>FWOS
z;MScHQH9E(wG`w`hXSL}*0sFJv7fK#mtS`J3tiD=w_W$Qt}2xnNs at 0q_o7#U5fxIR
z`v^IYxHO at YC|EfvBkR0EHG*;aVHHMcYZXcgI3q6d=7?Gny5^^OpKpi5npWF!)qd*3
z^pArfn7`fBDXTy3G9R7U1seVEYWH*OZ&79I at X$-M1lPa)kZb+r>}usBp><e~y=L<x
z%yezzbxof5mlJD4cS4v}*t3JVFH3xcxY5t9KfN`tGOEk^32H?eP7s=D$GX-_S?KzN
zx8#z3giQrG{t7vxt5}oB at SER+R`f)$-{5p`m+r;3-mYEFcK0nv`^k at w3^HJQmkI-m
zr7Tq)1ne|SGL0rB_=SiYXBxEx5-;)SLdH9wQMW4IXzvJoz3Xs!8y#P7e)`S{v&27<
zH_zXH&|-`ibO`!2KbZdu=g2|pqj|SVM;NZSJ@|C$$e8BDiTV at em+5z2Dw^)(t;Syp
z9jvQ3GGsN5%xbSJZd+fxwKqmHoLKxdkw$<*qysa2mEz at g07~*5t(gnQ7u0Hv%fYL;
zpS3LL=Te`t<MvwS_Vo1CpS8`m)6^WeTq&DvhvuB&ymR4-MmB1NcT*_*&U0w__S&Vk
zFYxzXhA}R$|Nai|JsqXKg&HN5%fEj|BLmS~@$r1@!})Wd)_NdI^6O{LTlH#JzE#~h
z2bWf;cy6G<5Ph-d%f0Kjuf8fBqTtegV(58&PMFc9DE*hLqRrLb!5>c4T&>PmT#%2q
za|4#oWMBNn=5o(}aQ at k$WQ9q`*6lHYQFppQY3t&T6$L?G9(aBnQ$M*YGOd39WBNPV
ztkKXy6erbP#PugXo~2~kTw5Sow6Hwj!=*BQ`@BFQLctdC{nKXbZ3=t-(b^9mFNvWa
zeaNNV)fal+?JP at 4w|mKd?pCqwWn%~L%O7KSsH|@76Wg~1tFI_A-ud#yz%ZHh-X*k|
zWJ^b0w(7}<{u8eAm=9_<-2E4&IQ~Rzo(TTcsTyZJSSVbkDyrxUsgwTl&C_s!zcOxI
zcR!?oX?tD{5>}hBE<}%qMN=$(DO{R28>8Wyxqh%wbV)T&)PqS^XpQ?^c)aywN9INK
z*)JWbYtqYS`8QsxKMKi!lkT`(T$%aO%vzs;iYb}=TxRu0WO;q^<-xD34)0^za$d?h
z$s~R*R)Dv)^8d8Bc=~5}I`>&eHEFs>{oYp|P*DZ4o^-xaipTe6N57+Mzk&E9M##y%
zS0rKJ5vtdetdHDJMr>}J*?D2kniz7{tY6;qw`e7Em+{i*WOe5K3OPLwD$jmmN|_y-
z=Im$mfsO`_DII(5+ALnGuA^0UU0zwzpoTXWBPz?GMEh0?^_UpbY`QYBV~J;brv6#~
z2~Y5I`EmCjZq*AeP59S_R(^wl7h=As4((COK3n;7U@@?*<$C4q=N1jPY_Ezx8$vD$
zqu at eFj=oKK+T;pK^RfEQXHKb8yy4x^r$6{^|L#-%M%)iR&toUb2f5+suVDC|>X7(?
z`!DN=9OS5m`ej>DfKiYj^`&<XcQvqcBZ&#k`?sRt+<OL87d((A2|DN-3VN at 0uF@|>
zW1|Hvw93yVB{JMfpa?%TGEC`!5_+H4X6S@^3<)v(Ii{SR`Z%lUV}@RTN8;CQc&Vp$
z9b2llSd)-ujRB>3DddF#<}1T`xXJJHnHd at mnlyfFPif4T6W5CFwf7bFv1se-z7f-}
z<mYp_rk}oV!eDsSK7kpZED)C%m}%p_9N071>vH~2vI*CQxd|(8xohqlOg*LB`6p|S
zEvt4Z>`Kh893^YU3myK{G_2&8vlHiNTyE7D{-#ch8#2b3hxkaO)#SqqirlQXip*%A
zY=&~e?wIfEYF&hEe1aKG&qH1Il?vwKlwJu(8gEE9vb_BsZseT`FKADS(H5q>_T<Ve
z!>P2-0*faz(H0c1sh^Y-Ij_hCV7sqQWKW$aeA#5njSD5Ec}bl!Y3Ug6|2-SX-+sV!
zq$7HlZ#(Ctg8xLBVvX*39M&KTU86|s5{cS<EVP;biktb9R8lmJRu+D*;e)B1-)oBa
zf?pO|GIi&6w7+Vl^Q`k+!4 at 0c3SOVT<w2Ui^~PSM`QFHi3ia&)j{9gSc3J%k>=8a^
z8AkHY3&fcQKjuk8yD9UtM4n!TpZvIAI*Kkg;aIDYd+OeRtyEQvYxr2uOzlIZ?Y(k#
zN$XEg*ivqZDZBAuw}@?;5!a}YLc!O at br#tb=*kJh5QA4L=Ndo#`teP)`<2{N%c>b6
zO?tW+C%qkZyHM1_Ovan7N)wwW4nv2xTqlRi)Ka1^NZo76HF=U-&zzvflUDvJjrGM(
zlT?1=ox6fJV(EP%`eWswNcNAKX97L>hjkoJlo)PvGzs7puh{<VpH81JSo<6`>+(E7
z^qoJ|X^*1 at 1FMfdw0UuUHXEy51VLEmdwoJk1KlYc_4SXhe!ZMiV)oO$kme<uWa{I4
z+j9RGZ7U*rB+9og?qT^Q!nw{AVX-QIz2T$p#cfO>7czV7CzM`2)rk#r+&P^&`pP4{
z!b7<w!-YdrQ at +0Ik&~~neBRr}J~zF`lk8^&FItKG<uOS#Ja_Vy?d^6o&em3gB6+t6
z)os-r>CY6q*Uo842E>m`wAD<b<duuNTJjjB5-$#BF7M^|HD_Uor!O*KVs9#kTJ#$S
z#(f`Yf0(P)nQQ%!w&52W)+f-e5Sji|My6v`WvcVan7Jb3GF!8!mgq)Q-w<{0y=#6^
zCS$J3yq$A9 at Sk;osQOPAaP7R8zTA268^v(X>l5;0!^kEp&2{c&zUN*?KjpgWrgZy^
zZ#`jPvwH6{rZaX<FND7HDnd4mvaS9}P#_1&Ht>K!V}<6a#Wvybk5jS4#xpGjcTRnB
zznUIGT_~m`A?PYrjxL^K5Ip!Svaq>GbEFnAHZ5eN+2cQ<)7~pJ-r2nU3^#TIwW+_{
z?;?<m*FM6yHXXM4>E)hy$H-v3e at 4IR-Icjs2b!KtRjM3Z^|;@U&>vx?4j=hL22Wr4
zjZxt+KhIm1L_0H-)Z8~)4Mm8Fyh!xm9CJ9D?WOU2+vWd2sl`Y!I_99yB~MSp_7;P-
z-%#9xew|ked8eYi>0js5;BKjEAd#(_pEgjB+&L}@m+o&~yTmEp_RTqB at as?gx=#-|
zXkLiv^|Wim?&-aXdDeZ%LIIyvqJY17Gr*v&s_`T^mJiK(p)8-~LLfi?t2?JALMc;Q
zX<mdML8&KM+xlfcaEXX4PZ at 2sHm%*IO_v!t$K|w<I{vz0HIWon-S}8EI4_$|zk at k9
zKWWI^Jt}4D_nXOYj9>T<j^4_vjfeDbrt at 8YYf+>oK4+Quob}23Nu%lWn}J!4q~{fH
zk35xo(+c*C^3FXw$Gx>QFUdW>lekpLi0|eV?eY|#2~aS at HpO)f%h at BUiL}W-0 at G1j
zzTCT>49u%n8>J`B-??^8ygYD-WVBDb`P!mF&n at s?)ztQeh{~%o at +w!;zE8v&&QjnD
zp+?r$34Hb?DTXygteyhVM&9o94bQ0QDN`~>%AbBbPur5jn`|3uflq(z^|xN+oAOJ#
z8s+Tv at 3^Yom0NdIjA9Ur`$-IaMKzU#PH%c>W`ZSBA$;$bCH5z&tG#DYjJ at F5<e|@1
zqy)XQ;@i_n at JH>o&rQn_OYBQA(aC0AZ|0L+Ee2TQx8J=qxFy`YP148f`|~Qiy&Nsp
z_w>uzQM&zc8CiTLk=={^S?tO+wvPJ0d1Y0jZ+EgSpYoQB>F3g*dw;Czj}0~cNNp7f
zwEx7}@HZmj!J|iS(oLn`&^vUoI=VfKOD=tRLv&cn|G8W<-7w9<C3%eUu&1Fse)Q9Y
zx~)RHq=)t%Lkx|zZFa9 at Y)&S>Ycrs4>K=Ufi;a^v%_tOaIG1CS`cQY{<nzI#<ie~R
z-sib?@vFa*#rZswZV3x-G19FYEAia0O1Y_||MdCCQw^%@W;^NWq--DW>x?tyL{+YP
zseL(YeN2Jf<Dbq)-eDkQQzO21?{a7Q#LF)*303<?`|!{n#$R2gCRAko5S*K#c`WtH
z%+dn!iJhzIXFOfV;1@%+pSfkC^mnSN6f1sFcuHj&;uR&5{yG at X+%xh$QF_BUEYHH`
zq_eZg6DKy7FFWk`K4CQW$x=jnbeKuU*IQA>Fk%BQDrQk5^s at 9NYlXApvC1p&v_1aL
zyU!!K`Wl at J>U$3=lH5uy(nZCoDF(h7k#2PEsAQh^(Gif234G_>Sfj`%wy|%?d6qi0
z`{)`%NV?9wXKtoI at ci76YRF(gZlvKw^KT9-O`0_En5(xFJg;1)!RKVL8K*Mkl#U?p
zmRb!Mzi{%LTks-&Uns&qeCg#@Q}kl&T9>2_{CBpSmqop{w9ZK`hK!@PQ#bh8l?htv
zA1+Ds<4vZAHx1YGl!`gy5RmL#!S~$f$1aIiw0!Kp?xRyMRU?rZp7|O6JYVh>g8xr9
zGz6vJi1w(A{QiRaa%{V-O4KvEj=ouh9nKc_&`zfL>ggMvsOyQDwk!VkR7OJxT>|kR
zYi8b0@|3KXe-HOv+a{={j);%TkB^n7zjLh{ti1yZZ`QLTE$%IbHgMkEz&C|mdxte#
zb~M=gd&ViFfA*=NB at v4l@^ToCTj;kkEsMk+eBL|zEq&z~s`)o{t!Ht;SX$K^?zp)A
zn#x*U*Rzu=jn{X)0;`K`)+t_Q5kxXmW4AtpPDR*{{($Ahzbi`Z)!851xclnS+Az|=
z(vrt()uqSj&d1L)jt{$>GWn8d5Qh^;wW}WmXiKB8GqIyCEDD_k&iV?^`^UzLAlwj^
zk1X$be`4GxpQSvK$oFNJdrhBo&N1LJ at sVzraG*qxNQfV!x~=0L*W-fQ83z-EcU>Rn
z{3ZPSb-QMwSE)gMkgbYAv%+mB#VF{;<DzetrrC#wYiTbst<62pU$mO<PYGYM<g}hM
zv$3l%39^4!5*U56*3fkCWbRayv*em=z<~#T5%K%4=*SPD3d7j at P0CG1&S4HSY2txS
z2Y)hZg(a3eF3zT}-J#Kd*39P#-Ilufb478ssL1F<Wg#aJcmfs>IvzB(rLr>L=PS4E
zjzaYg?x`S&?RmFpc8PpPRbh&ce1e(6qXXa8x_2>@+}aasWLmLS_MKyC336FBXTF(r
zSuB{c><r%x{#S|LF0P at n+opZ{rP2xSZ|+yfa*VjIoO*7A{E+bJDqGiq>zlT)=}Qdv
zsmsz^KIw!G7~o$Cu75hp3cD;rVu4&V6dTvRqY)+cUXJE5WpIk(7K9Wh+YnGF>;L$z
zU|Y!TsQ|Wy$X}exbJbb#G0vBDilrz~)6+M9Ox at ySFxnn%X`zLv9tsIwd(>%I at qBml
z>N!{bKSy^I9ke#f0vVCC?c5(l8U9$Pw{bj7XHBEkl at KrYd9`L1>Em|gTH}Wd^!~%U
zj^{tMakra8A!z?nv+GuWS`Pm-h`gTo<$l%<eWHYtCK|CAI?A8WXvN<+*BT(2va&n$
zr3tV7@#+=9r(HF)&m^SApT9AaxZc=o<z|{vAB;73vmXvFH22A(OTFOL9k-G9H)_eq
z{8!7DvnD^ZZ^WE?2QRmFwG at -S(&9IIRq~g}g{*kh6rPXt1kY}9H@`Gb=Dl+@)xsYY
z7W_NsnX=w0kHlZ0bQq-?l`)5=WL{PCS?0XVHIp|DXRLf%X_}fxMMX_{Zt6rYEy+<6
zVaM6~k;{?+9sMi&mi-Zp)R}vy)km~eC at 3_a>T7G62ahdJm_09hKbZGZ_Vv-=^k#7X
ztBb14kLUiV at cg_uE_K4-)irn<R at riC(t;Jj^|J1o!Til5eQn at R^^GH6x+lONq%GuN
zq;+^>q1!Q$PhxL($!Deh5PSmWPhy~h#{!S6L-$&5&+*@E4x}}3{hrrM8aT4z!_tJf
zI`2(*Z(fd^Qc*tY^wAVMbLLDlJA8mbno3J8UyZ6hts`C&`O+x4N|*F~Oc8QUP_SS?
z6UqKdoU(=<o^$rjTO<4kwu2G_Y_{nJIrtvI^RUGX`jk(W{%Ltc4aFb#8(OOkuKfvs
z2t+?<cF57yWE|tBOE(0Riim|ax*HJ}91}HPOM^>je}V3u4HmS=;RkBBxgXY+0C$Mi
z4T7A1tX8`ciwnb|ch8Fmay>E?Y~+W>j$^f{;jwx##=p_$3ap_eD*AP2-EiRLYMy_u
z3qlPHxu2ya4-=(zi^j7XDm!ab8*8n;yW!|i%x5641{C?4<iyfuZUh)NV=o|&ubxZj
z__Ckn_BOO=#{F(k&7ir*&DP2-J`I_N?2vO?kTbx0+9w8WW~<Lu$*>%fJgsUf(IM`L
z`zJAgJWn*m0@{f2Llp(9HQO2XG#<0=4zN^EvyfNOwC9-5t1eO{Dcneo*rc!<Xwhx@
z8qmSg;2H}-T{D~Zv8tA3cq+8d71fECi7}<Z03WD7?L%qNlt7p8 at q5WiFw|h-4C%s|
zC{qIkSRv=HG{PFfdWo>KQ at HM0wNa@);^zfRoxI_CgOC8o5qnRS7#d|7D)EFFc!LT9
zOND?ReGa;p_9(<jWh58PSO9<|6|%z;WhzMCZGHk~0BTiJEIBOw$s_|N*-bgqYER#+
zur9B1KgqheH1Ut(O?u4HA*t2y??9}@a#HJDu_n=WU}U4GZ1V2VnWO2*!;>20uvAV|
zw5ba%h7qnM7Gnxs*mbsCjW&hS!>yemz$MujQ(BCyz-G|frPVN5zIxfp;L*~$oPbm1
z5eY4);aacfBL5OXJ}Skhm-^le8qP_cp4ehsp~AFAW?XE8L7LCNlWHp~?v-e{DMIoB
zj9vF*EnmV|QK5(V`+ryc at 0JeCSA@!5dvx&%5#KU(ssOgB3rX+{+x&s%EhcR-A`do>
zN*}GSDwM~~5ijFMLM7f0Z_OvbYZ95jt&h-i8rRZGLItWO2n|jZh}E^AQbi#W6C^>$
zpi+IGbaeFhaDU9YTAnMmZ)JLQ5i#R%hK3dstNXh6`BPmB!Af3>Cy3U3`^U%--8$}O
zuVynb;KQxpz{*^yf&sn(&Ce#h+NTuvgKpS+*RH5ctj$rdQ}$s=p|uGQ*7U4pW~eYZ
z+Hl0J3*RMW$3}G|Uh~4L*T<qjH3HvPw=l&Cv+z099GQ~^J9rejkr1m-K+ZvK0N%3T
z8;xUXoGv^QHMvq>s<kL9-rngW_`ODuN-clDyogQz99c`#1FK?s7T*|}N5qvG at 0^5`
zS15+HZgwVCQr0^_5`+<b(Kw4(Ygl!?iqwASs^X?fBSDsJvWy;EEZr?qLKfu6itbxk
zd|;xkpR0d|l`b5y*e4b|m7Keo`uU}bASP?Mq}$Di=t5X)il=*e>V2z+5iw3m>AGAL
zZiujkK05Rp^D#n-goV?f`YRM&jRt7o9_=<<EbeHWzsRh`Lls#Sh4uZ;-A$(s-4?CN
z-o%p_*td<=+1(_ERsi<poYbLJ)3*AznrGf)Czq6pKEE6*+gQ5q)DcMypQ_(OSzI1A
ze-z0C&!@wnBLmLZO2_uG(8DeMCcR-ys<ox at hoyqJq{YC at g*HEQzje)N{eF0VWmTa$
z?GnTp+6~?Yeuj=&L~icm71WZ=q20azTpSx0SyzG3V0stq0khtu!1M~yVn}c?+0vk)
zGl#Q+m?dr{2pgTVOR_0D9S!Dh>QXT9Toxxv2IB0XZXyQ0$_NL3wUwqr$;blR&;!2#
z&H?Pe3jCa1ez8=-qvoNG7>=bqe$+S`S9+eRe{$8D>G$e(DHncHrsZ}(>hRP%l6Q>?
z3VqelCm`wOfm**hi5jvT5wWGl|0c*%)eyg*yL%VfNN-%&VNKVAO$r#=j>h%t5v?7Q
z-KaH*eu-O75H%a?^S)l*F}Nka(37adbT&Xv8cdTWG2Sr>M+XgM-Mah~rA at IN)GFEb
zghz!tE7pHax0^M=CI+|B6;TM?D_Ys%!}Y6sXU!Foo+1Y}&~Ff$Vv&G{3i`R?8zT>o
znwAL)uB%&oP2!=Ml3!QD at FQA8T4;8{Ej#&4#3#y%+J>>9#mj2R?}p{eFI&#$hPG?m
zzdcmmJ4IreSi|p&@4vSgp%mJ>vKk`&6y<Pb=A!4p;eA at C<SFd;ng`hR8(DsFnn>CT
zE#wJR at y6IvEl;_z!4sIQl>yIbl|l^ve1EusaP?W`DH)OKbtR62=d~wL(HyiGKdlS&
zZfwv{wl}@nqC(EAl$}NdE#%J|<qnYLgj>$s`9vR^w-b$z)K=|zJ#>P?6$E~tcZ7!(
zy!19SYNT3Ao-6;=Lu7;`942IG5hLwHaOPK#o0rQ`X!f?P_dx+=Y!hqA5m7iDs14hz
ztatW-MNxR#TEWF#!(^P9={`NGpO31_P}slt^MzSaz}pK7WNUjU>=ecb+y}k>9Zyl}
z)NpJvrz3nMkxt%(C|iUqsaFJi4Y8Qji>**WYZ0?of*s)rbQ832gy558qxIp{ETc{A
zz+ at ILzy9mYG+ys7FC$w|!Nc-nCT~j?l5Agkw2Gd8S7O)e{Sb#<+Ufl7 at kpA{s_F8~
zm!*Ai`Y`{G4boV)l)(I;ufT7tWHbPH1^j^qL&m4e|Bd8;!-41pTq!kcs0nyNogXe?
zIiE$C;j`{?)3G`n89~!x_FX#a*flyQ_p=BWEhB#}+xN7PRCTdOh@#4z5Z;J4lo;6;
z at -hi#3fwI+`{Ay)j)YPDXrXH6J>4F9xEAqyF|uUujuKUHDLRD{8j3imS`2W6+SCk8
z#?HE?lIZZi26W+JbG1v>7-wPSOO1nr`0*EN8;lNprLSeEF-=#HzbBKTyF0^kg|<36
z-?tIwT7o8rI{&to`_=D-Z*py4s6JCZT`=<_LZDh+agNZ6-&L^Ph)Aq(|K|4|>qmh(
z{Rl^l6Dg+;uI_Q$u8LG+s_urO)al@|6D<~op_bqHgD%Y3TDLm&3)osY_lt%_d`lj%
zmp<RfJlMInmS*U&?U`X8%7U6y74aY5Td`mpafevYMdRuc>6RaMBugD;^*jPrv$Bhc
zYn6mVTtvBySPYbDM2eyo5+m>3x%N^*tZ8^3sn`$TE%$5;u1*JT71&XU!Xed$_Qze5
zHgqA)5_DIaZAW;IXd!BbzM;OXtf;_5e92PPcLC-FZgt23Gs^OPi=VLE^;x{%p^b2A
zei~4QT~HTbR({Sy16Rx~IIp6M3=9gF3zJuIFmPr7pmh+`wP9x;Ij$rk$KdAu0Ee!9
zkgp~pr`%q}Y>Mp|;ywBh0=MN%!&kJ%8C)3T{g(3E)Iusv05TC_gp}Bo`W`VADuQS)
zOLXZVsgu;Udg9kg0JbuDkt4Yw)48LyNu?!C|9+a})R=1^8i$?UcIk*Ql at O5zkj9Pv
z&a$dD04ojhn4>#baM%6^iQo at _PXO_h49H&CCO6ETU<^cTFm#d$2YAQXg?t5!WC?yM
z-M<~S%1C9LH`O+DoUJ0h)N~sy*Y5k at D=OWWLiIl&*o!`!dgs9htc>db6ss{M3zL&U
z%&kE8(tRp`g<E*xK?yuDrY_JuF38<JNzSYu85IrJ&6-|uZL1mYJ`3e*EyLSci-Ris
zNRx=keMM at _R5WgQJjeCO;VKt at -oS?E^WD-0jmqt>dpv+hfHx80kOX79DeT)%-Dz<$
zrJ at OC+UD=pZDz#v2{P4f+^A?AIxV$If^Dl}Zqi2J&7B(2<1B%@3iD@^>mR%M<*+nK
zCDh(UYJd)|h4enV+bus+N<o at 83~u3qXCeMlLn0P;T?95S;9Y5<I*BX<FItq#BQ|rL
zFzg6FYJFj4rx;Eo_`WcC8V$T~o}_pWy_v2 at EPHJika~|D)lb!yHn9eLd%vDhw|~GY
z7hS}j@;WT_u=REJ#>+|od(lI^O6FIlG6dvgCsSLcMdV~3$*PE$2dP3{rFhxT>6^sh
zkP4xTB%{D^xt#YwXdEXH4|})J!j+SYgE_n!GP7F?f3;q(>`aYR$lwcsoL;tVhKqLs
zAONNB&lSCUjsFHVj}v8+1p%}Hf6z!(+WNh^tyCuVl|{t_1?v+qWBwDD5<FxVYs7MO
zD&|-33prB)L>x%BHnl834An&3t`Vi;nlPb;uTtR^jXKEpqH&7R(vSl&)HaU<m)XP_
zc+iCtQ6PLk7~!ZO6H3hV at Tn6R*W{%VuboNxZiGzf>J7qG_RBH2qx#$(wdaI>GUA|n
zW{`=y7l>k?fyBKpgegA&*bxx1kOcXe1GTC_9DY1MSxGZ&?yYLhS!~b>Zt}I)YHkrg
zC6IjZO2L<maOaM*?`!WEy at m+)C88`V9#wy*H!9bk1Lz4(KH2mVJ-m-)j4}>y^rtt>
zim)bwn@^O+Sl~bK4j0tvD#w_Tjnq<$Q4BcKeAfsJ(*Nk>^hvV<#Q;#7$G!nbWl#Do
zQ<k<rw(G4fBn_?;bOkvuYUTn8EC!jN(so<f>Tj`ZsLV_0ka2{sb|xN8xGMY<^UW1Q
z>Gpteep`#E at txut_yVyMCWoEqo^J|_GF|*A8-wG7+R&9T!jt<co(wiF0!&&=R^ud`
z5)?@hK}0ge9~+GH6i6wO&B<A-e9xb8=F=TBqln9>(47!xxn^;F$p1)@)MFezLQPVo
zB`9xKrEx>nxuNh>W476?FS{hZ{GldUfok8o!S}!q_SUEfcH$iFj!?Uc#x=FwWk*fY
zIARkS;Ja>6n`RMJKnPgsxw>Z9ZHW^q<+}<(8^O962ddc+^>rK8_Wthh?JV@`KYGHO
z?vxLZoSI^*6qwdCxTy#S9lfMUkGrQWwUF~Zm5tOwDMpAo>xr$=@321co3z>`-6!Dr
zCoyU)-E|b+UkvorSo*EfYU;eW)f75^7wf_+U%Z=ZP9At*3bh%A^#ARhfGU at UH{&b1
zy=<X->X7p2p17 at r(xaQZy)_kgy_MR;TAARo_IrXDSoKmpVePi;hpmz|Vnk&z_gh!%
z51vZmLa$((6VOn0no1xe`Pej{Q)@ooocxu3r|eO{rEc#i+?4BC0K&^KIpyv1GE!v)
zTEvixU)dC!;sLz62>mGqs675_FBZQ+V=A1gMVur9$T;ts^ULqS!Zw3nAuiml?toyu
z_<cImeXPpisT+A~I`0~7)x!>dq-YV>6o7@)WthjlzN%wES*D%=cEgj|1Q6Nd*F1mS
z at eceOzeZ5I*ZcSP`D}ouA039#6d<y8m{T-~jvXi$t)+fFB%59|ZWT_<^NU*fcI(7h
zTFfeiGyp69EM5%{BV-ZxTdF$}?I_Ct1T$oUQyC=d6!dTndW^&zU9*IW`XCcWUWT7@
zAZS?cgbOQjH!p!q+Wm`g?H%U-h5vKMwEcB^B8XT2Ety)O#nJ(rw6ajfu$j at F;U!)x
zS%`TBhoT4FPy9Y+eRA|?IGO at eqz#tKT4GEZ87fkaD%_!g#_rulR#s`jyDwWi`k{?q
zGv^7(rZB(_0Kvo`;;>3VuICn<X9W{3Oc1hT<U;?VtG4<x#<EMRebY+Kf>l(C*?(+1
zv=XPLOBj<qc$;t9?Dvn~lwHvWymRx2Cu6s>Iw<IGS=xOUDS}dCCEg-6ls$vP`nEW>
zO*8Oak{F7Q5>Je?4k{b8Xf7EB9C-ptuct+n5J-J8EG&{B<!Iad0>1jqJu4!if7Q0R
z*UOm{EO$+Hj7FWM&E-%Hk=W3qv_uWWhMOb2r{S@~T13c`1Sy~IV~BzGAJq1<&-6{u
zz)M*|(Wfw3=bTCl_9a%jnyRLwK=0KyR}k5(04hwo-i5u~cdV;M5c{;uO>>C-!7Ha3
zwe!qifMISv1rOq8;Zn;;gW3cnmI_oW7c_p##IXV1L5`Gy;=xiv8wM4<iQdi*B&UwL
z=dPhWoHRc@&-ysuxfZxPy`YB-2n-*Pe;U|<kQtGku?{gYFuDU^B9`wY#^mNv9w{%q
zFCdsiW~I?!$HMN~RIR0>@9G1b5QOFhD8w0vbFyizrzqLoiM#(6ZRZ64`xh0a_pbwF
zX!#UiI-o7$(jv)BuMI at M|K|}&2o2a!U^WYiXzQKA>VbOT)_QFaJ2jbER=*lcjJRoD
z&H{8Qh*Xe+fuqBzEdCjK$j}unZNPQOR0L`O^j3g{ok3;{K^YhUkRp>8KyZ)%sJ`8a
ze6DsMGtH>0T-Tu7e^;~SMR<9Hy?v{F1smjCfjx}%0T40wm?3K72nKD}h*>X4o<$3z
zlWr^H15?3J6>@@$#+`*Ds~JmS)iln{t3Y3)@QJHPwu((+_eCmD{s>93b?!sq0}m=(
zbA~;vaPsSugj%cBJ}E$HV2cTmkp}bSJE9RSg#Re^+4;jIm5Q2zc!CEls3LNCssleM
zgt3|!$BWJILT$|24eC#VZvwm at Hv%WdNn@;^G|4h&Oa5=gG~QPIz`teEn5?w|HmC=X
zm;eRSgL_Rl0Rg&dI;pm=pQTY;Wm1)_9+0V78r`A&XIX%1DX%s--7f(B3wVzcrT({}
zOq_p1oLsd3Q<abv4csL&KJru1rj7$U8;%2-VzR)3!2LLs%u`fgy7%V6<VNZE$j!<J
z1(VCVJr)g>lM$N^BZU`(l1ZBX?s1<3K2ZCH_I*hN at 3L#glhq0wnr7bm0Ry?fA*azm
zEuyvDV*b%hoz+7xKicQX5s1RN=8o7 at V8mOByajd&oexhXSJfnbZ*;&?oF!LJ01SwT
z#%aWh^|LPhKjtA`p`^U1IrOx4lnmB>s3o+*f*}r(n8wLR2~YYtTN(BNN$XjDc{}eO
zT1f%;ie8w%BM^`4&}+}|ubsd6gm!qjJYp(qOl14s$0M`G22l&GJoyYw>)VuSFAO3K
z*T<Y<^MhcZ{^rS#n(aLOUvDn=TLkTti3vg?6j8cAH-nlY4<lLC)SkXRJTN-VbI4a3
zkb40I^v1RvwsUph8q}EP%8L(^@_oyszM64zpjH?$rGmlu&e;ikzuAKvJa6PlluJJw
zDp3o$8fZ0BKj!*7xcq>0U;X-{IGHG12Aqfw18svl0E$-H+!AR_GqjPr&H2ajRp{7$
z?gLyX<nD*L-U!RQY2>apT!V-1AmWI4glOY>_ys%QDzLe_Z{@sjzGqb$z)J)($_4we
zv}(FA_EL~j2kDgalNE^^-kVHS$@7giBW$St$2hETF%tEbd0mjsn(YOrk}H6PivrbK
zlV>)!!dnz&LZ~y<R&_{Suy1ktVFN>5mPVoO!g9|kwrcf|vwP9F(_nw~_HS9UKRy0Q
zNpL?J=s)P`PORkO=S;9k)V_^iN%8N9!Oh3&TP5QQy_SfpuKBGe;6igB$tYAXK?1mL
zU9EYsDSrJu*C{Mv+u}u*nro~+OpYcz>-EA!GA{4=I}Xr1&9Kzf{38~Wm;d<E!<DSK
zH*5mmcn5%GKqq+LgW8ArulpS3uS|DAxw;aQTq+T=gH~Ed3u_LPrTl|l6FG>pgh&Jh
zyp-?$gD)_1;Z$qD>_DjCQudlrJf?fcHIf!G_}b6G6&BM^;NoOQ(t522x`sT+nPN;G
zk6nk{rX`jv?UZ`$C!dcGm7QAUP{uW-N34c8^}ixvv2(7?e#S%i`R at PxO5GEUqyNJ}
z`To^2EWRNgP4XJKON-hL7YGwXIV3DjI?ETLt5kpTkX;QMVa`*yum`#>KQBvYz~9p4
zD(GI2I<8QEDa;bam6d~Kdy~-1!liUL6jJNJofWj at E;US4vWrj;WfF=^8qR%32(ht+
zW^-n*Z|V^j^xWi8wYL@|dmdZne_cHk{|RsqFiL!aa>b%_9k?IjjOx6Ho}-g%ek9#b
zDx;8Zl=()iAvPEbMP?A?d(kFCa4J`5_SL~K2^3m~{b={d;@i at yg5;=@vhijOWYaEf
z#=TXoBi=J8P%3K?9|k0I`{t=eW3r{8%8Z!SN<_~MHIeGGe2B&!S1Im2VTipCllWon
z5OgmvNtZe40g+xk5hhNhk+od$<8|=`*>3jvNxliIP457j^kiS1o@?@+Kkh=iE!U_p
zig2U?-q|APuK`5u#CmUFdFSolm%ULq^k>Or+<izn6;|w-PGLUa`_4+(IULKE^2Xuh
zPTv`6ZJ<$4EEK5zwUsA?$&yJzZ;S|H+EKHx%?sJeC*lP=x^#mIVZ$t6deB!^FFhdu
zUwjQ{^TRf`pf>U%)pd-7^@;x~`?Z3q=?<1K%K&VW_PN!#e;T{4fNGhea3+a#cbz+2
zn^tY at tA!jb5!mU<{)2 at L{6={q;GEN8t+#S{MQu-Qpehy<TTfUbx~rI93fcbvNWcOQ
zm_sJSRSsoKS8hZQ10+Oh&;tv)Bz?kK@|0}WjB9>^%R7?OlY#C;?>-nVg?Gw;YEjaa
z6@`tx&7AT?lW4gC827#m%3+KBJtaISpMT at 3^KGaBHC!}sKg#q_29?-fPS|@MwCUi4
zWP;EHfXNo9#ZCrx+>DyCIP2!()mMn2aP9Dp0^RGMyGd7&a&LrAV44CtfKh}X6v(Cy
z6{>Ib&xW`-bge8c<}~feZXgqTn;SwQpY?VNV)YT4p{zf7vTQf#;RB6}p!0zFOlU*e
z>#{Mn*e+Q~Ip{I2F5VBQB at uJO@w)JV?#rc<PcG1Lb(s$Mr&x`I33XI<|E*B2?A`zd
zX0Xi^=vcO`j7)}e;QfB0N0!BtitefGQva9X<;$`ouK?#jBZF3_{zyU8_K!w at mcFL7
zJZAR-#GWRi6t;QS(Md}Ts5F&%;e{+C`IPtx2{va-6E5pmu_j+!nZ@%eXJizKMWFhQ
zS6}kd&IGKQezJd-|1PE1z?6V8R?9=ZcR0Mzs$(H<ZnH!c at 90!X2{}iF$$x;ez+Lu;
zWZSP)Um*r$HK@*c0ZouOU!B at rwinuuE@%tLDfhH3IqOO!apqay9@^bZr33+jxI(lp
z7+{3O at rYJUFhcqmC0@sEyHsib8b8Cqn>BiLiXx}Mf3~D%-b(Tam`Q39Jp?h>0^cFC
zkJeCS1`42=6@&A>f((EUd=-$xhPw at MZ4<J%fVmlDh?oCw1Y4O)KZa|sg%RKrMX*i#
zSbdX+IBSafDiuC5K3zHx_XnIh5ZJD;Il4SNFMpTas{Z;yvs5!-O~}!qvY#K-aspl|
zRH713XTKH#!bc0q3@<12n}A*TZBY at OIUolZu@g(M)3#lvSt~nwv!O+*<p<8#X%N96
za<qtdp?j#^bLE$vz6c+)86c)Azvp5BZi5XfuaiKsHYW#T@@*!t_+|vhX~!(^cp<RM
zPaf|b|8yY>L*^^MgaLT;xPq4j?QuLt14t3@=;6_f<NboEQ<&bHVN$W`Co$#iL}CQA
zgsR}Nl}L_8h8)S;MB85irJJ6m5_WVKS|Tk1U1&M#o|-u8BG||aw at t=HI-JCCIZ|O(
z_Jb(JpkzV@$VMLiAu6Lx6QrX|Ne7Lsh6DRnrn{u0_IE6JAz1ZR<UecWlY*3*(5<Vy
zcZ0Uo0fyS4Nleyy-JYrWdjGyRM2+eiHWZ3?gl#^(F6S0chiY66+HK;YoE=)U!i{Yx
z0~63=Ej at B*jWz?=@%JmQ*;3@%so at i(FfAfy at V2lNSrpJkuPLFng+>1ND+F$PM5dhN
z{lp|6<023FvqZ^^A6zxHmdaib)cL>P1M|;cm$ovwM5g)R&OO~7tJ1*m6JX`6zoURm
z1dKVsKtZN;%>S~}f2OVg?dZ!LNj_ at fpD_8|T<U0%Yxr9=OoIWwxEeNFd5)2p+~g7c
zV09W*A at yl>(bbd at zD03qkqrijphXmchEm@{-~wyyso`OXU#~wx`+-FOCyE&m1m=Go
za#x47QZPXc%B5z^dQTP)_EP{33oKe9?Vu`B%?y`K#$7;e>jnUV0QCcCesy7HF8y02
z4{$~W-!5p<U{)XEh-cqglQvEb93*x{d-IfD1u*@(z5cCAi_CK+7CA)YycRJ`Ku$*C
zGF1^<egii=$dG+}jqpB{okE<v)qP?n4y_x`dQS^5pm6M6k$RVc=yI_Y0=C|->PN*V
z`9w6$S4B{H-K4imJ9;BGony`_i9iCT>S`0Te- at I4<F(%tGg>E7XpS6u?DGx%o`4_N
z-N6hSCmGIm at aBbJT$kJekp?Ci+x=b91R7aOwG5Feu$7sX1Z;YkoQx}-e3-2Lo&aqW
zx4t(gjj^-?t$2J_-Vt63^KusUcd7cZ602|BMhzGZ1OO;+>C%q1BV2Y`CrFPy91ipW
z&i(h^nGMur8t>6Jrw_%wz|fBlAfkwjq=wKX4v6!lH`)|x0O->_-dgxu#6WnDpZ<S~
zq5%s5ngLuEum<?uT#mGul`z0Vk6&;k)$XHrpVGyE1_4JNz`bO09*_Xe2Prj>2s}@c
zXP7uqjT#)}l^Uf{x+3+o7%r86<A7um;Gq3YHm`)M+zkgxgj at Fy4vw2sY8hnjk5EGC
zjy!6yDX9!P|B?4G1i1uqE-)5UbHKxXTw2c(L%B2(cf+9BlEq<<j^#Y9Z`2qU&lm6p
z5vj2cE@$P;nO8M?mo6kIE$aA at I!$D?iW-Xr0Km=H7c4eJS|kNdqe7*~u-mhNsJXu=
z6#!$GL)t6f^_61L-}Zg<J{Cpjs@!w?A(LPv2AoJhZjb}P-Ge;A(JaN)9(0As*m_=|
zQl3X-LkH(a1IBff-Xz=315=k|T=BWz37TXs4M?9iVF&1}N*d#>*U6nQUfcf=6ibq5
z?4 at I%C5Bzv0iN!A5?I20yb%y=kv at fcwJ6nzHMAk1|4jjC=oTlm`){r^#;T)rY(<hT
zr0|8c1v}^+o1dV{9xb2oJ|5+aztO#b$0YBouV;tF|DzonC70RX>n|u!F0f6~7P4W&
z8w|=sU!V$^zYg;cNWbT8<>0M&^LGvL_jp!U8!($aPVb627kzX-UZI6!S?=Xf^OJ3^
z4OS63l|0vJFjzs1EH<f?v5 at TB0CE}wgym%M0km)-&KAPU5 at PMmXnZ9c>10u}l#ye^
zdVfo81Yp&(Pd7R<R+FtyxHxoJL<*77<>g}^xRl7R&&X}v6Bg(w#N2ohW$D`Cy3)t?
zppMx$P&p&cAwI8y8$?1S(C^^LW5Ni*GC5hetQCB=oqn{VRwho|3;0_S0<UELRndMP
zk+P>N6i;A73wE?B4-9)0(j~h3z0)1|3D7nV4*SDh_x{l()p9cCCivh8i41%Q+!e^9
zwUw6 at G=jdoTv*>?WSC#xF1Hz!&3+q1bFWZBB_WZi@<x>V at 6~H*o1^=?_>0FG>p)u@
zsR)y)6a&}^CJU(c{#+jXqTxrtiE0t!JWSW>z!1F|0OfjPH~H4rXed|}IQ$`mk!YH>
zf+L03E~UK4RO{y!s8)<+CWpxHTEx{w at 5~aBoSo0G%~O!_;D|Xrq;vEyqR%83oxI3@
zS&}H}2uBo4<jA9|s#MgEM^tMC|7B4PT8x?_+?KFLSlPEcyWE*M1T-p3{aW|JMLxW9
z*V7VFX(2JR6MU*>D8R at f2H~~qn%Cdpn)Kld;$NiqZGm8J?neK7n$89gQJ at mF7xoW0
zVWrlveJaInm0}eDv<zqut|kOXj=u+H*@gK_?sNJT=~mkRwjq}!#|W&<6_q>Tt#Y-(
z-iI$OmYX0Qn=I`PWBqoC?AV*~2|fzZH`F+{d7;Ww&($`lEsbhUkP9?07-~>rgi_30
zWfHL|9#-075+WNbYX3}wz*9Y}C=t=TR*$R?y~5uuSgw(@)pf|Pl3^u2^=oB^w;fdr
zs}8+P33%|a!G<_Y`V;fz8 at 36qvV^rWuS+`<y(1Ku6UZzFXw?9_%C}$4xi(wTpjMtq
zZuEd#neVF8V+bLNTEzP#wG9>~FtnP^?88ur!W>b!petf{A+8V-m|Vb)O{f%*jKQe!
z;whk7AoBt$CT0MqHasx-yW)nq;6*A>??goR2zJkOl_xjZE%^btheS3Z8{O4&%RuLR
zp+T7ZoEQYi`<6j}Q)cODfY1wkAixydm-r|!%^r2+>Xw}Sfh3BqB{zoAhQI+ZvSGn9
z7Qm4&faCB20s%TZoRR^EKlz(Pz$5`2`|+K?c29+aLPKiqFvpk<ymC!DHXoU>kxg}6
zqoXZA`k;k82<VE>qsIJof+WN<-2WAEL<5XopLbQn4Tr8S+`zV%BNnC>s(@x4w6Xdf
zx3wcLYW+Hpkgt5a-Wnc31Gl2M^<}+Ps4E4(KE72)h9I#T=rqn$`gi0{EW$Rkpj-!4
z5&y9WM%Lq~q$Q>Sg;%abK=;BS3A(IFjZ<MTIqrsdJH*5q;Aei&P&syb)Orp;-DVh2
zD-4+OMmOsJD1{Cf`dq=b!BlQ$s at u30aYGQ3OkG3|=@T|^o;*Qj8$iXSf9IOqA{R=%
z7332Q%yOVA4p>oKEZsL_Os~r|^TSKqQQN)sm+0$3JKUFHc1N4u2l(e~1T|*hF%D=a
z5D%`U@$$!Z8X5sTPataLb$5jSuA3skQp+>J#v{=sffs+aB^;z<$0?Nx14Mh^^bMH?
zgO`pSOoa?)vO|H8gBtv9cz at y_%CuLqF5Q!OmJVqAg5JV!t3Es$0;DxiS0(ShzLf?H
zzSKab4gi?~z_eNR&!SA+AU`Kpgy1N``i_zR#6o9aR=}Imk<tD#KX8Nvym6fTMJ>xD
zfCG(91m~TIgA&!IzgNde0}pVMBUTzCuB1KuJ|o#1pp9%OKCLmcZ+|?SAi#97xR|l9
z4QRF?so}2o-vM|dLsk=s&|Z7J-+U4{;nCB%HO{N4MFavO{-U$%cb!m%&`0rqS4gA{
z;QK*7(m0ceGl2AI!?7<2+(Q#*fQR=1+fH5-vy5CDTLZe|WaZ&j^pL_)Z>Zq1vDah)
zJHq6sFocVS&8<n}mB%Y3On5X-O9*AjYHjEP)0F(YOn)}c<=u4!M_oEVb+MYS+gIel
z-hiA8x`G~{g>%00D3|=4G}#+KqynDMB8pZ`3z_A0FYQ>84$DFewTL8`-1-+oVCoC_
zGO$Y(TZ(GN43ukkojni!#@(i>bpGWr7XnySdFJPTz8|m-biw*x-C8@&wVVW+;-CP=
zpW4A?=8iMLX-WQ#<YOyP!{q}7F&CKk+UBaNma^tsONvaI_Nsn`fYtOd9m`3r6ffWb
z3d0Sb{&B@)XR%megg@=JQY#Z+z^HA6Z}(G<HT at d(maB0!gOI%#;FI!!EBm^;F7f5%
z(YS7Bq%1VsI<`xA=f6BML87Fv`N;-VmS9%)Q^HlY{Tm_~f!ZbMDGE(_7idVe$=Fmt
z{zNkA9#g8=_IlD*TG~AmrO-N8=w3UJ7GGrP8!3kkmo$!pAsVpk9&l7bT9zFksG_PF
zP0k$yd at N(pxZX_DKXf3Pa7hTbPy)fi^6pEmMK?{seYKumnhb!j>;`6w`nv>%JMG6g
zh8<HldU%t}oyf at iWX@8cr_`hiw>^VLFQe~GWm+Ah$Y%IU2B+=t{yx$wSNAk(g%*=m
zsRlGuco8ed-a-7tl43L6Trl0DE8__0JVFL_*fJUBpfWW=_$+$tp+zvcu{?Ba3E36%
zM}V#+faho&z@(fTRt9;!cQpW%5d4m%KMFrm#kAVbmp^gy4vcV#V^5F=d at -U_)xy6C
z;ZjYsrgI;<7d5%OqJH`~S at FjJ^{0 at 4zi><hFs<j2kzM?|a{2$<!%hnsI_l0&B%C75
z&(CvY1?`l0Ci7(yJ%ku&oaT&Z{#PIzvTdNY9}Ep;E_zbkp`8 at mIF*#Bv&xHA_vIr@
zlaIri?{WY&YH^zP5SA-}EAhf5Ga7G;ds%rb4STBpu~4F`Ks8sYZu;SSgUvVOiEAvP
zd?b`o!&j9ovzJwiCjl{1$mjNFrB}uox at Q65r7T9j%PTzdIr%j)epv?lBwjl!fev(^
zI`1Vx$F3>>M=am=1_98jpMVcA2dr?gWS?K;b%YB^^v)-WQel$3mO`2NOJLQm=z+=J
z(IM+1MtJKuFaP{@bGKd+aG1s)k64Tcj(aWbU<X_Pj||9O3KoR!jkd3pF@(vZEJZGr
zb;~U0W$u?k8Q`t*BAb$=rIi^@U_L_ at Bi6w@ga);e?rbBU#{}831FV_7tPi#Z&4v9b
z;6m0#Y*3p#=WOebe+(}HUM~hIzjzXK at OG5(LSiL{M2&dQahv1t7rA^QN>oj|Ceh_(
zIn%5E>#bVE7@!pcjB|y0%&!1tIC7-{IQ7-++HW#&4qWRr-*G1xZMvHSKr|W`vVlr8
z(#=1A+)dg13DQNu%4LV$fo?#tB`PiKa3Q}yhrWUNh7)Aka76%M^TdWFyWIg$_4M%l
z_7Kv?rB2_>e`0YrP<QQJgCr!LtW11e;`cwJK4wWNnVY00N8 at OmEvz~ydS|H-M__wp
zsle=gV}K8JUleEy0YgS$RsPc$wrPb at u2L1Q#x%oNKv|7<%0MIo>T;}$2>jbwm1AXH
zV`W`mzH2D^>;~tTaNj#@;Hbr6i`7YJTWvrE3O at Wz74sdATqO0<8>ul(BU!O&n;4*d
zHE9hTI{_nDOHp_-(cm0#N{7lEIQQG=BJ_+N4pxQaP(cq at OhhHZkr#y#EO{<Yykx#}
z+)?0~K6!;WL@&t}%Zg=IC#TM11tj=TqI5fMRy at MtrGewKfLoFa+=K}x=-5J)mvht2
z5AJNJ+FJgu#Qd}XM)=4$iJ;{0Z*NoH({N61Xta5*g<s$31UWp5L5AKkUCn!${FOJK
zlLb7)3g)Mh+hNPU*I at n=5s~b>;3NZ#38p}H#hst=NN^th|6dtg*ZJ^IR)_f)uGbW)
zmt5{A*sOAiLX~Y=lILr{VH~J+#TZ;K3Z&T4xQ+j)8W(hrn{qk!8DDcyEf{HlBPc2z
zrH}IXzIHZQfdR8Jp02M<)BIhyNDQtxBMCV04%i9iFO5p<9q9xX1H>h#sUm^RGFvcd
zfcy|N^vqXaEIt7+6A&arqaY*keq@^U^MVQ*Q0NfHX*kk5Fx-QnO^dk+bjgbT$xq!K
zTq-0rkR*WViAw=&^ZZlDgKa#u43H{<I4QpE2*``*Uvsy3gCvB`Qn%QAC~+?fb*iZ)
zx`Nc|cu$!Bo##J|DBh2G1#;TR`Yk=<Acs<*H3x)7H3*Z`<ue2+W!~?d7r5EXY>#&Z
z0Rov|g%|oA at ab@c!Tg8AKQ&H+x%3oyqQtF59OCFRJ0=k4ng1ok3k~6Jz!0p>oD!3z
zef~e5ywLDhGbr3y7)vE53k<K0=?a*x_W%qf3m1#G9RvR)I26S_2F6lA8bae1mV!4>
z%xWBPiROKuw4^C7;A;tS`r1hV`vuKOMhd_J$-)A)z`rRQXx)LO6<L8`KMuEeY;52^
zCIAc-<f`D5{{L;#0kj at mfXw5LC)ocjK&F!9HJQ>HfCSw3?Rw(mGN2)FQ);;PBU~Xc
z at C8tD-2cPPC*!6_Nr#ctWr%!@m@(NO3F(U^;8_`FpeIO$xfp{R4vQouKkVSUG;z*`
z;a`E2AsDrL9J at xWz-gV$V_<<#11E$3Pao!=&*NP%9?-S`g&_Yo3oYX9_HZCf1E+ok
zOa9yHbe8C5okTO6^m1RtYJ-E!Pc1RC^C-Rq&R_dR)bLhH at YDc68rXh&h>QQH(qjsv
zoKC(YOeSFf9KfkPNL#BKd4caJ4<8M6NOEyXG_K8+y#B=otO1GGZY%5UQe~gOiNG{!
zx>MjgSK&YCAqhqv>z_Lr&p_0qrsA{2LxC7>QAcS4HP{S=Bt+YItTYaX`{Nt_RBim$
znfn9=;{4MX*<!;|w5XhIosNS_ws$pY6pTM!OqlYxi&aZ at E*8n?bISl52YiXRA>hBA
z+bjgNv95Cl4v;ZlADALa09guno}I4GybP;}b)AxJsx_CRhL5Csr&(zd%k+r7Gn%bb
zK$}GqJU1Cw%x^Jh4M|w>et8Y8R%@Vh1<YF(6T=MYc;BsWq?=Jddl}|01S#Knq{j9C
z^=;*0O<h?W5i}8(Xh91YAVR5vq6APO4G9kjI64IvKy(0G1R_XlA%MfaL`8(8D1z`I
zHlP#<ixS+zW~~YZF at X^j6c`sIge7GOn=Er~qJH!Bn{V!a$$R&{_s%`{obx;9cZO0^
z-G)l1kboecNUE&(Vc<HS|1ks;_YyiOf5sZEvG#@jgyYa)W56mO9m*uqqV_N~FbiMo
zx358SgjQ at lKlj@v4;rS5A at +4Hl&0RBgWA+w at 5^I(;%q2o4Fx=d5;Z(T+^@hdlKsF1
zOlFG0U5cWfm?~oHloTAh8;7DU9>>diak64>5aPzM!xN9L#f6vodOS at kfg*wevZ8qU
zFI(B_M9P>nN08dEW1Jew^)D<L at YD)iE2aih5gdMYhlN1U3=>!S<sDC}{#jyhed9G?
zx1cG24Bc^EUr}O at b~G3Ch~5Wso~*X1(DC-u9NTo(?PIJ9H{Bd#yW1<>RJ!~<KmStc
zA9K*8q)eI9_Sbe0BCS>mbTAA1Ma7xg!Cr#Z&S-I^mlFPD#L~o~NY*(L&6+&)X>dm2
z_|u?u$CoD9+nQqji$R9uH-d0r-wz&1l5!I|vOIOFyq1wHK8eLbM3ET++x_o&vMv_Y
zjiAkVnlBbNFx0Jf)dUwDOgm51*Is98epcd`E_TjpY%`d4KJDjnjf4za9ggS1Zz^$I
z1?u!IB*<CovwwW)7WxPZ3Gfm!b(EOEvkMI>m#z#*rJ#TZVlZ90!aC%f7B?Ij8>COA
z$j>Mx27ts?jdyW>;**()73kojQ#F1Bm$tdL5Y?SPsG*JP`_qbNv4wX==!k%F9*C#@
zE6Je(DuhVrb77`P^xRWmmJr~r1?HYgvV*he at yH$3WeUWD)I#Tr93ANaD=R$(Xw64<
z(vsS(rwBkAO?2QV3(sa0w)-Msxg9{SErpJlPg4JAUbVE)Bkemz>a-`N|8*-F=VtxM
zA{6_AC5E(y%vWhb5?yE1*tOSQE9zNFcmByiAOiw~D&)t|w=4CrXghQn0YSmPRYd!6
z{>UdYj<O-rTiNx7 at Tv;C41!+eQ<vhMSCe(ByKZ42t&qV*1qy|CpE-d`qksRd1~?}}
z7OFL$O}T!&*fU+3o+ra|)i4^47l3zcBXp`ZG4Cb&({@wJRVE&4HI}H=D- at Q<3FoXY
zUx&I0EAeWWkE${!+6gou_z!vi7!sQywD(7O%`Bn|YImbclJpvgk0aACGPFB_cFt at d
z#9+O=eI#&H=$p;TcOEct0AGP;*Ww&tX=U7q8Y*FOm0d<MS~<aW6*TpwBXLYOH_tx2
zHrO!MG<!<u;I#{wnG2&m^BQ9z{DVO{zb;7YMfGuL5kv)h#?@CSp`v3#`2(a2lnh?%
zEabW%(`}2R>K>e*oRh at 5XN0{A^;q05yF2U=rvcL<*yns?u7!e%QnR;h<`F`Fv_-hC
zWti!G8J-{%R&V*U&O{^~y?)S+sX2A1Jm%(}y877<3w-4AU;~M=D~<!P1!*lCdwN7(
z!MZU+xbb{Kq<Uh<SXD}6_X;_c5IHgLr8P>c?>d(AB_W5qB(G+2N9%M|@G3UL;3hc*
zk4-MFD-J<n)DAnQM(fkt&9TFQH0nz?J7(c#p!ozv%xb^rTEU}Ot at Jq~K5ltKj at V}6
z7aEYZmn?Dywka3|Gf?=12klW%c;@cV!4nh2ga4Fi;^(@C5eq1CeA?pYYSnH*h=UKs
zCU)Rt3!`rUI&bKLV$&+}nnT);H1VYgHT=k5C+{IG at o6VQY0eOq?_18ENbN{9vXOJ9
zqc^Z`cT*B;^F#sp6)j|WhNDqsmsXsXS2Y-x*VY##YS;i>Cbe#EC!u}SsCpaVu(}{!
z?EUW`M^iy>amr5FH^!ESZaUfSZ at CNgd^<_*@YKeWrSW3H$Th>&|2VrV2&(Fq$mD0)
zOH#|mE<&oAa0rO-q1_Z?V at Kg1WJrTV18A|wZvakuP(8%rA)qdjOMoEOVg+(Fq<kvS
zY$PW7<pHd7;+k7fY}Z&5n>lgPZy=GL2d~2{cs3I)I at z9nnh`!*Jve2-9K4+0ANZl=
z>INuteSuF?-GCevi9I?$mNIPPxIet4of#4RV_~dmAfGaSm_I$Z{rM(b at Ty*OV~~98
zTDl!GI#1kVR^k58@`Aim7attFl`>xi`5-?aiz8DLq at vE-dUD%3 at LT?QOMgN24#jEn
zBM7ToR6gk`I_6&8M~+_L(u?$IVAL-X8l$tW%e3XQ<hXLPy&mVCHwv63LxjkTTc#`D
zJ3(m)4vjxSsD>^0|A`T3NOu!l-zPe1+!YZXuEJTpiU)Ub4k&vwBZkT_HAx(SNg!XC
ztWPL5BLQ{OfMvqgt66FXM<omo5lh+f12=mFx1KM|439D<ts at 89d^VTOFEOZGf|Yky
zMai$E%rPct1<OlgIH`3t1=Vi#-gCW$eYPrKJ6TaUYErA0-AeYpiD`A-KxX^krr$5`
z4TLz6dq!M<d(*bC at Ss690R5o}Qe1rgz|AX{cUM-|sASf-8xkVJbK9e+eao>)wzxpj
z1@|W2NB5G`9}7afh_b;R{#a_R{np$(;+?*eo&?!+R2p5<@zWuhJXcZABOMH~W4;Sr
z{qxYGCcP8HElvZu<p#D<rHpxomY)Pra2F&8=-1VG=^{t^ZF#o0igZ)Z?dppJn~<)<
z+wx$!S6?e{goFM1xrOVxjsQ2K6Y6Znh6cfeXBfvVZZ|=w&z^wBC{l&iqY~*dPG;EE
z!3aC1Q3^Haid)~oFdA}<I#P~^)#h~mbU0fq7 at csy@#CpB4&P~78p79Ic}b+HhIrs9
zT6 at c~{pvI at QJJR;`-XJ4J?qlLjZDT<<TJ!(MdyqcyM@=o8BQ~z*KAp1V>q(wck^|a
z;oG$q23cKYfydwIqAYU}G%f`g+g{(D?EQ*Z2Y|?;GfME5|JaF9kZHL0Max5 at u92Q0
zj*mL8pyQpP?;if+bI=szk;YABY;nrJp%u3nQrxVdi0H50&Bc^zQJ=)S0Ql%3J2X*p
zwz;KG?ax+g*CCVE%y5RM{&s(+*}bkaU`b+`aQbk1t#f#E<%g<^!Li}5x(BBMcRuld
z>5<^yW}W1k&yA>;ZRZ+8m*|_Wk*enJ`s=x<<ipf~_Jt&IAGT3Nz8E_zNhd6$0~2)}
zwx~!SX^D&zu!JWX;!M6>s-PaD5Dd&aI8ek$mH+>Lmtk{Lkh&b-gY&CxvIJU3i5V%<
z2-blC+X4gP6EpxJ!2tj9`2vDJpD&=MZWw at 8K2HH?^Vcc=V=d*B{4<icMX7DyN8LL%
R^+E;4F2`>j%CIAe{{b1Eh|K^1

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded
new file mode 100644
index 000000000000000..711b4b8c7b36875
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded
@@ -0,0 +1,858 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 155
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 235,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 50,
+        "w": 325
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 625
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 27",
+      "size": {
+        "h": 75,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 370,
+        "y": 100
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 70,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 100,
+        "y": 345
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 19",
+      "size": {
+        "h": 75,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 370,
+        "y": 280
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "InjectedClassNameType 29",
+      "size": {
+        "h": 45,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 370,
+        "y": 345
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 20",
+      "size": {
+        "h": 50,
+        "w": 190
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 45
+      },
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 555,
+        "w": 20
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 75
+      },
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 525,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 145,
+        "y": 445
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 21",
+      "size": {
+        "h": 50,
+        "w": 115
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 105,
+        "y": 505
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 22",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 105,
+        "y": 535
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ReturnStmt 23",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 105,
+        "y": 565
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 24",
+      "size": {
+        "h": 35,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 370,
+        "y": 195
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 32",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T identity(T t)\n  {\n    return t;\n  }\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 445,
+        "y": 570
+      },
+      "name": "Source code",
+      "size": {
+        "h": 130,
+        "w": 115
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXMethodDecl 19": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 22"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 20"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-defn.cc:9:3",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 21"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-defn.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "ParmVarDecl 21"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:6:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 21"},
+      "RD::First": {"ptr": "CXXMethodDecl 19"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 19"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-of-defn.cc:6:3, col:17>, TemplateTypeParm(\"T\", <in/src/ct-cont-of-defn.cc:6:3>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-of-defn.cc:5:10, line:10:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 30"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-defn.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "25626663",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 29"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-defn.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 29"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 25": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 26": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 27"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-of-defn.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-of-defn.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-of-defn.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 27": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 32"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "CompoundStmt 22": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 24": {
+      "D": {"ptr": "ParmVarDecl 21"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-of-defn.cc:8:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 30": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FunctionProtoType 20": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 31"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 31": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 28"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 28"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "InjectedClassNameType 29": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 32"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ParmVarDecl 21": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 19"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-defn.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-of-defn.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 26"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 25"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 23": {},
+    "TemplateSpecializationType 32": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 33"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 33"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 33": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 28"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 33"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-defn.cc:4:17",
+      "LocStart": "in/src/ct-cont-of-defn.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 28"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 28": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "NextInContext",
+      "DeclType",
+      "TemplatedDecl",
+      "Keyword",
+      "DefinitionData",
+      "NNS",
+      "InjectedClassNameType",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-of-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "Param[0]",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Cmn",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 445,
+        "y": 80
+      }],
+      "end": {"entityRef": 2},
+      "label": "TTPDecl",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DeclType",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 115,
+        "y": 445
+      }],
+      "end": {"entityRef": 11},
+      "label": "Body",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 385,
+          "y": 420
+        },
+        {
+          "x": 320,
+          "y": 135
+        }
+      ],
+      "end": {"entityRef": 4},
+      "label": "ResultType",
+      "lineWidth": 2,
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 460,
+          "y": 420
+        },
+        {
+          "x": 320,
+          "y": 135
+        }
+      ],
+      "end": {"entityRef": 4},
+      "label": "paramType[0]",
+      "lineWidth": 2,
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 320,
+          "y": 480
+        },
+        {
+          "x": 320,
+          "y": 135
+        }
+      ],
+      "end": {"entityRef": 4},
+      "label": "DeclType",
+      "lineWidth": 2,
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 320,
+        "y": 135
+      }],
+      "end": {"entityRef": 4},
+      "label": "TR",
+      "lineWidth": 2,
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 250,
+        "y": 575
+      }],
+      "end": {"entityRef": 10},
+      "label": "D",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 360,
+        "y": 240
+      }],
+      "end": {"entityRef": 14},
+      "label": "InjectedClassNameType",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 145,
+        "y": 315
+      }],
+      "end": {"entityRef": 9},
+      "label": "Decl",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "InjectedType",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "args[0].Type",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 714,
+    "w": 574
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-of-defn.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..b880c4e1fac00680c9b341d8431ad73f8bcf3305
GIT binary patch
literal 18778
zcmb8W1z1yW|1dtWF=!AJCm|^q2!hB!r37&_(kjScq>K<4*gA3|2$ECjR#Ms^B_=VD
z)`5=3k)z-HZ1{bi-|u<;|Mz+?E?_(7KKK3UK7qQ|G!8KHF~eZ616MRv^<gk31o-{B
zXBW6~=CpYdxIX7=c-`Z&tF!ZM7Y`WhZv2$FvumF``-bF0H+cJ_h at z41yTME@{Z643
z-%);jN at vwRYKA1`oLCl9$T-(>ubTHozIfn^+a=|G at Ppo;x;owD<D*eeFOT(j at cNuz
z!uslPcTUzisX2-qxOH;T-gXh86c;f1suDGq)l*<5i*a6@?9y)8FJHQhPf`$SdN%Pb
z<;y3 at 0=uW))dr#)w-xuOq7Z>^c`Z-)vv+Ls#C}0DIgG4d44>QnF1x!~)Z+ERtiD0C
zQ_yj9zmv;-t{mf!o4J}i=bL(NDX`Z!mz&pqxcPE at USJ1FcPMm4g{`t|uM5-E at cX;W
z!A{3Z4(~=w>UBC*Cfj`GzO_4N{-D{d-JzA<x~2gRlZ#8{<=u+=c!E!znhfDRFLm>2
z#|mEVOC at C$^#*>XQ*`unQGt3|Yl$6cV#tASE$?QLOnD~!LzdE_$I<gy4Juy?TgGpp
zLVs_gx~mO8)2(Y78 at ib;!~XaIg|+(IEiZ5D-~-!_BuRT~J(hPlqgYV=duRf;8aILE
zl7G*$%Z9t|&3ApveXNa9?sr<EFYM1YmwF?u*ktz5Gwr#jxLC;~XP@%UNGb7K7}rpn
z5BH9RXuFvETADM37{wun)#CT+#k7t4J+uFC{b|-mwWz1g(RPJs!Ly58H!lry?RyLh
zg&$M#v)-n=&f&W`J at JCqt4`{0j<RHiNs~z0Gm(|C7w3;sE0y;=J&XUXURN>oBA#7a
zuFi4y<?dINrF#X_hvUD$;v=4WaI<+o at z?Qz6??myJU1Nv at UG!qvSb34(xmfe7US||
zGqnniNGa~WnwcNQRNvuNdju^nC at P+Be&F~8MEBK`cV9OLU-|KeX|CYMkJ$y)+OdWd
z(dr7N%<doe(l3 at an-k=%uNpqox}DG~yPWpzVOh6={^4)h8{)}uc*U#V4pVkI8{&o0
zgKGkE^Ua5+_~dWoBn4f#CH%_q)w%npzm*t<rxX_yCdf71=srKyIW2ZzHunChch?Tb
zOzBi-hn8$eoP10wMjIC#eCWYBOAV6pPdI=6ouaVuuS0$p2akCbm~X%Cl;QhI_gpoC
z^^I&c=j}4~hSmo+-o5$ekR?<2*w;tlh(qPu!5ZZ!hT;X^FfWg(4+WIZu6^g&=196D
zY_|LK1K4TTtCR=t4s&!}370)%SW;reYVLIo+4EI5_hCca?oQcu19#8E&Etx!rnvp<
zV^i*)6u*O$qt2tb)SqYUVl9~BccH!xJH4%=bVu)j{bqah^lg}`!@ZdZh1}!2TR$I5
zwH_|9%HD5v_d#6F>0d%F=PaVzH1LQw$3v5N^Lbv_ at 8gerIvDX1ZjI%<RJr(2Lq)e6
z_S|=S#L&*^9gnVESa?Vf{Jl0(Q-2WWePj?`K97*U6F=y{((%1Kk9z6@%YzsFYOu&t
z9 at Fo|e!IIwzQ};7;8f+0yih!<{^jEm6S_jQO+%&h6?2<SxZKkt&t{aqzT*y!s=0XX
z at WI@)5~1I|+ip50Gc$cvnRmE)-9qACT+_YMCa-AQB|B+>kj8lCef8?9Hie(1cNY6e
zUE>Ncm8y@&yqj(N at HPP!7MGlOc>bwlP-fJ%{FhIO+j!L<?HxVvu&D;kZ7aO*Y;)QQ
z<xHdKBP)ELWXfZY>zeteKbR_zBD<^iaG*-Me~cZgzj|KdD-Yh~aoXT3*<sI&2k7S<
z>xm>E1DSk^hHZY_wyPDpcK#GTRWEr~`?Gybd+itFO$;+P{)iYydfcAG=JUQUO_aW|
zym2~qL-Ms7(e%TIx50{EUo`HF*r8{}+-b6H`IXN;w^{xd!uS&QH@$Dh-<*&y6Ae&h
zdG#zOXV&4RclcE|ww~v8 at s_Vkgoj^ms*UDi&-*^q3_Dtp^7y0mBUW{b!2U7$mSf(>
z;#uzevOOelW0jM|cFF3;6@%fh=a09AxP9Qzygs5OC060M>n+Dx5=!7&V#_Wq`O#|u
zG0mqQnTgDn1_bO>*zpoJvR?4XYjaI6zhGNnqgU<xhqfPo@*Yq^5apW2OeHdBHbpiB
zo-gOOOV6ofetG`obs=ejIdkA0OH}jg>9YrUf1Ob^v30oMLw$7f at H@Y!&K5hv(pG=I
z8$kC>c^xhYIckR~Ro_?Oli70LBW#04=KhNK)_thL?a<ZHBfoaZh^xx%DaerT9lgY~
zi}*%t*ZR)q+LSsj(`r$?M`4i0()Q_&r3Uu>0Y~#gdC$G9pI?}4N&O?{bfj|6!5hp+
z)TD(L^SEB`D(eXpJ0ko1^lNRt*NRpzY7?|uaWnX+NVa$8+ZvpHC~`$h+|m2UeM^Dh
zw&yoGb#kBE0J*(z2U-3*<&=xTwA%F<{vEcx?9n#gS%3S4 at wjf23w4g8C?6bVPe9+0
z^6?OhG?LsMVYIPp<ZD-O3M}PvpValDvV?2vg$4(*%U*uWG~Z=RdOp4>HedbdQn9 at 8
zJ!+KpRn`#oNF{xf#M->HA8uI7Q~VdILmRP}X5-SrrVkfhm=6Wtx}AUR;tG1ki7ish
zxKdN`gLD?N at KAnQdk|N<_pycmHD=|bsbNpm&ZX@{)i70)Zd}^-%c(hqboPecS`UrZ
zvTQs<o6CncuP5jPibPV}KQEw953j0<L>-AY{MD`_@@+Hw!qb7S?1NN?{P)cJ!wHIF
zNa-gxt-XHt at z>pc51V9vJt>px8e>@a$CRn$7r#&Q=iUT|S+QlC1iQDIJ9q6o7_gy`
zebgqIOZkEG<Ac@%ZXNZ{nRrsH)!yeTrOy3kMxX6qnpB#*`2G{Z##V|i&MTEoJdayn
zeyMTg#A|7c@^%?6*G6xbLM1f?YpHbGcJf}m#(hKb*Zhwm^4h(YT}x0ubH3uv-AQ>C
zDsA{UPUlQcL%fac$&H&VSf9q}FSS!Ctd!&ClRrOk`PB)NqvZ<PZrHl}D?e<~mTbCc
z$n>D&h#cpur4OE5H&qAY%g!Uq49e5rG<-apM=)%?YyK>H=Y?k^j6BMnt3gRc%~+(|
zX~^CCvNv<jxg&^u(G!#3jcA&l9_xD!llQp=A27Asqs60;q58Vecf+?7_LGB<9!!9D
z4vmG4=IPoSo*sA>66gO%aHciQ%rzqAlW2i5LFPQqK-PO?#f_2jwO9HwLsw|L>T6Cq
zul%lb{gn89`3FbT%fq`fo`vWU5SKordY$kL83 at YGr?T!*h83Q9?8~HgBkvIP*;4e;
zNZjK`RTl`iLv}5kkNSyyoM!m$LU%`ify$RMQ*(|lbtN3l#ILd!#}9756g1?X!nQka
zZ&<WE$HC8&9|A1Sh0WUB?iM=G#-7Gze+^Trzq5^IMpG2eU5v{eVeSz)SEL2I^1vrN
zdD${L&)K_4O*w>+A03p+RxWj+<fi%wM{}>vo+0xbvG!qA0W*<(!wR<Ua$%!i4+tcF
zz9Icy9do{Mp37a7I&ZptR{r)`x7YV2D<-nYNcLT?^CL{XzSY|)n*Xuy?jJC!w4J*Z
zz!mRW^heZ at Fr+$+SIQfqt?KuPG_#=Dw=Wg@>IX>@BEMaJrmOBRd#=PW5Pl=$wwQ)$
z3;*}dz0tZR(!<Z#9x;#a_d9SUOl!LSVA()^Y|Mm|t-MmiONosMFD}*5pEq<%zSe$~
zpI2cC at ndC?Km9smof;M}{2-=p&4YF<g^FZT5wzIJUrqGZX6kLd^fnjUN}Zat?UT4=
z-v33jx}vse-F?R=cP{e+-G~O8moGgW!;@$Hgzs$Ak%+5mO|p at lM868MZ@5zW=ZN9?
z1y<H*6fC0r^&R0)N!?$#zSRoXHa>VYa;YmeA{n)qw3uBxF>C7gee{{b+3I>FBkXnQ
zjeQ=uKO^NX6&DzKr07khUW^lOTEQsxx%awkUJOj_8J?jSYx$@+W?XSFJ}&;C{_|=0
zwF4D*GSAy<HENkjIK`MS_ayiv*}IUmDuY<&_Dhsxi46BR#fN=)VVuh2JiB~o=n3bM
z&P?-}g1|!+J95O-Z)GPqj-Pt4 at 68m)MBGrOkm$adb+ZR{7Y+R0i{v3y&r4O^%tBpu
z>LWK*GV9(?xV`O_{~hP<gaGr(j*~3!1`g)gf6V`ydv;pYIkNLad!hKwsAldN$w73g
zY*T7Z5as1ywXNjqwRxA9mC}Nq<tH;rly5%pa}Bd#T6vuJZ1E*ezTRfh$b*lnr#YRi
zr0Ttb_b2Y)c%ic6jHXflb#}dy at crUmPo$n|o(&qQ{kXU+qJHusS_iIh;Em~S{euqX
zQH?DNJ1vzjnw`dYfB*Q)*X%nwFC{BN>T_hpXJhSibNk|^2_155Glb#jkQ)sV5riL`
zKP9 at 7vpC$ncb^KF^{e5r=|uKU5)yR=Yp~pKm0W?7aY~1ysEz!!+&_PR-J30(e=Eqa
zBA$S1)4l%V03pDu<c60)OhPdsEO=ee%6V7hp7lE?yizI(hH{4Ent%26^Ia*qRG`wj
zXyu;B?WSP#0X8`<TEZ;i-Pvf48hrM|h}f&>v%M$;X*Cp8wBD|n<<_LnO?E{+I{C1k
zNqE8E>GRc<5|j0brS+cdd;Y6G2W*Sec7*0ee#{lx7WRGC;HCP5tC?Bip$doQnO52`
z at 9p0$=z9dM<yvkY71uvdITJ2qTGXSYd9XIltLX;Uwg*r2QWI`+wb*mEh%wJs7R$yN
z_UR_wI9+ZOZOz2xQ_6Sk5fh8F?a=d9n{)egoAl2aL_YM;=FWMAJ@)+_vz$llogk)-
zDM7#S9n#?iIQ&-;&u`M-+}P~BjZnIZOn$TPGd~u$RBw_AmtZe7ezW$~DRw_P-~C+q
zW@^P-ro%tHZFKiMK^puru+3_$7IE}ciQHsz*rutEHfqv?!4w6rs9rR at +dDO&{bIN*
z%I>F3I(qN{NfUh`EhaQxZSkx7!L)3?o2gC04-VXTv?I{9be(&ey*66-*3P3f)|()W
zboy+4Z5s at B3{k&xvur3_y<~aQ8g8l4RBYB2=VO7a*bRfR5_oXP2}jf(cIr0RjXTt3
zgE*>rL!y$G(J5;w?}dIswM<FRO0P@?E_(?*BvZ`g!w-WUVkJn52XdB4<tar3_Vk^o
zEG}e8S?IDlhcO4InPT4(i>iv#eh|bFm8*tkE_GB6I1J{(O&GF^Nw*K-UTbr<tCE{7
zJ3$@m(SX6+9?|A6Y%cN<68(vT+z=S~wEh8)`AAyGe7OS`+#d^rU01~h?E9V-t|1#U
z%1<Jhf7j?X_njgIbawTv#OqnYU?)UC_6(~582ykWW8}&-yAD8bf^%Wy?J$@M*aL=R
z0e`^$fFLS$&wSprxuU#Brz=m3!S2&wY58nElhghVrRECIR|m2|T#&Gtc8B0Ouqlqk
zt(;caypP9n5iKnXHmuqGN*W>MkJWN#w=7=preD$IAQ&r1RLbR_pl-V#T2miyn%~}U
zD^(;X<USioqaDHFLh!x(+=S}Q4Rc#G4nGrz(?pi4U~L_#3SF^lRjFN_o<&Z<lNReI
zpU`kPR(N<M3+?NAC=QR?LuC^{RJjTY4sjD~o}~<9WUhTTn!a0*A06kpzsNHbvFS;5
zaPSS*WTnPz4y=9l{24g>VKqL-Yru~zGrYQTi(0zE+QLcbx#d|xYvv5=RZH`_*=vM7
zqprnHK%LBVt&;BdKO&QN+4aNpvI{$*^W-nn1G-~hx at YeapREyxjw`HMrW!x;EKV4;
zDOz_`a?L4nE^_7|#G9+K5<F`tQr%CuFUt2(LLAlR`8+OoOHtfkP9)BVP-8?8;U}Hu
zm%{gb>8bsRj)_|5wRD-UDC#O^Bly)&ywAq$8ysrtypfHyY>*FYb5v_`^lSa4)veTG
zQG-H<5^*rw4ZN7Sp)nhw8FMa+<$LR$Pv$0A<1%U6BO3S$RpqRh%{P`m%hGn?X#IeG
z3;p&6CS%(1{ttp(MDs0(YT|QDr?PCy_~5dLEF951cOS3pY18iTD4Va`1jSsxnrE~N
zU7e)WyN-TS96HyPtlL9Q`rv8J=_%jpHQ)p;N33y`^t_zLkdgMRYA7*#Vz7C0K2XoH
zX`ULmwqXk=ga at 0d!@=h2o(|)_i)E(-5j{Gd-hsr3ZYA<%Z0cY=<%7l8=Q9{XlaZzH
zVFz9kSH{g!j3Ey-1~Yt_r(;3GGsoR>G^eNG2+7FLIl0RrIc6rXEqjH`2ItWcKs4%)
z%>5|))8#h<<bg*X5`x@)O(c7tyvMW;tQ>G~#)wS!lkl)g!J7JLRU8YI4M>V0KnsV%
z>S9%=_h5%qRnL5Vl2Wt#J|CPdTq?E<$D)E&1xsOMA;C*n#^1l!sN3k$CV==DT#F)&
z?ameXUJ-j^7TvDJ#zx-GO1QT=oh|><_KGc9=27{(;5}eHGU7)3y1&R3R9-cEgk+;2
z0&I$7c^5+KOjMN9D5|O|k<(OtOxsZ+>7sKD`<0zN;Ys<z(*8RD%u86l+WNyY+redh
zef0P^8zHNk0}c?V(ZCV)$sEp^;~7ef4e_jm`WlK;vPm&59pDJ?eoQ+dgb3HOEQ)>8
zrFXMNLlsB-LN*wW_|~geC?_bAHFMcZ=5zCUR!)|j at cA<36k^>qeN}FNI1=-wZ`QlZ
zF_D{Kx at uDX#%gAjbJ=N9o*WEm9pMdnzPu()m`RCfDXXXIsv2E{Pnx;hv}#!PavPnx
zHEHj=1l@@dU5ekr1`Va%zm!H%>}H0Ys6FdPl>r=&X~`b(M;u;cESQdQJ+tB+n at Wp(
zkC!5re9c%>gD6k*l|>ZA)#XSacvs~Ou$^>_1P~`jhdaz^%BI5+$4~Z<lkf~)2II$L
zN%d)Io5-i~x96#24nb!#8Gx!y56^X`=N8=dn;FJX(sTDy at 4(@7($wt6{wO%&e912}
zqlIDx0K&1{jWx7IsMGmQ4L1oSQmJWiB<!@BDh^M(4`|Nzi;2nxcLO5v)`Av7Yp at bP
zAeICLdBNo#d-=12QV7^@|89a6kIUNr$-&NFkAk!IeMcvi!A3~2?2s7#c=&+^EOq}J
zzbFETA7pK*fRVdlf7HhspTmFc2HzlC43@%RSyzaE-q|y*-6yHpca<f6aMt?0Xg9s2
zbz2Hrse*mc?MWG_mFZrneX~j5kXm{X+lt18Ra=t^El8hL!_pRehpWTa6W<e{`ybig
ze)H2<GwW#N(2<l3CXy1!LZ3MY at S}1`eNDYc=-eMhMaPxA&)<9NaC-r`8w%RJr(n>j
zlny42xLrpw3x~{lZPD0bABx1&<|p?tAUSGp=2M25GrAXRDl1;#h*c-jk at +JIZ0^&>
z7jY#)L=Jzf*)JnF9C8E{Le<83<k_6;Q}LA^xrv8JTwJ8y74 at YE8gNI)5RCx3{zzB5
zG#6HA`AK#{kB%fVn8?4n6N2%E9<{XG;kJiMZn#hNVEb}3^wh^)vvLy3#~^a5U{!#6
z!G462F~|Ssl@>B45>DTfR!FnW+XoRvMPuqwgEWNT$2#&{-X<-&L5_|t<WQgm$LPia
z98sh37&_^@C02`HYewu_ev}_sK5?+ia>ih!@>QuaV=+FcA&5Lzb0^*zb^K=hajT;B
z7y-)GtxeYr;!rg{Ix2(fIjS!Z(Ip{_TD6e)F0=|)N-e<fC`5b1ha~bfAn?g^*ALXi
z+>c)mD88C;1JBvt*83!Ucyu5yvAa02sT`lTAoDgO7%-JmE2?e(mg%%MR(<5Snav9U
zU+<&VO(@}&Dj;>+VNJnAqo0XVh_<OtTbpE&)Z2ba3Ar<@gzVv_=QebflVlM>ManW!
zj#F8kLc1yxLS)c4%?2YThlL<&7V{7i`3PJqw9cAi<ryxr)KW<Afc*XOr3QwfGuH=Y
zGAG81l#<HS&r^y+#xpDB^d&na5k2)31oS*Y3SnJJX%1Q%yn}_v0Hd1z&i!Kj at +dgl
zLUtP~;Xo}aIbybtD8mpX$U<)eCKoc1uoJ=v!SW{%)zMhhPVk?+{XPxYc?fP+IAr5M
zBm#X0LdD<?gIlnVs2Wt4SFXr0C2a?N<X=YSaS)<nYOlb+NdPkHatRZeh8>%+$!WTy
z6kc!kB#^cT0^-yOgvlj+4no6(;H;rvOP`%P51mjV?|HchU3>)NI|_c5PYYS$&^8~R
zk`2m?L(h6HoPCra>&ZsH2-B~nXx$fdcRPNzlH5^#gh~hX^%ZPbcTN`qAyb={hLK at h
zyl{-e^_sSUNz<NevwF(#x at W$|&8<zSdxKdrSi#Xamiy>uKhJ5J<zxiULm+}<MQbRu
z3uDl};4U$cNSb55%)k>Er_Mx^L(G5IiMpRiVY5t1cy0ddYe}|{Uo|Ag<n1?Xs4=8!
zQNM%IvqB8{90L)ZFL``Jv1oOv at S4Fz;6Na;r+85tV>2o}zcQ1z7B&SEM=LDRTlZ1o
z)Y5U7&fnD?vWOm;A`S)}s6JP*W+)r{A^?WYQS#gen(Fj$$N9_&+I4MZfh7hNSPA0f
z2%o&8bUFd(80-hg(ZxXpYXt;>0pu2+Yf!RO-WXYby9c+0qak$e)38?9{&EdSd{nS5
zY=qwZ<3+2pov8&l-2T6Z^wpp|QWr)C;#wM{8QW=h(rghXnHL5Bf~Q3l*YW!Y^#WOh
zQqx~{nCfHS`eQv at xFKm^C71*u7t^I>^654ZN1S2+4V}IPG!9P}Cn)4#2pl8s02bvR
zB!0igO>#opIY}VyPRl&zsdBBU-^~NU?|V{*8K}H_GEY0gM#u0z?LM6&yR9RS5{}cM
z0OpK={g2 at G;W<^h<#_aa>8F-p?qHti at fylA#uEdxZX$|OZ|^Lvj?F<L1MJIBjOTGd
zl&qWyS^q^0FPWpqDp at X&E*ke~PR2q8FXFo>AgUbnXNc7?L|mY5aJnj5CovNeExKu>
z!6})Bm)X}>8&h+Q^|Cyp7MB^QF1sB-My2=nbS|vkRX at N*mqkeLqGd&-^5-7YMu!<t
zJnF!Ba^l)G({c8ZQ4Y?<nSq)PK1m<~gXs9&%KWSZi_lDW2;X7CmeRj1h^IAYzNc=T
zbH^&K)!CzGa4D;3Id}_r7=R5D+}+ at Z4&^Zf-7!$NfghmXI2Py!I$+CHkmr=c)NIqX
zv|_pY-kP>;9D}U?!`MJE;9sT^d1})-ugr&ClE9P}44YC9sV_<TSt2VpQLEo(kI;`H
z>V^^rWL0~}7$dh_eUA6!vP6VQy>nEuw8Sg}u**A#NSkGwYy9HbT6rg(MOUsT-#9U)
z?b>pA<d7C6-LQ#WVX<o}8jTbr-}O3TS|nSv^qh_ws*KjjTvhOS1|1U%Q&kfXJbL`W
z;hv2Un+7wJ`AT#K|AZw99~q`ax70YI2et9VgY+G$`#SBXuKo^KJbGE%*{G|um7UOR
zml^U~iy_cAsio+!7`;Op#U1T?ON!K!i`Q|73gffvIfj|Z9TG2;5>ottjf6;x(gLBr
z8LrLlZQDb|a${6s7h2uGWX8{O9C`M9?+F`z27cPIo=O6mG5-2?U(E}XsF~yly(~4l
z^c95A=EDrX9wK=z^p1{Zb%pE5sC$ystBQaJ at f3C)Ahxj?nI at G9*2A5p>3)d1+`R5s
zRd~|1LTL7It0;qyJ;x9Rt%n((!C!Mt2EPBPaOe1g8?Hf;35EEw|HH3CD)nE?4$*0w
z0zw0FGr;OmFl3CZQz#S+ECmy at r&LAAAui=-*Gj#WAJeY#Jny~hPq#qk*fSzcla`4z
zR)Tr0sC$wibhW02l3koMzvTM!9`?e@^{o4<wW#8BpwXCe5Ke1aqj%oBBGGDV=fNM|
zts0l(8(r=j@|_iAOt4NG_FbLm%3b_7)vlQ1hmOA=OE8Luu at P?9P_zOd9gZ04Bz5fP
z9>ZR^d?GjYr+RGJ9#*R9C2Z>s90cnW*?=R~iaKWLl6>!4mPH025paP+QxFH!sxu~}
zsf~w1No7a<u{a{72K91^T=hA<t6#yfucxWy{4RnyS*E>{WR|5rPFq{OuA}0scy8${
z^C!CUS4`ikA}^{(HJuj$>pFTn)%Mf<%A7t`d|~~3Rc>K336nCV3eTFlH*(jv>j3$(
zFJplKRebM9*Na|j>zVI@*Am}bc*L}MKB7H8O5fK>7$Kv2n~SOk3`Blh8DvU7?W>_=
zesL?Nsg`h<<{E30W_^Lc;_!eqm$7m=RNjpBnD-X8)-oe?lqi~NO`2R$?WhMk@~Z8M
zp at 6m=w1Z<@S>og{$C$2C at BXK*K}em)GSg2YWJ7EC3rdEJK9tQsf^&E65}bF;aJ3R;
z*iCZOUgapo<Mk|S(r(|&Lx?JoF%_HF#uAnEcpWOsG09!x?wFb^f8r~xM?iqckBE(&
zIAUB4<!Y5iO&aQJ;C`w?IrU~!Lb6anBdVDX38bEGe at s=d0geJPtF*$_^_L0+6A(pT
z%g?NXEEf17 at HAZ0u~&D*`ij6p&sr`7Aq at w8(KzrdWVeV9-wv7&gWxI$Ph=&8H=4*O
zV(1wz at J2gpC`+YjE41cGR~ZRJn=?J-0N0<?Qk+Ud5Qri at OQlO5q&q%QwE2+n_R<(|
zAkgEBRB@@aQ^HaVlSu$>)1CQCF=ERbUdAE}#L9-xfYYIXiH*)7$h^{HuKy3sp<C9!
zX7V3ZbYO#r4?rQneVy9fgIiAP#tNn0kKwc~V~fL&&N7?=^cNx*u(m{=lxJ%UQw;rO
z_&oBQ+L*vrynT|B5aqX9$rF3eYN_zPm@?xzIW~f5iRWTj9zl}v at YTWJ@9k0wT~m6a
z3Mg;!36<7*RPiay*mv|Q1Qc`@LIQ!x*IlVxDvkP;4|r((m+JM7*fX^#5Az<n;eg2Y
zjOIc5Y$0o1)G4jj)drI6)Ut*ua1cE#C3kr4ubi+S>&KE#rk6woLE-_-04t%dtF660
zO$4#>&lQ(94*UYLeugH=PaD#u>5mgaYbpCyy95#C@!O#X!EeFEH_8PuTFVy!pfGa5
z1B(hv-!0f!KHXnpI6I9`%yc1!;qVVhsD>*HkEi#JeT&p$*8{g`%9;JwFY43_<{LoB
zzk5$xgDVHftuXjZ9ftOVfTmF)UVs_~3zcyZh>SNiF!!WQdF6z>- at yAh$Hl7R$xZ$<
zX5%!!wEGs$nBN<WNBgA_NEb;#xoSKptMwL}An-ALClY3O33>oeH?ePLo+&T7$T(Vh
z^CSa$9=V6_d|S9NqrCDx#<oyPhghY4RJo53HKm46GxlQ-&l_FsH8+QVu`+baE=(x!
zyqz;dNubSh-Z0r|R`@y?(VgFq0~slD3RIDlBc2-vj<OLFm)?}@3In)YxbAiYzPi3j
zoH2PqHj=tJf-&@)q7F3#5Whotubq~5UGW(-)~uV$2Rr{tLp8aiPV_QXi(+T23~}|j
z7y>28$(1 at 9pjyH^VAT}>v`fZpABKb_>6dewYS<ZclQ2>`mf?J_d+#j7_YEShh4;S3
z754YA0bc;WnoS+^$?ZIu=3Uw2K0J2~JDo{w%yw?%CfJ9nJ4zu7iLD@?CRP;(A&Z*<
z^&Y9!q#5bvj at T8}rD<S&7i$5c+21-}4%DX=)!C at S3HmL%#k9f@!7P$W3+rWIzFD|W
z$mgzfG-qCku^i?Y;30UEWwf!rGh;7KXJ&y!to|4J7D>=Ts?RYT-=$~CrpL!iGIC_c
zfPDN>G!9D6)nh4Vpah&in&BT7ow37D_g}@n3#WDN7zWk6aJ%e=tpuGs=R5|)L}RZ?
z5Dp5bl2M1ZzB7a}fUd4B*2fT8SYt<mx!N0uf<W()fyiWJ^j5Ad0!q*;y8QQnn*-d3
zfqZ-|?2;iTB!Hq7mTciA8hWFU5YoNiUnzWz$HV`sJu9K$7v~e;1tH6bIF3m9HHa<w
z-MgPGwf;(d<>E^bl?CWj7#Wj9>x^2BrP*H1?kT^pWyyRpXz?Vk$c+uDH9TGe?#T5#
zoz~1PO9vE$#-JL^9vDkgwc-g+(~EI%cpJnV{c{rl$_fXu at i9b>EFy>OPEr=ldOi{U
zsw?)Cat+FlDxd~(N?!vLq|Ei?IqLrRAJ9(^JB$mefalickY9!Efdyy&PnTSimOs$k
zV+~T_m$7Bj?1YfE>p2r`_24i<*pwa8kL5lsyZ67l;d<c|!CNo%Z~b@%Dr9=Y+taDb
zcA+d|kkaB22v{*Uyd6?yLdQNqpu<EHN9-C6P&jS%Eo6{@#^dmc=eDzOkIJB>tLH(W
z&tM)lS%q-?1OS^s_&-6PXK8mc)JMk^0D<T`?7o{oi+r5=>t7dWkpKiA;29>N^yt0_
zwX_VB3YP)_2QGs+n-7hB`-EP%0vz}_`{Z^`L_Sm>fXvig&j(hH`_6%)9b{Qy-><R;
zLV-5 at N$6=P2BX_T2xjP)z6 at FlJ<Tw5KnNf~*m`Jd$uZ~xWZM7VcG(O#&D|qjgSv{v
zKCJ<fNrf49W0|<g*&|XTs)5~DfN!#cj|?YBPgLoSkzRkG=YaIIuSV4B`ntJjfz3rP
zqmRc=aQIiD5_Fy{)Rs12S^S8fLZGZl)a+Qo?L|3a0P(`p5PwG{ly_BLiZkLpB;(m8
zx<*HX8+1oxiyr!OQO929TT#UWbqrMlS*S5m0<HtUjeg#%ugY=T&=M^DiV6i>)<_Y}
z at 8>6DM7G!02W(dMruAZ!icH!(OSGUA)s=&wDbS}s=Z2khT1QPtI%kO>P<=s@=E;k~
zf|g03a=Z&{0w;4^FP at KWKVw2v8yOxil{x*@LZi?)eF@@pl{CWSiA$mJ+h4M6-9;6}
z-uKjNP_}+jeS(k at 3rksZJaeL!YF|4uB9eqBn$)7^pW3B#ulcNv#YqRG;F0PDT4RSa
zZf6+!b@=W_;*iG9IupeJ9|1%J8Vg*}_>GDnn(E?7ZLC*171UTJJd;Hbl at rFp5krI#
z7iwcB7ciM!&Kio^8gYYk&5r<a6b^~h7)b;2MTw*pYJZ|qv&>@k4_q_EYUL?*@x4T6
zgO!2I4Vnkch<@roG4w3Y;m6TjNs6&$g0gZli<WSL7d0cWk(6&r=CHh{-O>?VlU9;<
z)fi65!x8O)i3I9Ie7gk7T}+ap2PZ5woPonewpb>Wd6nXk#ULF87<8}S_l>=iyV5@&
zHvW~BFj}<`HXej)Z%EJ8B#1151%1Kz26GU|UXe7%qR(&)<dp>D`z2qNS1r*+iEtyr
z$cyrOsOmyx(M9X=VWFk2WRN3(3WyvxA<-;49D$If_PodA`}?q(Ksl&vJ(}3JEoueo
zo@!A;&W6$Sx{$`mu(wO1=McSuQVbeo1G9EiUgy-W>~Oa31LUMS4bY=8q&C{82IW>4
zOBKQ1(j!kcGDh2=yK~~=Ya}bZRsw}@%h|N}&_f1{LK2W}tQj^yBTRfhRF5MI&3+z3
zCZF7 at IpHAd1E~V>aBbQGwH$@Uw~8gcuWpO!HeWP_Y>@)T^RVnC`JZ;$Eyl>4 at 1&Yk
zXtf|ntFo5R<PMp*yLq(v>^QJ>Qdt*3xM$GsD9HPs(JEfoQD|#DL#P*=IWeWa>zbj&
znHAr~r4Q2u3zkY&nY=*uD9&U9vs_~icDDNkX3+(FFMDlrW-mbnDS|XLL&;l&Ln at DG
zA2i-GWIt!@0iw`BF+|ZX^d;RF5i&8nmKr0nyhT at Y3Zf#80D4<}2fYO4mW2Fok_Jjd
zItw;<rPur(i{!WNZ#)J?#>k>wquI-1E32dlR3Os!o<{Anc~*jDttiNrI`(^!-n^n0
z5=(-RUQ$;U)3d_ctc8j$0AwalAad5tePiF{$CZHmh48F+wMOmz?V9#xvlqNNmX)j8
z5N8{whGh(}zKUW{5sk&=oK5elVvXn-txRK?&huY0Q6H8esnVEge}1q1GWM+JI!Sn2
z4nN@@Jnl~Q5s<B-$X?p#_V}4$g_jbQFJZkL$5--qsNx^Z1HR1_475-E2xI}3!#P>%
z@{1kd+GQ+XNx2#4(`3k1#DL&>+o&@;2P7<^Kn!}4Gqf4?8YmZI69A1oC2<5&F1RHY
zTS$=~bel|CEm{fXNgG&#Y6D>3H7}EFP at +E-FMv=gXwH+DSr1viURj5y-z{iNh%=A<
zq#oPkTZ^(aUd)R5mb5egYT+^^*XKnZr`V*ooF8&O`KH%BMO?v*I6QiFv67NS`5n&C
z5|$w3Z<`o$#A(UZ(S(G8v<$JvOIOyWU+pi_*kw2HvTWhI43P(Dn_vw}hN^%_yu+3t
zfbb6dn!P|`o at zGzp@B|26HCqi<?JDS7E&&N5-97bqi(y3?-1$>Y%N2y-?Obd at uw{{
zw{5vqeefh$M9(yn>L^cpABQl#H^HLo{ZTosqpEo_P^*xtN7s<pGQNOn?dQH>0uqR<
z1*${LbuT08*qAcNZs`61j~@?O8<fc(8!swa1tYzU91iV%zJ?~wH5N_jxn{fP!(%4R
zYty>u0V5mP#<1HtsjS)Ywu`j4iwGziL6JHUG9(88Ay^3st)H}Jo?sTjmtN4;iu$92
z&jLm!9fL|GbV7kIr<Q!6_zbF>iZv%lvJzMVkrTt-SI;Zh6wfygFRzRw(r@`&f!s$5
zA!8>tBlR5B5_Jtg{4fMC3+!l6QKD_zHKXaQGgIj=D0?Z~Z at RE~EkI+cW4s_1q at IjJ
zdd#qAL?!tvZCvY|$UPBx>cTmmrJ`xRz%`?~6dEc}S`&9Rmi_D2&8t>?e8?93-S>)G
zxQK_TJ~u&sI72W$&He*MI=yRnOzN?@sPu85(ZOU4rK)rKe)Z?o`6xa@`QrQeMAC)`
zh+RyvS{=t#Q?J~OpoJVEYCfB^CrAJ$d2tc+b3T(c*UZsAzKayJe+u7=Yz(O^XQ+EY
z`tW*lv%Cqw7Boan3kvhD4`ZGgrUT;Cq*>in-}kAlJB0JM((38<6W=k-N=--a-5a-H
z6lgkE;v!des)>F-k|5=8Y+y2f_skPit!WG7g~bsmRf1BRtM|09zK){m$KT5(=y{YY
zo$;ZRLPm*=%F9pU0=-;sVWSx*a%EB(x*(4Df%q+gPCAT9C^92PviFT=Dy`5ZD{Z at 5
zS7|1{fpd>hD^xD+sD%Owf>B(VFIrxG-`r5W3_95k_{{28Tts?372J0MrGO_M+EW)@
zZ*DwAfc`zOv|H at wNbj-dC3#{mNT^B4vY?)<fmS4%Kf<voZ2vmpw1m`(58w_I!w_!Q
zQgr%_zE!2 at R!>+IMfHHIjEa~@0?2YUAwp~^%1A#eVVNSa(sTOu&MnERFa!lcd`0xu
zsoN>^beA3##Y at t4htaS2XH$A+ at 383}ILSFAOEuj|?J>j}Zw&pM-t7BwZgclZdN!^n
z|D}}V at e{Kf5^6UQP`*WYL-C#T3n1S0l!E~DdbRe_om6V+cA$ZG!aZCrVzJXum}eoJ
zV9p9BC_)K$Zm{idx8{VCp9_dn2|I0Vt?^A3{KI{yB`^vDc7vaYFOW{HK at FBxX5F7O
zoxbW-^`{iXjNn!rcWVk?@KC)u^JTI at p16Wynp9Jl>T!KXgFX>(8(Kn;h)>!%X!_s^
zwyxEgn9s&0l~cY{30k{QL`so;g2{ku&45t|q#vBnz8oy=7yS)jL(k_uLy_8_K43zT
zI$>t2jQRk$Re+<dZRlWc<&C}E3lM>#UQ7W^RdIk`%AwbuiAhf|IdCmvdhUR9GjJHP
zrXeTdfEX at Sd5*xh;4-%m_U4AyYj4p54Ejua=mEuHkPS5)JaX_$w`0#wTJ<p&sHh`=
zI1~w=6!Na>fIc%Q?9E4~u>0=iZB%N)E;@;Y0T=$Rv3>!J!;k|Mi}N%}F<;ptIQa7I
zo2!oonA|xF1 at P2T>iToaB`h{=8zc%)pa<jtirznH{tGGKROol<PbefV+1T-nOW~DE
zH&Z-G#pm+jHT86Gp3$yy5}Gfq?xn^QZMONZuPa{u_|HK;y4YOiIpurS>wWnf_Muu1
z=1TRfJzWE{YJU$WUM6#749Ksp()@yfz7=>`6fLL`%9C~l(`eVWL*hwjBzLrHq-yY)
zsik?x^|*KBTSL%7+)R;0$SUx05$p|&Cgg<HUEa#7%cS4{_7E;7z?4FZY7Xf0wM?2N
zgxj6iV%}w}zPiqWM{BFoE=C0#NE{cTKo1#yttpAAEx$z*p3)3bYp7I5uMh34)##_!
z<siD!du at z#=Wp9hda*_W%fm=<=st=5l*3M3h4Mc%N~iYZ*P&7mt($g7u&dJ(A3EJ@
zi3VLLr{86ad<=(A#u0mlQ_NzsC~wIIz60;O#LArM!U?%Mk3gjARYBrH5Rr5~>8;wo
zb}^_y8Hds{DzIsIABbiR+>2?Qizmyh>0%Ff#6}1=twZtr32)T#<|qr{BaBksr(ot>
ztrG`(UuP|_(-Syygal|3;y4IJ>Ygpr!v-AC2pgmV7NJDyazQmwI739Ns9U3!Lh~ih
z&D>(;=a;oHG_eJpA!ykg9~9L^Ms#(TbTN$$&m|HUM>n>1mQll+Jr<sgO{dMDy~jpa
z!saqij^ZMi9r$L7F`8cjBQ%7idpy31NHBE=F;E=QmYSK^D at 3;O@?x;!Uz0RcOGXxH
zs*V**Dtr5-B`N9iTf(D(UukCzR-%U$4*+;BV~?&LVc0n!Ex at Rz=I#YWaY)zyialf$
zAiMf6NvG?=zcKj#`VmOtf0Y1+s6dD?w*RYq|8 at XR<K=CFb`o30sa}m8ak!>_br)Da
zEEuS`?=FFbjyBv$NNI#F at _AM7MhhUN1r_8RG**)Z3(Dwp^Lom^)Sv!&t`>n{mMhf6
z6QLO=NVjQN0s21J-=8n}zJ?tK**E^@<bC2UC<PxBMx^SW at _ft`38|EMAo1S%%x07h
zF!%VS0}ydoS>Zdy=rvzZ*#F<37TF0lX+3#+FU?;!$5$3&$FO$sjsUz0SIB7Xz4c89
z<_c=p at 9hGSSJKsQL!H2x!@!^*(`c&J23Z1uoRc|4a5kUxoB}ncuvI-jf9)I{=W;-^
zyF(CK+-!u{`|(#ANN1#q;B8atBO_Wt=pyBC8^23XRf}4+4J^GNjF75UUboP>ua2LR
zhKgPc8eYbht$YhPg3SAFJO2iF{=Zja6XT8}3Q{1x(19T)>sj)WWhB&6JVPqNXksdm
zWDX+`mO^>x>ZSe;k=~3CoexSE5Qy+Li=wc06i1MHA}}3{{V<Pc{XW|--l5o$hy5Y1
zNAIX_5s#j444#9WUi4OD1VW4ck+GV$Ql$x at cb}aON--B9VV{V6G{gQgJO1aVlM=Y;
zNl+Tc4l+o5T|a=qQRrM<uni<{*en147xk`xDHVpKKwPpWl8adv60%pxhFA5Ow{(Nv
z5MrpwfBQIRMpc-&(Kp+xxaeRTm-0)yz8{15haD9vSl=ghbsMBbQEjZ&C0Pmcf7oet
z0)Z-m*VhXQ-dS`FwzY7c(=szdJEQwRXvuIuporHN8{X?)R88EGR$Q&IH#1Ndne#lA
zUW5mfLx_OkRkUxdXjyCQUDe_tK}1r~Mer<LO9?#Pw8+>}Em>Ka8qv#MXJX&c*#U_n
zu<%xQ8rTV7jFXMPEkG}fK%@fweLc{v{1=3xh?F+Hlxs~wI+jHU4T#|fzlK-ooIeMm
zYKS6pr>SgE<iBNC|INDmua9)DGi(4umOt~@_lN>wLwqL|lM67Pc2Hi>{g}qh1OM at f
zqPDXw!QUE(C&tnBaJTkX7S7iU!Kgva%_Y(Gn1$N&&TZ&d|2$_{s{ma|S*Xj8X{yYc
zl;;c=d3^S7bEd#qU?v`505LoNlH9BOhk$CZ8c?guZxK#`=nv?iQOr#!2OVE@`e2uM
z0zD>Rh5J09WxK%%>GyNi)&=Q7R*eQX55Wi^11!;Bc?K!Eo6<{H7ABy8U<%TiJ_zXZ
zWnq4EV`=k6G{hqTL=y at 815eP!N{F7PF(y#9f(^z$VidVRUqc1j8EO7tEslQ&V?B8K
zKJ7*oEk0*;0_sT-B|#5Y?igmkv at e5nqu*$PUBMW72o#pGS2N|(=a&dWc)TS^Ld`MW
zx0||3>j at ar>jRx`WJ$a&4_SjcHgL^ZsUStvy^1a=V0v<=?CJ9naak0zsL+P*4OR1#
zP}T|tYm6S;Gx}())D4<Z6AFkfvk7;srGv5%#cQMp5<fyEcvgisUymcmidyQY4Dt}u
zYry0E9xsihg=CAal#OD9Zb3bEupL|A2W_k%e>N(RXqiwBmiicCed!f5Tg%Fc8E5u*
zaYX)x^9;D-Fx9`N3VIOkrmGoXzRM?pW)Y|!OjC_3MHk8FnF5Knm*EFn0vK$Ak&Z*W
zP}6}LqdUwY^+zMN?2Pd7 at -7KM;n*_B=*}Y$N=Yfc-8Nu~R{*iSh&OAInz8Vy(Jbxf
zB*c3t%Bi at H6)fULhK{4hhGouYI?jW(0pJ)kVRS+op*XOuCn4 at 4eUguHDijmZkB21d
zAI5 at ofFeXOT&&`P5|T?`eJ2ga$6)+FPXPZ!zX<>aBf9_o>@&LE1X2XG#u!m3bsLu3
zg_BVJSgb5Tap%- at pt+358DKW(YjDIDWEmUC&Om!!Oan~>6$_Hq+Vbj$NfIcT7P%;9
zMJ0O^!iZ|{&1BkzJ3Mtp(;IgwJVyQDoHe_bI%$zLKT7T^Zv-6Q7Cz(`opt5f?_%FD
zaY2OArKMLi8ky<-1jU6Mah#>i-=2-2A9 at ujb=7vrJUIn51e^uvBykh6u6^hsa|~R|
zF>ur2GfR|oo(N0LZ2*M`=yv8-GaP?*zH7X&Yj*yuX9gIj`w$>4j8KvVoyXDP?J&1>
z3p1=4s2c{%@LmM-7or-TFOyx$^(?DCz<#VO at 1*)n_}_te1icFYDCZc2_lpLf1rYg9
zXz at zZ+6Q5|fv!A&9hTO=m7CV2{jdWwXQWx_gEds2B3gW4i{4|cTRXrAju2Vqa-`r=
ze&Aq at t4a8(M<{aMn`bY$;mS>jI?OU{g;4`38vuQO5OQiz!DKV6wIWf80wuU$kW-hF
z(583>b<NP15(*0>hFbT>va-Qp%nsd!qBUvWN3#-_t9*CjXxKkcFX8^BUfC&WYT(t=
zchYF{^Q&NB7#JQvQ3<lldDGE!+9+sgfq}sv+|<TbI{t-_oM+IE#O1Xz0h5$PqFKm#
zT85G{m8 at eARLW^rAP^_Br~*m=jzJNGt0WDm37AZT1ZbLvAi2B^3PmGKXmP;60qT6>
z1{E{ZX{y3k7H|eD{B%4&pl0c7TI5PraqEY~o-|S4>epR168zoh&$L%G)u*|^SSc8_
zC$A2b{DTOF?Pr*j1WgHCjMpFH#Bh)*jVuqYt`@ekTlcl%Xq{b1sA2`K6Tk5%n9m$j
z8g^;RnN|IJv5*3Zu>eTa?uODVJjGf$3F+ at x346&H>?1s}MeJ3syT+SWmHpW^_NLtf
zlsmsyF$)SIN0T1zfz-N-Hs8E>w1=DOqls-z-1K+y0;8k?N}xN+-@&~4XT;AS;xHZi
zL}+*mxY)Md*A1Hu_XxoVtKMg32Mn*Y21I9Yr9zXf#(kSzb6o~~T?R6;?g+<xqdw5*
zG$x*wgpeXm>RHM at kO(xI7|m(8lOvzJ&OtVicx8Ui)o1dmN^3whd(P-ai1az%!Ti>-
z<~dU{k^Ip8Z-k&BE=m^1tFWWxKPNfRSoIyROJeK{cfEZw%}ka_suP_9L19uNQFVgK
z1n{Z2)8$1jxC?b=lXNUo!m?$Ue>QjtHj&U5%&e-jXd#+xbm?}DO4Rc?eY>^=)L-!>
zUd{e*_hwO!*fq2OJ at l!7r2Z22DR>E?y<T*7HNqd*(@c%HPwMKwD~+&bt-Ap}ppYB6
zN;?uQxwjt5=Y}-G(r$yd88*%&C6$?}8{T$JQuBICsh}ik(u;Gd8ghH7J=3j~(>Eqt
zTYvyu#_oZvHGmn46d?Bwy>tNiE-+ at nuwsHx7%&mU0)oyo__6Q-Ca5#|7OLjcN7A5r
z4HPs8)qn;7Xky4ExlLHs_e^N%_!Tgdvla&R{^a#%U!li?;b2%aVyCUDQve*44vL&-
z#Q5l^viYRY)|Qp at gY`4-$oonEw?2Fv2h at k>>p4m_wZ>jG1 at j01^=s5piAe1yo<xjP
zQz#Be+~^E|D{RQ at 4Xg@K#rh8JCeKL&)5^h4Xc&n__Uo0Rp3W+E{W?hU1Cy6Q#L at rV
zc8A<|j|Dc@?$3tVgN at q?#}EKsquqVndvUo!1sN0LrBSK5ng?{JKKQmeyTa2noxf>f
zc&N)yY0ZPb!_F)*gT~PYaLI-S9t-_FLq)&Bs-vwiplf-3V$rd_Tc5SN*x<YdsxRco
zVQOhwooGSvadYfjS-za23vCF+Brxx}+6xl;Cue~w`Is7*jFf8r?4PxmaW|dFtW5Rf
z*ZWk_+xoHw8htlS%aAO`BOOEQ!F)|h>>DSl1FxEK)`RxWA_8sA6!a+qHaqSve800=
ze>-oZvUjGynVs;A?!VnT^qV>bIoo<O_fz?%M9)gx<`ukxb+4s-S9L$WJ)G%-r=dyV
za%Q2j?0Ym at Zq!s!gT_R9E>4V>R0N#P740kbK#(_bNwi5pmApeFl9`Y at siISGTal;g
zzWFXsFgN4~YLynZgNW1q_v|=TnM;;9UwK!1BMwh=Lk_%2?yRTOU_B+nETJtn1XPmr
zdicifUvPxt2>~S_5AoWKr at _AyVC0|#-eOsQDk~#v;Si2!%`69c4mjj>EgXK8c0n#P
zOYUn1koKGow~2t_#Xvs(N^T#x+0rArEEmdp7R_ at AB2HFg3Yg{-md2 at 7Y>=17NF6p2
z%GOGVDyX5LI}ZVgZ(l~-CDPrn50nX#g#tUU@~C@({d}zOcAFRaU}z8I5um3Gis|&Z
zpeZs2#i8Ye>5H>%4c*De at xhcZvQ^Nktoxg}Fg at s;t3lN(yu%?M(mJQPWZX9sM{P_v
zyo+&2=NH7b3{iE8EL55K7|#a>QC at 5<C8L~QW9E84#^zIqO>;$rEC3AZAe*Mwi5g(f
z{D#FXFJ+r{L4H65J8~I#6-mFQ^XP(76i(Mw)D@^Ka0xxxb)q)Li*0<d;e1KF5us3Z
z=SKh)%qvl-skxH~1aJMF?h_M$xG-H{M}bunD#*u&jgKpYCF)tWnZ0R;nhJCrwP*U*
zQa;Dtg~DeL>7s56n8gXv2eHU=d-cR*v-U#k=w<?z#|k$vrken;aUThok&GZBv;RF`
z^$WMJ-u3kos)>1c-Q4?kakW^PQpr)^)WGXOQV8$X`GArmku?(L^i!+E5V4 at 4nn{ba
zJBlBCmL?af>b%^r{xILp7vJ@<@TfJh^H9p_(FGUDSu6D}CG8t_L^mY%{!AC`Iq-!d
zh#Z+{)X-_4C*>*{(bZ<&I)&=0skhC0W;!%OyEtU}Ie<CaL%mXtnal3^?$>qh%oFu4
z+cc?a6pqN>5!7toUXH1fA#a})KnUZYQc_fEU>9$9l7WqFGxtzOr|e~Q!45N3ypjRU
z4DBTN5JPGPC9ZV9CGeKRKty!wE2#|~vW)&5$*&)cg;iX{Hh>yrQHG- at wQ+J748+(G
z@<Ia6_I$=H?O&?dtvd{QWm*O%wvoo#sDbv;q|woLz<^67y~(c;bu<SBd%J_d)s9d7
zAlnKWDbxM?e;AN2KLqSygKEHRp#8xKn5zv&8yVL=qH60Sxd3Z{;l5GM2L-I4N)IuQ
z9(qE^Lr+3!IWXA&@wLI7ER=5!t1!pf&N#l$l83>*YXl at P{pZV>TQ72gw=lu`ssHf?
hCn#8Lz34fxrrfxeA0=-25xNAsqIOL+_tK4r{|C>0UKRiV

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded
new file mode 100644
index 000000000000000..2b952bbc49d374d
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded
@@ -0,0 +1,1255 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 735,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 65,
+        "y": 420
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 29",
+      "size": {
+        "h": 130,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 270
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 22",
+      "size": {
+        "h": 115,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 110,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n$(graphNodeShowFieldsAttrs)\n",
+      "loc": {
+        "x": 65,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 39",
+      "size": {
+        "h": 20,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 395,
+        "y": 420
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 24",
+      "size": {
+        "h": 130,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 395,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 19",
+      "size": {
+        "h": 115,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 395,
+        "y": 310
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 23",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 470,
+        "y": 570
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 46",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 140,
+        "y": 570
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 47",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 395,
+        "y": 650
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 26",
+      "size": {
+        "h": 45,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 395,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "SubstTemplateTypeParmType 27",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 65,
+        "y": 650
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 31",
+      "size": {
+        "h": 45,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 65,
+        "y": 720
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 28",
+      "size": {
+        "h": 45,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T identity(T t);\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 395,
+        "y": 30
+      },
+      "name": "Source Code pt. 1",
+      "size": {
+        "h": 100,
+        "w": 130
+      }
+    },
+    {
+      "attributes": "template <>\nint S<int>::identity(int t)\n{\n  return t;\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 520,
+        "y": 30
+      },
+      "name": "Source Code pt. 2",
+      "size": {
+        "h": 100,
+        "w": 135
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 28": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXMethodDecl 19": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 21"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-espec.cc:6:17",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:6:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 20"},
+      "RD::First": {"ptr": "CXXMethodDecl 19"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 19"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-of-espec.cc:6:3, col:17>, TemplateTypeParm(\"T\", <in/src/ct-cont-of-espec.cc:6:3>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 24": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 26"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-espec.cc:6:17",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:6:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:10:13",
+      "LookupPtr": "null",
+      "MSI": {"ptr": "MemberSpecializationInfo 46"},
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 25"},
+      "RD::First": {"ptr": "CXXMethodDecl 24"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 29"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-of-espec.cc:6:3, col:17>, SubstTemplateTypeParm(\"int\", <in/src/ct-cont-of-espec.cc:6:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "CXXMethodDecl 19"},
+      "getMemberSpecializationInfo()": {"ptr": "MemberSpecializationInfo 46"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 19"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_MemberSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXMethodDecl 29": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 33"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 31"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-espec.cc:13:1",
+      "FirstDecl": {"ptr": "ParmVarDecl 32"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:10:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 32"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-espec.cc:10:13",
+      "LookupPtr": "null",
+      "MSI": {"ptr": "MemberSpecializationInfo 47"},
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "1",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 32"},
+      "QualifierLoc": "\"S<int>::\" at <in/src/ct-cont-of-espec.cc:10:5, col:11>",
+      "RD::First": {"ptr": "CXXMethodDecl 24"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 24"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-of-espec.cc:10:1, col:27>, Builtin(\"int\", <in/src/ct-cont-of-espec.cc:10:1>, NullTypeLoc))",
+      "TPL[0]": "\"template <>\"",
+      "TPL[0]->Flags": "",
+      "TPL[0]->LAngleLoc": "in/src/ct-cont-of-espec.cc:9:10",
+      "TPL[0]->NumTParams": "0",
+      "TPL[0]->RAngleLoc": "in/src/ct-cont-of-espec.cc:9:11",
+      "TPL[0]->Requires": {"ptr": "null"},
+      "TPL[0]->TemplateLoc": "in/src/ct-cont-of-espec.cc:9:1",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "CXXMethodDecl 19"},
+      "getMemberSpecializationInfo()": {"ptr": "MemberSpecializationInfo 47"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 19"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_MemberSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-of-espec.cc:5:10, line:7:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 42"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-espec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "25626663",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 41"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-espec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 41"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 23": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-espec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 24"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 23"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 44"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 37": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 38": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 39"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-espec.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 29"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-of-espec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-of-espec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-of-espec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 39": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 48"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-of-espec.cc:5:10, line:7:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 45"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 23"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 24"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-espec.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-espec.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "27338745",
+      "PointOfInstantiation": "in/src/ct-cont-of-espec.cc:10:5",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 44"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 33": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 36": {
+      "D": {"ptr": "ParmVarDecl 32"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-of-espec.cc:12:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 42": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 45": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FunctionProtoType 21": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 43"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 26": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 31"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 31": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 43": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "ImplicitCastExpr 35": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 41": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 48"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "MemberSpecializationInfo 46": {
+      "Member": {"ptr": "CXXMethodDecl 19"},
+      "PointOfInstantiation": "<invalid loc>",
+      "TemplateSpecializationKind": "TSK_ExplicitSpecialization"
+    },
+    "MemberSpecializationInfo 47": {
+      "Member": {"ptr": "CXXMethodDecl 19"},
+      "PointOfInstantiation": "<invalid loc>",
+      "TemplateSpecializationKind": "TSK_ExplicitSpecialization"
+    },
+    "ParmVarDecl 20": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 19"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-of-espec.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 25": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 24"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 24"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-of-espec.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 32": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 29"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-espec.cc:10:22",
+      "LDC": {"ptr": "CXXMethodDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:10:26",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-of-espec.cc:10:22>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 38"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 44": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 37"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 34": {},
+    "SubstTemplateTypeParmType 27": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 22"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 30": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 44"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 44"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 44"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 48": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 49"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 49"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 49": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 49"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-espec.cc:4:17",
+      "LocStart": "in/src/ct-cont-of-espec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 40"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 40": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "CXXMethodDecl 29"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType",
+      "redecls_size()",
+      "NextInContext",
+      "MSI",
+      "Member",
+      "ResultType",
+      "paramType[0]",
+      "TP->NumTParams",
+      "TP",
+      "TPL[0]->NumTParams",
+      "TPL[0]"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-of-espec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "TdD",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 85,
+        "y": 140
+      }],
+      "end": {"entityRef": 5},
+      "label": "Cmn",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 370,
+        "y": 310
+      }],
+      "end": {"entityRef": 2},
+      "label": "ST.CTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "FirstDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "NextInContext",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "MSI",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 705,
+        "y": 230
+      }],
+      "end": {"entityRef": 7},
+      "label": "Member",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "MSI",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 340,
+          "y": 645
+        },
+        {
+          "x": 705,
+          "y": 230
+        }
+      ],
+      "end": {"entityRef": 7},
+      "label": "Member",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "RD::Prev",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "RD::Prev",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 390,
+        "y": 430
+      }],
+      "end": {"entityRef": 6},
+      "label": "RD::First",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "LDC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 405,
+        "y": 570
+      }],
+      "end": {"entityRef": 11},
+      "label": "DeclType",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "ResultType",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 75,
+        "y": 570
+      }],
+      "end": {"entityRef": 13},
+      "label": "DeclType",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "ResultType",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "Canon",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 11}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 795,
+    "w": 719
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-of-espec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2e488108a8df8612593eeb0afc44a868a3b1e95
GIT binary patch
literal 26555
zcma%jc|4Tw`>&lWNm;W-QI^DHA5=t2NrmhcW at Jrc8T(dJwvZUhD2lRX&oZ{kI!r3d
z*hNORnHo&?bI+*n?|07Ych2khqmSo#?&Z3#>$>09>ht*O6+<re!|Zf)bX-Ok^smv;
zG2rOv7=_tbz?<>{q$VBRLB at a^H@)>d-QAr$yy at tWnM<~To+Ii9cV#2)g}!1{bJcc}
z8P5q at I9+o#c?e#Q*FJsz#m&mxVtN173+X*;^%I;%_-Fc^Nz+Hi&X+CaJip*#x7Bk`
z{h8Pet#`}uqN$nI967$Z64G2L$izb$M{m?;i`^K^E*N87EgbH*;###^I^5&Q)t}qb
z-)UI&a$~S5`R+<~v(<R!rmBWUt8n;_hb4R(jg&q_j+C+wAJ=eHZ#L7TdeeGQ#<u$F
z^#SCOnzl%n^QMzF?L0c>+k at j!A&;PG#_*3-AH*uz>}>;5(JO0D#~wbyiVQAomWVfB
zXx}-#pU-Wd+CW34kYe7+Q&O=3_g4zS%62 at PvJ&UoYEE3*xScN3<E)Gx)`H6#)|+N{
z53+yQXDNSH at xk4X*f+0M-M%ek87Au5CB1d1?alu7G413^?8!>_q`}wpXQDlB{c5jx
zP#g4+qs7V6jXjGO7Aj at G^gfpRajD=@dxmMv2t|Nn;(9FB?Q`~RWx+>U>7BD2*qH}^
zii->-?7CY&Bho_7HN12`;@`63GhKVeS^Hb*XSZ{W1~O=_UXO;#JoSbXuF5O6aCWx>
z2WO*(yTb`-qN=;rRa1+x at +C%3+sY1k&dR~8_cODay_`Ju<0Yy-)sX)5vYptS(Nned
z2jAA#So>&b#bZv~hj4Cnw0rSs=iW(1LD`7sZ_a;f>-7o}HF(V3?Dfd}-L0a|s at H1S
z&#D at KtfL`Sqaq1QV|RN#+nsY2wk#~g_?1l?#J8{bT+MnLEob8o`6PG-)qq(!cT?F|
z%Bcuy6YxaYR3xKBY?&f`ab=!xi8zAOh~F`^0V3W!7 at krl&U!s(CEUeHXbGOmZIwJ7
zW_t0&(>dgs3E at AxBOZR|#q46w3_n{8)AyP@!SluX;pp at 6(F-1`hiwx%-mTWY)Ewv9
zm)Y_A_?M6kY+Kn+J$$QcSGMj3t{wwp+|l#-{Ro37{wctR=eNH5C?Il|Z#ZI^h`79J
zUf8nBemNB5C7I+|n8CGU;T$-R^^`oX^S;l+IiRqQ$4IRC$-R?8qhaAMgD)LL#Xv`@
zzp at -&G04yQ9)Cblao<gAmq!Lsm|v-ZKeB`gk3SDvF>0rJct4o^pnkJX*~>dj%T4}^
zl6OPHIdAfdK9^SUms8P0>jXWiZ&A-(Q0R5M4qXvlL0t8a-tg5cM0G3u`-RTwe=MA3
z<zM#QXVyPE!r!9r`aOj-9wVQ2Z2q+-rYzzTA3FI{rZ*%lcHP_{udko)^w*Whpl<U#
zr^Sc8qf*sL%Skb)mlmGvWNw~ZwMMJ9!2`o|6U3lRG0&4yys-lHCw+D2OG|(7dm?wY
zc<IlLF&6Xiidzf!*to`XPYP`4=wG(a^}BM^W@{4ZtNMme^XB5OTKZa_4pCW4e8wax
z_Mp+dm!>Wq*e7FiA4+47hc#KV6}mB>Syb>2A>ySn6BbLRw|QB<X6N-SoOntZ&c;X|
zVY;*V^={4B>q}oLg2KH)&aSqP=w9CYIkfLw`cP+#>=Ab2{VSnm5)s~#(Sj#l^B`a{
zyz%h;`%dlh-WlEJZW7<yZV}n+3zd7{ZjLr&c;PK#dA9Pgjm_muk1zdi&Ga`;U>#hq
zq=`u#JId2l7m;RFiP}A8w||gP^~Q4xJz)Zxa4;q0ii5ichrc9?q100WW5ud{aYw4l
z`Hyd#^xzh%1-)!<(p#TXDI1)7GxGYP(J!>B|F|35z>RSi<J5IF-t9ufDd!gstqKxO
z_XAV05{ms%zw>OAxR~FuV1K&nbw<UjUwp{(f}j!278q_|_Y#(r$bx$P!HN;VP_RG$
zfXD%@BicW!D6)z{&Y=vq<Cupd_}9E96^Dk8{<Qi0)|vkL=O96Kj#EUgXGd!Wd0$Q*
z88{MNqgFBc)UA)ZqT$DwEF#hS9Z&1KIL-C2wImzXb;Tep-_FVXv-gnG@)`rdD?#t?
z5WFna#3Q>i5D#$C-vk}*ys&&Suq5tmYaglA?peGqu~wu7*Cw;j{>;g}QCncRM)sw)
z at hf)c(!ukaDW-#ZL3i73B|Hilq1#Pvt;0&0KlsDN|NC@@{TX6R06j`VwJtL1 at Bv{Y
zTj{-}SiPVA+@>n`iJLL6#RFAKe0V?n+0^22$bX4}d8^dI5A?NtwjVH*P=;qc2=cR>
z7x-ONq|Nl+D2?rThK)bJZXbTwB(t5vrTCj(rsk1;hOWF4#@qM*cyc~_nIrf$)g?))
z{sy0%?0Lth=VBb{qoix(>>YJd6wg&DMfi9dK>e at wY~QlSw>ls%GIK^8s)(DPA6Teq
zca6PpGHb1&w%*@Gto8asyEpy?15X#!Yn2M1nbK>Lp&ze=`L`E6KBjQ+Mv=1eevzB;
z3rMo#t<Sea4!$k?ld-<o%bktE;I8D`D(j3mTo=yj+%bwS89sK?<P?Ig56>W0`$?K!
zooD__T8-T4Hhye+6hqX7x~!ATc{?+2nkQsd6;Wv~K3BL+uMTc~wcZCeG<Ph{PHQYl
z!;Z}c-#0+B4i$aGUnyF*UlhkGdM at ZXnb-X|T-dLDt49{O&5ziKNEJ2INfWxpgSNc%
zqxZ1~uPyx!W6_O6HuLYt(=T~et at _rx^VXHw{JuKh_Pf|z;JyD!lz7R;bJl~x5u#|M
zl(J#nS<`d5`;1$aMy at 4aW`B<qIl#cMBJn(34nDB0IG`Z(vG10zesMsQUPM>I_N~_)
zX0aL}5dV61MH47?`cTFdj%Q+AN|#+&|CnT8NwV?EZ00SkIwQPKB{!2k{|>+I>g8 at 7
z-0j19>EO*5H4JQ4>k;3u#<v4no+)^9R(?>OlmB_`m{$rq>0x)$!Kb+%M;_fTe4+F4
zO^Dp_<Ym*VyjtNQz26=W9LO-J>E9lEIVwANBQt84AB#TLw5z_ at waonN+%rzE!F&Ch
zbKdEXvRv- at T-{f)ziYDKu=#fLOCswd?`b11=NQf|T^?^c>C4-9PJMhnJJRyh<3{+A
z@%a<CoU6{KrF*%C^M1c^ZB+k|lw9+j)5_13n`E91zjq5cdqa7S;ndc5`BcI8EJu&F
zD3qC*<GplPHgj>zms__BJJL&^sD3ov-(^r+RbnF(`=D2O=y|E$CPyjL@~4B8VvAU_
zve{C%>dNoKOG^HiS>&ycFs88eTzP#k9*+?-aGn}43y(~BVQ{v)^Xg^7cXO2|^1IKC
z+Rd(fLK(@POpf~c=hKrD>VmTpKTVTD3KIh$mh(M2vgd9TUuS1=Vk`H*pW1Uk at Z`Sv
z0D3+RR;#;jEDj#-5|!7pdrp^lU)rl?Ae-{@EK|Xm*QX*fnz&68?(H}&zrr?HNzl1(
zop^n%?CZ}I23Ki&%hQ!tI^L$O_gu8wX- at 5^)HXd>oQXetSA`u)ti7 at B%P_dx<|xc@
zd4 at DLYUvU8@TS(8U&NCi29#nW;~z8M*Atg~+afRg$bHB~mQ7i%r-5t#tM~RPXS|{K
z(r3?&bRUkaIc`nKTCTiezNUL3t*Ij`R^ellNQ|P{;a=sM<D(2WM@%j_$e|a<Iw$Y!
zO4hhy&Mg=}Cf0~2s at 1*1SoFI&7QP5}y7^IzX*8i9`QkGMHjq2-a+W{QZU0GSAK@|9
zfJE&A0j2@%Le+fql{cHS2FX at zL0@z#s^|`$l7!r&55H4cmM at XJwfw$vF_I!+%U5&k
zPbZ~7E%m^he2&Ox&4AwR$w)zxiGdFc|L{lKg9OB{srhF+vkxUv#m59!v-rM9DJQq|
zoq2r+!>mn;eq^t2r$EOoKf{?h;&bn#e3D0Rwx~=!Im7A$Q at fEg@rDjbQ~w0y_`G0z
z%Oxe!9cUQ&L~fQq-_^o%g})-3NcSh~$Kj<}>oxiVB?8}-BAJ~-`{fb)!Xo`-j~rJ(
z6Y at FCRUThHjmL5P@~eA4BPIX7 at XfNM15Dt`oK3yHi#t?o>($yUISgyrPx at RX;yF2d
zx*)P6?$LLdBV(K844dETDAUn)3>lv*M}1yw9A%5X<Uy};O#~t2P?XH4T6gUa{ghwc
z%LaOKm)EUYnTqSI&A6Oyk>!5K#mG7Oit8)vwgwTiZ!_n8==XI86q|9zmTJApK6d8w
zh78@=*Qb_QPj7`qiGRMz!1aafaH?}|>Vr3L1RuIIb?A`!;g*Hjg}n0ACUf&9m)|0x
zY)Q!?ZrwkEugP?)Sm|EQe%O>OZ;V+!SJ{!E at b><ZN{$CtF~&8~mzC1wv<>aM+_Ox-
z$S5Q~G18c3=?~!>CWkw#xRAH!Kf at 0@t^DXI8$FJNX^f4;$&jvl^`7#uKn$=;RbP1-
zZ&lubEU5Z$uhI(2>(PDv$wk?(ns<op(nx00JBHHv<x>2lBDaG#&99n1jqV!w(*5($
zL3JYorR&O;7aa+kN0brKyocIzcTOEGTZ-KMjnSYiC3)Y^W0Em!I6YW at Yz_e*;h4=V
z%oRf`bMk-7zj&qIO#307atngAUQQQ47=PVP`t`_)Y$F_8VO4E>*W%%`Q$g0)b_28D
zWgnRCkwkUv`}-}!^>@?0U1jny>LRsY4>h8T%gH!P$M&t=ail;ptMFERGA14M_FX$q
zdvGH$e7Ek2wp+aBr_9+lk!!QfqaN}Zujk~fd_}ppaS+m?N1JY2v$)UGUw4;AKl?cm
z4l+IZkyRYq5zF-Fi(-8eo-iHPl=0HF=VWlHBkHv-OPALcap2p6Sn`+EENeA`Ge=*r
z=r6DjF&mB1HQqIF at v~Ar+Wx$&$@1t4x8rxcZ{JSUuQpJXOj%N!X;Zn}`99^o#kx#f
za#sC{l&0_r+(|}@X95CtadTQ_L;SIw)weEU1SN3=T~p2+zCU7?4$2z|@2*_>o$+BL
zQ(uZ9A at d+M=$3Ayl9?BBZntkUk|=X0T?XyoQn+)bTtGBMK8W-1qpvP;WMqq)yH_dN
zu2ouluq>%oHqojd^L2(#l#ZiSHb>v5mH)-3>IZ|yCjv#j*4qZLTnU!LtCswfa+97f
zdMa0LrsvLQXk2`D at X))Ur44ny_=%ZhrhfCDM_Oh}uk!B570<G-Y+gXWMn(L#Q}M2Z
zJf8J0I`Mt!+BKX6qVvMtV~%oX>zVU;3q<c+Y|XfF!OHwjeObAAz*Fb?cfF3pski(N
z>5JZLvP_vbf`pnkOD}QQptF?vo~1pMc=v7~@5`$(!2-V3;=0tUpPt-p=)&`1b{&<C
zaUYYuJIL6a#|fS$@q7%XukDw1eD}ajMfsqUdr%%H-*KKVch30-=R0>5`Z at F~ynhD0
znqq$8cb6Q0Q~&V<8;co_H&LVS3%c^os--Abf4bK8yR!;E#JsFh at H7XqZ&1F$=sBBB
z at rkLF6<BF$Ly|Y7yYADc?O~_w^1|>S$``W0zS5Yhjuh+pl$WG16r|l0djAoTcWEDS
z>HNA{k}xMX{`I}pB*#(C*+Vidk&Xw?LC)MLkdM!Md$3I~mHx*1g7S_J<2rL at +@Cx?
z6$>VGrA<>Tvv$y7r-!_q0i!dYtz>`SbTI4`=Hloc>vpM+i8-}ClB8_bhq`ZicS%+u
zNR+#M;RE}=L!Y#GxK_Exp>kz6-dy)Kc=6_9HrEl%+yiFMil^TO99&0Tjcw1lmdmJJ
zL0<HDEaxA)W_jS at GacX1^f(T)sb*uTl&{V+<CLsnqi&3g6o=EIihk#Ea{BPYUN`UA
z-pbFA(_d11i^hG)8rmqlR_QPD*)Y1zP2Co8-FU~dy^TJ>T)m;Yl&9>+Bs}hSeg7JH
zF$N(v1b?)A1bw~!kDdEqo%GEOhH*ykmew~nq_P?*S`+v;Uo7S3+}N{zxn0KRCU!Ra
zJ>qd-v{^s<TRTCz at q~tMz$HOZlT3G9+P4{}$SU>=Dt}VtNMzA#RzAP(7JateVakm-
z&awLW#9WYsx7{Q0RW at f12gm%!Zkdr0Ui%+<4Xq at tdI+%9eYFX_YbZMxuO6iA>13iV
z|H8!8T=J at 1Inz#0ylTk9S)QY;rzl5c=W5>*PR-k9t at eigyey3&7sgO>jd)CZ*t at Jn
zzrRsSt(w>4J%LkqELVy-ns_W(^x9j){5OqXxuR2K`ewRXO-e2pebd)q<1s1|IqDGY
z{Pg#UYu93&m)s=#-&}EdInZPEia*@YMX)+TLGUG8$#v|r_!oU9=k!kx=89<yh%}V^
z9{0V)mrKh2oRVtz9WHZtUX;mfXYA%5w=YLF?;9F2rv1 at njMCn2P<9xkqccMo>7TuU
z99|l`RKB8K`ueBf4ON^v0-BGC6EU*vnKCIfc(&x7tbc&%#KnMtYNuZh?Y;d-KI%+6
zWN}IA5BpE?M`6+6=ZzqGcO9+`PbeYp2JVWE1XFf&{j(o~FU at 2w(iTe?6HXueWPBhu
z;fI^(d{>5qDzh-li?yM<P4}}>MuhPLiQ7$9#J&xw5e_tU9)B}gNZuf<h=4JCp%s{g
zr@(4dHf(0!ueeF^fFFej!W;ra>^VmeB{kg9ElB02%~A~~G`(gtJtOk4bxt#IB5-YV
zf)KbSg>Zw(i$f2AdF~826e0Vme|*Eq`bHrXVQ!O3zB3QBw7`Fy9^FqHWGVpNeOP)y
zNN)vG{KJ609G=A!Hu`d;t>0_FJ(4;cfy{FqlBRNiWITzYu8>0t`qmSk?MZ!?PDeYe
zJ`;_k=w=9&U>+oGJj33ny-94e-Tq&n!r{~f!7fzp{ax?xti4Y;V^izdp*ts5-C18E
zb<@^srM;3+pE}=?wkCGBCyq4=qYKv}QQ5AMtv;Dsp*s`1E#l>fUict0k_9)3LbX7U
zFcNlB2pS28QD3w`BH<)XG>ZCy1;>d7-^Y2RcQz=s_ysL%N>Ole$XHRZvx4i2Kgqaa
za-9PC#dP(}(D;1tlBJ#R7^E6sYwx!V7j^YI2#q9MY2MfzTAZ%lXuyUMEH}NYGuhsh
zZYVRLTM&+)CxmijYbg7}4nNHAa`#;x%-%#1z$CatBGboQ;}xN_RUI__$I#tfcG7NR
zUW$>fmB~ukz#2uYX1plWb*#jn)W88X3 at 6U-?ru|v4)96A at UAC|;}h)()w*?DO{EJD
zzuQjXYqLX_!68_1!XL<dqpLghgfgjU?G1`hkzoyd#V5DDSZ#qD-9lb=62{=m2N2q&
zac4d``zqE4TeQ!+2${%^+*=;Z+O#C_P)Rd=<}ViB;fDWk{FPz2H!HFP>I>)yqHsmx
zIj7lp$C$609iVt4eV4Nld%LPVbI;UPv#R#;Ib^2-H5@$TZ!2d#PTt{!mcGXy0xU8;
zW6gXuQMd)hcmpOp&VcLPPDkjHAsm47Pt$Cw6N4KlQT19~O3Go@^c_OT#@xt#;4s>1
zx5pBLGkvZPaQ^XEhH6n<aobo$o$p7%xAVH&#A{@cbxM{BPFrY7NCl^in_TB2janO8
z?X#Avro^d$U4{|h)DUFIg>1sapzYZOtcP%7Xu_h2Nln~^JU^!zE}#W|wYN`w<(evr
zJnO505tS&Y_N$ye=ZZI3A}@{to;drn(UhoWL9_>G5cxX%529Bz5KL@=Xbn>T4Fl)V
zrj6Ots~61`d)vZbV3bg^67Ac6DWNVu8inFw|9%t_lRRlTi$Xb}ozURFPE=C&=0K^k
z{Qpy2Fu at qmMb&7Lp at i{v3tSSVUbLy$QIdEYMuIZn3hCtP&?(JofwmUKt;?fLirEOT
zwgw%}5VypJD_&y4QE!H>8YGZaLX!XvgwP}hJ^!TL^#^u@!uidRN}>=H_kfUVJZI^<
zGO at cGyo7h{MK9R;ov*I0GD-AV)oGN2hW^N;5`Ac at c6D^ZN&iI+YjiH^KDcgj$~X%W
zSpXKY8_bfF7z(!^WcbnL<Fxjc)scvWHmznddIC0axS(^d3j3Szq7CDZMT2SeEeJk|
z^EEG7UzI3-K)Ky>90{aTs94f!CLh9SM1vF5lA>D1g;#TS8|(T?b5zq&Eo51wPJLPN
z;a52ecgLIs=-<pCEEcRxt4+BA?X?LKhk+t?l0+2hI~>al&r(@N(1PHkggS*vyXmf}
z){kbm_dau9O!E)<puyTRxz0y|ZtAaAzN+s!Ibm5%k49ySK6>W<#y`ZNhkPBU;mm?d
zct~i{tzTroC3*-KbNYDJ#E)CSRd85bjGjpp0o}_1j;pDdiJ|m*2=hn;TGhmrW&-9X
zL=tk-UuyyRHgVtzr$1kx!pHi;1igEK{2PVPIM{Ut9JYZSO^nu?6uJ-&AZpV8&CIQ;
za7M_4=pzH5Q$RnS`#<-G!BB)-oPmr`GKC6iNOLk4>jJchifWVVfn%yx$He+yi(^D}
zWkci9+LqlHN%Ub`pFD)MTFG6FABy)~Tp?x+7I=JGFR=6bRBa(P;+8!>5ii9 at I6b`1
z4E5y16|zJPgy;tzPY_9f+{&VVAh$*+(KMs$uwNu^`5>23qfDnuwI1;iT-%HMRiL=E
z^5B7wYLn}?Ng~_pr^%3olcZ6|&n`S75zkSv`E}kfSak_Wl#jEpmv%(sIU_e)5QVs9
zd}!`=kToU{&d7 at Nh#V*)n*p2In7vAjU#VSQ52_sanv7Zg*&bYFN7~B4k~<vyTF86{
z%$v!c``YHJ;RCj1S@^eDaBRXV391=m<11Y&b6NGbFS7TU#7buA6Z}5I(uu_?sPfmD
z4#F!+<_Z?eh8DN0{uPM8&6mfy#ocpNZNc6c*KW2f)3tn49Oej&g}({1mvaTv+|OY>
z>7VekHV|iV)OD<W8SS<bs~9LZRZGbXgOh at +dl1CacnhKL7yR{9pz!?N_-5p6On5mL
z3l1kg^8OIoVxT{Q;DwAg{u<m~%8Riaueg>gixgYu42P4p*pOm9P$C-+e?O_u4dH1Z
zPN$4)Bu2FeF*XUaOt9h-$*bS6<O^}X`vaRH$Q^m8p$odyPP`Zrq6vjxQf~%F4t7OD
zR#7RZSkT$bIMl|NaSviPX0o813T-V2(`>?%j78Zl)e?{Uv5nO=ZXdWJInmi>0IDe=
z)q!U@%D+L0%(z^FYg=7K({smq_sZ(hs<A%f?GCTI!6)c&is6KmG1W9+DG8x=Tn`p+
zVtmTe=gIrgtNtuFEDZ$B6SP<Xf=mP`H$wnHp3N0MYg@<}@w=iBNW@<|8%kAL@{kYx
z|ABE*n_f5I!KbUdiJXy%J3Ww=TQ$!;D+c>D6EK7)K%?VR&)Zy<C at aW=KzzK3I<`xL
z$@G<X0^F(kor at yO`+82U3oS6<!2Stvv>{#LVYEfBxjMtV{nGDd at G_Ec;Az(7+rj+=
zb>*{0-uxdr>H;ek62<zoN4}*y=BXu9=^`@XQntMl0{X=ih>O3_`=lf-@%iv<8k#ro
zqAMWNRWO29#PkysE2K20_tnj^k|%gJ!{!V?AetK|1*u)_9anXD-tgo^2W`@p3$phc
zG@%v27iItu3|;yc!3y(;EPb44N(4a&x5NM}7T{k67I9l)neUm!2ZXnFvEn`j(xU&e
zi>+Lj>Y393Pd8i1_{#w)B$0>XrLB;AREtvcfRMOI!XA7qkAzipWAL+Bf2JNFRFr at 3
zvkUqI%)pvZ5B}%_LYiDOYuN*2QrZvfI?V&p6+s&+S10!J76WLq-h(C!drp|&$Stt+
zU at O_VCXWAseT%;*>YQU!L4Yw0OTblC{Fy-&HvsZ)!ef+t*h|_;_naugH at 5%?OoM69
zl>&MJIN!vcX&BzOGD=mEJ*&1Z^>jx4)c<7IT&M6Rlu3V!Q+~Gp6vi{dpGB4`!2dXE
zfV at Mcx*6u%i)9^0)eLtr^DN&jc&J)V)jGpw$gOo%XhQFnAnLC2eN3%1*p{ZDPUv+W
z6ah%YSbaL3iK;0O;O_CGTiB5vm-ELVwi;BD){l^|;CxPKf4f-?#txe52*84t4|jB|
zOEKWKs>|chb$4mIA*BfkbH7NOR?Uc4<WK!^VP>SDfu2a}e)cn4iLU(63cJn_A$r^-
z{)|Ddcwh3Q(5o=`CLNU#EcRy}bf|2Ke?<USl)9RLM(9ksLMH%p+9Tu-gQR|mCHNxB
z3aAnaN+cVCN36pbL`0mn`yWX{f=$IF>QHhfjh8|}^gOKL;Em8xnx**96q-f&N73H$
z6KYSlvkJa3v!Ne1Lv*V~qFfoM42A|vXa$U(r at igob3HVa-fwTFH<fM&PfQHH4;##E
zny}}vY7*H(>o%z#_~%U%j7ULD?S`kMF9mQ%uLSM;?aD}{fhKZ05Pj?jM=vqrEbM)k
zBSi1_MEv{2f*WZ;%%;*4;sAhAO%+vLaUUwMkZ`!Fwi-?3F)Za52B?m*BnfNcY}QU2
z<3#cq at TcE<xpzF=iV!mX8?;`B?LQn;-;jsyo~zKoG12TKZFxo>u*@XNR^ZObzd}+i
z-w%U108f%8vgaUzs|b(H)V<$x5Ckf!PXXI!(vL|3U_oW-N)F0{mn^uMEuLD~V-V?p
z0rWio-m)l5oTHAFB)LgQQDs97VYnPm-)lVmKt}1&-pcHB=@+m^_QsHm at 9gK{35PQZ
z_0ykDOw-fXrz*-MiW))vpKp7`sXMYkLtQ0eDlHtw`;N|@s!-n#?x6ysWq%pm&grZL
z_BPB*1ga&(q73`@5D6Bqcp*0%t$~$~-+SOde-eT5x3^S;FP3nBvESA4TSJcz+7uH?
zw(ZJ-i=9NZo2Gvq^!}8oc&_cqkorMg<?bN8*sU??!9uVfmtzgx4BjE}Z0>h$zYpZ1
zr9!qXnn);ZZRW8<%xJ$SiG7L?+GhBbmLtFGP?23`FBXHBCw6ta(2mObxg(}oK0Myw
z4ulxGErt_v)ybPf6T7hKpUX-Ip)u2d2i2=|UMxA<rFXS``PdB6T7gUbh>98>=pkeX
zE7YQ`Z7y~9Lgw91jeSmw2c%l4Y~XSn;XcqeXc!U_<0zIBt|D9{=W?iGWQe at w!59I~
zA4b?1QfEY4&@X2x-EZGK2Sf+-!QX0jeLla at xovtsvSi2r_|KNJ>$3Z+%3F#By=9=K
z at rlZ~@9IFv!PT=G!Z(4JYC(SrDNWj1N+*aRdq+q8EN1=B$1?pJG}89u)`T at qjbVaM
z1*f&2C88uPccg7}=q3-m;CUG$_6B*6FEW9slKE;LOfvMEZcX_J3k`Py%gXXUDjXas
zFIzjIbPcn2Ds03_BtIg}QiK)9qRc47QTI>mKuMWx5AJ;d9BY%Gd$K2DpnMK%8Ula6
ztlwo6A|JYZXFmimRtVb7pwxZyuP#sr at _T<0QF?^><n=#1v{a;hz|u}H)N%9kvAtoO
zfYb7G>>Xf1+U-o`cElu<ZoLzAZ};5H=m`8{d)8u8N(pX;tsTyLvZQTo;f=o|MjPsR
zxFa4N*mcHtr6GJK>#POwsuCeyaj|exqry!ofd<lQu<+jU_l80f at -t|zbUsT7#?Jc4
zlD5q|z5A62#NWyzoAryiKeDt>-lm##Eg|m19acC|uKn6XqBfD`i6^sdNJ+LBqNGb!
zc|=&DKl)?_&29uCwr}SR5KAVxbDYr3j!JM}Y$t>Ntj1m at fWW%n5k(Cj;vHYfy0QQ>
z`B)=YDPOIAba>np$xjpnFe5X4gwfJx_SL~>T+(&!Ptz(SXB{t{HK3e#r?O$u(M{*6
z)BO7KpM88#jyi_&G=v4-z&EgEkLgX`5;3Dj<6Zo#<B!ppaN}DCz5RA<47-iZQ*)y=
zY84ly##ANMbnV8z9vLqKx||hznR<i$#s~p3N=ohU7Oz`>ul1}+3z<0Wx0Id6m`N4d
zo-`uhO04R8TL}Y6G2`~6jqg15R4EevPj1<#pH at j963n_7NI7}9&u6v4!`nV!BC!1d
zdtomRGQ<M=Gpj3*fZMpR7|`07;4!$IT%Q)iLbD1?IK25a2y0==z3Q)xH}>E3eDmR(
z`!ohc=x<hLL_ at MES)2W#ch at XvW(kRA!G#7s6}!y&S*yal+V8F$L at eu;#FxlbH(l$5
zxRrO9c~{}FM}-u_gxfPgl^aA at e3=ez;wK2<i=gWjA*=YM at P!IoM?WDyf6yDJ7*}jB
z6L`ncNxmx+vA2O83l7zMT_w%~ca$-4AFFajQrwlV)=JYu9sZBSJ}mCsz*bAog%r+e
zB!vfmhihw287*{wm|MF+40Mt&j6Ywomh$T`xYH>EP|7*tg%cgvw*lEqIJx+<pK1Z`
zdgYOJ%=Hz|2N{}V&n!Q#&{k?BWRCO1{6&lfEV-*ZE`=1dc3zTPXYPBf9Ie)h!1Y{<
zSO$*EOhsQ{7Vb}xh0NiCntb>~V7FWIo at BUT2@uPnEM;7Z5ZX-WT|Q7mTapdxh^<-O
zse_6Ecb4augzz3HH~?k{((VS?MkDRU0EflSGi$Fy-PfmT^Tn)yWKA}TEP}=j7eXw8
zz2<6p0xW=gc^zWMh+`>FN+)#0okA%m44AA-so-<{CheC37YLu-fb;bwc~Nu?mEm2|
zJD6JU9<70>bH{EJWn*dx6(T)(hIf{`K-hXkS{uZPYCgTu=lkxT-D7p*(va at 2NV%|m
zbt^k*<S1Mn@)JM=fSmYSA9V<K;{Wr4MLCj(qwdarWHt95W+-vgO<L|5B;k&rXv=>9
z;wAxkTK3}7KR}`?>|bbEbQJ7JW48ULuUw8;>JI-f2(0(-VW;a%+m`;JJzp{__6MU7
zFv_%a36~=<p|mU?3&=a}{pJgT5nxTJ={_nLNFGE`gA=MV`Irqn at 4Y`nwdz!_7QiYn
zvcN9{!%@+5wWOfaJXe0azgHbU?^7HR- at i%nTjyIS7~Saz^i!u4`&3u|Ao^sE<##aM
zC|>=pLR~c)BxN~you=kHg-BY}!7S=##krJVEs>@PMJb-AO%X$L0?}9pK#XulbhH=)
z4$io47PUB6YwE1twYCc5vxsn84cXG+*OswZa1q_j^*LXykTGQ&ybPhE`BUI%Oz8Sa
z4F>f-<w(vmSqc??W5wCu;2+3yAuA0s8;xj?JBF{;6177imn;mLDhoh>#-c2llM2i=
z7QuHW?u>Wgm8##D+KxjFFY*OYrhxI&q+kY5P!BBxa<oXX2m)lXAc|mzT&UewOqnea
zauU{RM)-=uz!C^uh5;HYL6&yXU!4q1>T at mjJepzMpK=@41C%##S+2`#@4BF(n-LrN
zD<CPS5LQqWXlq8!EEX*(@DJgDCZP9HXCO~Zve}PI%x;4Fjzl*!-Wih{Zp-p%k3RDg
z9|FSA8_fvs5rfSW7U<3K1z{>40Ulq#q7D-+sv{tf?|v{$;6iPwyi$wnq<>*}p%d_}
z8pKXDlhs;i;J<Y*Od7avlxAk+j<kBy(kO264=wlv`);*hX}Yj=kTwRp1;(&bKr|0d
zrXflUlsSz5kxvlP&EJe at v42P?_2NdN**@#*+lLWk*?_{}A_%3 at TrFfhR>0nT5Cyc8
zi}o1 at 96`P!Dj{bTTga(IG6Qb+aaFp*tfwG!uoc0LH1D~enzilet*S%9+J_TL+k;43
z;%cp@$Q7aVBek=&E{Es()J0K7CHFU6K~{&-b_E<5<lQFF{$dZm%w3M at JMp{)Lf&-!
z8%}K<M(z~rm2A8P**QyE9uo|1Dw(ZiM+dr~4P7hZjuqjk`pkV|AUoJ_!|dhu*!3is
zotmq-vYJw{X1rX<Cp4j%?B{~67*mB+wsyB7D&^RaFr%nlz=;MwlRm8o%DjULBO1Q+
zb^pjcLTznDk03Gx1nObWEHgnM<v%Zxv{ZU{8wE)UcG+GGSWS0cBh0};0j+pRyyp$9
z*TmDHhJvgP!&JqOyJ-SinrRt#($-DjM9mzeFB#{Y;fZx}VXIJE(pM%!>KPsDSZ;{o
zuuQzgA at zxh)<EAF_rfHy6v)&aKq+VlGIt$+zeI<F07z}G_%7(wZHm4*$b}xe*+Y#w
z<wo9b`8VdcP0vTY6p|3IG at 0=!#=7D*TgZRPl#YkNVf-=xXveGFq&AVn9uL1~4vrEf
z3{RUtviT_&dV&Low=XlegBKlhlcm51y*>#X1(#zzMJNUBAzc3rYO#7b%Zv<l)toAb
zKVk9!<oYH+EHCO<epL-LULvWevfiR=xVGZI6Kv~xEy5C*_+2r4Hkh4Q^bLg8=qm#K
z3v=|deHq&;;C{lj({r=#OJ>KpH3<HMCI6gDUN5rHyGMi{riEcH>tY*cy+wvzknE5p
zI|twAWc1A2uLjiN_3hvRUbLeCb!2(i19Ctl{?6y-&###2g}_1$LcDBh?Wz0#_Xgmb
z%)}|AndHFNb+{iAP?MM;lB+U1iTY$j)iL}F(k*1kd`E at DtUq&F7qmisA2p;F=CuRa
z;f;|(&7W*RaF2Ug8j;ShP}!Fn87i#Q2#-u^aRBF4Awh at Trv-ioj7XS!S3Eug|FnaZ
z4Xu|wMo$X^`=ll#=i)$UO{0ZDT))JA at 8M85{Qh<X9M<MKiDH8$F9__RuRbLt%zVO_
z-?n{XFwVo`N4eF)y6s?}SMcw+z<&_GV)-XpXU+SjRh5aw)A5Z^kSwJkWFBiPxsMD-
zeJPAxH5;g+_`va_9pxe73$~%Iy8xJIwxR_R%%)RvkuCnrX@*E`iA;an{&FkgPg|-p
z{&$&#ps*av?^s0N(p)&fd7yz|yzsWze{9CrOFCyTD161W$8)~=&v}?}<4$qUZI6#2
z#lZ;xyN$o4U@&s^nGZ)3o#L8_bE+|{n=KHY#G!rY$5B)MHR%MlkG)YqbAX|tTB40P
z);Il_?`$~<<HEru{Y&59$Qe|RwDqmQ>w;}CrSOSn34oQ<KvZ?7Id;Ii7Diw`(asO>
z8YB>nxfz_BL80mI`px8}_WF6B8LOjUg1#`_X=*v{pceRylxC!(MwdC7Vbav%+#MOD
zG=uoe1~qK8 at gt?7ve{qK2vXEVnr*gVaVmS8(vl^hq_+n~z>fa!zu_p`rJ>mwn8pep
z-0)!6U{(CY$<0%Bwkh43^(^Kh*@dgc&_~oNU^7{7YMoOO)=G9$x8H{=p7x`p=GfxC
zVyAtpGYb`?<Qh*$fW;Yb+>Zzy0SPa1Qfgy##u>5-jgd at 2lBkv3RekXokq?FLov?Gc
zgqcObs*t<ROM%3Vz<BG~fbIxSIXx~a8>j|dk2J~%@00hPDU*7twO0d^A=h=JM)s}Z
zh8_tK)B?o}YGlZ+o$- at YyA3oW<o0Z>z|9;K9*bMxyJ|&`vpAs5NGG at Uk}`_jVtDua
z&mw2<p124Ct%w<!-M;d;!i-KBovov`wpz_93}(H6LnkLH()Hsv<)IcL+4*6RJqE5j
zkur;|MHNQUQn*AF{5wYPX+Y|s>Dt+#EP(>hJ~;;L6-|~68c<5>#7PxgpYV5cy*1}C
zVu2!E?$~iy3wbd~fNK7zq}q)W)(gn3z;mM&vMNUmR{j((R`<<c`0~{~*9QS3`mQ~1
zz2Q6JoDyEN41jU(fXAUtUe8rWT493J5;eGtdkG=hN0$AQ0GDYr&`b^}Apg4z;J3yf
zlS)9ZX at Yk`qky>q()@dwXwzxe>i_=REU}erDHCs86Tet4xj?NMPx^BpmxF^=i~O5L
zerYuujDNtkdmU$gn>eIWUew`0W3(sZe=AQ-lQQ=;YL^wW_CiK3Qs*1ZuFJ;+KKs>k
zZdvF}LNiDlAui)t_84BvhPK9S+Zr$h1cs at npMcMnse3c`{goa|huxCjjJ7FKOyjvk
zdacfWCu+F_oO0(V6z=gYW at mHWpy|o5GYll*&jNRV38c_-7A2EEi7`8outg&*;0_T+
zCfDB_%{h#&Xy=7ON*BnP%;SsYEB at 3=S~^eOvcBKfb(P|~FjwpY>M?FnXQ^u4Jw@|R
zX&3qLouVbJfy?=SyIosJ9>Nx)@&@@|#xXGl-nQDM!ego9l-}i1_xtIT7V>qB<P~K|
z)6Z^ABpQTjYd(+`Z@$c)FhZXqk4cynNuInlz!~TIfLa&=o?X*+W`eXyt)>nfgEoZJ
z;e~jl7Mg}}0}fKb6{P`p4JlLe+kFm#8sf$136uktg&E*9sI-RgLE&AD1$oOJDM=zN
z6MQpp*g0&&$&K{6>bT6*IVJ3}$=aVVzDNcDub>(pngec9fZ at fnuq)g<N0D}3oU*+N
zNY%fV7v#F%aXJ{_+b$w?HYF25mH4`_B~Ew>&$|Hj+gi at J8h8nBFg=^KiMg|BHNA-6
z_-F|h^<=~GB at i?Hd)>%$I-v?=Dsfv|3vXp$xFFmZ3F^8Tu>AU$TsAOVx>w1g^<4O+
z`ifZ%j#SSu0y at AM>`ov=A{1xL82zL<MgsK$W(-!l+>7See+*L%c3V2Zye7^KWw<~n
zNlaht18m<6S>2i2F^5xqqktyCtYVpZQMapfIN}3Bp$D{Y at WwGqS<gJQPt&DOij{r8
zFM?(8FD8Z6AV_{0wYXxw12<7jg4<>u(ol*>P2zMHxNyR}Ok6OM{FM+1 at +i4*;tI*8
zEUy2UC^h&vd-n4!7Toulb{BNvB*JOdpZ96S<|o=5P<V++7AICKfw(phvT{5qp*NWh
z4Gg#2)myO02=(<}IygU{k?2uQ?SKko-iX1g{i9rwKyD|;6LPu73%G}iG>gZ#1;+-T
zIHdfHYzQPeVzRi{fhh%RY|UfI^Jg7cpz!o>L>8Rq+i4In{FOVn5ERt}-N4IvP4`#I
z(8Hw at OYv)w at oNF`BBh0c at c2ufx&*YnKmhK at f22!>PiX{H=ohjS36vDT))p|GQWY4p
zp0&dGOP^FL8&8G7|7l4ifeBg~F=p9q?O%gnb{^N}Qv1&;5aj+*vr(5hJLda|tFfwS
z;!8jABX61{>(SafAm at t+&2*%?S+(+Hs2qn?R!SB#uA<q;30!}`T~Pl7Z2<n$<#A?D
zG37?u$db4Duz$OTmW&w8OrSi3`<8hz!D#q1cYV#<E2Ba9K%0Pi_t<aV_Dj0Rkck(c
zH#8uJzJ^TbF64h%tgbbn6~9JUm>GG<<SBocgsxRczb3WlKr2o7%OQ0brgE{rP4m`W
z)|(RSo$_#K#=pJ<Y_ at o6UA|Cc-S4zkR`C8kABTk*W at ksvq{rJe7t_sLME0)u+oN7Y
zSHEuv;QqVldQ^Fw)E}{j1T0rfKWTKNmwXcG;VwgSFl(K!I{Uosc<!p7YS#Dm<((0W
zMLDv?q`v{)z<U$shz_i0agwN!i9eqzN2Yo-2qh at dd;!WnF^O6aLG}(nYr1ro-}uK@
zXU10N#-1TwaI2L{Y^Hfo9$Q-iOH-Mh*h-ev3q(R9=ap*R@|Gtph$6RXPtY=vO{fQq
z>J8A;Z0YN$<xfqcCM`1kOER_Z)d+EvvIu>>T5)zNa6U`^ctEb5Nl>9|_Sf}jYOtU-
z0JU&(kgGV|FO)g|whFXA0LS^sOtbt|{tVhGHe at OV!n}>Ap00fCEL{AZ<s>|bqD~b~
zbq4_n at N#ALAGKKhDiw?d72~<bW{HmHPfxuB(GM7tF?I at R*h3y8jb0b-al1Msj851v
zsNa*EcMn-~OtrvDV-<EUXWQBd4IEw_<j%<U2bET;TWTW2%c+dTiSqu*K5<B2iIxKZ
z5G~B>2&^47&Y?XtSESRD2L3!y2sq;<kTb!M3^g4V$Is{b<qa7B{Cr{ElvrKdU~#NG
zt_ at CY41&W{k3;WE{9Gd2(4UjKRVQ15+XLr6KPorgmjSd=3nOTGrlW*zEVJobh+Z_`
zZxC at RlCXiCh`>xN>sc%*NM(hT2cxY~zb;U6=3d=|Z{h=rY8FggQ5J+LmtD#0MTQ9`
zD>nKG?Rd at 6A=xVtgdSyFp>Ax&<oe0zOi(TdTq86i@}MtV=9kfH+3?BQf{74f*__4|
zDZ;S;PK#xe$}CyXh2k%T47n&R#gJG`FSW7M1R6k8ei at rQ*E{1xf^wrFDmct%t!wP%
zACBGt{TELho@&cT4RQjk12ORAx)CaNZr1`PZ{Tsbv&6dDF|rk*jFanDH3y|jfydYd
zD+gmoZIf`q+%NTdmX)IdU={~Z*V)^uQ23f>Th at S7yU`?d)@1GXUs(`bu2M+9pqCod
z0{)#Q{}1F2wcSPUVU)1}(WDS%?Bf)eQ=llsAR9 at b3_>X$dcK>>MgG0gYU3<87b-Sx
zm1D_I&X_0u>R at Rq7`U#CbG!P-w+B%;Dr-I4w}B6NB^|gTmV(|?%{j&f0-;1jcFdTn
z!NRkIf#Q)UAeIz&=-ToU>hen9^U_(Ms)22tHTD8J;#6(nZY5`-V#oLM;?v8<J%m%L
zJ`25pQ|%iGD-Zaex}V*Iqm6}o?+q>LA$%PB`5$viH56QeZdcEA?nN`I$4^0!B?-xf
zSx3x+r+TqBhciwKW}WaflRSnvL|G0_THOotV6e#6LI`LUnd3w*yI-o4f;N?Te-=~#
zTRv(bA1XhQ(h_JcQJUUXFXP~?T4rowkz|Q4HnTixsYD7=gVyMHCN68 at ce?u8tp at Ry
z`LEC?FZS&>N}Tpt-N1VNTq2A@#MaPyz{zYOf0*)T%0u6P*kVlNtcJ{-o)*B~4*v{V
z<iyp(KQ$v1poZ3$(cz=}w at HCDcO88jo`h_sKqyW%FIOK at OLL?xCFJrtzmDdJS#_$n
z<7@#+C>s417O1Qu7aG#@&8WBIjT7!s(U9)sIz6d at -50J<dS|_V!B%C{{qz-c5k(pe
zdflq9;9PX#W&ANlp0ScXAt8wFk(x%%I9MRu@!N7*|8E8A!Nj5VDOb%RZ5*`|2Z7^b
zyl&M0K9Oc7fXg$SkQh+x2D|mDL?y$ic!S|U_&1^Ox*DCj0+k8TNp*5i$T2w<^dJlk
z&mzt*c=}?kQoK>?V$}U1$dhknihJ)lmb3H;`@udS&S(94a(JfT*0wit$HklzO0=&o
zV=sqno|+zfS=x%oL#Kl|A(LE at auwZDjIHw$nsR!(&xBdB*>UzFLoH+*Wbb&5X`j24
z)uV}#+jjv}znX0#%yy4YC)Ey0Z!Yxr at 6fD?E(5N<9|~s}azmC3xA&85vRcMp&RSA;
zJV2cI5<@jbaMCF1;rm=*%Y*|eN7`(KqTTZHen+*SbxJY1m(5|{%Ev4W5>`jb?@*D8
z3TMKc><n6w48RVqY22n|4fuyNKHqn(%ziiR0=yck<^ug)9R9Bi3DCE{9$h4`+Q2G-
zeoJsfn!57K&~Oo$G1cSI$+XE}h%hfmumUIndsdvK2mgSJGyy_$?4)I;<1F!`5y{y5
z18a2jh0LSWU{)u?R0_lt#wB-2#=LZJy34 at V?o<Kc3bhIfVpE*{>Llk2YFJU5M~h#n
z5$z=EjaVlAY3hK%6>nr?#M97hT?Wtq$HFWr>6J8xAO*2}>T3@=-udE;{?RK3sS)zt
zCu*eqn_g1#pbXdmDJ?ER{gt}kPX&R%N{9h&0d)6rpYFXwa5moF+!=T3najLUs|);p
zh`VsJ1xtWrPHEdX`lgmJ8t%pccshx)3oJ{3$wo&XXU%KEiEi&II@`DWnHUtq5ZH!u
zy|(1#f~yxR+;Pj?;e=CA at zn@bBX-ctn&bBYu~IwNBvl%-tOvvAZt6{f<_c=htImF$
z<q$Mtfc;)iD|t>;f9(;KQd$tQTe_<&=cUfro!>(4*f{{Ur%q at lAA=e`x3pAN5=I-+
zM&~IoB5 at 83!aSz#i*aY}Rz}s;I7+ftnvq89X-65mU$#It)~}R-X4AtewLU3^QJN7)
zmuu?WGwBi3q{HSuz^9GH{}NLW=z9hd8$6AaRz7}!=W#NSLB~JlN=7p9B&r)xnIyy;
z9sSXWnjH9Vtk*fCuP^>2Mgin{NXFC$UOH#m5Y}jCHrW6)j;_07b^fpn$rv1`8RG8K
zqn|&InGW!d`&y*<gc_wLgX%6XGTzR$cu=I6Kq<@J^~*X$(~e1$7zZvf)bP1!nQ_kX
zGqf#cHgb=osTcb9+PP|Xm)Ix*+JJgxiZP+qGkRIZT#)fPq0i|PJQCD9u@%(VMgzJ_
z2;KFB?YuVxiS??&$y$m};j}hHcM$9i>^CSmnT at IDP(2Z<_Ja)3mLSq&`<tcDhg+3y
z4o7=I0t=`DP<g~*bQ98n>)tI|7YCWnam!w)%AQVxF*#yTKN}}s!BKuC{``+s at 2aB0
z)t(`Kz^HJ&-S=yQO}H#f{&$r=0;GEpzgyv8+QXfQI28~}EkBZM*u53PdK(Gs<$e(a
z`62k!`ux!OChRHXvd{&(HucX{befxJxsLIDX!u#znM-Z`s_(05bauDY3M_-ffob(B
zrL1Xpsb@$`Az$EL;Gp#{=9X11bl{ySvtZSGg186cTsTA2&_w&r4uxIa`qXg7`Gk{N
z>7NqBE)A+u)f~j?JIwu9(C-;Tw}?j=-m|TZ<@~$`O<m9VzQKYMLh7W~9#H?*ir}3r
zu|urcFx|qTwIUX}ob)Tc;t2tv`|i2ZkgX=1AivcUMKGgw_~Pq`mMTM_Ly@#aRH7F|
zO!_nJfYgvI)gLw<qr at un(NNek**~6++<!T+z8T at T8Q>|H`RieO+`Ayy<U7w<4F;?Q
z!CL?s?`BWribUNPq6tE`dbXAoZMYC_0Ye+oYmkpcQJZTgEXkvcI8?^wau+m#?*4+8
z{eBvoN|&ll`)=nPekz5U78*e_dkm_99?Gp{4`IwbOpcpWk_NhLiO>EHO&DA0I=H at N
z5er+b@@{7ka(xrD09lse>lg at fz<oL+7 at a$&QBvpYnA!(w{GBW2z9Vy%`3rnhIRX%@
z^_HL)+)FTmgh`NI!(LvS7DfEcjsjI;+UrT*OOevB+rcjlLaw<CnuSB907|3au)mF;
z|LKeRtARB2q}eW7LS`@1PFtC_&ZLk!@HF;voMbvEMW at j_Y!@G2=w2{1Ug2{-HMkPw
z&)3&Uqnm%a=y&|IN~+)93B(QX*{=1eQiGB$b)-&!haoaP!jl;af6fJZYnlYm3Fr|X
zbnc`zJr3ox*L13aB1{kxc6Qk+bA`TFP!b%`yC)SZFiqV$R^#|-3n3R!eP7S|{}=?;
zKMXQCqV#uhn{xlXvL7n&KfaD6SOCj8A7jA)=kI{v_PS<Y^- at kwV*gY0ufP2+ at v)BV
z!|0vO#qEkojdDybi8E6O8cL38xgey^qK+Ha<v>e~Xt9G*1<()>1Y5ve3+r#kdjAmY
zRHdEJ- at LlIPPpxYMSP;$UJ^~WufPLV?F)=Lwe}wg?*blo)Su<@xWzSU%M*YHnUM-x
zpWJ8$f*B>oSgsay3nylXmkzJfgU=IDgbS1><^ZZU&*!C#UZ{!d=t;0x+6tp`9b}KF
z?NqvKIGd3}=``cdnMtJ#Hc9g>;VivWku&aX0|YI-r#gEDP8w*9A3)1J*Wj3!3%o=*
z>FTX42qSHYAxmz~%D*XHR2Zu->g&8kjlfuN8G~wuHP<g`0g~5Gkf4Fro at 0;7Q at 7F0
z!;$eT0~V+uXU`wwjoo--Pw%>Aw0lYB&_nR`5V~~ZaE<iU$7|-xOZAyO;QuSJu#BJW
zdTdKwH-rfahfi8-6xzcETINqQ2G($^gSXuO(_7FQoqhWqLqy;i#OeAGttF(dy&+uB
z5wz0cpcd!uaXZJu`~veuamx#HZqYQ#_|dp7k${U*$|Pu^+cbMrV6}!d1za=GI}3N(
zul<@w2#E&GuFM~_M>2~8saItkXlSDGQU at Z}a_%^k;+A?1wCYZ3FxH_cPLOsfwLhz^
z_xRD_G at b7(kCOpPwI)id#^k={G%4`!UDVoZ)vNFj{-DNbmqHEM{F=d&!`~;W*jn=S
zqGFXpMbO+$2YjKr<%_nHDA!F|mp&-RaIXM?VO=NJ=gS7jQr#@L?TXdn-nqZpLcS-o
zk32Y~arj+s_fGJlJfn{0t*|DauLvqlv<xk)-Ph!*org1WXZ{r}V6%px;S>b_;AT><
zKEZmb*34wI0OGM~q_coDwd6O&%V=IlY_BXIu8RmGj5k|z;V=vF&AtKefCC7W2yvP$
zvgB%`wB*bE0PdOuZ at x7vsQo%4IzzIB43g4PKA?YY&j_BS6UlmY4D$BkN}2hrPWsD)
zD>F%11|ncn(K`277{>5BXiTNrL3 at x$KXa2F*K|xU*K!tHCs$o at Kk7US4x_eeyXvwG
z{_diDxe)z%Z{0>dG-z%HF-{_i34VnetzjUA$qlT5Kp;{;H}`;%@EAovfmYbh1H4m(
zpaVPagP0&LNa<>I3)Kb#t<r|#bWBY^l#M0FlQI=#-k$8F!-<3w6vKR6cR~AnB%ufJ
zrHK{opn at w__3tB~IdPa{B4BoDyk0%$QHv^kb2#`zf;^H)ZRhMh at W%p1?`7L>_7Q5o
zOV>Z4CjCWnOP3TzqMtR>5j<PT^XiqtQ1PByY$Cuj2WiUuWRFocoLqpUMZ<FxkZ-(t
zr5touTbi~gfc<=sHUcgDzG_rQL7p6BJzJaqivHWFZYb!xq~5`Vx1gzC1%$D*{L+{z
z at TnK7UyiT<%4?d*bG>oRh(etJ at 2HkselNU{w&ZpOv1Gz-o%u(B11o5GtPP)$AGa7V
z(B=8O>rtU72;@pGCXKRx at 5{a}Ra)p`Ch%}@-sl=|EN25 at f^MI362Byjbs3aQ*0M){
z9RUI0?>Dx}1X{?Jo<9pY{T(xMDg+G%v at 5>uL(YQkm(`o6S>is{$~2SB%r}VB7807m
z#=9PRu4C|#eYB=yL+al=bqzp?3^+W$U$K)|i`OS?Bx-Q=c^#cj$YH4A^mT7MTusAH
zK at M`uajKRT3L(Z+pIr*J^%ZaCqv<ze#TdxS%Yi%q$%gq;pS$2&?!n%K2^Qe(Wow77
zZp<P0NI_=6paX(&3ehD)SN=A1wfw9FZc at jMDL#^jt%++=y4`V>z6RGG@`c%2INq-n
zaUNt=FXpN#*rg<ZN-)*MKp6SH&k=EWwWU9c%1-hxi6V^q7~ay-z9}C?n9!Uluyg|@
z4;naL>Qem%P at u7C*8f$!zaO$uc3sdtRG`NuVE{(63zju;XOZ#GPE~4}+;DP}s=|W?
zYv5O7{9rX)vo*dWf;|BVoB<$v1^M5~?SKl;M})$=cP!TY8w=HbpIjQCI~hrULTm0^
z#c at R@`lvaKvHaRu!emqFXk<pGibKI1V6$%Vw}4vqy*=~qXHpL?KIqP#5>o#UOzc^K
zzd_)Cd=KN)UyYPs#&`o_dCsA{B6%tNYWE|LBUC#=y|xX4Xn19E_qnm60bgoe2*?C@
z5g^?vvXnd;QI%Wtt1qxb+U#eiarRPo-^b&L?dFax)`TOP2&p|>1TGDMYf6LBvjX<V
z)%_B2Eq2-D2j}CIk?wz6Kx;vZwP&K+T^1(8{3&#;E+kJVyX<eh8k{E?G)>4={jb8V
zJs#@p{Uf(TR}~>bYGcciTgGMDqE at xqLN2AYVfvQKA`D_MtBXWZX-dO3ZQ2x at ahE|i
zWb|paMU#6MBbQ7D6XWuI&S&V`_xpYQzQ6vNmznc9=X}odoacGY^L{_4l6Bq`T|!Df
zR=YEqyCOs)WE5{N04ZrSF)l_NkiLae=<#_^Y^DS>b{uHj?$}w*_bu7|`D5G3o~gZ?
zL(GrON2-axM#K`z%7LO!^CD~nn%~5sC~h+Xtgk+wxN}h!H}c3B33q<wMgKb_lh`ZV
z!r{AA(%4Rhk+Py|fyy(DSmG15-#nY@=z%s-PP4ZbR=n~Uh)lAUnkR1=DYmINUlQkA
z6N*O*l^A(hCsbdd3F6)fnErKyb`@9d`(l&A)aaguhYnK5hoLCgv2W6b_qHjr8u4|I
zFooG&R#zh?67m>HKC)qkou!349d$I?YWz-`mvKzjrerktuzfHZUI>DZZHCD?@1tMx
zllG7!h$h4z`5raC$2&+faz{Nr<_Onb*%~-pzAo_dI)YpO0vKw>@@jOA-EDI1j(8rz
zf(#Z-VsF85Mi3i9mJ&pNzjXarzb$$w>9wFqj9A^0MG15kW(*Vsxrs~q*~3!4?}HLa
zgIIE4j;qaIK1}{e`{*x&+bzJthY!Tm>#s(B9XCat>VCLKoN+t$FKvO>IMc6JQT4yt
z;SF$k0FR?0h5UnNWct$U#y&oEPjbC&9g<->5{^KK%zx at OT60{tEi~!3---&k2kLCn
zek(BWvFbgf8R55e*@MuPH%u-5H4hX{Wfy*=|GvTW?f&;0Tb7<*k?`>jZ(jAP*|}|i
z7@^8j-}9<;wGkmD;L#CR!aT0&=-F8jM+~XZ$iFY+{*jd_gXxJ)gVPQdJk`XN4;L#9
z9NWplH9ict*grU5R<g3dWq+ST84Iy7M6JpeN*xs~3)?b(IP%=L0k6csL;XM*jM-)$
zvno%4p|^VBy#S5fJ$GMay6>TSU%C*Bf<%0&*mIFGE|ECtuT=P}sBtE)_<u~vtWv|+
zz+V5q8w-1BHSlgvw);-)LK%H+l5Vpm5Zk>%Q0^f0SaPkIQ?3=Hg?I`Vy+WY=A-Ey+
zm;yl at dx02-|D-E8(M)8xZ<`*>Z*6@?YZD%tj-Kkh8l(b8{5Ll(KfIR4imCQFqdwjF
zAI5ZoN5?C%!rWEOOU|U}?@CO|h2rTa#Vt93g>LTjL}E|R_Z{T{k%L)MCfhPp*F4!C
zbfHSvMBA)?#IbU~S3ZH|GyacWo=$Ms)brTKS at zKXH_(YJ!`osl=h<yFRkrn7FO~Vv
zt<I$3Kb3`52`|$g@){HyX`B1L*KS)M`P3|Y<HF$y*$)|M__J?r!rKI9?mojP;fzNr
z$VG~>Ivvy&qoIGw&=)+I%rahl#kBCmJtFbjj&dUD-HPDn+a*)`t8fk at oocUV_o3mz
zS;A0ccq%o-*|N+bPHJZO#gz7Oox#hWeyhL^)o=MS*=pfU|0P at 6&5Rd9JN+{-ec0Xu
zi?=B&N!mbej3yHua8L)*YHy%&M6iS8tV2WT9N2zK8da1b(F2Jeuv;J{C~pXEK%{_<
z&zG?Y2lP at V_;Hl>F#oV~=yQ5F3oF6DTmxrRT0Ak1m!$)1h5%&qwQ8zY0C9vYAf9 at J
z6e6SwS(bHp(h)NAHpP0FTW(IcJGDYrXM`PaynJ1HV|h~Q+i@|Qso?=l(el4}H#UY8
zB<s(ytY1diy|JE!cUf7i`r;|A^h;W=*5ze$-;0yZB9V+WS at OoIFmn~91uIpbv(=}?
z({Apum3be=nkLKp*Jh05uE|%i$rDeC8lz&gr=yKRR_eAic?AAwt{)sj+WQzuMRiTz
zL9}CO56{^-Cd-a>bOtZuB**U@%r~XEW05zcZG~lbd`2{Lnsm(a*TZ1AEbpF4ySKp<
zRuI at zo7V1?d&$^T)Sg-C(Dc$XBz=r`yfNr5W&dE%-P`{9_!u2(Yx3;1 at L_JzHj{Kp
z%0A_+Tk^sqtov4K;z&V2yoSnc-r=%GS?AR)XBXn;RXAWce}0_xC$!Yq`|;UTj`Hmv
zSE%Z0nawsK^*f>ZY59ax%1Wj(yIj8Y9?bgF)Bc?A;mq-ncZuZ_(NFQ|o;Zf^Ex^P6
zBCd)O9dF$Kjyv^xc<a`7 at t%O=?!5Ba9EHn_Yx`!qy=jXMvz1}als;vrWE!1?Z=brn
znz|-3+r(gR&2pHSG00mDKx+_0U47SBe+YF%6U{{q63}E^<rfny7-G*&!K&6%wlO1D
znW3Xb8n9r>N+?yVx`rNT*rFEK<*hR{DN;{DsRk7#$Tb6W4hoeAh(0xipa9?1r$`I0
z?L@<90)BEnQm&F*e<zk-n~wl>hXnU-ytCq-BA{$+>%Uz~aD1~^qK!~G0t(#m`cCeR
z0w5Z>LT#@K43407PTnbg$55itHgY+jj!2Wyw{P at WmZg>lV9R{@0>#Scoe<&=b`9`8
z4OMdu)!f&-eiNDtRzx_Y?NFQ(>`tz~y|3n|;wSaxlHHE4_n#Y?!8NBSqkUm at x-Qgq
z-vH0XA$*JA)(G7x at Z)?XvU(z13((sl>S!*A$GDL<QntpwXe{#jwwQc9wfXvhQ#WNe
zx02kF%Lvq31KD~s4^S!?U at VQc*)Ud9?hFf_JiPI=L;O%<r+NOAy4bn!Zck~M(s1fP
zVt~^Kb_-u{cr2K(D<<029mH1>?R;D5B3DYi;l>u0_N5kj+bM>hbL0JF((QH4tC%tp
zJy!+yR4pWft<2>3%HFAsj0^~?lYPqYvk%jbq{=gF){+7f5t at K&InFawQA$v!x!ApT
zQ7GUZHom&_>ZcHr`4!w0;QJdD^~)zD*g3X;M at jOle-`)c(2~wx;%`T_|9xdJ6(ycE
z)9|CNT~y$3z#zl=4|3bq_Oh33{`#S&osJbP>RMOwEp$r{EtDwXH(-%~=|DUrVqXt@
zy$nGXNM~j&ld=+`b<BJrk?72n@&Ug9O#(}XJOFAx`!mvd6pWj%ZH;`McdM?yG|gIQ
zdgxdM({A^upJSkKx}5s+y$8&wk+!bc1x9j_PjDmcy&=uML!3yG+GuV6aq-3+yFrt6
zvuzM$OnZ2f_*-uaC9LW0kp+$I2eQbMTRmG!@~KA)wo`9XkCHN36^G&O0Eth+U*bft
z^O0x)Q+lItCp&mFH<g!vqsHeHy?k9WFB0p|{BCBit0Lkn0;HWwl+Npg2BdnhQ{9<2
zh=wZ;I{M~4^K%O8eZ`dyKR&JeZ at sIj%CmVXcLURjtF8rEisu?f?$E72E#K4bqmHcj
zSE5sBQ`|FV+LpBA$+NrLM=6{MtG}`kRRvc8d~D_UN<7Yv!E?rjN5^!<Y|n4KZ{}kE
z(Z;A`k-_WA0#Wu;=KGGI<zwzySo?OHx9f+PZ__HyP8<=N)^Kp&f-eCQZ5^>|yXiXK
zd{c7j*VA!RQA%|$RaTm@%p`n=Dl3_+^K)J(*(tChEMj$56|MoW!)N7<CXF^ULcS1`
z1y<odq>s}Acv%OX502vd8l5G-GEy_T1zrzn4)Sxfhut-?V+{td7NjW$qziI*ohKk*
ze$G1De!4RihFi`Y%MI0XJ&>In5!|pal_Ce-4pZP(gJn5=Trc6ftE+TBDS at Tw*&{d+
zmR3_aJuUi_)9mH%MB<T*5znlX-m{Dn5En4-BsK1{sDo_Ga5tZ+Su}`5VSm&+D-$)u
z1O+(Gkl+|QcE^q^2QbpkTz8z}cV^`rEY-)2#E5pSEnS1q8Wp7iGlEDaz(DAw(lk5D
z5hu#jyed7N>jOo^*(dSH4b1_zOs*Arr87WFIXLZMAfr1xa%^vgKI-oKIdcHM0~`)P
zax at v6&hf*(zTMx^_z6-_3He5UQM7S8icL@`0+?VnL?Q^vL(xavB+ylZE&%YA-Q`|Q
zz}Tg+Ju1!sKrW8sPgCutvhApGb`aI5Gp75flgmS1;(<*+rcE)R$-&_iV5Vx89r}O}
z2Uehe0s4T#iq5eEu*Tp0Y<^d3GKv)8(xM$P*r>AFFiv#zx=qW^&N_lt`D{JxWFeE9
zVw87OtT$MZm<GT4U9V`-+qD>`_Pb!y9B0S$^!<*5;xNmYN^gfqVtbZ-XN2Z5@<ZX>
z_dd;BF<UFSqcJ_TCtVs}2SKw;VP(~_y5uR_u!0HZ`~CNF<S at s+L_bgSN1o9fUuuN$
z+J%&rv`WR>BP4sOwzbC;cPJO#CV<z5TzGOWR^0R5wd-}u*8pnAH=)=XR-cw44MyD<
z?28Bti*o3UAVoW7-SeXz38dK0DLxWbz_;OwMjlv{+vo`h`Rtyui~bAa_!|k{jROuu
zR`%rx)snpY+6wV63IsAEEyAE|IU}z(jI~<EtxsF-V~$bqplz!(=CXRZ8~vD%2CUj;
zj&QvoqwN$A0LG6TmD8Q{BZFUm)uVEnYqA($cVUCzge%#mOnYgI9Dseo`7?i3AS!bl
z{|{iv&Q^#tfnwZ<?y~Z<_Hq$UETgQv2TXYw%^Z*@cKd~2Su5W86`xb0BnPw{v3qZL
zTWg@`H_Vi4E0~yfqGI)2vRN%JKm&3>ZAH*b(J$pVU^SHTL+2F<*`2(O*D+1jjO8?$
zI5In=o2 at mz866J6_XjEh#aEFa+*c=u0LIR-?-4t=%9Q_u6+qG;;wkjetx#=?|1n|K
z#fv54#90d5b7Sfl9Xh$NLY+Zp1zk{tY at RqR!u;TQjwxQ$Ea=C)Wf?x6P-29S#>=ei
z)VJh#Z!{*&C?%b&OUE@)ogm&L{FjCXvRp&)vlV3al^M&iTW<GTE9+Bob4JRTK4kBX
za-(R*8MXq(Y7!0xPp`Kt%WdjQzI;78dN5xy>#cBd8h+&_H62E|^@_an)=HF`3*VU%
zEhj*)Yqydyt at SQ1Ye-Rz+96u5=8 at t;I>l;HmG0^psxmD!5hnAkf$pkN(>OgX_qd~m
z`ES2N0pU_Yap$N0(ps^u6yw_`wE=su<-c-bDxxC;dgt(6eaCwyD_Df0cE`7Z*7zD0
zUw81V6s1U2uY9MC_d*l#@7*wmN_j?<DOMqf8fGs7solC0EsLop at J$6a at f|Fx=s`+v
zSE+ at tbzY_8poTQY^}qAl5v`h?OHt}KA1tr^G6%FjkIcx^DH*rA1F;^@;nvN!w>gqJ
z at rf)AdFDttJviykPv}aF%=sAELN%UW0jKQl;vH5FE`K2EKah%b3FJ+VNe at H1f%yvn
z0+g6Y!L>K1_&fNgcSF63u_7E*7f}vej7Sb+*0vuJwOqe($1ZqOzD9|XTblv*UPul5
zK|cPN3C0aj<!KDWl<(O);`qG16EfgS=^<#!aC3w8xcQ)LqV;GYfEx0D=GbDD*d#!&
ziFsxIv3#gIbL{B8ZXZ;`ZbH%tRKUEi{DrEYZU9C3;l*~)(<Lz5s#217M`V(+k}M-G
zq>;@YQNs^-EIVo^U3r;y{2}y0ph<J!10t0#+WWsu;FsnsI0BAo2soN%T(>S at dH`MH
zcu>F at L<0c6hJ;Q5w2T?VUj~D7BcfGE%sFngVQ38rA3)*^aI+56{##AeRWvkFK0%$n
zm$w$k1Yqsq>lAfW-INARRo8phW(IkwkdUKX!+q;EO})6a&JW`aJukuvx1p0Ounqn(
zp0#jp?b1PYbybrVA~=Uc#7g*y_RwY0Yhx9;eUI5%5<?H>^aKbAJ07WD%E{El<j?in
z|8%{}s=ny+_6tB&K)dwiMdGTfW_9u(`_CCukBvH*+QLjFL)2xx at T_m%b1Yp;_3t5g
zsc#UO<n_<apEW4V at YHGBm0HFgapI$%ZCiKEJ~EyqcuG76Z=i}eCee}3r`zxEnw{NW
z{QURX3w(3Go1K=EygbfEf!Y^h+{|l-f@?$+3t+-XC>Dz-x60z;aAt)JrfOL{;|bXu
z9plR1mM%@Ttn>5I5fDP1KW9!&$W6&^A2%UPH&2gm at SVCJg!G?^8!bq3eeryt4qrSU
zs6*$Nq2R=EArXs;nrdUIRJ8mQp&1GE)h$ug!a(H at 5#I7%$xU?kX+;9u$&)-;616|)
z`Ae?(UQLC!G9Wq&Y4>;cjkdY at VZDccDclgw*g(8c6=J93`q1b7co=B==-b at Gl$tzs
z$11O&1ISG^bXqB0o}Ln0I7N+IHR6bjSSHN*j57=cY&T`BK{wM!Sx^0Od(vB8(Uzit
zbu^xM--f?^lfB<jwvK-2d9^k9eeYzwS6)TE4(w6w`Pe;bvB}?X1;pi~El%6Oo!I~w
z*=Zo-NPe+&Or&^GD~{Jw<m2sjUz<1Z>_M?;Uv7IPXSoe}Z)pG#$X+TK{X(jr`_>Hv
zQLYAI$$$csezeUAa^ck*{SE#_3og*A;&S|-q$gYwTP(?dFjgMZu0vP5Y-n{1v`@O6
z8cV)Gt_m at e@^PB)5xY+X<Bk->hU)9Jve=w+NsyI2I_=;DRm8C98Ep4Yw@;Q?2s28z
z!=(l`z*BINitO9XQg28#8cu5V=?!wsA8!opbrBE_Pp_*7zZ1t-fU-O`#f*@Gd&R+O
zxEraz_bQ)L)V^ET8eiX=pVrnHQP5qwsSnStx0hfcIZ;oSlH968`bJQNd1yy~n*M8T
z1|Sc40nhqA6mj=FTQp$K9S^_N@{|_^XoRk at 2iKoD(!MRsavs(wZhl#htV|3z2mg~5
zxPt_5Ja&&&JHWOH+~oM<Ydc)_Qzrv^kbwd0tmATV1~YpgQ=)T^%z)eo=72xa^66yA
z at Z(9-^+1or!!St0B5y_+wOG!ObC&!iBzMxSdUN_t^)x_o_kK_u)N_C(Q=pTjFOq<Q
z+pho-WoD%mq23lQ9>HN7`1#CS|0|V0XFXPCAj%Te1lwXV+jll{Dl?9@!}ne<T70DH
z>Vyr9-}8PhrKW2`Nm<kh`U^h2XFY{c$e^Z+!^gOxS`{_vb0J9zISyrpX^SkQ!MNlN
z%V5s}MtB^bV~#>aS%wC1R&=Ox)nuu0F=hDvft~;#1{2ysl at 3Pto3!ql^_DM?w;b6V
zZYb1j16Us3TPQ~;J~;f9vrMxSJXoCJN&mnUiJlL=iqt;$C}f at k#yI<6gG?vyr=)&!
z$au?OM9Rkof+)V1D|V<V`uW-fT*(APH at 2f7YIKkx+HFG+`7)x2BR$c22R-la<h)S=
zB?bC4{X#Npt_7_2RAl#<QhZJ(a|HlY{-hr^B|kGjIeMtJDmx at lwr2@4qP5_ez>|EI
zhElb#UC=7?!iYfjRzQI=1=7WOQXa5VG~_}5W9ASrDUyHy8ujH%)YVzI=I#BGMKAo@
zN<=LKZ;sOSER-FJ>$E8c=DuJ_gObz%S at Xv&_Qj!Z+XIWw=J+JH8mqM#;PMP1{^M7O
z%kN{aUErcVe#~@~+!HqdKY=&NW(EQn0C#V|WjA<$Hiztst6vol!uk~_$v}j_HH!b^
zd3^~u0Eu`>WG at jq@`8K1B5E||Vg at eY8NZl9n!f-D3NzNwAC5f-IBrX_HAg5P69RB~
zfu1Tb at B<M~#`C-;)CfY4DZlc6=&)LAJQ#C*vCV3s*O=F!GPqsf393MClPtrqbF3Nt
zi7u{`!L(MZ+2qXu3ddY1u;LnaS$PQi5vK$3_j=L<UTyx&OZS at iGwol`M`+_kRG<eQ
z4Xr&Y4uZ@%dK!w|CC|+$HyZ5AIQSx<V;urCphD}v+kgN$C;afPzud8jxR(F(&d!;O
xIcJ_i9iy&cE@&uS^bh!n|8-|)Xy3Gyt;5CMtViEZ!hgymwH=&f?&gE>{{#``V at Ci0

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded
new file mode 100644
index 000000000000000..376abf9d683c815
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded
@@ -0,0 +1,1439 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 155
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 235,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 50,
+        "w": 170
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 545
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 52",
+      "size": {
+        "h": 60,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 19",
+      "size": {
+        "h": 75,
+        "w": 250
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 45
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 465,
+        "w": 20
+      }
+    },
+    {
+      "loc": {
+        "x": 45,
+        "y": 75
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 435,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 90,
+        "y": 170
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 25",
+      "size": {
+        "h": 340,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 470,
+        "y": 170
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 31",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 470,
+        "y": 230
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 57",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 335,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 27",
+      "size": {
+        "h": 215,
+        "w": 135
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 550,
+        "y": 350
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionProtoType 29",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 550,
+        "y": 295
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 28",
+      "size": {
+        "h": 45,
+        "w": 140
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 550,
+        "y": 410
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 32",
+      "size": {
+        "h": 20,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 220,
+        "y": 545
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 59",
+      "size": {
+        "h": 45,
+        "w": 305
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 650,
+        "y": 170
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "SubstTemplateTypeParmType 30",
+      "size": {
+        "h": 55,
+        "w": 200
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 550,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ReturnStmt 33",
+      "size": {
+        "h": 20,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "LValueToRValue\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 550,
+        "y": 470
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ImplicitCastExpr 34",
+      "size": {
+        "h": 45,
+        "w": 140
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 550,
+        "y": 525
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 35",
+      "size": {
+        "h": 30,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T identity(T t)\n  {\n    return t;\n  }\n};\n\nint call(S<int> &s, int x)\n{\n  return s.identity(x);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 160,
+        "y": 300
+      },
+      "name": "Source code",
+      "size": {
+        "h": 200,
+        "w": 140
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 31": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 63": {"syntax": "\"<bound member function type>\""},
+    "CXXMemberCallExpr 45": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXMethodDecl 19": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 22"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 20"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-inst.cc:9:3",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 21"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "ParmVarDecl 21"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:6:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 21"},
+      "RD::First": {"ptr": "CXXMethodDecl 19"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 19"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ct-cont-of-inst.cc:6:3, col:17>, TemplateTypeParm(\"T\", <in/src/ct-cont-of-inst.cc:6:3>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXMethodDecl 27": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 32"},
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 29"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-inst.cc:9:3",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:6:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-inst.cc:6:5",
+      "LookupPtr": "null",
+      "MSI": {"ptr": "MemberSpecializationInfo 59"},
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 28"},
+      "RD::First": {"ptr": "CXXMethodDecl 27"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 27"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ct-cont-of-inst.cc:6:3, col:17>, SubstTemplateTypeParm(\"int\", <in/src/ct-cont-of-inst.cc:6:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "CXXMethodDecl 19"},
+      "getMemberSpecializationInfo()": {"ptr": "MemberSpecializationInfo 59"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXMethodDecl 19"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXMethodDecl 19"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_MemberSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-of-inst.cc:5:10, line:10:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 55"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "25626663",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 54"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 54"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 26": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXMethodDecl 27"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 26"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 26"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 50": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 51": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 52"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-inst.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionDecl 36"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-cont-of-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-cont-of-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-cont-of-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 52": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 64"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 25": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-cont-of-inst.cc:5:10, line:10:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 58"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 26"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXMethodDecl 27"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-inst.cc:5:8",
+      "LocStart": "in/src/ct-cont-of-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "27338745",
+      "PointOfInstantiation": "in/src/ct-cont-of-inst.cc:14:11",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 22": {},
+    "CompoundStmt 32": {},
+    "CompoundStmt 43": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 24": {
+      "D": {"ptr": "ParmVarDecl 21"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ct-cont-of-inst.cc:8:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 35": {
+      "D": {"ptr": "ParmVarDecl 28"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-of-inst.cc:8:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 47": {
+      "D": {"ptr": "ParmVarDecl 38"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-of-inst.cc:14:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 40"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 49": {
+      "D": {"ptr": "ParmVarDecl 42"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ct-cont-of-inst.cc:14:21",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 55": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 58": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 40": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 41"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FunctionDecl 36": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 43"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (S<int> &, int)",
+        "ptr": "FunctionProtoType 37"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-cont-of-inst.cc:15:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 38"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:12:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 42"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-cont-of-inst.cc:12:5",
+      "LookupPtr": "null",
+      "Name": "\"call\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 38"},
+      "ParamInfo[1]": {"ptr": "ParmVarDecl 42"},
+      "RD::First": {"ptr": "FunctionDecl 36"},
+      "RD::Prev": {"ptr": "FunctionDecl 36"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (S<int> &, int)\", <in/src/ct-cont-of-inst.cc:12:1, col:26>, Builtin(\"int\", <in/src/ct-cont-of-inst.cc:12:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 20": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 56"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 29": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 60"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 37": {
+      "Canon": {
+        "preview": "int (struct S<int> &, int)",
+        "ptr": "FunctionProtoType 61"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 39"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "syntax": "\"int (S<int> &, int)\""
+    },
+    "FunctionProtoType 56": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionProtoType 60": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 61": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 62"
+      },
+      "paramType[1]": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "syntax": "\"int (struct S<int> &, int)\""
+    },
+    "ImplicitCastExpr 34": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 48": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "InjectedClassNameType 54": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 64"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 39": {
+      "Canon": {
+        "preview": "struct S<int> &",
+        "ptr": "LValueReferenceType 62"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 40"
+      },
+      "syntax": "\"S<int> &\""
+    },
+    "LValueReferenceType 62": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "syntax": "\"struct S<int> &\""
+    },
+    "MemberExpr 46": {
+      "Base": {"ptr": "DeclRefExpr 47"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "CXXMethodDecl 27"},
+      "MemberExprBits": "NOUR_None",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ct-cont-of-inst.cc:14:12",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ct-cont-of-inst.cc:14:11",
+      "TR": {
+        "preview": "<bound member function type>",
+        "ptr": "BuiltinType 63"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "MemberSpecializationInfo 59": {
+      "Member": {"ptr": "CXXMethodDecl 19"},
+      "PointOfInstantiation": "in/src/ct-cont-of-inst.cc:14:12",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "ParmVarDecl 21": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 19"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-cont-of-inst.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 28": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 27"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 30"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 27"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-cont-of-inst.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 38": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 36"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "S<int> &",
+        "ptr": "LValueReferenceType 39"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:12:10",
+      "LDC": {"ptr": "FunctionDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:12:18",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "ParmVarDecl 42"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "LValueReference(\"S<int> &\", <in/src/ct-cont-of-inst.cc:12:10, col:17>, Elaborated(\"S<int>\", <in/src/ct-cont-of-inst.cc:12:10, col:15>, TemplateSpecialization(\"S<int>\", <in/src/ct-cont-of-inst.cc:12:10, col:15>, NullTypeLoc)))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 42": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 36"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-cont-of-inst.cc:12:21",
+      "LDC": {"ptr": "FunctionDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:12:25",
+      "Name": "\"x\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "1",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ct-cont-of-inst.cc:12:21>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 51"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 57": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 50"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 23": {},
+    "ReturnStmt 33": {},
+    "ReturnStmt 44": {},
+    "SubstTemplateTypeParmType 30": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 25"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 41": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 31"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 57"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 64": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 65"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 65"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 65": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 65"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-cont-of-inst.cc:4:17",
+      "LocStart": "in/src/ct-cont-of-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 53"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 53": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 36"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Keyword",
+      "NNS",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-cont-of-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "Param[0]",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Cmn",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 70,
+        "y": 305
+      }],
+      "end": {"entityRef": 5},
+      "label": "ST.CTD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "TemplateArgs[0].TOV.V",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "DeclType",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Body",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "MSI",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 200,
+        "y": 525
+      }],
+      "end": {"entityRef": 7},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DeclType",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 765,
+        "y": 360
+      }],
+      "end": {"entityRef": 15},
+      "label": "ResultType",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 775,
+        "y": 385
+      }],
+      "end": {"entityRef": 15},
+      "label": "paramType[0]",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Canon",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 16},
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 17},
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 18},
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 710,
+        "y": 535
+      }],
+      "end": {"entityRef": 12},
+      "label": "D",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 785,
+        "y": 545
+      }],
+      "end": {"entityRef": 15},
+      "label": "TR",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 320,
+        "y": 520
+      }],
+      "end": {"entityRef": 4},
+      "label": "Member",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 385,
+          "y": 150
+        },
+        {
+          "x": 350,
+          "y": 170
+        }
+      ],
+      "end": {"entityRef": 7},
+      "label": "AssociatedDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [{
+        "x": 320,
+        "y": 265
+      }],
+      "end": {"entityRef": 7},
+      "label": "decl",
+      "start": {"entityRef": 9}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 621,
+    "w": 865
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-cont-of-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..632a43f1307cc91f6db36eb3bd8b2378e32ccc09
GIT binary patch
literal 25415
zcmaI-cRbbq|38i^B}dayB4izVWY18>v3EFj$E;&zWY0Q@%tK@=qU;k6*>zGjQFbWF
z$f|Ix at Vh^bp6~DL^Uv>}I+w?N-R`$}z1?ni(FS_zr)e(HP*6~u*3?inqM)EeQ&1dr
zqox91TI&3NQBcqo2HrsVsCc-!IlB8$Q21vpvz+!Af4xybO%!>4KeNiA%eOHvJX6B&
z`lpeYi7%0b)aPS-t2>i;I&OP4{oQO*H<IErtb8tWyMnjIUG#mz=KIa}>I)?+Ske>w
zVNPe#z4<*ED_o at B-;p?L_`+U-?cFPBKldtjvL~fWBSR}Tbr+vK+pTWcuWbsrb;YCi
z=))}LrjJa4clK<>;=(2*lwYXy#pl7y1r_AE)g6A`Ml#hSS6GiZH%IVgp58ktd{g17
zL at U?0t7gfcq=WrU*>tLB?@||wpNNlo`7%FT+2BWF-!HUDA4!b#*OLgp+#jQTFkq&5
z`PB=2JC#?JNwNj(8TY2PSmnFp at 7^Sd;$^5NoYYQfz3WSNBe3=?haQNa1drNQ=`cp0
zQJ;Rw&!ola`SH2NIwq<w2tIYpD)@}U>jwG<<JB2_w|_{`X(G9rCJS%*ZOJV-ZWYcy
z>hf`M!}@Al*ga%Iiw~}TbW>iLrkgs_BxW;aoYh?RQ;g=SA5GeV{k-O1K0{GD$9-D3
ztW8ppOVA3d?-G?_!K3sst1>A%9q&zt^tv2B2LJ0(H%CLiHW-h;%N9nDtqiGc^mK06
z4Yx58QlAYmE_=kLj21t-kbLve<H0?84VDw1OrE3lVfm(c-_KrtakINRL~Nu+!a`o!
zfWwsWj5+;xgRbJvXWvtl-tS4!+?RP8D|R*~#?XALWR3Fl@&gtz_jMz!fh4wzd@}JD
zU%~Iy7 at BJyk8#BRVaYObDG)5!KGiDT<D?sNkRw>G$ty5K7e;?;C?YATY<BI at -L~Qq
zy|$7?UOjmSojNJw>1>7pe&vDka_a9U^WwC(Q!e5 at ogBBsY2ML0P*TAMQwY#49n<)s
zH?j3Ge!AAL%fO`|JL6JjNAZ%%cSS`WajNTM^%u|a&z26^==M8*<gU1~M{SpPyEKka
z at uay>S7P|txBk6J)fn5GbZ*1diGPqW2hmEb!g~+H^1jrEmPUxKlRi{@?HeAO%8!h6
z^AmY|X69Yq-bSO}m76mvk=h6BITwR*A?s&`hjk<Lzu&x|7cJ%ZK`ZIpkv09(6B`~H
z^B-#TSt=89M^2rwPIwS%+`PVB;X%qcy>)gV^UB(Xsu#I;pFbVxk`ZD0oBQ!%ns at F3
zhM4;809)QN^;)!pBsqS1Uw=O6XRn8yu0lY`r|@6p{THrZj;v8K)0w;%{j7!SUUyOU
z%J?$HDX08#9G<ha&**3{<@cv4${v5WZGtF+M8=!!CBj81G|c7|Egop=tHlf7e3-2!
zgDlT=j2c~$yvbzF!O|O at Y|SdiE`6%##Zq at cTlo4jox82Ho$(m|g-|mswW>Hk(7l5P
zNdm3`kKOtgBr`_f6T7cYGpV+Gej)AaU-V9{(j)8V-Mhy#2SkD%<sgd%e7Z at MM%kvJ
zGrb|xx3=m021FX`k-HT_FC_<^zT^+s&Hv3f{lbP*QQ=sea*Ac9aIk7B7HKBZXa4nj
zGpiB2$vfo4 at q>v$5g)6mGppbFXPDarRlFAA1}CD<RSSQ=llhjC`sI;tRW^+cmqcSK
zBXv)uqvPJ5zj5;C;M*-sT|HG7#mOdERuBz^wSiZV4xO`{-1*Bd-kAl5`aZg3Fhx0v
z;6(^_h^#HimcM5 at LrKlPIxX!kDB;!4h1%xie+{?h9-EwbpCLwb_KDF<RQFQK#g^Ud
zBgZZF>9g3>DTVefQMGJjdw-T&Dq1{%Klo%@_`8cQd{Zo~$>(kJlKzXm`-)?0wG7;S
zN9S+bs$>8B7&)DvMy%t0G*fzsTJ<QilxM7d9^I68NZy{4O7QZBbNa>~?PpoC4P3;%
zHKU?isPny;eSD<o)qb>YYEnN<u$PZL`EAu;OTYH_%IC at WZoYZZAU%eM_Cg$@UTCHx
z@*y!K8pVoKPPwX<KZ$jMucDcrFpX$Gjug+peO0cEh>SnN5UD<QP5Ps-+)e;Re$%xN
z!LFhF_x}EUIrZXiQWTrV$w{|kcBWrkbUx9)<~dujRhV<<TcU&KYLe#9g2|6I7sOs3
z(Tg}?^J_6Ob#hv!g9N+zmGK<)i6inhY?evUk$eYXDhIMh;?<4sR7NFJ<iw5z;kXpm
zl_I#@zFt_r6aVh!+s8IyGR_7z=aW8#oUcE5?vGF+B0>5b`{-L|#IqLZs-~#V3=cI)
z)98X%8dNebNAU at Y0S^a~swwv_MpXT2|8;U{X8wb<*M+UOXP>_Bz_?dgs(aT~W&{Nd
zxHSkLoQr at RSI@zwo%Zo99P6i?x_`iTWA((8MibA{o?=QMUyajX at V(E-I!e)-;v+T#
zf2c1Uga%id7x6Ov{$(}$)U1;^Z9;4|e53g0nV|ve4g{}ti^9t45dM^Y at umq?)$`LM
z9IX2Gm%P4~*>TtC{FX_6#-XJ-&c5r<H~vjrQ*DC~27lJ^i~6!(kJZ!<_oI2y*2*7E
zZ#)r`%;a%3ow_9 at apT@E^{H!I!7{R)h6WvV7M)VM%Hs)FAI+QyzrSHO)*Og<^)^>g
zOGLiXKBy}1OS$<CZGNAyM>#j*&fnUIRyauBdwc55Z9c)OF>@}<jW2gfrtF()EH8d_
z(8^Bu&W1Q2Ip5Uux%u_)I44YaNYs1kdn=dCjK>NGMdh>4ToNbf^|tb9WoIoD+`ke<
z8JZg8szaU*Q$PRJs>I`sWg0>FWV{Jws(PM>(Z2TGQ-k_r--%>};mPsMmeE>=*N+}n
zaq at o>&w?|AGGkq&%B?ehmvk%=%)F=V>BD7wjM+9&mG|7K|9)Z at cYSXj`K`qizhT%-
zG9OZVCO;G%X&mIaJdzg4Agp<da>}c^XY829u949XSthCB%O8*2eOzg$VRC%9%P;=q
z4Q2urBTFrbi_?eOg-^^e5c?C4plvb4SGrp&O=ZVh?v`x}yIGr<3a2D)i00~g7kHn3
zK%-UQCf(Wj^KL`WeRo;ML4ktOK()@|tiqk52hFTP4!$`zP7X#*hpDDiRbAVxc#1{E
zn(M<NWKs>38;6Z~pWUS~8uMVfH-jmfx%K37Px)YqmD at VY!pkz;AL-AU^zweYOTtg)
zt0NH{--JAUd|&%YQElfh9_9JAZQ|NDtZp$ai0l`vC8f+EUx}a!st0N3zY(t(knEx{
z%cxhSh1=rUi2{rS1rF~IpS5J)vlX%s=qCsg-?+FM{yci at U1=lx!Q`2^SD+s9{2jFr
zDmyX8rr?l9^s)V`EL+|lE*3Qt(iy>TMlqt#{HGCA9#^l(YhPi!wqNU|Qu;z;l_xlZ
z&D2ggt53GmxUieDcaT!8(|)&Ec#K)Zdb;PdvX)1=eTt$@g#OE#(xsbOURH7G#NM&6
zFI~yh21iuTR9AMHO%ps93vx8XY<elf72iHqE|T at q<5GXz!Qy>iicgy5Q|Il at l8b-o
z7YIC^Sr<4h*`FZuGi$SouX6Qnw at AMG&<H2Yx~~X6`_Nd at Ch%)jsBFlM5I7-qxij|Y
zooA6%)s(4c3y#S3w*MB^UTzSo;S954JnM6H^h!z$&g@%~0%J>qmK{qv+n{*FDAFCx
z{Py>cj4h)Vp at LOWL{0<DF6@@zM@^;dQ&&h={>0of`eATZ$=Y2)Bj`$JhlY?xh!Cok
zG4jhJ6O;jijp(SMl#anR=eTvujaOy|F7>YpFs`*pNUG0lr<Q|Emz at hS^RN9iUlG;6
z)1AC{?(=j0k>?TjuJyP|CR9pABwW-TD<tW0jOBhFcHZzDzYtvEakD4vL1mNXhbKut
zH)7-SY*u}&%XtR!953|enI+KwjSbxNSIV<8j0<hB3=dtr-7oEb%;?C$<DbEcqr=yu
zG9FA%l!tF#KQigIR`gpcZYQ|U;`!0oPdpVOi%jx)8~e%M`VC$@`a$nQpK#irGY at nB
z*?Ua!$EFD^txnJ<qu9+hO`#7plQ&QGvlX4Vpx@{@8}s<e-Msj>`Sy`H-zefOXqOsa
zNB=bWoOykVM~aoIYu9Id_iO6QozonGJ~k9<!xKijHyyU09u0T+b5+Ue+#Ziuzk|}1
z)+w*OzK2m*N0c89UUgF1t3n~~vD9VRkk2R90yJhzeLQAH%azudFCAQqeRqE-IqLG6
z at n_zcsS_n>QV}`~$U>H<iZGRFoF!fx{vqoF!^P*(aqc{S!>>sW8csw6;7dM|^qgJ@
z%g{*aQX`}z910^|#PL~;DSr}r6QK11qY_RmHe{lwoX$M5!}EY+evkUm(;Mw;#*%+;
zoK`YXiNLh)7~tQ{PrR^ryD0B<aNOdfto`5!b=T-9>Ph at Ovq|KQjMr at HV^aQ&q_+pG
z39&d>i7d@!($`lOCLbRdV6q(Oj0)QQxf7EkyDQE<JXgM6*O_0j8TIk!1Fo+f1v-H|
zRWBJD2Pe>?uiqN^3|`sA-&8fcxPSG>*T at c|7)kHE(O=V|jD{3W;}2LH{dUg}PQ;$h
z3`OcGMLy?vS0rQCRVaQTyLc$PYr3i65mQ}P=i8p%#mEmTrAEiU%B;^#JZ1gup7>`d
ze at rHCAfT>Q_c}%Llb$EKZdb-lpF0TIaKIztO|04klUMUxzO6c}nKB8dDTTfeen@>n
zR+ZQL)yq$U%2ir{0<7cwRqcM6$(fv(R?7*FRxX}=tjRKiBOgw8Yvy~7V9Vw1r0a_=
z4z5X*0r33r at X`055ZVG3lD`Fi%KUhiIU(>K?m~FfVc?;7q$-I??(Dc;74>+1ciD$0
z9PU1`FT$@7j?*~e?N^MbQZf_RD*^?y4|e_Cu2EI{delC3)4dS$X66FFaTLwUg3tT@
zgtB0q9UhkO#>)p4Ekk&GZeT4aPjGBBbSx2eiO at 1fIq^*0w{FoS!PvOHG9~?8+p*$g
z#7-+5zOXfSJs|S!Y&$l;F~Fs+jq2Ft=h>%~vTQZIzpI?D+W1D|UU(<>SXOb&D>#)o
z;z at d^!BRn9Z4$4v`3sZAjz=rD#Lfk|D}#>F7K7Y{=WsVl$8YxM_+O2MC9b_QR5jHT
ziGTMdcWvGfN3Ut^&~cM<PFk#X!X=P+)l8Inj=3rSNZ`S at dxc-m*FCHpJt|#zWu-%v
zd8wmGeToUI#Q%d{E at Wrt(|TDh%Y+toRNl^sO*omJfy at 0&bKSaoGK<CxMJ<8*dBOSq
zZU0Mxu$QS at P7K7$3axQDi1_68rlAs<SYQ6h53sg}jTz?->MgcuwPc;Bx>N&;#1AH@
zUyt_Cyxz$^lW-CnDudQHJGIYC+)sOQ>S|ec?a!`84r4R at 83EPuFwy9?Q|Q7R)9bZ?
z at PsPui_Cc(xW2+$xtd$XU%t>y{3zQVEc{g*A9u02R`vy-!hNpB15ID-&t7h>P`?JD
z@!8s`)c4<JY(01~(v7pMS5$YTHa7GcOB{n^c}Bx7BuI3xr+ at f<JQLZ(ej(>RQG{X2
zqUf<KCyS at O{xYlJ&kIC{`_0w^d>R(01;M0ZUn%j5L6dIFVj8Y14t;{pEZ9SaMNa(r
z8x%>*OxCs06Kv6uo%rltRj52nXYy%hzt8Y=-b?X?<73DggHL at O9_0tK2t^+J%;TE{
z_lwUx_1~enaNMLaIrhZ+jZ<mQ-v;S8mmF{T7;X_Rg?<t-H`WnZZkzE+arfv1`wS%w
zisy0L_)>i<6`xyz%U&q!@U`P;9y5M^3)+XcdZ*D3RTu7^=efe#M*Ll}w4hv9T|_V*
z(&HDaxgp2>uqC0 at Je^<ovPp!xeEu!^wnvC^ztoLW5 at y{9arPqub!-!T0iNo0wL84Y
zShdaG)mm$5vu5)bsf)uapDIqKcqs>z2P|{xb^1rMz4BO1m14Nc!}S!7JFY}Ko>Kc!
z%Wbr5#cFb-a)Z{<A+5fe*}9*k&&?UYO8=$ZFQ0HfPM9+Hdg)z*F4v<}@(BVbki^n5
zmtvoz$Cb?u3Wa6PAD1<M?L~NMciq}N`r*u-_SgWA&ld&!-2A<b6%_2>;{~ieUN6Uc
zm^FU4Y^<&6st<28+)9minH@(M9-AvxZMfIJ<hE`02)&$#F8S-3o#(j_&Mx0*Mm4O4
z$lGNLc}78>R_C4dp2zkV9Tnxb7*34?<e%^&m7()xN?!L<rh=ysKiNj_e>`1!-jUv{
zaA0Ec!Uu}S+a<@t2=8aN1A}soeh!?~rRH1adybScMtC at D{meGUd8?4FNXg|rWy7<#
zm~d<^pH-`nYi~)(3Y5S0bGrHuz27&(Z#?O5m+lK}oz_i!w6|ybwdF0pX<Adr?#`v|
zxBFq7G&eLFXF|@iw)|Z8`d~&{=n2BF22NoeukL1i9elXKgbM%BU9V+5`ogu+xEjm%
z>$J?ze$(Fhc#%uzGXn3(JL3(V at Y`>i4~}5?e<4NlkBvNZ|6|Q`QfU*H{RPfF=eIF<
z(#QMhB8={($2+sk)oWS$W6~y03#rf2ac!<D9NSI}rkM!NyPAAHgVCy^`O=iddLQYz
z-$(~vjPL6_xA%qiAn>tKlqyDGk}}_>Jmo~0NyJv2-4uF?&h>5vCb7T-J3z>~8{2rd
zJ~-Rv%<boQpWD?EQyy(Hu0>y8jqp8YDfdexAx!agppwk4n at IYp-g4o|9Q{A0?Z!q_
z7``7-R;G8?kUoEq>wl0wYrL*^zPbD`M164%7&|%ClipmrEw}1RrPo{1JEhfp{MIaW
zUbQscc&SxhcI`3sw{JXjE9t+9hgeFx at -Oem6m{~1kMcdcniZ at YcCDqF{u4GbbY{$Z
zL~G2l?YM{acO^8UWv#76_k=L=m!n`X_o&3Y-*_NJ*Smuw3J&`>H_sF;P*CVwX{uho
z;Xk%Kp`G;oO^Op*s5sIh&D3bIAAf>yvS+ON1Yv{CQIPsh%dqVoiYeHx5U1ujefT=v
z{!Uj5sQXb+bZx~LlYcO2jo9v2P7VjwZXei&5#nhVa{^BJWqCk at h$X2APEakRph(pi
z$sNnLg~<dhX)%|lHUzHp9jLpD{~7!K$9eaTm95WSOJ6pNhl4!g6qvmgj<tpvsnUp5
zD9~k$j+bhp99TIP6Uu9A+~H8!G1!2Z*XL+E&cR*9CD at QN|GjLSoqP;zceBMzm%>>S
z<&#-fQ3f+8Vss>-EaQ)ZMQ<K*mHyb~8OAyePu1&_&tXG%?O>M$(L2~9U_u%<y5;D(
z+esHg+}xTBqdQ!^9duF4!PQrteN at 44IC&C<1_Ss_(P%*IMXn?(90k9>J|GiC!A2(G
z8W9?&An*Tgaya%|oX2b&GWDu^i!&TlNGTFUZd$@(uGR$F_O`k_3^@iq!6*y0QANm~
zIyqupNh0JqiFhn8K``iVHgq!B#2B8sKxYasn6Dh2(uBx(y#I?I*7e9 at fq-))e at N9D
zG4HwG9vhp8H{7dPNfKG54Cr#cKtTZ?;zNfW>`ti_Mq;-cI~o*AAR^%0tT?>A+rX*|
zriZp7wI^!WME3}c4!RDE6P<T+c=xT=k~oYm*MtIG1x9yV9?q={?&n{HWs&z~&CN74
zc-{F(xpV%96N`$QbyHu9HBqdGlT$fWHrFE{Vak)aq;J$c_gl^$B%Z6P#B!P=;#{sZ
zGi9mx^gqS|5<@hp`}LFD9%dnJ&0CjkLzu;tjP<upZMtTHEB~T^#q4ukHTG}6I%%Y_
zy>^hqyDw~9GAci=xBhBu-?`7ShQ6}K4L-z!b|yFo&`dWpwTV}H)%0;rZua+m`u)YR
z_lIyUntYp+7i}tAHqS5h()gKmIgnoX)lIIYmOVhAT at XutH$Iq43dy&$sWYpu?kcX0
zrFz$Wa(?~dHUdTo33q6~)w9+1UXbGz3*NEoL}X5bc?eZYmI=J(Q&4cLXLZz#^~Qw1
zD*b1`MKeUfac{J_N~NOOqGqEClt<=|VtnLrKP+fcI8WZGqB1e0lX}6u#JBpJR`N!^
zB3-)uB_Xtc;yXxR;8LYm)K+bWgHD>{Kk2&c;=*30Ms$i at FVsg(%`Gpi{vMjGD8VGG
zyo6<LFs|&`(?Ikcfv4^*l7vHu94%9$Jf$y0<nr{>GVr2ssh?}4^-cc-Y at EAZofdKB
z at 2O;<R*G!s(Ewt6R|-v}xVn1m-%0PQ>HV~vlKKMb>Iig5Zc%@3?TeN+OP63|d^{@1
z?YUI>3%*$v&a6vmloa7lv`5CL8)KDnM;6y=#)E=4zSvAxfz|-f78+l~QWYQ(XZW71
za7d!++j#8hFK2UA$m)|8b#J02c(N55OcXK1bD}vQCA_LhR5d-O=yAABrUCCUgZ;)L
zH(E)cFo`0zlN2yIPu3HV at ga1uKq;;fg99iLI*=81-bI{ZLvyTrhh|b7enZ4!kL+rq
zNWW8#|M}ixCTnQ}&4j*=YmJP0H)x{Vrhq1ct6*^=Uq#`*+*h0rl;~=zhHW(mQhwn?
z{yVIc&7^HEUYDw>!lR7q&?17OuqivK?eh0gx%ijNYBqE!_?*H=kUg-W&nAf+zYNU7
zl>WJqcPl-tAyDC;*`)D~;P4-2u|fn4LMPbt2$-CAbMrP#o=McR8e8<gv#y;sce5$a
z at J~USA<%~m5g?&E&UhIxnY-VxP4Cxja$2!<vnHT>^LLE{J%Woqs#_g0r6v{M{za8m
zl<9Xy1DEU2{vh{R_a;5u=7)>wdI<C(jpJG<U$M~()4p6>LVebfoH2U!@)*{j3YA&8
z?2d~tI><&7 at eegow`Er6#RzSI+#lm~$}<DpNs7Ix_=-MuB=PVt8+LR$w<j*tIX$Cl
z-l2XJ_tQyhgtw#fQRUwUSQwePMX(qeLx-d<fS6Xr-p6>QVQbyAd(A*j6dGxYXkAXh
z6)QR^t>;MXk(4N$2rb!2#pR~g712U_?~xi`qQH+HwZ2Ip>%&78<@86a^Eq>b#=(!y
zep+>nk=39GY&3bx5pFm)jc at wqjq3F8);;V^tN-cXj0s%ok0_iQQnhew^gU}MVtm4s
z^_%tPi~l(_IM7tGlIWaY(nzBwlYjb&$hN6Q+Gf*M=~19^HVE_^I<iMcEM4fKy- at 1O
zg=&b4rv@$<tOh=KJS6APWkdHk)Hm=S8~VQ}05+un`y9p&umqX}X(04JP|obts;EYJ
z=(npljET_4QE3ZJ1?zRlr2X%YSZp*zBeX1}jAA$QySG^d<13x@?bN$Y at drPxVnbVM
zuPWL9w?Qm+0_9((Ku=rM?t)2r6 at w+v*p*;Y5CZ(~C)*(MKolSu9ElOERVMbf&TNgW
zwwUeS2r4fyy;8qYdJQK6-3V9=C;H%(>w;u~V|h+Y)W<<@=OigFmj1EIp*gZSLFC}@
zD?eP|;ub{H=mF~fOZ`0ELFvF^Ar^hc7GQ`R(<Yag?JvS&mZo at N#&l#ZfPHtccTdmK
z;_#{0C02 at IF*(ME`~f4CK0d9b&&zJbGZb}XyjtBMGYoJsEr6KXOGnS5`%0qIZcz at C
z&xzc*S$2t~|0<c`P+a5qceQ`Ag&Y(IWCj1vkN at MYN0JC_fFBsuNXrnRHKaSdG96hf
z$#?(%v-bZsL6lbZjkcN5^Cs*Xj=iAW4I-4y*Y}akA at zlLuy4QX+_%h&HjKE$juu+v
zCR-&$4?9er?qStIF3hs}!_S`^3X<rSMVHa3 at AZ8{ejENpA7aTi1#$SUCTh7({8dL|
zsH*qd)V(;V>#^mQ|LsqN4~-pQ3SL(~vhMOe^oBrhT<fuem=C=fTWVn~fqR00`5qNm
zS`o<Bfdb<B;8OLZTkG==6!LjVpF?r~2AXt;Ncv(i&V!y(g^YgYS9ilS(;!0w%pYkP
zKH%}wKsi*uwTLtKttO_j&jcaWV^4`0UHXt44w*l|eaGRxLr-qkU^_-+-~UtLvpBr?
z5l-|mvOR-Xhi)jzd#d$@On#z><bU#MaBlcNmP)(&rC=vUeMIZymYS=X+vwt({91f-
z9mWtNWclKSY8ooJUGKj2i^N(-&(05DeRVLpVy8kjG&XdtyYweP(JCu#_9m$*Qy-)6
z?ZMX0$-?TFOD=rrBZ<m=^IBlg+D*<bDXsZ3D0 at pbVRYHq<%0Nd);~q7!QpWU1TB=4
z-S>7xTY7YMP-+SAjstT7xStcb{cVaE>wcH4(OmO3{zGyK;J(3EEx%^4qf4IO9@@bi
z71gR1)1?%*OR6i(R}%|#1u{HTh9tP};JO>~h*D*CyI0d*T&1L%!fvuG$#u=}Q2jMV
z-nkH+1}kHEvud?a%dgFbd<i-E={>ZXQ1pV7VS*PeB#AC at DEq;X2d}Zr#cLekC%8%r
zTG9_CWpf2x#<>~C!1DVifw0|(@eWnXu%1+qvvZs2=$?-vyfv=e9p$`7xNh~&f?Wk*
znF?~#D{EFw=yKsh<p-uled-Vqf?1hfdEj_*G`vQf6#7qO|6^O5fIq}<hPvCmHKKu*
zB{X#<3F!5g5uBS!at?bF!_AJzx=J=Z7e!NSjF~#b1IrKH+}R|&`QB5f@?C+wcSsNK
z8Oe at j_lIl4VrMNhBQ0k2x_WP`lWli59P2on)Y&aQD9-1juls?Y{Za_C8Ms(qP?uy~
z#ybHqTT6#CwG9;t5Rcf<35ocjF{~k+KKpYmVZo-FZAt*$)P at Vtb>f(rcd^`b-XM6?
zDV9mzRY-oCP%eZZ8%4+sz;|pMf7E6>s*JTy!+bdfpD|L+{Eh`csxjwU-G6SRR(r(c
zZAdlNk&8`yM8)^q1I8X&KY+UlYWW}n6Z$0Txc(WL8=|z}Tn25rQOk?;{Nqk8z=%+=
z%#daA;pBhn;GT?6?^&{-ndaO*UiOo2Xsi}<BNtz*fm$W-fK7lwy;{TeFtdnO{*7|0
zU=ZHNNW6>sV#T7qI3LA{5Ulqo%jfKUO&SdiR>*gOvIodelR|7{kNr)ayFfP_dgGJk
zKSyq9YQTk_Ixq5nURL^ok>-f>@g=w6X2R%ncTieXl!g at W97~SCCM!vosVJ`12*SX0
zjkG98vtX3}Ia9<b$m at gPJsWc#oCtYlXoi0bLbZ0PKDVVJQ})(}!TMl7;E{nN2A2LN
z?8|V at oiHXYbk)i-dGVpEuIE}Ru6arFpRKDpV0{v!=vxye35!`#A<6vD;%g>X%lC8l
znl|bfyBq<o at Z4H~9Ne4JTB<sE3o+;4JOK&b at 2IB^IhI^n`3dj*P5?qFY|QWY at A@9O
zIiyfVQZMTMo<H*glbc8B3R0x`dZ5i<ilW&qkh_VHLWkD2s9`Q{@goBF^Iew7M^k-G
zIqLf`s&18HD+wD?ppVjz%TYu_b_~uwMG>hvlHRJy$|@^2z1qSF++c750}CxQyfxes
zd8+g}P?iSjE0Bc&<cd2=5$s2f`*)96^4YC`kUzyjo*Wyz{OiGNGbP2ZiR-|7g%5XK
z1S*^;0ysx?^Hn&66ae3M6R~PLc~R|t_g43gT$_pBJUXo5&^z}8EA$v|xGTu9(YM|!
ziS}>7?$xp?MdZHF7_mL*vsIfp2eE%<T3i>%=r0r=l_60HKE{hPa-!MLp at 2Mq{(#%%
z25`&=2ToN2Q~_uOC$*3krQ7D5&RbPf=6$^CRX4Uh{(~WK(`BZ<e3DY2SAQX7vQlX@
z2=+?~CcnGnV3WD6P<3`RgfZYUrcI0ZL1W~%g|p4D5ryKoQx_?S=39Ph!*`jL$)Vy!
zpPIAja~dNL5lgP4{l`}fE35LcgS}IrBi3N^B7JTdqfnqEQth6Jjlk|XM%{6EFHoga
z()ac^%Jk&7i- at J-oAQ>#z~QPG?1U$?U-mnBj9J3?- at UK}SvZLu79(g at Ec&|GF-p-!
zK;#K#R_plulp{tm$ay?kkzV#;K}d8?U#dNCcD_ZA^YTd5cwbg+>ZYa3vJl{M<`uN$
zb=m#U$EgEiWkzY{&K{?8Gw^resY1twF?<*Tz1gmTrJ at mAg6pcQe1BV|*JrPNjyVA@
z9p^b=FJUuQ+x0ySq6R7%>qxWRf6sm9l{mZ1?w;08-tMPLD^;<eTBYv{PF7Pxiys at 5
zgp^HO;x&L+R&e;SRl=nzdRUCqgVJo59@^F0 at gp2)vj@}ds|pWxtB!`QHWP%Ur)4ZQ
zOMVbWz3X<i@>Zc>k#VwQ^qxm`;md;25$ZZdb~G1bCOe!no;}FT>CsH*n)q~xk}`26
zOGmOkE;S^*?x1bW_|k()DU72Vf5gDXYq<}G2`y#%Be!5KMV^mVR4PDHVkv+wJ3dj$
z8!PxFA*tkLcXty0GVak3A}+BvrR at cGELO-Zo}rAkQ%YU%bdre5DUR`u&yO8k9%05k
znz$7>Wb36~nGlg#xuYRRgN{4ieS0evyQgQR5Y*zrsXs(w_ZG at q+^@uzmBJQN at TG{F
zQ|s4>Ls}#A_k3K8>oab}rsC&)G1H%nRZ>Q6y29B75U!tp10?Ee>D at ZiRwXG>lEFwi
zzqMMt{Ijelv!B@$)M+YiIld>k!%BLj>2XQz!H#4>r{GIMngey+TAVddeLj?<%W;2&
z+0de+vWxbqWiS`UwENhyMLMZ^DSOq^+WKW9u|LH27RxiX;$D_9$)>4w-Oca}rkZ6#
zFNE}Jw1N~nk5a!hl`t7<SfX0#xBkW)F4e#{my9UoW^+!uOVH80nU|NGl9+L0V?_WK
zRESmEwFQNaN#HJAJzxSGJQfo?rH;0%^K_=kkNbQ0{F2FIu~^-7o>B>;Ns!cVwrn!%
z1JpaeZ7B-^^)YgwzHU&to9;F(>*dorCbfDgEnkg@>@cbBm;$~^R#6h&w at T-GK6{CR
zIUiA46TCVfH4C$xViq0fE|+*@12)s4dp|!PPMESpsy7C at b<Ic77BPy-*)0=rW5uR0
zrjX!S-~``oZby$UY_)_6HUF~7<U*TKs*=SZcHca<Ty|WSXtDFA=cjnB%C~(!rG_B`
z99}epIGH#RANFv&pP3cx06a#An<QF+U?-m1b=j;$VtI at ihiy`M1H20-dO76%WMDbj
z-vVrkGV^YgcL3E5-vy8b_FB|v6IW=VAOSqqLkYv+PXXM}e$l}wV!ZBOiwC8SKCLCg
z$jnPfwK8X))`5N1TI+hf{($k7OQ|{7ZFV%r6rB&`<Q$%2d+JYIjc(sx2`u-M at mnXJ
zCA&6PIv5>Jk{!Lbt4{o~>R7RxvRT#MpxA=Y(M^lW5P_Sz>7gt_KYMu;@!g=Cbyn3K
z5zb`<@eczz%B!ZtUz20P at LA{Q*kw~~a17)yY2lG>nYVBvN(%5A7h|=5PBl@)bwVH1
z*ly$S*}E}Na0Js4>*@4$^6NzX8^oM*$KA=_RCO6XW48_I3b_Fw#^FgJy^771Y(X`w
zZC9e&UBC(JuuS9d+`7rB4fWc)q)SG{`l#w_^4?7?iwW+FOOnrTXpF=lmX_*RxJqks
zA-vzri+1j70+J#{V;NaI&0sF0JaBHrQh_AejG*N#X;4<_!xgLm2PcBb{OE!?Oh~wv
z*j+BMwzm8P#~)>;bo3KEaMFGNv3DmnW&c3n{~Z8Z-G`e7t at yFf26RT5RL|;xi0%k0
z(d-%Y#to~fmJ_1Ui;CL|6|nJdm+x}1NEX!v3je8(Y9~mEx=!%W!bugIBv?$R;f$mq
zY>_2G?- at u^6QAH+by24Ny*9&~8l0pKeQRR*b5}oD*AUk6!Q9eag?kcqxvCl?T~xE}
zXQF8Lnk1fnh-$V6`Q5xn{K&wK-<a3la8hH0Y~E@`l||)ujTlbb;W6e{1x3^5-q*nO
z0Z`^Z_mk@{O++=Qg5e1(iPkB>5`@)>Ib7(1jH)U_xgcA!WPC<@wH9j83*sfrB^6&)
z7 at E&jy73oEir#D~qQ$vN9dDk2*ZAq8Gz*bR!vj37g;>I=?(1Mv9KIY>)pTJll1`)j
z7pg+uu0t?6_I7+4V+UU9+6PY`;(%Nb)oj#Ca&8^)?T_&mRd1q12C3R*;(_Kl_q}26
z4}r6zuYgRH9ld4a-I}r%y1lLE-8u;OZELjU0QVr5NlxKJjv|TWE1FemE|KI!4zd#v
zsUyp{V#9HG4exhVb78CYwCVhD at iJOOYLK@<DhRIh&OU>4haKI}oO|K5+Mxzh!Dk<m
z_eB!NHtVEtUVXu~=|5I4ZHUyDb$d0nC50?6ZI9|C9RdgZ1j4oLh<rJ>A3Z<|r7kOF
z=5XJ+zqaCtQZr;On>wH*0y0K~pw!<cYGCxYZ*OIvU2=ub4b;8P5GbvUTv*z`bv)x7
zzry0Y{3<74Sj+pBTEesSoq5?<tAw#EPocRqQ0VJE3v)@qw_Dj1z_R*gsk=Iv05g%q
zLJgF5Rc+4j5Y2CAJ2QA%YRH1MaJ`PtRA9OGI&;ls{l)Eod{9h+(2Hvm)>`w1Pu<ue
z#tRZU4quHWti!rGjrHl;OmC-infYmsJn|Nq9!mlU3*y2AD9rw;GwQiSKFhrXW;x32
zSpfPFx4XOu8TswLle}oZ(?n$mLT$05oh9wfC^3mZH4v`aFs9#I0C)-QehKQfErEUF
z`NxQc&sc(>I{EklxD+s8Usj9F)m}w(S<)XWSl9YR06t-BDnutORJDFuge*iS7rDsK
z#PW);ZC4g;p`S~b?5EXkvk44Y_g5dr65`|2E-aNSSFfCaQEH^I!lf*T$b@)QiGsL3
zBx)(Q+*}l|R9H%)NH8d^<^>d!wF5%$P}zv=r67L{iXosL_J6wZZ-k8BK}{7%Quhho
zNPWUOgW746D~P$NO>WwX(49}%{bFgG$prB2o5nveQL(J3hgdfwx|;f at S5=4{-agC1
zXpe<Ca2f-}60gt5!QTX%Gl(S|+%(gYU+js=;$N%&Hq7z864`fRYtd?RG%;Bf1Am0(
zxa3(;g*D<qr=jdNe8S~3es!C*iCJTWlS@#}b1mguR)@-}YO4 at IC_SWe#lz_US>Z9H
z__;M1%GCXfDR^J62JNd~IRPhGz%03RtA?cQ_VR1TgKR7kuIx0Ek-7#0P<c*tGS?F3
zX$+(CxluibIz~|2FZH_NX1ln}1EG29H(A$Di;xb9HjzYEVH}ae at E(wz9<8pF<p9gK
ze4nY$xEwco;0v^d)G- at H&cBh`eIWNJXki31()?NuJd{F at DtWY=z<qSiI_U3;z=qiQ
zw6?DbfkKr!U3V{?RKBd8!wj*Tjc0T%iG}6Wi$2SRE$HfyGWZ_2-aJ_Ihzf+0_+Sm*
z!ccMa5Rl6rki7sT!$TZT1*`%xWZ<7dLBU1Z{>0nYW3?%}sIiraxj0~q05p-5q4DNx
zzgR%SiS$0C(-mUcTrM;QmB|pUX}=z0f-G`&%NFE>GjaHmjhw+kN0PjNsh_np9I9Mt
zjGPAL3RU|X;;r-b$k<Y8yD2l~5>TCI+seSIslND8SK_EW at HhoOAjJW{;N}j{Z`ztZ
zSk{Jct!=*91cyxE$I9uFIZMX6ru5yt&sVlscCn7CB^!5X`7mX$MG!1A-IJhf2T7EA
zj32ma*)RL1(i>&n6O)oHFKAivB>NM97fdch)5!#<a+l9Lny4UMR1u$Dk?(>#Fl+m+
zr<V?y1IR^T;BzIg$f{)N+U7#X%yi9Y^_AL0kWP>Mel>M)u)SAI^|RQQ-|Guu`0_#A
z(q`-)0`2BScOmftxMoY~3n~w&5(Y at I(ub4mU?m$cCKLJdWp|l`RB($aWj&Df>>D?i
zhgK*^V>0`f<Hq#izG1oeTejtwVNCrzf&z|YT0nXq(g?sZ6hOph3O^^5+-=HNi at _?`
z`?Lz&?i`XyNnK at R5%mfNvkzs9ckgEhn@{qg&CToKWs at 0rdJx4g!b#v|%A6c0go)~M
z$YGc%?R&f;+D{u*xSE!Tmj=b~?+TKp>ECm#K at bNE+(4=AFh9o^fm`t`#rM-DEV{DX
z;jGMl2_8N~V>>Q#ErBi4#~N}raCncCkaYk{0hXVPZ<sv_l&0 at eUNb`8FE-x4#_D#C
zNIvJzZx!PCF-^#lz;MFO(R5kXi;xpS60^b}MInEW*jqpTdUXRH9eE7Ob>Sp7fW164
zMwm{N`v;+sx at oME=oND^alirDvZbNM)u6O=(+aXFHkg2<KFZJ_dvNLZnQww|ymixC
zRpS at ok((MLqr52)p!4qI0+gP83A42J&*eh<b+nf*LvCD^Yss%#EAZPxY~37CCj1F)
zlv{II`&Ap<c71ORU5Fq*r`c}sMutw=O?_R|?W0Tcii!9pgwD*$$CFCtFi@>%^OTEe
zprSUs#RCoi)uV1~r{voX9j`ByR=&g^hPxR;X`Aku4n;6ZfZfueDu!W$j_0==ZD5d~
zE0RCMZ=@}uMYM?bP%YC~XW-nu{y~EQuab*5AK$K;Y~OKSQn{U7CK=!FSk<+0IZT(>
zdzn at 8cfic6s=Y4vafK(qWEG5v<y1=yLg at bG$5iK{uTB|zODQ)ayZFhex^o{6|GVuj
zX={FYRTxdH`RM8}KiX_DRwFk^7`TrhfThTJOkT*C1(&O88K`H&XHOn0IVq0I$TE6+
zuzAq(VDI~PkhSJ{axoB=t at kX!i%ikjbLB(cI}Wf+6Hu1dNL$n-N~r6Q&=y=SWtHOf
zz&Goo*0(^9h>~Nq<R!H#LJ)#=gEq-2Y2D2=D;}zLoLz*RPosnkA-E}qO5TWwu^SY7
z8Fffg&wLaPN<O;d89+h{oM8Ntz!1knWnwrj97 at A*Df9sgw>d_P-VKi- at HZ??OVqkn
zhIJSh%V1rfdy!8LmUjm&v}egozRZdC>pfm${4HIzy}Qq+y5p1xh&w&BL8^rkx876Z
z(&|>rdd^g2(8oW<r;DX7*Ge|%qjZVuK)1_zz&}?KGt3EApw*!m)=&E`JRNRI7h#IK
zZS8*Jp!foueu0Oyo`JuW+-we9b*i)+2h3Xm_~oGMJw{H-4!9-fdefJ`kKapy)6+)u
z!=*6cF|>OFfiC%CZSdtyf^jZ>;^ZPHX^<?)5M`ojvmm;l!zU!-Yk3CV=&ho~r)0)5
ze06W>&CeOKLl_(fIHlKc^(s2uyWXpEcH-pELjwnhPUEGo$xQi@#OjmWkT73?)?Rn5
zmml?jn$;xX2adJ*Nf|TC>imsmpL2G-FIWPjbQ%I+P)Yw*ynpSX)k#?sE0ZOZ2>PS*
z_7<W(P4jeArHK%B)HrPCFadK~Gb1<@T&kYWvJvvefs$;drC`HeceCT1c1e#3H&XqW
zDNu8Oa1OgW4?q+ at x21C{FZq-+k6*8#G{!nTI;o<SztXlpgmJ>vsGANTskZ;@lj&?X
zZ5aU*AZ)Rlio at R$nxuva4t|JBQkmWeg{>VII|!C}0YN?QFgD28m|0$_sfrO~3TDHF
zDnD11GZF#-Gx*Mdm_Wv;iTFNERAHoQF5dHKzvcKKzqWWLXH6#^5Nh+a>AA0dsvT8x
z>s6fOY8H_8+y^*4qf?WF%u$%jYF~9F&|s9Q*2qhH1SoBm*tV-b<L at w;l|3XFknp;W
zyHq0WUWDu)&SSloSbi_b0jT9)b0Cy2?xZGS=|Ufn4MIp5d%`&(+s^-?dx@?vAd4C{
zew|o8ivm6u+z9%2BRC4HmXQPnS!E)r6!f*E|G#A;s>Hnea^PlQY-L+{2;fDC&D{Wn
zTmjMV&QGWVG7 at 6ji3B})s5<ApuQ_s(tNYvr)D8XSVkZEH!JyU=!qpolFwrW`DO4lj
z#~jidRHNi|?49AT<LBRGv<Cr%n#b&tXwPStBt?G<0&t{Ig3z&50>$7vWG~A41aJ7q
zi!>JXbr3UC=^bg^qmr6#TvlDS6zo>87ww+E!F)~_%>EZkGPz1kuU+Z+l$wGcLv%Y&
z<J>Gp{_Nzq4b`;l_>1kb0TA^MXi00LG(VJMP{@srOG0e<$GL+p2PHU at M8U29Z?`yv
z>v}l7{u8{$r}lw2++}cjbEuL)aqTFmB?Gg2i7mU7_Pq!$r5$c61z7Rl?&DfSt^1;}
zX^0&+(7!^uJyb*s*Z{!6KyIoIudM+Ly}0fKb4lkBv`F)~kkOydIYdQy`*u77V;$Zx
z472FM!h!>_3G at g+$a7uHz~hotR}pA^UTV6dP;ZPJi;zVAe7>O!&>e(69pZu1%Oep`
z*B<h!pj`;T9C9t-zdMm-O772qKrP6JmXrnE5kU8~e-Sb*$`$y8x2`ke*AF%eqWYM?
zeL?$Ubes!JTMBC;h3%`)gsDAi-7HuNXn`u&kS+jZztw#HFv6}CfNmu8g`C`yaf&Jy
zv<RVdAglqO)plGueFKpJKtY%fzY_h|3K|k+YP8~1W$)wXR#`DPJ4*|*g}<9C3CbPb
z%~vc}MHR-o&Rq5#-XErtXc(I;_SS?hWr<K}1NGSk#L~h3T8nCNz<q3XQz5rqSp{Fm
zm>ztHKMKg}!qiZRA#Xq`HV&TGfB+8<)HgRa4+@~B at Vj@2B at DF@AR3ER09A=r=M-%A
z;9q9e-MvjrE~bz0`KQ`&Hm-!;oQWMRf4U-jFY9xvlCbg4etfCRMOZ`eD0uQy5+=Tw
zFvOiwGw5{+=jPbU4zB4RfgNmq39%hcGKI<0=y!>k^{J`O|Ev?&WU7n5<z~L<Eu>5D
ztT7_|AT9mDtE$zdZaF_3-lD8;@F1bZ86nuvb6K?W>J!<p49+Bxt2c-o$xwL_)HizI
zLjtr_2-g(exN~JWp`Hr596?;A>rH;#^68E)1Luo+irv<31MM;%<Pb4mxMcWALb+OO
zw*Y{=Z^z+I21npE+UNsm+e9WfsW$^3<)1>8KcYtD*p)V_TuFl3NZ>h_Lc>aFyFwFp
zsj1XL3jUTiaY at RB;EdaF1SJj<NC^?AFrZ-$GS<XK>sE~s8*=7|BwA4Qzb at e}HLDKH
z<SSnS at 4zzWD@$g6#=)iX_-svy$Wy_ujH)5N$AIvxrUu}5wz8Lrw&~76?o>j8^<a&f
z%e2Mt at 7=A@&{fpQTRyF%;n>9IhKud- at iNB0kS9^vx+vYx7{V=rqvl8`T*`a>tt)F)
zX(L&~Y=qIywjw~k%G~1_aMj}d^?|}wuBxYkNCl298mJcR1ORP567L6iW6Bm^#>F$F
zKXI7>O-45WW%GB;ad_DtT5SR<AL6}6?L!=}$C}%qm=gI!1GPY<2Z&`6lTr at GczxnW
zmux0u<1$gGNg!WlShC+^cBq?0JZrS-tF0@;5i*e1b6tzlhvD^iS%4+ZrIljUs7?Sd
z)^J8gnK-iy5}~6rt_E at 4m7H9qL&{v0%;b#zmmyFoIgh={SjC}%)J*KMv`8BZ$l1F9
zdJh5i6q_va06cF4SB$`#)MUCz!MD4dR at +q&OS16PWtRedNZ%lE1Pl*JRO|<}P4H$R
zfM|haakWn9rv(ji{EPD|78#aFBIc4gP>>zJM#SiX0Y!A4tX-i9A3S^a<Xy(K%SkzX
znSD?;c{UM$*i3 at KjMq3Z#1DJ4D!OUiS@!gRj3x)bAINxcXV}s9E=ihc)sI;QwUR~P
zPClynKylg8e>`Ey`{z#GPWRGCwgYo7%ju&MZVnC&%6$UQkJ!<9+ at QSKo&hi*Abccp
zeBy`Iwm|CEq6}m at Qn0lUK6wZkk=+Kl*onn9*${(mJKM#W55I34fm5!-x)hsloH_IV
zylY6uHnoVPvAq7dvN}8!px#GXSPB^R%OM{Hr4k%xQ}9)DzK`)Quf-+eQ|~6 at S7|JY
zw&h^S>5eiGJ%^LZVe*P$qyuqu%n-`DsTn+t^9vE$4YJxC-6_9(WiSnBpJ`J1z#B70
z^Wr8&estR~U;q-}AhP|}09TMBPnX%fs4j8Qb#&?$9mr5O!0G0&5(U5W1xt&TFWy1r
z*8k>TBU*r>{P`!QuUrD+vFOKG#~I!~885LL-J1Ml(c|#y8YBF&G49R<g1wWbx2gT%
zQl><Vq`kB5- at F#vrqEQZ8mZQdI4LsyT)E>CtYk1YTaqt!U(xQ2{?zv277&3oBlNIL
zvmlAUbz+X;`5;V-216j1;8+&Ez%&kW(qsk%5r9YRwi+DzyM5p}S_0nIbh!tqE*mbV
zag28=>Jf*uQQE8}4FKn?TmhF7;97ERZS4mIT(X~sWa{if)Jpmzz|=NXfkpfYTJ)0q
zcB!r`)&7yjNVzWEl$1W|_WGNbuOA}?Tp5*{LFv4mjk5s#cS>xVpxj{ri;0bAU{O|-
ztG8QMoC$(z0zkV-7#I_mSbs>n2CAsAxWJdca+NUxGwKI7O%-93e?gWTS!F<^`N0iq
zxOB~~8mm at o%=9sjTO at r>Yuo~~WG;eq<=A1(l6=**0x#o#xrxQGLPCvz<?i4Bv!O27
z?Izd^3SWnN4oxr{=88ZT`M(kFIR_egrr1&&tLncoCa<n82rDGp-2X(u;35gl5wkfW
zoNUG0|6jaRhKvZR)Io*a|IPta{XZuJ7rF9*)cgPa2*p)8cw|gps)ocNc}OC?#>lDL
zG2JN_7~Sp+KbrvQ0jTtn6I~>624pnp4(Y+<QZ1k#!e5uKpb2$#<@<5HwI-RX0-UB`
zBart(D<EcXb!2e1*eaL>S})ht>IdqODIf!GNJ%m>_S7)Vd3hIT!zb at j|929!?&WNh
zpB746Nfas=P<#<!8SOvc&~ouiO9k^N1Z}|L$TQuvw=-l^h)|6hy4Y81NhLzx{4LnH
zrUjW5Vx{`11<5ABZHO at -BlFW9dFAwz*T}ic8Pj4x0v&>a48=ob&75TZjge>_TQlQi
zPu&Spn}b*hJ?804!V9nq2wlV#>gb}}fb~KhY%ut44mNInE(#8#Gvqx&O2Qi{mA=F}
zx|AceP~d^mKNW^Jtm609{JG<un3q1*WmN=O at IKA4R?_7oWVc|Wpe#fpc)^D_wKw%7
zY)>idLQ$b(VqALOXE~8JlV!_7?xizzUM*y?LRv%?A>RF2C#d$Wk780FRU%6r5<cX?
zXC&diu0v+YrKP2gszucm5XJ`7On`=n)VFj+3(nRna;~9$qABr<F at Lnks)LKgN=}V?
z1Wxr$UWABB^BKl&XtaZlskNW!<)8-%WcBh$!j~x7^a!u#?oC!T8}70OxGf}v3cO#y
zWRC6y#9-Cb?Z_wL at XK6+;w`A#`}mURT=F9?2jcv#(>8875 at 2^MHbj%S at -iU3sd>oF
z!M66 at wt%MF4gOqV^eFeEL$;9^z>~3;Q4A at mJ^Po--eYju<aIcF&C#$z<m}eS=uY2|
z*_bJ)FVtKZt<@+qQl$v$GuQ8#Hbb~x{B~#ppe`i!T^1|^sm2;&NsA(nAela_YWpO>
zZE=4cG)zfi;~f8tl5_-^`6>J7ShXL~;I7-C at 1fI}5t3W0=ig8TUd2ihq(TJTTFky^
z5iCaSU#k$2gLWyHIWbAhe{!}lqNBf%Q|by7lN%wpYs0*;S8ey1 at Ip%c3wTmJNFSGq
zU#iJJDp}cQ>xM<&-o1YkQZFEuNst^ti$J}8^m_sE^PsmOOrXhqJy;Flst;@U`EV$R
zS?GSmOIVP893v31xSZXm`6$VB0Zkj<^R4ZkA$QXP;oP=Q at KFf09MD!6cwWtU(h0OI
z2p)qk7116zs0o{XNeq%Jq$l9-89vRRKLk5QzT^SQ#IgDVCyCZi!sp94WR6*H^kZ09
zJh7mFR(98?HL4o?F(|_V<>vc<e at X^A<8a9Iuvmh|h{-{GKPWJi%!l?o7BQD+9g81+
zaA=v}B$uS;<~^dodn9iTW7Vd*(j#O;cS8w7NpV}v2<0FcL`&}lhzUB1m%s&BSv-An
z at fq0VAs(Hf{~ZN;CHH}vvNv$<f8^uhd4UCx72fq3HaqSbFJNLvGMDS-(UH#Y9FTb&
z4vND#ZNU%>W@)=+0iJSk^01P7u8^aI9Hv6~S4sO{rzO#UW;5_9)Bay(M-?BZ9;yx`
zLmiC~_5A^xpSDPm8QmUQvsB57nsml%P&)}?CGa+&oAm@=)iOzUY5|8Iif|~OOei?w
z!SPA5S}%T5oSK{`$6`+>lZz4nJ#A`@c)U%%sZjxxtH>bp*dAu|`zj}*^zH%R62u2x
zu<7=5tY#Q>Wb8{=7ma#h#f=-GfuKiA9zTpCWX#j3Ow`gvi+9B*;g?#MMnewuSeQ&U
zL(M#$l#6`W&~C&2d<~{6yR6~v_EP;M2bwdJlLQq~%|Z9^^WinXvuMcmSjNV`HX<UI
zj8}K!E5aJEWnc?qa#e|}-{jCT@@utqz`H<sGezfd>-Vkts(oj(1n`moGw~wIKy7$a
z64rpR at h7Q=5Bw=`1X)E*a33g)Dft3t4)}$t7tsT?LU0_(=DG_mv1E>;A|}eph3?%@
zNN1E&muE<k{>V$EbEP}?RTmXwclQ5Df)<bm9)`lS*6YUPf{qpX<sw-)VdL6@$W<kX
zX^`<i0u=#SP7keR27iv^6!^Tf!d+Lk7~3c%e*WLI(?Z=!0efVP*e%97o=CrS+exMv
z#sO>4CpvZXKT*7YsErVpAvc<V+yRd_QX^!^%m-QYk~o~?tkAN!>t^b;G2*$~=2)@c
zG`3phMg!(Y2K3O1b21K5Rm;S4%V0vwh9Xpv8Y58|SHV_U0%Q){YHf|OQcEq_YcZum
zet<M6)+7G4*JMRD*1j#Ee?^f;jE8(5_|WHLcK~#&x!wr6^U56xaFQ=5cVmb-R`yWD
zRpdsuk+}-stUj at s?I!05Dt2@$u at 0z#PU;|*5JgYcCyf#B49?EY|4d@(IG}N_lYAd?
z6giCF8mK$Zi38zG`5>KLSA%$Y4VcGa at U9CWPD=1VZJ)yhcK<>j0<>ZQ+u5Mchkd7i
z8v<dWWX#B1CM(weLXv*~1)zz!N01fy$_+dN*MQ^;0vnVPfR9pj+_9j?N&b4+z9ZB7
zhXUYea;Fg-dw5f5dO91rh0ZS-eA~Uaq?*V6ZxbZZK^#^Rf`$etq8 at mIWD!`9otOrZ
zBTSMD5KVFJ<RJ~nHxA)gAr~qYIS}Z<zDExk2g=I-yAlol<RlRfn-a*U;xkA)8ccsE
zQJ~HFoHQ^OUJ8P{Et=++`5o}yle|GU9XG-?9Gima2xV0oViUL(fqDZ;Cl<Tca8B=y
z2FgPhJg!{Bn8UgCQ}9VT*^;0>6294RNGTm7h}9P1Iz2~W$uHJnF<O9}H at g#u8$=6&
zO#iL;`VSSknd6dZf`wT4;oeJ>@WN5RP<HgD=E&;7Dz8IX)}nq6>whx4??Q|sd#yFD
z($9~73&VEXruO-aPD2DAh9HEFLj#oXsW&!+lbgz9%LRXXfNY0g%r5ds4EWDGf!sv_
zH6kcU+s?vH1TX_Jr|lktc3PV4r;Sca;{on-m&TOPH`J}X>oLiV=(q2=9CUkoU^^@1
z-z%9|P-aSw<8u9Qks6j<E3KZjmyP;aQlo5S;V{DoH<ceU1esBT&F}xnBd3bscFBk(
zUi&JV#nFt)s$q2mr=`Go+Vn9w at ua(762=zA3FZWHvjo`5scv?%ZjEaYLo;Dh>}W|w
zIl8<OM=^qO|1wf_LF*%iV287hX<yWWx=CavK&M3iwIn`QlGj4bZZ_nWz>HR3Ef386
z|N6M{aH!YzU!2sW<rtBoZ3ZnU%TY&+I%PkVN|r2XvSzJ>>|vA^Bu63{2PxS`8mh at u
zlcLC^7&AmtsEnqFDRYM3{d|Ys&U?Mr&mZQx=KIX^eU^K_KlhEYiinN5CScJ+=zBX#
zJ#gCkulFB=OhgFP5Isb<FRjLBXXt$S6-bzGh#wWH;FLwLG;s}|5Uv!-kri88&Y)`&
z00g7|lM+(5BeNY3E+Lf@$+dClHAwrwRV7sS1cg46S6uXfHX6~8y|;O~j#Yf1dq21}
zr<Inx%fFe#ixMZ!n7Tm3x_ at cPM7lD`H{8Eph2<e(fhNMZ2`yg}BV38qFZ1Ku|BS)m
z;wMQEeu;#@q>T!v11p+^Qx-?9#?P(52w-ZR=VvSkx$N6N8#_M<k1q&$<81ho6xhiP
zF1w5gL5Yb<p^#6q20t=)E?1m10nn19<%s+L!`hOWER-sa|Gc6%dIXsRZ=5Ap0Xu`-
zF}5q%<ERW^Z+PCPL at uv+cT(6Bg&xY4$yyBSP<~Lz1UiLCm)gye1F+yK>VvnbN%You
zv{K`IrEjsPmNo465Awn$y5x0Ed*ny^g>Hj8N)@kv{iijEgy#?~d2XN*a at rYu;|xkV
ztaxitpSk<UPO<Sr$u{^~l=99uYuKk|l_#3CjBdIkE}^;qvO$APY9kU3!Vz+-WkV*u
zb!;-d4%@@%ttwZ&#GK{mlbm;Bcd@^6=evp!Ke}UKGu at Zi1eh+^9+HpPej!F>AMbP1
z!l5*?>++T$HFqKk?_tl8V}M;sf=6z(y5^eA#lEZ?=U)O&s6X60c at +e=f4GKGn^|T;
zTtoei!uhs=R9fP!<oEI%Lm&46V+q*9_RaXkMqhir4SW5c4H?O|dn4g&5h3kcLx%Le
zk#E()()29e&2svLo#j7{Su&%jf)amXrIkam^E2*5`}o=OwDYe<PNPUSB6rha%AnCq
zj(p|t-2>P%IxJaDJ_*SwrUiZc*JnRF`wv^?>Ppy_Y6~wzOeUR at 0_XcsUQN@{ZI4qK
z1W<U_2L-$8eRkX78GPhjVab29+I=BwQRxQ6C8;z3!n=5Fk0W#h9%NoqpEF5X77}z#
zKoKNfO*LEhKRZX0>oH~hPzy at P8hq0XIkrn$o*9?b$bg8PB+HVpqnjtSR!6C|Ljil?
z6tCf{p8YyPz_t^?f;iyx4dGct&e%0mGt<U7cgZ>0m=Z+%gRbu<MFx8EBrF$wi|t at i
z`vL1tF*4-Vp~?iAAPCfi$t94rll-`XJgH+aeM=K6{7dU0F0#3CoK+Sy=={^{@vODk
zzL>s4A_5fMY{nFscbK!r7u<OQCkUvl18+itT~|%1M#$YzD6xrh+CTFfEF3`bQ_4(1
zcF-{KVWU{&Qr9Xl<gY~ZdR9(nY6de_K-WDv=}RUTI!(RNEuGVzdQ|1W8rO^|88MjG
zb2yTJ>vE-Ier1fW$lj^Xk8vexqtolwapxs&ecbY<gYS?J2NI(+F;-$)q|!Q6OIrAA
z+l>U<Jo7s0f1A)4v}TXf$BhRJP{t{jHUQEGkzTJpIbTh)GKu3ES?S?jTan=-{8Tm<
z88b}#Vd9POYtdA)#16RN-4)uZdbp6{afxW=!|<tV)*z?4VPcQlIfD`N&mfi1Dxpn?
zdlsns9o=ptxUWFW5{_6o6b0I|!zSqjT@)6Kla+n?zAv#-L at 7N-a~wp3BQcRAghBgw
zEzZ72uhQUve<##7aNNsO!%ENV`z+PPP8e}3QWwiWk&gR5okj$5!QmoKQ=U26AFZLc
zsfeUfy6P$$FXXj{n7PVNsdzvl$!`@V4_P3ew at uZrcA&h#kG`sD<0iEaD7yr+q|&Tq
zxvMNuG6hhGqTvY3J<%DfEg$iMuC%F8*)0Vwry9O|X<Tn5rDQNORV)b8l8_*h_R3FG
zF+vQ#)PGsL4}YmqP+I<kqnX4t`w-mRZ`I?FhOFI569_)Q)=vfBYD+7TthIe^WfX)N
zqe&vt5Le>wfG>HD*8WTVr0F<112-Ud&D+1j4|nFP0!H`n(kcj{$stn`$^mUzc|*DY
zErL+P*u$iyS0=+i*qhYzb`DA5oK^&+Hp_X90;YwxxS}cXH;|8$E1G=EdO+H~*hnNU
zH<OXOy*TonpK?t;F>B=yVIfgaRhR7fMPV-trWD=!gGWsWNGk(FE^nGXbtL+ecPe=Y
zx-e`AqJei#EDKG^QAj+BLU#;DiDF_B)e88NHQZAsTmNg+-|E{SIf8}GjNpFSw0c%Z
zCjFr?jwOcwFR_B8;Qu35ByQ3V)BeXAKv-wf?-qL8elY-0wf4)&Nt6c?OLH>X#0|l7
zD$6Q+W0p<b$q%E#&k$!AF>V#$L*GsxY4N#jm16FDhafssSCJ|afHgpgc}VD3I21!{
zrNI1vV}TEaQo3>dq!R#OQ1r0Ugs)1bN4qmrlqD7j0_wqr`A0J?((c>sdNTXvs_(ov
zTni=4fH6UWjz}i&%4~Ko_sC7U(3kk%zbpwWs7<`~mruIgD6XUTUq2LGgv at nA>xml^
zQG>RFFL=74$;r1Grj`uVr$DzWP<jEe3!Et|@Mn=NSu&jV6xU&D05h{r9LBHLWdw#^
z4N at bxeNr=iIaDiHfK9+Xsn$3nPI->A>+fJbZ(+THAmVYdz$Jz^Izy^o4&5;9Oh!{t
zn*fQ|CL)>+Bn8xeABs7$6j9D?>TO|~_QF{Lg~=hG?#(>YIKD4rQxJF^n_1oC?~J5A
zFA742R-e=xhLl-tWbFO0Um_o8`=XgXk0%Ta7)cqs9g>WAFjuCme0WxFzupzw6QWG8
zdYqTvdT at UvVR)7w;lLp@>qXgLHYnX<Hsz;5-Si-vD$0!5gp+=?zk6(B%Cy47Uz!Ae
zrVjV3FoZF%A%|`m={Dh|gv)P-uLz{uaH`w(9&8blA_C)rMmFMn#j-Q70gLc<cP1u`
z?M23iE^n@#rGy(^V#Sh)GB9_wA0v#rJXW3_pnWI`T=+8iZoSQ{yX!2u+o6hmZ{50p
z7_9_2z}F--0ENGJTbiJLS0Gl!&&6g?w{YkS4U|C}h$^F`yEg`pb%{PKixFM5&{u5?
zT?N!~DE at G=V)n!4wud7wLDZDr)}=(x1c>NOtBcKY>8Ze~@yd<GO}h&1;z39zx}%$a
zp+WA$*_aW?OI+Jk=LBdA&ePhp-;v_KxN`=_%F<}<5V?WO+6C>`qNf(BC5Llp<yPE}
z-#0ss>$Wgli)Y(=Nmu_>aDQ&0AbixK^~=Vaa~{jPR1Ywy6c6V7%`B4~Ao at Q{bBq>d
zM-0cS&G{bJsBG+AoV=RISM{5Z8~Fb4&#J;lBf->}K$2BM(TZCAq~4s5UDhmPn{x;K
zPuqsC?byTT3mxa$6s^C0rO5H<4g$VvJWBb4C}<>S(F$^EFoXGN81vFE!qsiHRWHj?
zcG>#;&Z}#|9$9HgpEg}P$K1iv9rzGNWiXkE5(y=Y#-9jSq};i{*W~Zt!!HX0e9Ty!
zsK at 3Lf9&5w)oyExS_<UKO~w~O$}lK)eN22x!0BLm(>9w5$LZB{-rh4N2a|8zqbzy7
zuyhNjgU`V>AkwN|rgx+>zshEDH+j^6(cbh?T%VK1DY-zq+GX7-vg8)a>V~$4(4X#R
z-w9W}9!gbs5!Kgi)Wg6lhWSCbG2m)dPI`ZTQ`FvF@*!RZf`h_6uuy=IBFk*gK0AE~
zb4z$7T#avKT;>yDrEj_jXXwQKQt{&ZYX7&w*Tv$q*%2UpUx_xP(+rElUJv!YG~Ci%
z-z-;|-)Y*`x)DlJ?&;N;vAW0Zu;VGFs+vT5dv>d8i5IE4&6KL4FV at hXiS+0Os92R<
z+{HJ{S%>c<NeRQiq=f3^m6}92a(dalk;u;0J$U9;%Zuy00s%=&U5)R{?t$uAHPRxe
ze=;p;bu^t>vYh;R$(Rm~F&1}XgJ?-YZBB1?5Owt}cr*R9xph#j9r^TAr-3gXwdX0{
z=gp8X9$J at vQu4RIjLGy^1GADe%7f7NefW at n;$#qCGM#FVU$t^@KYoe<c(kujg|I}&
z(Ar at TU_gcoHdszEG?7+GiBbzRD*r_KB&Md*_UfgdG14;DBlPSu2jhEFVELoJgq`vh
z+($`6f|v<L{nfN|?fz{hUD4p8LYxxB4PZ7Bv3w2k!PF-a8%P6zYmDJJx|iTX`1PTY
z0gp2t+1f?!O4=8|(K&nPg!LMemaa3rw?wk<rcI$W6QQEWo3FgEiaSTarqF0k)Outp
zcJIQ6RK0q?ZrFB4DFR;T4ASN^oG)=U%{xak$TP}Y&ivR#8}4_rKY00YdA4}3kcZkp
z9Ivx*XwbcKZ>Q(7b%R?=J<C*2-)m at LK4$|uvZQK)H_X}n&AX^#z<^4R^Y>TIWVKy;
ztB&F&CG5kVoz39ch3HZ{>yOwAFI|YRYY0x{JF#odgBE~j5YAWgo!9JNn;q%(ZeFgR
zz3#ax$mEM&GMoir%E3Fla at a3)Q~gaIMHG|(gpp1p?baU)a*lAZTj~`Z;$+-F6f7hO
zpLY4v*T)KPV=XK6$#b76I*pw>tC)7}CVx3u&j)(1u$vQFdC%%CxJ>-|0g|m~o5yUi
zo-v~)rU3e==$YOasT at CHTo!miTP|%zJf-uMiq2SDpI=bz?yG}~5|Zmf2o0^{?b%@@
zobvEO&_?C+ZMNU_j7fGfwkfW98BYCBWE!3ZftL<@gpc><s8o!6;k(8Nygj+QH!F!3
z4zIIt at GX@_&+S^f-FwAl?PdF7Gn-Yu%mbe>i>(Im^)^d~s^d4n-%=1S44-{aBg^pF
zD);l+2{m2qPnrdcy at G09$D+=Zfj=<`A${B$>Kayl at HQXI1UO){z#s>zvs1 at qYltNt
zX6h<6N!wzJtMj7-P!c7w;5M=khwN#tCk6DrPvjM5^CCEj?7l?xE-hkJ7Gz4M-}h4G
z`^rB(9e0X-_LeIGfkB*P%?ff)^a>2}zj_b&PC{8!-L1MUb~glbP{}TW{BHxRVfy_#
zwQVNjJ$gjKr{HPRFie1nNefgdBYoeLDH)5he*ga2G at MQD0;t03**Ej2xiY{zeXg==
zxxb6KfGHSC_*N at cCr^AID=vwgpEQ<DdV>l{zj_HiM(GR~XM_pT%e<ge at AX7PQ){cQ
z8FNF(?@Q4#`5Y;S!so*a{)Uhclx0LMF<*EwVs<a1OT*6jYT~QLF7|u6MrUYvb!giN
zcQ5NxxHVKjAG<{npWZ$w%lO(h-0teFH{hKL(Il&Zh88Jzwj55B18orqgc)x+?EQT~
ziX>)ZzY*hE{gKS9oc0Q at YAUaqPtrd^RbKs^B+M;#`xv#XdSA*5W0R)f0WXhQk?-S(
z^Ke+Qs+xp(ymhTzy}CE#4U#XoH8OK3Q8p|eL2PAQOCx*#Xr=C0jqzJ0vr>)lQUYGL
zCnxK+xk)+i8b?~AtFESv7J8{haMJK~8X&|VL$-c5E4*4?G(n1ygIr9>h`8cor9!Fr
zV-e54lbsX2sg!P<Z=y>utP$Rp6W8VGXAsBSlN8Towgqv7txw&ch#62W8o_he|LE)A
zNZw7(qZgJ`V|5G7v4)<CEGW~Q!)zuHN`=Q8b=)t-cG>3NJ3~og&Lp|89J9V9k4g8Q
z7DCsf<0%|U(zk{KfzNEMw>uU>I1i|P?z8KjCrH#*h7Tj$ci8hc@#4cVdsmZ-W%`a?
zr<7h8N*ACK^JVF@^eC2 at ig}7k5;qWEXwdWC_)LD5H=TLX{*?RI`KvV4pbc^xZwj|p
zoFxTqiJ(^lBpmC#!Plr#F^3XGt%REQ(P^~6lw_svH6HE{-p>kX4r4(uP-lpD3K|nB
z8xa`P=7_Dn^0!l^gTB6cX$C7^x<n_aDNp#lzCJ-qR5?VlWKHXig)U8Z)vdGREtneQ
zz?i_X>_lPH21MNWs)EhA$8%wG3kt3n<!&3WINgQXk6CbYrFxZ_J0oNjVBZ%Lh4WC|
zOw~<Pr#DIUKN#TH1<K%a`x1|L_vNA#%tm9CD%iwov01E=4hvjC#AM6KNdroNQUCg9
z1H|Vsr67Gg!^+|4zT6l47xD~Fmi6s=65#eO+l?L;<5QQBc~xEa<o1Co$G&5C?#$D3
zzwQ+cy=_qck#2oFXX9!w&n*qR27LFf)gWut*{3m=7CrUz{TlqS=);*D`^kZ6`sB<l
zfkn9+?;PrMI+Oy5 at WyqVHR(iEzdnOZ9{)%SvlPnAQm at KP`z(cP_-z@(XDxTl9{NbS
z`*ri*JuMwf?&j6C*mNiuxTc<Rsni`^00%H_T0jO(fxb at 9mz|?dCh5nO)|INGUTuJ7
zwbPFUBZI36Jq?&<Um1(FT#4nVe0|#e0ceC3=jwm+VdG}`E4%*5%hybXCI))fyH`P*
zn^F$AqVs~OVN|RU&fOg>le0=PFeMhYgioX_;RC`2Snbj at ObEdj%gM9ffJJSIJ%b<+
zeEt|AL0bX<6K-od>Tx2zI at vJiJ^|YX%nsvW4)lK-+z|Z1t-~KS5&Qyv2CqU}{@2+5
i+1Tx;v687AYA2-m&pd8FRAdaH87xhAn3QeVANPN6Z?s_m

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-defn-types.ded b/clang/docs/ASTsForTemplatesImages/ct-defn-types.ded
new file mode 100644
index 000000000000000..494b8f5309cfbf9
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-defn-types.ded
@@ -0,0 +1,1034 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 40,
+        "y": 75
+      },
+      "name": "17",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 685,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 90,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 19",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 205,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 50,
+        "w": 240
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Canon",
+      "loc": {
+        "x": 540,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 31",
+      "size": {
+        "h": 90,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 450
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 20",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 450
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 21",
+      "size": {
+        "h": 50,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 350
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 22",
+      "size": {
+        "h": 75,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Canon",
+      "loc": {
+        "x": 540,
+        "y": 450
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 33",
+      "size": {
+        "h": 310,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Canon",
+      "loc": {
+        "x": 540,
+        "y": 305
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "InjectedClassNameType 23",
+      "size": {
+        "h": 120,
+        "w": 200
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 34",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Canon",
+      "loc": {
+        "x": 540,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 35",
+      "size": {
+        "h": 60,
+        "w": 200
+      }
+    },
+    {
+      "loc": {
+        "x": 10,
+        "y": 45
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 715,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T data;\n  S *ptr1;\n  S<T> *ptr2;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 605,
+        "y": 655
+      },
+      "name": "Source code",
+      "size": {
+        "h": 120,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 85,
+        "y": 710
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 24",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 710
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 25",
+      "size": {
+        "h": 50,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 610
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 26",
+      "size": {
+        "h": 75,
+        "w": 190
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 255,
+        "y": 525
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 27",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    },
+    {
+      "loc": {
+        "x": 10,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 130
+      }
+    },
+    {
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 40,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "loc": {
+        "x": 10,
+        "y": 785
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 30",
+      "size": {
+        "h": 20,
+        "w": 245
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "Canon"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-defn.cc:5:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 32"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 24"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "LocStart": "in/src/ct-defn.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "36344361",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "LocStart": "in/src/ct-defn.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 29": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 30"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-defn.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-defn.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-defn.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 30": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 34"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 32": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 22": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 26": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "FieldDecl 19": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 20"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-defn.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 20": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-defn.cc:7:3, col:5>, Elaborated(\"S<T>\", <in/src/ct-defn.cc:7:3>, InjectedClassName(\"S<T>\", <in/src/ct-defn.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-defn.cc:8:3, col:8>, Elaborated(\"S<T>\", <in/src/ct-defn.cc:8:3, col:6>, TemplateSpecialization(\"S<T>\", <in/src/ct-defn.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "InjectedClassNameType 23": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 34"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "PointerType 21": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 33"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 22"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 25": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 33"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 33": {
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 29"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 28"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "TemplateSpecializationType 27": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 34": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 35": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:4:17",
+      "LocStart": "in/src/ct-defn.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 31": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "NextInContext",
+      "DeclType",
+      "TemplatedDecl",
+      "TemplateOrInstantiation",
+      "FirstDecl",
+      "Keyword",
+      "DefinitionData",
+      "NNS",
+      "PartialSpecializations",
+      "InjectedClassNameType",
+      "Decl::Implicit",
+      "Bits.NumArgs",
+      "TTPDecl"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "DeclType",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "TTPDecl",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Canon",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "DeclType",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "PointeeType",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Canon",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 520,
+        "y": 375
+      }],
+      "end": {"entityRef": 9},
+      "label": "NamedType",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 535,
+        "y": 395
+      }],
+      "end": {"entityRef": 9},
+      "label": "Canon",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 405,
+        "y": 95
+      }],
+      "end": {"entityRef": 1},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 475,
+        "y": 335
+      }],
+      "end": {"entityRef": 0},
+      "label": "Decl",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [{
+        "x": 570,
+        "y": 290
+      }],
+      "end": {"entityRef": 10},
+      "label": "InjectedType",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Canon",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "args[0].Type",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Param[0]",
+      "start": {"entityRef": 18}
+    },
+    {
+      "controlPts": [{
+        "x": 690,
+        "y": 200
+      }],
+      "end": {"entityRef": 4},
+      "label": "args[0].Type",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "PointeeType",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DeclType",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Canon",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "PointeeType",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [{
+        "x": 530,
+        "y": 415
+      }],
+      "end": {"entityRef": 9},
+      "label": "Canon",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "NamedType",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 380,
+          "y": 505
+        },
+        {
+          "x": 220,
+          "y": 285
+        }
+      ],
+      "end": {"entityRef": 1},
+      "label": "args[0].Type",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 530,
+        "y": 415
+      }],
+      "end": {"entityRef": 9},
+      "label": "Canon",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 145,
+        "y": 315
+      }],
+      "end": {"entityRef": 9},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "Cmn",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 245,
+          "y": 760
+        },
+        {
+          "x": 245,
+          "y": 270
+        }
+      ],
+      "end": {"entityRef": 10},
+      "label": "InjectedClassNameType",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [{
+        "x": 580,
+        "y": 200
+      }],
+      "end": {"entityRef": 12},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 11}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 819,
+    "w": 751
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-defn-types.ded.png b/clang/docs/ASTsForTemplatesImages/ct-defn-types.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cd77cc4c01f2cc45eb85e7c3ec2292f7c3eb7f6
GIT binary patch
literal 26296
zcma&OXFwBc*DefpEMP}eiqb>`R1~EIM3G(;6r}4G2%Rl0B%#?G(u=eNrHIm$Dv*Gk
zP$M89ZBPll42BXQgq(W<xcB=$&pF at sLro?#cUkwU*Sf}s7YwzwY}~t%i;HWEj<$v|
z7uPD7i)*#~hIQb|?hOlXz;zt%(iQJ>9&T>-?%rHneo13iY>!0k-E6b1Wx`ESi6^gy
zjO83I^(}akAW`vsZ0zOBgMUfzT5h&^r$cUEfEiHTR=%UR59l-#ygPD=@125~%(_Im
z(VX$m<MlU%!>?m>rquW5>F7yb8-AgxGxdJJlGVg_>*7w0H>zLxp3f;YhKhy_%Ag+f
z&;KxGXYeVF#a1+~4-IH*I#;80YJbWD*+r4bsgm#3)<2(qJVx5XT4YMaYrQ!oF?lA{
z?jf6B-Oy}4rL(|t{)y_*P7Ef;vfH5fd*ziEnU5C3$mhQ};db3 at 5}SxTa6wG2;X}cN
zdE5u+*4D<5c88c#?+V?VZ#M4M-?~RA)b>zad_>>jzfEo(k#r}0VmoV|^0-`S at Z|Ws
zk$X$)9q61)$`SLU^VlM{TwkX0E4Si!sQ<bk^~me=-A|J<cAwDBh}frzO?0*4Gm18d
zJy0((iNALjZBpf~b~>?c#>?I$r^(&DMvVS3`qPPZ83#`F4 at sBB9y7gu9a=Yje&;!7
zY at Lw2N7!|>`>0`Ktd;i>X^$uN{w3RAqC;EW()rH$YmzShkl<<fd_;fk$IX-Gn@#$Y
zofNj1+;eQ+70-14!S2fl+?k*0v(bxP at GV-&(a0r9=A`VVF4MAzUBO?KeJ+uANN7n!
z8~CjiR=QUfq&s(JtY!b4V?i7G+Nv!*DlHiuW9FGo^7URO46}uiOU!}8Pqxf3%nI73
zUht^Ffik62YGNCnCngz{`&+;rx2&5T1*s1e&||4$IZs}AFm+85uB-f|JF;-e#KOzO
z(<FgpHh<B?qU6o7&r&%|(To%6sF~Z!7CZ at 0KieCtnu?!rI)XoyZzt}2EMnU1uJ3j0
z!)6Z{7p~PBU~pl at 0Y~?oueIOlY-)M9bIt1tW>XVu;?bwT;d@?Xmli*K!hMr*9a9+)
zQeutO+mx?mr|?>poVuyZewDiAU`*pF%Z0Ern>Kprrag56pXOm{HF0~3g63aAYdS=O
zZp1iy_M4WhRdrW<UL*NtpR8D&%+<|P#hJ&6J0BGq at _Qe(G(3eCJaDajN9-1x*Bko{
zD%}fDy)VnY(|FQiU0RZp;;K12!Ms)R%1OHol~RhdNALFqKTWpTl+w7H^|vl5-(Tc|
z;~qubR=1r_&-|ZlbM!f{yHRX<Dk-D(5 at E|2 at 8UM?yG@@$b~Oo`%-47D857k*8ox+Z
zOXyo4l3?i*ZA*X0^Ll#Pncf^;*zd6O<7kZ3*s4Ay{e|<|Dl%$mm&T4dpT7U-Y?6>6
z^?lF=X^({y?P~fdM-LFLWW)syimLu~eMg>@&S*omRQ=bRi#2>fI=|-RCa2Q1WIwXz
z{I7~?INlVFR1dmJy0<O0ea~lgbn2}$7yef1XsS!$iVXfm*V;<WJhbiZliGLIDIH4q
zqmQoUvtpkQcix9tU!`yD4~P*sac{S)^f9(ofqt~_k1C#BvW`T|b-rp|R2QXuN+)E~
zBfGWZ?_<8q`r%Z)_=5^6U(bzX#>Qy5Uv$kqb#~*S199uF%7qxq9FUUe-FB-`_OW&t
zIXS~U>9F=@-R%L^c at mdsC!YLu)?PxmE5^6?g_(ucYQ5`SZ(N65MR#m>$K6v^ySHKg
zJ(Zo7pFjF+P5B_%+l+Bv)skXqoz?uN?9jNk%AO0t(yWmmSHu!O(QxZqSgQ#eK2|fm
z-mRUWt~ow_R7HH#w|!?1ZmoBKsV}k><Lpr?DqP>zRNf^B%NFvD_b1~G3|oh)`=0j0
z;`w)e2x<Hdpqw!ycBSw=OTEv~cj{}J480M2;fD#$b35B*OEOQ!H`Q}bpR4h&Ic|6U
ztUg&3gZ)`5dTN8A>6*Pohamj3JrQ-!6nhWbojkNX>(P#N!XFNPxvNs8IUy1nD@>u^
z`s5va*6IsddAo|z&2<r<p1D$v(_6U}OL=sXtmdR`-V1-+K=9kXd1Tiy*P at CI3v;|X
z%e`->ZN46Sz3s;hBfXSnEKB5Tq`3IUtaEz?s4VZt&#?PzA(t1l$WLqL_rpBTWW4g$
z)aRS=oj)31Z9h?yrn1`c;zge~QYE6qkB7<!PLEYwZ~2gEBNH-w`PwB^@VwgWg36EU
z#uGXf^I5wZHXYN^_BT+0vILC|v}amv5G1J?b>Ge2BG0^RmD at e}&dB)M>pFG1s(ayP
z>HX5VB%v-`%i1k7B~g1ME}VkCdE62T-d&H2e7LW?mO3VP>-eLOxyp*Xhv=7Yt=(AD
ze#cq5{g}oyIw~%YuXynbQS0O1+qTB+Q2L7X`p`S=sX6xX{kkB(G8b<-QL&(0)*iFY
z^TeN>b>SN|DOLN-jCR)K$6h<fI-XPGb2X0p=h2M7z8&{=3Q7Mc#FY!8FTJ#nRBU9q
zM4=BluH|0Ct3HR)HhL5J&Es8&qhY#>O(1uw_Idh~X%YR4cAG!#6g+-t-<LP#*Icd?
zyzZxUb}CZlUHz|RUbeCL8Ts8{koV`Po&R$afwrv|-PZ&?=qP=?PH`Re%i?tF4t=e(
zq`=ds)f^s_Jl at -{os>?y{Yt>2yy}&I#^B#vS)vJ%UF#eVz4BfUjVo!teB5~V;=(Ca
zq4QY=zuWH*CQt_N@#He%f<H6t?rI&Kq^s}R*w;O|faAVuuh{6IruMM1ge<T)zhTlY
z`D?)8w023g-*T%C)+?wM1hn3Nd|rR|1;GcKc&z73-(YC&&wX at -)hD*3PVN7e_;q at H
z=NAVf!w*;GYc8c4U5)%`_u=_kyRF)My-(NB_HL9J;1}YtdWbf<ac%YDy+?iAYhA+p
z9bLPE6>dil>D0M;bmz%#e1E%mN4d`Yoray^+}~{L?*+TIXS!voSB`P9Htp1%3)w&X
zXzT|n`(}WV!l?_7&rI(wvln9a_BsWs{}_8Wb(rU<S- at sC&F$E|zsT>p&TUlHJ2 at cr
zLo)Q*RdZF>IVpdW00(*!Z;edHr4e?7a^<fUpAA{j9{UxBb6Pi*KengV>AFinx*yN{
zHG&o3j=)Ep5g2?vJYD7p$zPTK`QokM`mv)Pe!N=uO*TkWq`=PvUs*|E)|=)O;Zq6a
z%CA2Y_E8H*WJ(M=%<A3-Ju>W4ZbqYVdQq-2w*~SnJC4z0w%@kNgc at RxO3qfLZC386
zq$Yldc|nx5PJ$z38&ae*Hre1a<7EYpS-*v68s3`hdbvuXun at a*vn%DP%&T$xE6?|?
z`6jOaN?u#PhTot$zwi;8r>SXit|^~^YRW$~$luhIU4Z?1R1j~jG_yCYmz5&BInwC;
zmOUq^7y4+Mp-h$CUY{DntabG|gIC>pl_+)|XW1HCoBKJi)K<pj?oGKNd$l~9?gX6q
ziQs9w6N6N{=kqa<6N5|}<DcOwRADLk#UqV-1dBdpX`e5!{UO%*>d<c=-~6$c-(Qsk
zX5k&XcDy%{zA{VCkrGv=oQ=HpqrBZ>_E_yreV+ZP9znZbnZMDZ-TKSB^3n^LgyQuH
z2c0*sJH&n9uF0s{Yp0p-Wk26b-$Ps8y>z?v`t|r#jkUXS<9K#9)y~xVqTUv=?~5)R
zO59gPao?UQIqBH`<({mpeCAB4y-E~SJc+J;h>)2%-|g_kZJb0JR&gFU_N|vmX$ZD?
zmhF1==9jIB_2$WjJC09{mBei7t~Ar8B$?cGx5A29WoclF at 4k9NcNn;)s4S6nqH}B)
zziL6dm at Q_PmT%zk>Q9CfyoY*4Xk+?>)cC!HwK*>}cV{Obx8HLnCY*4)h7a at kQ~jD#
z6#|mmGWFyhPK<D8!xwvYJMrr|<3C+4(|GZ&=GCq8%9Ps-uc>acma<=$i-uQqCQsa2
zzd3c7vUuy{8*{JfbBSJ8KRf!`PFfw$HaY2<Bh=>RsrO8UM2|e at FmilbJ-N0!a4mP-
z;;Pa+v~_t^ymzUqzp`^i*M8KPIaJEt!$rOB_uKAi_^yND at 4so>{=Ch{vifLx?(fk9
z*CcfoMEseH6`EmZT&#U8%EO$DRqg6~U5=IC$%)M&jXpA+VTv_a>s7aO`_@)?r$2V<
zlBV9hT=hNO#WBZ!q~LCW+}z+BzK0W8J{#s17v&~A3Jve_xb=|Va;5aJMW1PY5~J`w
zSL+#`+CLQ=K&!YJZy~(roltA`8Y6+Va^kKPbrA_uS+|dG(z_brBr|aJ&}r{AyzN at f
z2465E`>sh}IlXGrjT=V>nlAr6)N<m^6XLnRFBgyMnEyS2SBVPJ82avqCLc+W+wfgz
zd-dJZhY###M;6<j(~jA7m|JjhZPKI4r(SbqF*<K98Si($m%g=G*6!}DAlp8P`#~4J
zc}Ul7T}$(AeYHksc8^bUWzH{=qm-OWDT~~KSD)`$w`sKg{($hkD)?SO`^4-*b7!;p
zb at hxrN;eu?!Y|4yq}~fQae4jf>yyCbM$;|X<&{|(ugNd8v)zf3rj`*`1bt4Y- at 5er
zyT=_Ta+P1_U}l$FTa|-&RM~6iL$@I}+QtU0b;%1+_Pr5boiZJ^esl_+xaTbN2Dh+U
zV_^?5Ah8;~yTEL9^oUsU<fX082pNQ$w!=J{_o*U2Vxxr2OIOg3cHM~!-sPOI at uWd+
zMzb6GJ<Uk}MfJB!qi52?J5A50maHz^Th*N+9GT&L&On$szUu2G{K(wvzrW2I?WvKw
z`;%?<JiX^#&B3yG_e$L{fq;4QSJzjUuvgKTq8DY3Tk3FeU76F-P`~8YG1jfu)T<PE
z^=EnJUdX2(=lS%ug^neBpcA*X`>@1 at x4r7OXqc|9UwjXL>23Ghp!mLWaSJHrer#K?
z=Li3C$we_L7i+MA4)bhfH{V6nh<7#bnAHoxlC|JRT0lZ!BnEu&w}9AFx7amyLvQ4{
zS at QKaIw<}@>?g8W#iZUI^kj}(&!e$W5-+$jvj(pb?6L|kL28^UwrR6)pw8R1j=dT~
z>c=L!P=KuTBI+ROFf327Eb4Bw=jP%HCcU7sN;ZpiPIlwE+g0-O+#cTW?hYivF$@9=
zS%rQC!{*@=l6%?!>kw1ERVH6nzBrMznv3h|6$sA6+KR)@5Ey6TFqXZm+I5a{BVjO8
zI+ZSjtsiZ4aAtmSlm~;n)rW*D)pudngU=M^mtTgQN0hK~PeKmDK%QJFhe4qWep5#N
zrXyPkM|RFd6GZ;TRtX8edZPJNs(ZSaAz{b4o)^uaTsO<pqZyWRzSCG~FPQo%spLKZ
zbxAN-Fln_8)`Q2FT3A(C4Tcqg&s>1yPr at hPhZ-ibI6I*8t`VQrAE)BRESnKQpMj)T
ziC4zU(*jJb=dJ1EULt+vokzL+o{-p+M0T{WA$`1Dq>sPjC>Sh~WQNNNvTZ(`sF<iA
zI*La9O|#Z at +XI$8^bRwyUgb^0Ki{>W^l0$V_j6Df|7t;^W#cTNZ`T&~=#Z(~ITsrg
zRqZk)Z?Cc~BIp&Vvaj5$%GZia^>x`dK3fNba76^psmeY5&boUdkKo>_aNe-k;@3pq
zYTGP@#Vx3Cqs4J6vY>QjmXYH=i0-ljyMDq68#WVe&&wNMh37pRv}mjRel|Iys6M?<
zL)axJ$hXqIhuE55&9rU#-Pdy%Hkuo^6DuifkgqUmgokeQ*w6IIx~;~p59X`E(}MT1
z at U(Z<N`6FxD05=tkS4=&#*B|nh-36zbcYVXM)Tu!-$NT=ll~$U)AL2~&n at Ee;K;D>
zAXYfydpy~_z#h+!C6>a^ee!JU<!YFQJ;?%{jiNsqsqgAS9}9NeE1CKfg#oIb;@Ur2
z+L#~Tq3&B8tP!^(K38k6gHTH9bD($KC}fp&gWHJH*0rw9uGq at wZXz((#6>KeGqiuq
zXCKP3fgoF+Ltg(=2<uTDnZO9Dw1J59?jad=*{hQIPy*w!+qn#u1kCmN4GE1W`@Y16
zEd-$JnGam+GO=xwi$uE6oa~{*_80wRak!v1FgKE++_?_up<D!G^fX*G<h*_{CbeE;
zQK+3z=O`bc)FG{vcmQUzCkZTB|7(Tu))mTRRGqw5q7zx6iK%9M+`CHqlI)eW!Tc2F
zKKR{$;T>N8icM7ZI0;KR_j1eXGZ4??+vTf?@CO(0r05kLj_R!X^-c>4z$lpW!O7G^
z99>%09TB+cW*A9Ns^}WmS1H)|14bQDHvbC{Hwre^MS+c7fKH}xVdEl!X=2w?%A@~$
zXnM1r3)>ca3p@?%ARH6C^5JR(2`yYXADUXpCfGaSmVU(x0mEwYDzC=7bW_U3U|<v{
zQ)cz4%-?fOY`y2UI99wBG5Jt9MoJJ52BY)pM>1Nys+wX)NAUQ*bj|}WPNcXGjLq~J
zMKMAyY1!<EVMIjk<qXeoqA$YiMUS}%|Hq^f+%LU!xyDMWjS+-ANKwYd(E^^6v}$c|
zxZl;~(TFBV0!zcx;GNbaw9|73taa(U!K5gR4kTHPw=0Y{<qPmF+)I}g$F4sEmBcaF
zZwG%Lx`TfHG%2Gvsnd>eYucqgYs#NG|4nsY`F=m1JY-A?Gnhntc)g!pVB=Ln%Co5K
zs5a28Q>F!!L^uM$A$Q<kkkGjPyzPtf at nhI=Dq9aVimDU}$*rm*%*B#mr4X at YN!uQQ
z(Fc>_Gp4T?_-PT86N_iMhJCDLVC69GrA?iI<iZ)3hBQ-hRhvzO6|Ye?`gn9NhWON}
z5K- at OXSW|%lFR*RQd`Z%=j2})3NysVN(#mSp8-~)Dhr!^BQZ9PCZphjHU7mUB996-
z&KP(r8tXm1qS;YC%NfEC|3p*RAqkA!{EQFi<@4P$5a5 at PrI{#Y(5c+O1j<_%&S3vG
z7Xj*m$WYA|>N^F$PLRrpzkKT)NB(D^>hjTOMtoQVW=R+5vU1Uk-rfSf at 4%M<W1uCI
z^ysonXDkj*W@#i_F_>;Sw+5`LqB4M+i(YY))N3#NV;@cM%J2B10IuLR3e#F#z%S!a
zwvgMpJ#(ZAvgmupM&!7)wD0Ba9T2?2G8YFPn+~D^qEW~^tIwEr^&Fn4ax1&uiI(-~
z!zoK}i@=CN^yorxcuUJIl*?kM4l>C436UE?sqfHz<ZmWH3rttF<gt$wRX6g?tcM-h
zEL#$2DcAQ)?$yko8fN?Jylq2axmw=wjeYeNM!=8n)diBgNQanKV{K2MxrW`|Rbre4
z<VC-S_T`@!8y|kWtr|~UgI*I*I6&5d at U5SZ@gRE1b!>n5=lHYdp-HA)+I^LRFf#@z
zY at 82_NfQ)-d4?>o#|~nt)l9*Ya62_70h}1v)^`mE{a64?tqj71D3~PVnp)Tw3UGdT
zDiRdGi670Qge6WYxha5E!>1>XVd40m8nA%!fVG^vXaUbiR10CcDq46IXAu<q?_(!n
zmp(yYsMX46ppW#x>CX><ppdUzo-Rxf2!VqYDJkaT2<r^wCcJcs);hz at 8RCpP$1iZS
z!V7P~!`T5BHYoVr>g7k4e+O<l_WyYe3=IxYmHk7Up);GL`x5oFUwbaL_#sKoImKa2
z8rzK?d%V7>l097#P1G5C&vI)}yR((OjiXnFhz`=MHvlcDRz{R75)+O&!0`z{?R0={
zZUy(LU4*Ez4zmHON<@lRk$t^i9-crflI3k}tHzI=O_EM?ZS}^uR(02w4F^0T at k_U9
z;U at yIc>xu9S7x$@#=nP_$N97{FIn7=U__Ck7|}`8Xhv4sGl_w!D$Ul<@8<~whPB4u
z-sIel&?Zk`r6F at 4`d16$F3G2}hE!&5ZEbGb<<5&14Th2^>9{#2yWCKW!mRBhi<O9P
zQ%#gT2*>x?wI0aNp|QyHKneGtMK;sVEg_Z`6T2heh;&Q3Pj0o79V at l-QU@j?06RT1
z=K0|{N(4Ts$ed)SQj!f!cDyS9VY*h=$0?cG-`=q}st_|{ZD(sk4p1h%4QGVa;0?T8
zg3x`avZTR>+*me&RFd{u>>j%L8|}nFVxtWdF*azOM`&|k^tE)xu|f`kC}lP+7AICV
zg>gzqNYbPgoa_$y*F9#+5he=fptx@&APKO08+GEv$qEa|45IW=NxmefI(NFNUQOzD
zk}jmRMy10G)oa&RGgj-b`5cx8$0QAOB3et_FNPGh!LM)t_occfrt`%>GRdQ5QmFK`
z&pi^u>P)9JY&JuR%ZQ&gH&=uuYnbsV4Y7<tPm2#KO`-&I8|vLcGYT_%Eb+!IEvTA#
z1go~=TRUCI+EDMQ7VeXL?MP|(%tkD+C;(`Hhoypi!GQn06p%IPg|*>osf5Qh_%WX<
zh&h;#fw96vcWsYZ7yDLfx#Q*bCpYdRV2vC+gt1k*C|Hy{A)Qg%I?kZD!FN;TaUbR3
z>d~>s4Yz?RRJD?{WCH{A>hT(osHY${*9 at Ze3n-fVnY7pOo`hveldWe85=pifCxL=8
z8|>wkzmZC4zP{~LARr6Q#T>e-OJThBlex>O^;W0`rYqLAWpdFQ8x~sJG+&M`j4x=L
z2~m*ud~fei7~kq5O711oRq at P_$xv$=N~uG41ST{(G}tH~hx`nb&>;%VIJYzm$qYh!
z5O07v?U}lZUi+|W<zKyvNhNnw%4{$-Ov^7~JvUr^I}y2&F(0}D0w8b6&JwU;NtphD
zz;N`y^xtaf>6n3R=B%Be9$6TLn)dkKMiZp5^2XZwWIUNOW1_(DWQE)ueCqLf5YcpU
z(E%%5Ix#iGj3?bDv5QzZQh-_%2C+>1+bO#~kN^!4PjrNU0Ob+AWTX2iO!xIAA){fk
zkH6~BdFiri!2B`gPBkNw)xUr`rGFFpQKMj}s|YDXFxK8m8?dG_kK7Puxfb_loiZK9
z-X~xVOp(-dA+sq8a3K}fjrc(_kPKYc0SfbaUqB!ACHMv}$e#q41rax~cnE82y$SdQ
z=J?4Bn)Q;mV2aXMuf!UdlyViLvy#=y6yP+hsmdV5Tgn}fbp`p><7a+LuPrGOYV at fy
zEWveFGg&9$tk_9(MJ2m6 at Y?A`>1t(2YWd0}=B#Huexj2Qrf-Ymt1fSJNTA!`LV?Ce
z)5ud at i8OMNK3$gMvZzrEd2TqKK-xDzE+1gc`VX<i8|BE0qjn-Dcw5UnkSF;(RMCX;
zP*++BSvn2B=Q`M7<esWI4WU|HHLx)jif%I^?xyqo_wT{$=08;)_1vgHjdV5_bSdW*
zM1|EAM%bSheq3_`$o6Iat=2-Yg6S?;<>2w2?JR9RoDM~_)-gFP6I;nX(=jZS$K$I*
z(Hhu>txqPiB1u$Pdr^4c*7wNQl#zo6Pc<c~;sa7WmGH!t43x6^P<u&^kA(~<=0H4`
z7k&(^Azg`{u<Juoyb-lHoPnm`iw98BJ?U-rTRrHqm}o}b4O$kRFs5E#gBkJ>^=vCQ
z1XW+Ms+Vyj>P@^jY!+J|&fu?Q{{B5>xW(q_UMZcS2!_B%QwLqVg(M$__n8hfNf(kz
z9Flq|6;mIMncIa8lVxU`EuOaM$ZkWWyJoyd%ea((BZh=-D=7>`j|j$NGA?DFbQ^;Q
zNAMXgZXWRB0hkt0Mq)&#O~rnhswvNpXVl{LYVdtzj1pb8QUpf-vW|p1jvbyaOQxX?
zI-}^2a`)ipXi>?1qNqk`!(iNuIV^Vo2XttLu9`*g_h}DFzyMX~BM;oVOqcEXJ}HFa
zt at m?hBrsy=kk|X+OcH!yvcebw3uaI$cssE;P6nDV+O1PCa%G=ezw=E=c(TUfxah}1
zSqD^Tr7GTg4;biz!sITjM@*iEM!C<m{`R#`Q?CbWX;zowfgj+}bLnu at F&<eXT9#)T
z%5fy(OkGfb)H*zPBL*|0>q+Jiyr+a!bF9HE6ffI#Er!I#cRR{QlGLoBhagAyS{qoD
z0zUVMjMJ>c8SBF)WviJ{eaUb2=&A$wwzA3Juvb-(i?Iz@;6wW2?i-TuEs|W>$Kla+
zk4{H1N at DA^b)Xye?IB2n1$GY1cgb`(-zs|EAD4#Hjq~H_CoJw2{6!YSR-JS+bg>I>
z7rj%rx0a<N8n+y^gJy3Qnp$=$@1$ANp}n>?y7UT6qSy4`kyQHPr(+-20=)$@RMO5^
z>^-IAb<J5PNe}e{-CGj(1>^BV$_Nt22AL(wA3v+-l08A09nU$|S6vR$DeFka7;jo-
zs at YTxekMa-v^fG406oq9|9n*k>46wrzq- at 9R2LGZPCqz}jZ3A=!u6K{5Rt3(X=RwU
zDH1VxLpbIo;(s0y7zI1H>9Qcl0PAA4&{b3W$rAO5FQKcJ_oKX4i~ad=7qIzUOkuqF
zNzQT at HTa=YsL{cp1;`6bj*QS*iyteExB(TU*6$at{Z_wk0IYj}@*fw&8GJS6U6PeY
z;2a-waczx at kr<7>fc`7vXOZL={P`n%5SEZk9E^Qy=~x0&kxb}DI%yL!=NTkp5`j67
zt<Piik<Et92%Gm@(~M+*_2qrbQxQ1&A!I2XjdC93A%XlVAf2?Y(;Asb#T0V6Uaa-S
zEwB5v)Zt!4$S?)(RyRX=J65z$;k<nkX%q1HH??Z<Q|>Pt%U@{1Z*{>5u`@_oaO_?(
z-gzoC3#c0yij*-B(C<}5 at aOnJBFidAlE`_On;v*5Uh1I|$CXoK8P_8@!a4&f6G!4h
zK`~(n;W?i;GXaAt?C)Ni6$yN+09_~ti+TTQY4wja6P>18IRf>lWddBuf;{~N%MWyE
z_4w<<NGWm_(Lh8CqQS-gkPi6mU&$qsQ-V1-feWdWX at UhbvbR^dwu5_J;a{|;)<zon
z*E^6U0p$?KYMD{-Q<{2>Rk$yHOD6#;EFI|0Ly}h2eGgQLMMzkstcJ(I^N1QOjh7e0
z$lO4Uq&dzRjyafcjEeKjZ*8nc3zBHXqhOhbmGf!KM-C2I7RJI6Kp%s*VZ&?=SxUD7
z--ejqvOX}^sJBfbnz|lr7No}XiYpLaZZS#xOMC(&GldhJIjgObrlE{0jw^N4ZPW=(
zvReq%KKIYM;%Yca^wOvtu_4C?YWWp&U(q=JWrZ^Y2fiN5`Nr9RI&>E~5wNm98To2j
z@;?!u13=tfI)MKa^HO%tS!UZ}#FG56!j}9}m9a>nFa-*Q)xt5D+09(R3ez_`Nr at z3
zqA2{8^5Y3AjEl={IJJ*8x<v%2ykDpKy?3j at O>gK>#~fIXAnys}hIJsIbVwpM^e*3U
z5!9>E#=1@?4u)e;ps0Q}AQ*O<vUS}V=4LP+jWuc at 0{{K at nY7=sMWRJRzJo=-1-J^S
z6BQ^6NOZj|o%hM+hMDVc>a|BFvwC(Axxr&_Cy2VZAL3wLDxQ``MwCsfY;X&+UBJ_r
z+oYNG++6on^&@izhn1_4q6zMe*YX&M&qNbD&qMgOyCOec?dZ3zeSf?;r(>OD>i|=^
zY3}*X2;`g at VQv`BV$t>O<scp at 7oK$K3upnk(n#l}s>?tXe+JK|5Rxp6e5Tl#*m^r7
z1q-ra$APZ)R=e8vhKz at S9+u?Noau*2SI~Oj35Q|bZOPsd0P3+VPL}803}SJT;MRi9
z{xi3eI}#ifzsJu`M;FyU&3z#wkj!ZAxRm|?9O-HrYd5y1?+m~~*Y71=gv=;2vLL{V
z_%$)JIBN_h8FjWA^Vy7{8y_5L%czchH?^O}`t(?`7N3^ncF$ESZih@>;`F>^ZMm at q
z7!s7hVcl9o3U>KibDMv>qzlC_zVdu}@%=cKWzuIY^;{tanRDCvbY-wtZV1g)PQe>d
znaL+%(I&=B0;9uAcN=0;4>}`RkpeqTE4jg^Kax>6)z#n0IS)hLfu#CH^w?-o&hJm6
z_KvoKZkkdDfq8IY?^C%Z+NtA~B}SYJ!J6w-S5LGT1 at N`=F70%$!0hIC=(ZWR3Yn!T
z_V528&o%4*fvE|Ef8zLr0N0Ol9(W%Z?JMOSnkyL2U_1e*^ke9WzSAKEsUE^V3LDE<
zE at -QQnVm^N8xAar{>x4|iSYl;ED%*?(QV4#_HS%VP_%Z!`*z)HoK8UHl|$?%rMmA_
zKLV*u^}d;QOWlxeXF;z*NN(FGwtIRpuJu`wJ2<l2B#-9FKp!KPD^|{+q&AOFzU_L8
zLid}z&{`EdUo{hhgYw47L>V}J$an7iU;Vi3jtu3Q%R1lDd3<1RB5+&{)0{d;WVhjN
z1-)>3XyK&TSapzYZVB?5zrEulh8l{~(Lr``wmW`Os*RkKaWiPsesCmt(;>xoMlcBp
znaMJe^H(%xoJWikJske^z{va1q=o3>RCJKd at 2pizbAjXx(p`m7FwpxeHGf~kK!*;6
zLN{~$n2kN(lU0|ulRP=9_~w-ikrZSJS<+3nzb$aG*uF2O`+-WE;aSbt%D?tG)JxCX
z*axN$CZnkjFK4;l<5*5rE%V5;Cy!h&ZA>N8<l71``;J%ct?Otjpas}rQ<)(ko|vDF
zAG`TP_gZ0`e?M-<{anA<ZF43rmK1ix!!8K8Q(k&S4v84!o4vJ$;(46k)B&GiSsO-i
zbFe*M8{-?!7_GiQUHiJoQ-r?ghE*HkwmuLY(PxLVD?l~p^l8x)3i6)!=_*t3Gj^FT
z29h|dGMgsl4Q~;WQ51-wwv$IvD}}NTB at PATrJn8XG_lF5rxLhMuk%kG2)OJq;aFXr
z>EAGJEzFv}dcIvB##?9Q3FnyEHsXzdK2n&ewGQLq3-KpAq>auz=MNhP9h^YxK at dWv
z6RQ^k?$fB*jW*a-+sS_3W?16yktKQOMKGXkmmESAyk<HEGmo}!GcyG><=zNM`40V&
zUq421Gm9UN;tK_Ok$8)M+v5T+`$mfzFJ8+R&CTB9mT~f+5mKmre&0U5U&b8Fu1^gF
znG&cReX&8c-+vliiIap%r+AoN_u-z4cPPyAFQ<Z<%T#{LrW<t=IqC at lQy?=?6n+D<
z<3jboC0lY2VjW0uSe<^t7N7w6R9qi>ft_7d!SDe$R9@~{j-zs?+rQ712T4HUbE-_`
zNs!VbMJ30UK;HqqhCHCSbm`qknsrTHUsR0)Xh|5?{6^vkz)!zTE(Yfdpy0EEE06We
zvTS7r{}qOamz0e0izW4rI({yN0{@!eKVlfDEXlJwgqPzlL#yNl&H6!HHNMCu3|OI>
zDP$%yK=lusRBPR-HQ*CV9yw6WH0yk8fnrC&#`EZksyX4#%@~vJ5ms%*DN)!SE>kmv
zEU$CwR=QA3e^Y*bEu2gMn)5Ae$OAy|`Nt!*TiV9snjW^+4XH`N5jTesO_-+J4EyA=
z*k)J5!n6QT<b4S;Bf5ex9$H3X3r$**lP^Zh$E5f6Hdf^~?Ey_ZsGHz6HY7Ek+}2)<
z&UkV}dj86#r`1e5fY(Aq8EnqO8%sr^LE)MVOj$t{Wlou94JFE4d&Og`GpGs5M}teB
z3YzPo*36^^oBJJwXvsq;SkEQdv=(0+tw}8>U<R?3*#oF~zp!Ynenq`V7f*t@<o3J)
zK^Huf8pfd5+7SxwWVa*=qMYKVyE5w>3?1_&&lk{Gq51K<w&(RDZcI)NDFh!{T_`&n
zO4Y?_);MUZV5_<k7^dy|Mmh$xTTPb_?vBTJc+8vY=)9~_ZoW>yT6=eN^fb0H^xHZh
zh*d!U1Ye}v%zr>)DJTKO`^ZSSr%lGqtWgILK-GS%9ICC;q(d4eH$Snm5<saxCFi8_
z|DAgpJKWwwu6z!*p$<`L_rP*`%oMz0NYp*z63W6L;}>izzR`}<fU3uJ^-ZAypI(`{
z%B+5nOshR})vPa9&gO07vw0)aXm6KcS+vCn>p`?qh#Kq8wXU0IUeSAwm%B2y%RSN%
zdXrl}B&AN7ve42 at ahkrvuzB4fui#hsf{_byT1n*`r_?_EoE;&96=g0-2;Ne%t#TK=
z!a0$`Ovo4T1h7PIIHva*`}(lls+n}<>_|ra=R6$w-A|t)rv^e6;)-2ZqMgn19&}YR
zPHFho7^;*V2WAz;;0M^@Ut#CGldBivyR_0OF=c}%QYR(gNg7fphDw8ak&{LOU6Zy0
zUAwl)K%;g9;{n;j29R1aM`&b)jB)+;P+7_2)+24V>PCQ}{>h|+?5Ip_xrIkV2S=37
zeXVAyVC9m}On0GtXyZ8r9$&rV4sCa!hZd9C+&{_VttMOgL@|Vv(~1W{<#o<p9)qB7
zk%BTW55QQ^Q|^v`(}IS~r=8VL$f{tq3?VZe%+xxa0yrC2G;572d<L at 6fC~!;MPC;J
zujST1T2wUsFl5rbFrM7UI<1O#(`RH}K*JyQ4za?zxQ1Q33o!OAptOEt2<ep+hC!z#
zJ)>SwydoerWlKs!D+*_3ibC at 3kE#dYZaSefYFHmD*WD%MRn=CoPwPDKag8GIAy1{@
z_<daUz&M{gIgZ)?q^sTAZXb|=By6{xM$YO-9n3-*tIQ`fvdiOlVXJUh_$8Lwb at 2p#
zfEv*jve;9f4cs1ZpxuiVX#*$|g(#`pLotj&9&IBd6uADj^1oc93C=zsm1qve%fRhb
zW&m<%H^;);Jb`Y!v4IN0^1>OE`~o^8N<+>V^FthD6SIt5psUjZ0FJSiK*lwL at aciR
zthr2*RvZA#fcsUIfYUGDbN~pZX5vu9e8J<3X4QDAqrB`Darmhu3~Gv2M|qTSkngeK
z!&q3r?aSIMFg{4m89fJ7c?5q;z;7*~wZCT;fyRUy)iUE>m*BotD}l*GU<Rcupm!2!
zKY->H4(b-TjFc;tuS?}Q)f|m11y at qHDd~W6jZ;i~zX0hq|NFZ(<nlkhYe1I&{th}=
zE3JW*V(6d1u<W;AXOZ;giawFYh|!)Tw}bFItv*4RwV8{{#()0-5JIY^k%|H-en6Lh
zk?V%!1gHJPspQvlu7_jlc4Jm8b#rLlAfzw#LMX}(kCksO-9mTQ3R(c{hNT*HViBP)
zVAtOey{`(`5uC9 at x2UZ)t_ko!@h#O^Tz)soHz6O_Z(Dzu>toNPz?eF$vPc>q7rNng
za49YZx0Q$k-#9*_lZe!`+;rZniN&<<AFW;ZoXJr7!1FLcVl61tlU+JnE%^UDB?Foe
zq at qeZu~z?-9%xdX|MRpZmM8_u$L`uSZ7#WsQ at gFE3BDTvwa=}_5R%qFqbMAaPo$JN
z?pOj9xK(T*e8&?AYbSdJl@$fEiq5Qz_2V+V0s!QCPzy-h$!|lls#20mNiiciU<@wk
z09 at 63e(Xxq_QCkn`fmjJj?JJayN$?c)$K*mdCw$zwUt5GC at Ii=yaJhpsPD6m>u_-)
z?*sne48-l|HGahiRHF=W0E%D9jj-2 at JLQ5>hq$*gE|2H{K~!h}v>>bHB~_@?_seVr
zU;w0auLZdgEueKzVJZqn(N&cy<N$>vq|g9l0o-~N`~`o9Fm?QW5+i%lHqc={n&mcs
zf9o%`TcjQl81s#U4wTswFO2+h2GPZ^C`PPU&#?}Dr?OU==TAUeggY3iWz}xnZ;9!B
zi4 at 0NOUZ*|b$O at kZPMy@5U{Z?AwEONT0=fnwp4VUivueUM{J<$UQ at N~Zy7lU at l(n-
zDS=&FUGOV?OzJ7kevrggEjETMYay&!gO!6 at knMD-IQ+QA0pYz&&%E$;Yl$(Q8GyAt
ze2e)N=C9~P7yJbk<VIBKjYOH-c;hX|-y?QB7-V*Iy4WPff;F9f9f9E at hBKNRUCn?g
zUeUx`q*CoO_C+uV(@rc at K1)2JVdgIe1y5yuHBn6iNi(7V12h)qQn4})Lf3%CiNh2L
zJ+KSw at 13Y+S5`6*a1XRHgXn<~fGdz5O(%3+hN!LbqWO*3x+95-cv%yL9YYU2+{~yI
zV>xqSQ#D$uUS>93`p`7#9Fh=l;UNBL5_NQ%AOklN`dmHmh4+x|DcZUKAZuR`Pqnn@
zNJh^9!A3zIplzL#r04zQ)^lo>kbG)qVIa?y8=eSs0W`zk6w;%P9fHZ%1F0Y_MJF+O
zy>p^&*Xf*dzzW=K2vyh-!HNI at wD05>;DG at BVPa0f{e^ONS?7q?xXS!p20-fpkfOZz
zUF?`Jmfz^@>LW|{rLa0R${sMiJ|imvgrRrq at k>4l=oUvKmdwRZiz%7DkfoG%nB(BM
zQU<IyfN%lI+kfA+gv1#-g9UT6hO_kLPl#zR4VXNE%u`DXXz^UEW1MF9h6goblkH&~
z=x7LFVZrM=5N3-TR!&B`d;uB)&YGP>3gZn29)#<uD4cFH(7_H`J2UGy^(I?Gt1n=>
zdL394F`6NODOrW+KG1;8B{UShjKcFSGaOxG{akWO{Pz9okgXhO*h{68B;`@mi at zHv
z40H1Q5$=&~zenY^-y)5Gc+U%XB!62{@o5P5F5#&@v{6x2dPqPj at xX5yYZ5dxCxC2&
zNB(zi1t40 at L~d+JDmUnDh~}d#A#}+0sN}E&0QNnZ1Rl0v^N(F9xIJNZ^mBG)Sdmy6
z<5r8!Pl=&hr1Fo4DdmD&{8MDiFVC00+7fS`aBwNfUq3NeY}bkjlEg}mBVd$_Dn&WC
ztysLO$^|uvrj8wiKOxv7N8J9Jkc%+^JKg}ANI=qUzkp?mz^69<_}3YBL_SI(T7T31
zbG{1W*s$UqE42Xc)!z(~&(D_$%c!7oaAHR!<uq(0<fe(ZVVx~Nwq4&B8&4oJtjEGu
znlA?oYf2=M4ikusVKIMD0IvU683CRJ&o8&I5bs`LOwyfW`g^OIWsgusocXPwH<j|#
zh~?fl65#5m1EN6LRFPxfY8XkFQuN%sjQNH$4Ek8vnAz{;f at 7B#1FYRT2Cr8Q9H$FK
zjKq`si=6%i>M;%gUes87AvrIrUQ)jM2o^SvD|w70BTEP*<31pnP`pP<2ajv&UBKZX
zG=-V?39$;!b}7trH4dhLaU&4FBNR}q>P5?BJ@^?32!Ci;d7)VObL29bCkgA}+qA?=
zwQkAtXA at eg!xnH84mUii0bE|*7jWO_z|w?3qQaJws^=gy(nJj?>}Nd&srz{JqV0B8
z(+G79$@lr+#X^l$y0soMa82*QB?uB=WYzfMHR&fJYX=?W8|}0AyGb;es2%UncTwv(
zIkS*Vhj6)Kwef9?g^gRSU(}T?5eNV#OPXlg0FPX$$7eBACKH6P#BPuba<UH**t7Te
zL3m_#ZB`Ls*0 at w>3Z{(U`%uR89p?OhPLjWsjkj&1;4?<;)A-dy;l at bfzebM^+jsbQ
zv$AS|tAsM$V8m>dz5EKWtESk%d{dX!a!yz<r~goA`?G^C&HI*A>Lx!xt8HuZ3Z<3Z
zrI$AdFiK-y2C4Fm!LpzbY?gVhBPw~ES8r*-K-=_Q4g at qS<eH+5n(zDr$DRUt>4Q at z
z4E{mF1FmD)f^+vWc#y!3sNL}+Fda&B;w+9{Q3|+E4a7O2fuQKS7hjH8^C4Xk;JueL
zToT^pB>Tq+-Cs5gY~^`KkK9niW^WwjG$|j3)-Z>owtxe at 7z=n~E7ME<U)+!mRCHs2
zx?)APhv0SsBio<Yl0_w*J|_LE-BwHtOO1{6FJ+}JFEjAmN(H#f)8Dj7-dN$>uWBZR
z at jD9uRh-061b$5Wk8-cFxBSX*3|lb0Z&WO0z-P(MZ^p&eTZzN+nh&cRwCa_yJwMC+
z{ujLPPOHWtpWIpW*gQzsMaLUnn??R$&{WM#?qP(aFjTab4#Dq6`{vRZ8ml9J88iTa
zA|QdZ1N5cxWB}!2*{WoL^8$_6In~_V-hXr{lEmjPX^9bH1&q&n7}U6=g68Lvl_9N&
zrG=_Pm<WdXM+NABLwkgyZYuPR0C&r^m$&NzK_hyL)XbP_rpX$w)@~F0y^o`0QG|_Q
z>)gBKkU&Kp%V^ya`uvnj4fO4$0$gy6mKV){9tVgrpB0T2C2A`Qh``E)H;Os}6C at Cq
z%aP&>bl at eZ;1vFm$|*}o>)!X#c1(m at TcQz!0m}7udgXNaDfoWgECKHNh2)rTjR}kg
zB<fq2kx at 5L+XP^M&Y|uv>m2j5z5L0!WGQ+Ujn$AJZ_4vkJCD>9Us-Mh(R_54wHHvD
z7}}m$8nn?K!0Mx}%>t$9QzRaN)8zx0;jkVRsp&y0El-27VIn(W0+3F=EJTAItQ>_2
z1D$)YuaCueY`z0z)+)A8s^|whxjpsYVoTPXR at OB%s%MTKI1IXScD9n>9FgXI2G5%t
zR3@>iT6y9Kw$i!I2N+pN$LSSy+E>Hm|4jD5m~v{A?-o#yuqgZvLrcyEEI7LCr;niR
z9t1uuF6Ij?wNCgV8K5ZPv`7F?>BEHxL?51$7!c{@$&EF`QERUgk!Bai<IJX!w7%fr
z(oI8`MZ3a*#vsh5Zb8$VM$;rM_sxaB8i<vX<K%}sI9;>lUe=E0!g2q-V{>q6^PzvP
zPe@^fS;~ih$Ctm3TpkF4 at lhhwZ4cdbyfj`RUC||tLa?LHbO`_c at IQ|uaV(l)Dv0w<
zFsBn<J^{6SPtO<7m;r at bdX?U(`v-wm^wKN-N at BQDgLFEO(U?Uy*zhdJ7ip>UO&203
z6OD9(jsbS_b|dKS*Ga;5q^?3*M^)4GMRetI5CJ-79LX at aOO8g=h=4Qvh<FWfQ<;Jm
zl at mpmx=+m8;4l?eloDYcRy+gTA;cdrNZ&xa3G at v^?ddj&;22jN8)${6Sc}4E-+p|h
zoQ<Rl;8^~%ZN=+}j0TPY3E8(vXudS#K$&Ot5%eK9z?)V*4Ew=ou8H`2jM2|9K>8 at k
zxp?+8*SYd_V_Sjuynj1s_0VnJr at TpDbJdmCfN_3`44fHG;R(k$-ba!GP#X##6+HdS
z`nK-|Fu_OlhJh}1kj{POjQ|1x1*Pg$rN7TEkG3A$Gt6}iPu41d$8X2^Zs<5U7QXzL
z`#!8KSyg at jQ&rK#t6rWV*u;AiZ0R%wr3q1SPXpQP0l3#Yy{#3OZ9z6~oOa7G^TzTf
ze9d*bUw96Q2fUtP5ey3V(CAgg<CTNl$B$D9J~zJJ at ikCR6GWilzr#C?A(!dI_}l$;
zLk>bGv|<NRc*YWZwU>8Q0yq~0;*GB=%Gz48YxWI2tId9VTcXgV<G`{Y_G5*!hg=1}
z<M5*dF(tq*<}5In)Z_Uz>9?29NXpCBog#3 at 0Zyq~Y6Oh*COR#{tM3qB#O>^hLcs$y
z<zO-mPIj+Gx2gYL0tq{|r7SP5`H<~vKEV^*M5m?czI?wqbpVdIE%8G>hjYtU5#{jt
z&0MO at 69hys;h58otB@~CV)hH-B09kW$ce2pNgV}k9sQ5^b at cI%8$sP|@DAO9??(Z`
z6Ug2t7T=-wLh|7Ztr{lWT~A}_Kmms7U2jmc2^;1YbQE6z<lyn%d~>F*4a1!IoWy43
zRi-Zh!t=lSJP1kYPcM{%pZ#gdBcz~z;IZc<qIKN_lIcYZIM*ipw$Un<pWF{lLq=WM
zp}$D}g-ec^FUw&((Hyi2)uGzszIAmjXu~#(ywUmku2b;?U_(7NP~O&o4)3hCpR;~$
z0h+CMNkJx%ncmRg!uWSamHpx(J9GyR(99m$>+*K^Vp5(JkpQk%&L9(o#W5ngVsS62
z8ILJ=2gP`wLB)8WE&+g4Ts?fzG3Z4Ox%gydhv#!oYm2yTa}~eD?gQ!4ZTQ=a<-Bwp
z!<u7kIumR)Lh-HkX>BA0889ShbUX6-zSNfxg~_PCh=6U1L&%7+(VAj&`asb9F|<1W
z=e5+C1;kId&`=$#t+!7R=FSK4Q0mZN6p6VS2MW{08C0R5^@q<(K?j|Gdv2M1m`ifn
zjLmC{M$-cNz2!lr3dj^#dSLzUpKhm~9E9f*7$GETlDj6ASr^F<3Nls!3Xa%h32vjV
zEksef55QSCO4wxSuV4d+z4sMseC(N;^ow}b$Qg&ZROUTW9^1V_{YN$4Mg_1B+pEv!
zk<dn`ak9bUz-PAC(Fl{$YXeSU^BywVx!+D%U4mTllxLulSOX|8j$z&>)wp+VkdBUN
z1{+&j(i%HetS+t0OJNGp3D$9~z2wT>Z?DDx+%?e|lJ^-*m0V{O&Uj#@MH~Tber)K}
zXcU87<6yDG9c08Y;>XU=d=TC!)Hw-7G8z*&d^_f+Mu&sFBr3>sjoX4+PQwL#0ha-q
z&Bi<Pd3hJc53Ws%n4gEBd8C0;<3eGwP_UV|NH~Mphf?m)pIX(V9T4E*!OCuQ2mvW?
z_qEG55-^%Sp+1(OJ!IfU?z+};dYUe1FHf^3VUuvcpO%vf2T-^lHB%wPmTWYhRn24u
zo}91&MIiiZ+;$5o2q=7QPG5jV3cl9DnV#FvDhIFgR06aI%dZ^A^kV}(jkB!Ar;T!m
zg0}%-F3q2P8b<dFICe%3`7M{pkgyc2%<@*fzTXkF=#{g_EvTGqwiDsT5Iw^mhn}h&
z{%~5VX#HFIUsh7~ww)Rf|3Y*oLfp|;7mi at G`cHoWFFrhN&n at cMACL{2Ji at VzU8v(=
zdA2tq_n^XCon3g6#o)L3_0N#d;f}SP^Fj)EW$-q^x4j5EFxS<~F<~o>tOuF3okc*(
z0unorZ^OSHDkRy)e8LK2;|6pFX>CYf1c_aMOE`?AC+P%`uY*+YBs|%NV$R0gN;D6n
zc&9t%*B*e8SEGuO)Fx34l>=>e%_|L~TZddx;#jlEK$i7cG*bE#Z228nN*66&6in}=
z0X`Q<O`<wZQSdq54 at f~?h4IpT<iczlZekG`>?sJaU7N`UkY4TZt_kx_Jp_;M3%Gl!
z2=_gV8VBm8AE0g$Qv^K2MEHhk6;`X{A*n|aE*i2xHExqaZ5;lSt;b02Ll_2F7_bz-
zjaV_+c_~7|VXCn)gP9~-Z2mLA-3_W3Ah)b0#sdzlB{e2ZX>xw_E+J=bblznZHq4+c
zvMpgx+#P>!p@=pOy{otv%J>lfC`?F+;(u!=odP1?g(c2iDeOlbZn=0f6!iF|4B)aT
z24<O3h at Kvn*V<kE$Zv+92jO$7V5u`CbRRR at CLlI=`T=qo=q3J#?=-691$D!X9M=pj
z2))@-2db0?&}BR!GJ&!-U79wVorVVJ7I>eiE{dW3U#bS+Kmltet+eC>=o>T4`E6&S
zKh_<Iss7e50v7q*2rBp=m-uO{^K|HyOl7&N1I_LxsWK1g`25op!nct?N-dE3$!;LE
zAMozt06M??N=m}$h7;&XNx0{5V)cxBo2&yXAX~hV%%458 at stjjD%Dk at v)sD;=``a_
ztOn8rlI{`%BRuJ2IbkGx?q3G>Xc~#JGFLd~j*#Xo5iGKr+03EzaXK{!JL&Ocr8B2X
zL_7k(5OBNH5+)L8{*kr&H{!%}>7nJd4oHoNl=9$_KWrZGd5J5vl$`zliDFCHF+!aB
zlUyy2vRt$vgd&8RB#TUlkmvw;Y6)QAQ2IeA<e>Amvalyn3|4(%JpNq>ls;>)JsQwW
zNr11c)IrKzV|!N$V&tua<sA55u$p7rQkm2HY`vn?lj2oNa|(W)<Rxxd9%aK`e}xq&
zM*TK*-O>XfjS63-x^Edl*;*I|_w)q#`yLx?U;7+mqd!~#*hxzO6nk`0h6mqIemhU5
zw{xu|lOCPQffCK>gh~0iT%Ng&*svpVO<C|iPX%?&5Fg at ZO08*RjJ3bQG5`gj<qlzi
z_RuMt9;6Gk-1rcI^E%e2Z;#A&?XgyfLbW?ubB+8nQV))arp(0H%U6a`XVc%ISFb=-
zi%Qs at bmToX=YI{<xjy}(owI16hFz(GLGhZ5X`7aeQyrU^(J5MYMWPk%INc_DP?7P^
zW-1+Q0gjf1YY6z)LVIkBjH3#M&<1f>;L2A95LDf_B7>Co=+&xb%d5Gy?vKDLyhUQ@
zE<8)}dv~2LEr>nhA*B`-%Du93pbu^RD~J3KQ}4$agjcvsGy7o;I#?6%f8)axwjvZ9
zPN_UaGTQ#WypMdMTeecQ&MNG3r*~DwVIC%BUUA*>1gdgy5uwr4XaYVVb5WYZQW^h$
zuvBLJ*C8zAWw<Ma6tiaBH6iwsrv0gd)S{^Hh`zk<_sl0BRhY%wO5q0LQEw6&M-Ut0
zpnsqjc~IV1<s9U)UG3ag{M`brBy=s_=wV}aKx}(Oql?h89?Ta0i(_)^zi>>Z0`_jh
z1FKqwrgq?C^A7)S{)o%;bZY94kl1FBT`%h@=r()(LjpPD#UX)wsN44U{?*F|NR0je
z;DUs<CL`GTWgFmVmN&(E)|*)AWKHlJXp$VIW`%KA?cj6cU9p5Hh76;#4GB>tLbq4c
z1iYYgrK?gFj)$+lG+U&yskl+R?J{Np`gW?rcGu(JAMt*1H0CH=H?r~=a8#-jg4sH=
zqXWyA<N)wh8LJ$$erYjCk`JIU)z_eT!SMzh9tJ2^XHi!FgU}&7E8D8;8%h;q=jdSF
z{u`x(!<t1ja`6gQZgEs=iR6j+DMkQ|Z1GVGx>;4jeATxQ58qg<QtBNfHRNMZVoRE9
zBL(N&@I#RO)FvwnQ{OpqGw`dq^#Ji9*+8PF8b#oD|5t_v=QjVd;Ke=$TF=JiFRShJ
zMy!U-4w;)n$>XEPJQsPfag6TLSkk6vAj?sHo$}u}6*xpUoB=I2u6`=|n}+Nm>jPD2
zag?aNychxTuh+nyd0j<e87Vl10S##mw-iWjK;k_j*zVKtJJDJP at OJBR)I!Q&AkXe=
zK02wVJ#T)!yu}kPwj$^9rm^hh+o7?J{|VTyz*E9fnE--mQBXXT2lB#_WyfC4q^-;U
zuWW?%O{H|ht`!?+++3G0 at uo5ozfgX{z+lR<w%U+C*})s)O<STOEWbVS7^F9@@IlZ*
zhNTiC{>%a1-Lzh#WC^9#KGbiUFA|x=0ektw?iFsIRBhT+`BxdGtYNG7`aUe(M(O5o
zDSnvJZHewl8IrvyR!6f=Jjb!H09<<=AR9(Jw$svc-mg7Luh1=%zYd_tg5j21j#hq4
z2Mf#$LUriVmR`=Wv?PMIfM#O5B^1_M(DubUY@^SNZ1x`}0iMGo_%lP6CO?hLfZORd
zWu+$lp?T<2p^sGgW4yqcixijqBH;dlP8|TzvS+k^54vcwVF%L{L02o=v`rGE604)%
z1G4+nnzR=$5Q@;UpAwS$-<*JzF>ksdY;bfN5xg+w9S@@aN?-gg3GED7rq)ksv)Vsr
zX3 at y#LIM8lKmBy~IE)TyrEdVZnaA?od%{<yqcHpb8feH|S=$ni_rLh_fAi8g++r;M
z3LO65P#I1?f60>p=prp=C~d*w){>P^P*zKk)K&t|{(}=PNEeOca#aWTwu1ira^MFE
z2dL+lXW=yNmw%X0L>hw21m^3-Z+G|s*&zY`Z;|dm>v4-JwOX=CS`mOvI1F+`ZiT9t
zT4wUda{x6gt=qMGGSKS9%G=MuZH7A=T1DrtIL+nsjm>0%SGkwH^~e8gKdiXuccL^@
z6P|!I2qRI)!R*UR`cXuOh9AnsBx<ljNfl<0sJL1LXptc46N2L3tg2n^ICSnHylkV6
z;sGF1z7 at f@er%&Jb}Ex~kp_xZp!ncWI)dOX?Ln&=Z}1 at OLsA3{^x-vVo#209Sdsu}
z-!Fa%P%H}~t1aKl?djJT2- at E(5>m4hMqte4gp0f)dH|dl16XA_+$i2*tXFMb4(gtR
zEbb+r?PCA)%tn}RMI84LbR}VFsMmvM4)?WfU)hzAHhZzH$2d?za3wq;sVc`kB8btl
z&LG=-cN1WX2<Ez!li5nyq%R=veoD9c(0qzE$->`z05DRnaDQdVi6cx2Y$YzhvNk(e
z3^n9M+q1GBI1x}?;fXgG<&LZcW?4sJV^t{C9=sORCXcVj2mS<j)&7-v;O%vh+EjmQ
zH`Vwd2LMTz+2Mc2)c=tScv%uO%ZjV8mmoBQL=9)O%B`(&_%l&+?f>qTHL`O0my=}h
zN`zB;-6NY3M=IX*j^+05avL%;VZ}brK*AUQ-4^>}xZpMN9ITq5$$SZTjqv~UapiGM
zUHKl%SnIRmHt$2JvK0X}Dhdi(OwblVK%vT%wUBCopdhJ&gd~Je$BxpnC~FbKDu^<G
zQDQ(K3Hp2^I}t2U1a4HqCd<_Xh!9EM at 7y4@oxb at Ca&vRey=VQM-**|Z_5#d%xX9Q5
zZP?%B&QH+l*rB^G=a)B_5oP&_bt>2S9X)_jpq9S-naF2r+jc%vh33X_cgy+yLJk9P
z-2Ib at t_|F%>VP+&)z8NTZquOvUXPU4n!IhzEIH8hBU at vJCu!s<5f9R|Z+n?t%XqmT
zI+!!X7?^`-7RV{Fc8?6;+^q4Tt+~|cJ9YEyT3p0Cx|k)2oEvj;@g-qaW=239J^@Qx
z3IG8_+=gaA at Bc@S6kmNObO2`bpMvBrm_&TGc;TFa<mHKX4x%@-2T>P{AH4P2Ah)J^
z(_%V0l at W9Q3)@whlXZ7!`e$yQ at 8hTDT_`hvRQOwdlN08D2qRdBzZBCvmQTF1fcyTQ
zW;i!NI)UKNt_aiTt0^6+L)a28_V+mjzpeV{RQPr;Wjwv|&d$nsx&S`)ua*VebkVl{
zy~1D{=sjn8x1$zqd1tk~XV=f^xRt~>=S%N$EG__VsUSQAIELEA0A?L#j(e<V@@068
z8R+qq$tA=oQoDM_=UU*UtJmzMcchDoJdb0vZ|bP)agn~tY3lQ^?l8LxC#``2rVS*4
zHI|n*eUK@^M%T-G!kNYfNBA`9-tquCW$t{a7wd!BFnpRn2pzyn3X*{f2mnujKaEb%
z<%qQqMxklK*w_lOCx&m#Ihvu9G|@o11R|MPgH#J?4m_G}MI$?9ZH232i<*-Ps^eQ#
zhp+ at h+ml>SY9?zmZsINQZi~v1pUwD+r at q^tLDnyE8YQ;i*9e}ew_js&y^$T|_|xdZ
z{Ol+4OdXnY{csWUGTAXW`cC%f$XY0kIN9n6zruJQM-pfPfw4fke}O!NskwT$V!UMo
z0$bYUap6CTO(f{a2!<u#MLS?-4352rINfubByhC-B(Y<H8jVJwe07_T&4x<2_^vo(
zt5Rh~&8KfC3TlT3!8R)@trpL8MP?s0v;3>sNE<&870ydjVmWpKr#-%$vad%Y34&jW
z%bO1mN4T8e0dXLYxCwZIJ~)|SDmr#%^_*N)vppb|FE^?Tjm{8KIrjmq#P5wk26eS=
z>0QMjE at ac6JHo-t62eV9OW8W}#&@I$$hv?pZ8<Q~a=kTAlV_hq;7*W_<TZxXBQcy@
zuV)>e&viBjM at g@_iXtBZhwxw57!)Ve)`oZY0gTaQ_IM&$7fJq5lU6;@Qfu at Z*?_nb
zO^lKi at RgxV<cay88tOU<3vr<>ND9%Z3s5b?*NH;jM}xo{qNYaARfLigPahL at An;rC
zNejuT2KxiVcBuD}-0KpMU9wO}j7BI@&}qAr*mfX!36-Lk{H<?c9VHltL?uKCNB~9T
zQ-~M{(%|Qn#RZhAT#|>imsPRt9Wy9oPV<qbOae)Auojv?i4#q{FpG6s!a56__Z?$h
z+h~&DEOLHDmEgdI;9z6)#xXD&rv;D}5e<qgDr!<$Z&dq(%(zPT&XtqdjW4<i0dC!J
z1+}ElX23AOzk&%8{rLQm^Jp-|c+g{ldTpNf@)7M<SN5_GPcr%%1`?L~3x5d-&ZSX1
zOP7%SpXV at dmY0wkLRjV~q>LBV`1CB^1 at BL7w-=W=Uh|G+vpe~sF>)|u-cefthfN+A
zrd7zIXzQnq<9{)NDmsHIwp+V_cKt#?OCWnN)JCvs6~eURVN-(;vX$X;O5d9S#8RML
zegaHOXz#h!d!|#Faib*=Zyl at lzlvh8w_kjBT*jH4Y08xvs$2<7N;?!{5`~v1qcm!b
zL|QxS$}64Btzfn1k97O-hUAc{fUc_|N_e_eZnUD$=BRNtb-??(j$LfPNr12D42q_>
zpb|yh&?f#rd|(KnNqe$y4n-&gEeN9Wrzr#a$&r!fZD>7s`8-bv6FItUd8NrIS=MPp
z`iKX{ifDWJOjk|ot2X~W0Szy3{goJ7s+Un+vyWDeVpP3o4unhU68jP-JogFvdYd6V
z8o^y~Y}K3>O4j8Zt*^caB|-ks$W-!Qtci#l+9&Umt4a6F1pQzylu##b1x}#2Dty2l
zn8bhAj>~1~$_l*JK-Hnrg_)55Ke5+@)d*%l9T-6bZ&F`HAiFsf=nZHvL6WJPi~e|L
zHRmR6e#}yb2W9(_*-=F15cMmH^1N*oCI`(&;Td#gk5sxaTF~1=0VWW}A>$EA=9jRe
z!R>nJcJ17f>z(`n#e3T6sJ)X at CNy@AOGtb#t<;5K4QX4I<kLn@>YABc*Xi~tc*gue
zvg%V*I@?)ydl<ETgc3$gf6JYM>(Y&Q*H&qMiVOUYdL1Pc-7(7sRbqANR8I!t63^pm
zate534d)+nN6r5>g=tT)_&3KSxm&{3Wuuo5sVT;nJY<zm%0h&l7sf`Jh-*zd{d;(g
zKV<-YBL(VOdh<T0aM2k?;f~Hif015ot)v4`My1i79Mf(<U;1YzHY$`F>hymj at ezmv
zU@$BFWumoW^H%b_1qlBDOd8b&5K8Sf)==ENS;xcT1pPs>nG)~V32$(glB-KwL*g{0
zNw$%;4k+s#4-=_!is6M0ws{{pvU=g^sit_V(NOBo$|kEBx7{I>)_xl6nKaNE<!J0n
zk`va0)0vFytDtydY!=2|NLG<POL>zL*WpFDcg*2u^mp*Hl%6zYrBuShw*4S<@Wc{O
zA1`5HX8PqV=aqR&Liv)(%-%#$59>&G(&d<C9tn8DL07ynzU7+MJVl1SELBPFMneyE
zPEJ;H)96mB`A}&sEjjKnsKjf-M8P!4-enzvPD3{C-)Mn%HnO7w{8E%^zem+nmMgtZ
zRh9O_&%dqv{jo=n(U5|2WSqmzY}xZpU(5GN&KQ^ntf)-h)k(r>ie2{ifl*%1rb~cz
z>>LK|q?S|ohUbKc(utaFsn&DDL)p|CV%->f5j0m&pyD5gn-XnTiQ=~%qDs5{9lp7f
zT_ at 1l>?5if<eXac9+R6Vbf)K~8yZ-AdV1+rcz}Qi#@Y58kXi_}1?}0Q?haPvgMXfQ
z(Qgm%q&;Zsj90uq$Yf+8C1yWKCK~)Xw{rJbNeIWuSC7e^;=PZNAZ33^=zM)sZ%h$m
z7cqaTV-vv?C5rbI07uO#29Qj-aN33v{Ozb8bHK+S)XL!sQ8%F5WogJ?405)K>A3OW
z?5JwZ at E7Oq?2*k at 0%))=w$yTVlztU$eLaB~<H*Auk6?ph`1A at mW;i#1^>{55ThFFR
zeh}JS-Z);|AK*H+piad`e16%iCp6hXWP!mM_*b}@9J|QFe2NAQy~~4Tvn*yx2Q;Nz
z{SlMeYKBmT&5I;n$2VO`lNlDrF`@sG71+n$75=hB`tfQE_GS+0-+?r*tRw)%$8S{~
zVL~HFA*UQ>3LPu;#ke(#&bR|KaiUqD$vq1MDS6zF|Awi_W~a%pTNAtTBx1KA%MLW3
zac at N)=Z)+A<`U<yDn8ZZKLcxXV=~1y((91I0z71*<#9E at 9AW3cX`!9;lwY0&Q<VqO
z{ha_J!#<^#fVCbANgtlLiFlR=p857F0$25fOD4POcNb2HZKZv&$%=@@JDD|9kR%9L
zSIrKw{`w0cty*cAp(J_OqF7!Yk*mD)ka_u_l5*1X#?aDy7%=!alRkNmRydLY=4j?c
zEkX+W3N4HxNIPSAOauAR(qTWj->SaU^C>N6@{6I1_v2BtlnZouGSaSTPE9YoZl+i_
zDZHFy$Q}I>H~1WOXyq-TBzB{p!YJd#jor>N(e?B~MlYi>G)ss`k%M5(@p~L?55 at zz
zAtV-W2QpiF1lu=^)0YEy&KJ^Lm$CXq?W?F8IQ0`}QuO>mgJYjm{`tHe#~)N!i<mVt
zr`s>)(i*;WG8bE5G%ok>Ygf7YFbLKMu(qE-pwzu3TPFG=e1?u=K%X5b2 at fs^w_tA#
z=Lu_=cMRp~6(EAo1jr+ at UtXtDZ^udfoQLbSc1_=aPB6jgcfX!oPsZuS7HLB6KFln?
z`3`G{pWhzj{PWHnZh?$;_VAW^Rc={!I37KAq(fTkx3ZUg{}}Jvv?#Qy0$v_nf|iuo
zS90|o`?RVD|I{j{>Qst{OzQe(LD{7?==<A)0k>SS3ghDl3cTKEe*$rGXS*3b0k at aJ
z$fMi0poPgJlkptcF`%d at 4Hhf*j9xK+^$ojoR`8`ZC{$m2a%yflL>H8ROd-zITlnjp
zSQc$%;tFBPhu!P6s~*7|*@MwRpZF5$Bo;IxJ|+Gm7Dk9dL7M7{CG0})M8r*K`?G|s
zC=nB(D~N)oN^A}J;GKKWmw&hgrj&o9s;P%lnZGo>2NVpFqIBx<Wzk_d1xvhO+w~S4
z;P#p>)fvxX=-itevte at K^f0yalchlV))_U${}<H-<aHg}45io3Bou-JRXzTIHhSK%
z<JZN&hKG8I`w_2g!D}P%C<9ABW2RllxZsHGH^$1A{E4b3s+t#yZ*8R{3YU>=Go}J(
zGccbRE_2*6rO)?;B$~#%L8W(DRAIFYN~~A?C?l6`<rWq#?!`ecn$|}7VIriH73U_|
zYfMTw>D9#U*e;Jb%CT<zF~XzRn=BWd6Z1rkx&SA-VAmViE<Uc$U!U5OFrHSI at Wnu7
zQxvR#d`fAJbGd`Oa&%hHG0Q%T3GyHCO!*tQR at PcIs`kIiyIs=s#<|l}@p{Nsk~!?F
zN<+SiXicj50vyOLHk}KPGO}q5X~`osn;kL&Va5dBv9PG?qGlg2Hd<SpJ(GK0NW=K8
z%o2csDVXO2$`b`BIY7V_U<4j)ZgOmsAE{wg9S|&VGh8z?xVDXuKUm%>rM?#eZ~v`k
z>sMksuvopeZ1mig3rfm*NpheyY-Xb>s-OFa%p|hyyl>zD|5y7Nw*%rNThJXvq%nFd
zr(-%)+h#B(z5v8Y1>nbb6)2jzI`QUmvFGfvx^92W474UXnRRTprwev4;b+KMZxK9`
zWMvHDxe96nxTFK;il^Yor-OVm)80p&5B=SHoPI58H4QvpO_-WN2hI9xv3rnx>YV8$
zv?QeCkpV04qQDuJNwqSrVa7&G%3Cr;$NXs?6~|UvE2>xyfv<d<fKa<Y=boi(c7LiD
zA`<_-7}*|--O^)-?F5o%5mHlR%UZF#D|MTI<&>Y&*>PpkZMWm-CpBx+!Bee7pw1^Z
zfIVorvwgLLzvYLe!9iTGbU?K;8V=u~ZId$wZl^kCsVVlp=Wa at dqViS8J17B_4q=ZS
zGgtTy4!P(fQ(75$>jAGLY&VM2_qH37VLE{~OtvcWA?3yTMV}C*EdvV$vYnr;XY~hB
z-|utE1cTCcMJ^FbqROmDAno48zTI!wzlD67{Q09A3moh}k%{l~P at 8H<(yGP$0kS8r
z*Z+`>^^xT;J;4UptWRisz1T(303;u7N;pzm*L^gS4^&krR<<ZH at m5M;I6(ZU2^?Z-
z-Bd&~qktQT!o-M$rG{u|SOSm^4XrSGI`>9k`=8GH3)l;1!f)qIbP4m_-wbw9Z~pE(
p5U#)lG%(<W{_MMW$xE(I-vN5v{pIo#aF>qDUU$cvpM8D${{VxExeWjS

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-defn.ded b/clang/docs/ASTsForTemplatesImages/ct-defn.ded
new file mode 100644
index 000000000000000..fb693d77ee5c258
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-defn.ded
@@ -0,0 +1,791 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 640,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 525,
+        "y": 130
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 70,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 525,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 30",
+      "size": {
+        "h": 90,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\nTagDeclBits.IsCompleteDefinition: true\n\n$(graphNodeShowFieldsPtrs)\nRedeclarable::Previous, First: this\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 90,
+        "y": 175
+      },
+      "name": "$(graphNodeID) (definition)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 435,
+        "w": 300
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\nRedeclarable::Previous, First: this\n",
+      "loc": {
+        "x": 525,
+        "y": 215
+      },
+      "name": "$(graphNodeID) (injected)",
+      "objectGraphNodeID": "CXXRecordDecl 18",
+      "size": {
+        "h": 120,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 525,
+        "y": 355
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 19",
+      "size": {
+        "h": 65,
+        "w": 385
+      }
+    },
+    {
+      "loc": {
+        "x": 90,
+        "y": 635
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DefinitionData 32",
+      "size": {
+        "h": 30,
+        "w": 300
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T data;\n  S *ptr1;\n  S<T> *ptr2;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 55,
+        "y": 435
+      },
+      "name": "Source code",
+      "size": {
+        "h": 115,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n  PointeeType: \"S<T>\" (ElaboratedType)\n    NamedType: \"S<T>\" (InjectedClassNameType)\n      InjectedType: \"S<T>\" (TemplateSpecializationType)\n",
+      "loc": {
+        "x": 525,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 20",
+      "size": {
+        "h": 105,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n  PointeeType: \"S<T>\" (ElaboratedType)\n    NamedType: \"S<T>\" (TemplateSpecializationType)\n",
+      "loc": {
+        "x": 525,
+        "y": 565
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 24",
+      "size": {
+        "h": 100,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\nRedeclarable::Previous, First: this\n",
+      "loc": {
+        "x": 90,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 125,
+        "w": 300
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-defn.cc:5:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 32"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 24"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "LocStart": "in/src/ct-defn.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "36344361",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "LocStart": "in/src/ct-defn.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 28": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 29": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 30"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-defn.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-defn.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-defn.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 30": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 34"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 32": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 22": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 26": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "FieldDecl 19": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 20"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-defn.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 20": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-defn.cc:7:3, col:5>, Elaborated(\"S<T>\", <in/src/ct-defn.cc:7:3>, InjectedClassName(\"S<T>\", <in/src/ct-defn.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-defn.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-defn.cc:8:3, col:8>, Elaborated(\"S<T>\", <in/src/ct-defn.cc:8:3, col:6>, TemplateSpecialization(\"S<T>\", <in/src/ct-defn.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "InjectedClassNameType 23": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 34"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "PointerType 21": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 33"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 22"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 25": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 33"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 33": {
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 29"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 28"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "TemplateSpecializationType 27": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 34": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 35": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 35"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-defn.cc:4:17",
+      "LocStart": "in/src/ct-defn.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 31"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 31": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "NextInContext",
+      "DeclType",
+      "TemplatedDecl",
+      "TemplateOrInstantiation",
+      "FirstDecl",
+      "DefinitionData",
+      "PartialSpecializations",
+      "InstantiatedFromMember",
+      "InjectedClassNameType",
+      "Decl::Implicit",
+      "TP->NumTParams",
+      "TP"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "Param[0]",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "Cmn",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "FirstDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "LastDecl",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 230,
+        "y": 155
+      }],
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "DefinitionData",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "NextInContext",
+      "start": {"entityRef": 4}
+    },
+    {
+      "controlPts": [{
+        "x": 415,
+        "y": 230
+      }],
+      "end": {"entityRef": 10},
+      "label": "CTD",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 230,
+        "y": 615
+      }],
+      "end": {"entityRef": 3},
+      "label": "Definition",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "NextInContext",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "NextInContext",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "controlPts": [{
+        "x": 400,
+        "y": 595
+      }],
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "LastDecl",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [{
+        "x": 45,
+        "y": 100
+      }],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 400,
+        "y": 290
+      }],
+      "end": {"entityRef": 3},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 680,
+    "w": 923
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-defn.ded.png b/clang/docs/ASTsForTemplatesImages/ct-defn.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5f0ed7bbe1ebe0f295de2686c8e0f2e6fb2f11d
GIT binary patch
literal 25370
zcmb at ucUV(f_bv*St=K_P5fSMEf*T at 1ss#utVxvh{Ndig$rAoJ9p@$wrQKJZiq6vf=
zutF#aMuoV5fKmcdl~6<k&Rjv=`}^+s-FwgT9RA=5S#!-f*O+6x;~iyj_vCTYwX3$R
z5)u+xd*rb3X(6GdL?NLiIV=AH-^`2;JrNRGQxjx)#@EQp!vo{#D<pI!eZ)T4r|q!V
zf{IGZ+-C>T6-Vye_E)u9*1cAI#Tg^-VDTpoE*GLpM8#A^^j;Ik!ng>r=pAy)j)#=z
zkz?Es4vv2LQdbnbLqF&E;n8M?xY+uHJnQX+7mOZ<4cDs2SPu2v7+g-fXprM<X at -y-
zM3wmR?TscS%5}qwkRLw%IB~JACIaoJw{E-cw(h9-?|9Sm+F!e7J at p^ap12*5EO%Cp
zth6fdCqpO44m$DMOKWc&?cV2G#L-wsp6@~9BZ=I<?(dvT&so2TO*N~T=u4`(A>+S_
zsLMHnxTlxAe3bo_a4fXK;o6jMwJlp&B-J4tp?7T^r)%Ke{-7lf>)pTX|9W`S<HQ4f
zYVI3$r(P at C${dytsylxE_~u>TlO;``kXAk_(vNiEmVNTNRQdSq-;O_8-qY`|TPY(`
zK9z$pHwx<iYbfVIdil9cH}2SLpGTHoHt^bT<>1PT8Ox`1PoH$CJ+p74ufOTV-F>g2
zJf)Hj>2QaWdMl+y$B(z#slDpuT?}i!U*LW-;rUw?#i1Yj3<f`>U)0vKG7qPGMK&4r
z5bJv{PJ8E^#}=#KG;QDKo9}pd{gGpvjGEWE?d=m4Rg%d0dC}#N3O_Y9Y}ti#bq&V?
z%O=Dzh5L3+Z27s*V!k}mC?<T~Z$2Tk<?~Rf^D5=9UW0)zLR-^1Qq(SoQO`=XSw0KQ
zyTfWJBYaxuVwXp1u65X-y#}e)clyl*hrEV*_c(_YGFxB1(2hQR>S_1Bz=l&|)HToJ
z51l=kG~tn{YEl73wyA&XD9ZmTpZ{2fb5Y7p%wOh7|4vKyd;51<RNv58uN?&$8g87l
z?%Z9sgfWe3l%JG#HW63bZ|az{B5PaTP}jS+F?YSFqhB^kH=n!E*siQs|0$}=DPynX
zSLt<`yCxgtrd-866i#0-pyPjv6yN`neIRe?O8M|5UurzLX`3%hTFcFBbZh3m at yJhF
zt=+aZ-OJQ6a7k$AL*p{x>(@FrSsg#1dZPWpjdek!_pGMa(=~1)In{Q}40ErkKvLCs
ztBFD}t at Z8w`VTR&2Mir=zs*fbBfWo~u);3tb)mEGoz6jIlj6^fD`j>?^(++)GHN`z
z?vC{LLUaA5S4&Pvp4sWuCTpsEuDqIhMIzPIgc=dPB=@b!x!zUZ;-1Z290_{X`1BC_
z-go)7?;6+8r}tRRrrb<biB6P3cw5 at o2sz*DR6Bi7r=di;e07%Y(Uiw;BZY0cZZ#be
z`qEtZJoZfMBdJ}R&$=DN%gZC_XYm(vYbxfWb`?8+{O04fV$PzSc1(zTtGnE=Bq(J{
zY~NpenRP3~&)iyi|I?+XBxUEXJ4J`8z4R#uO04G3ZV;k`-#s<SeN|dG*4wT*b#!>Y
zzue|ov8^%JcDi(2$nxS}#r1yLHdgysW^=6Da-MJl`;va;_3C-AdEr-u4>CFT`gH2o
z6P4E-7S1(JTYCKGPHWk1E`Mjr9VTOTd>JpLrrmsY)7VA+MgQc*hFj at x4jzWm*m{)H
zqulS-7nJ{gzhMh?ZF13NnNQeMH@?P|v%N}%AC*Uo4AzThuG!NWzmjrLs|`iQ6kjfj
zdVtZ8G#hC@=p_HDq4 at U2*_|Rc=O;$QKP~;}x=K|0`svaG^oYlsf1I74x>!qOP;zeH
zcD<T;R=ex+T*P=Rt}|Xw*S0Q^C==Bsxk-d&u=-^|<I~7@!NoEY>%L~HI=00qS6pl8
zF}<|h&_p@$>$Fz!)~%<XY(F<X<#6&&y!fQX1gn0$O=f9#V4`@0lj6z~nMd}?N><!5
zj at Y}x<h-r-68_429!oCA(%;!`-QC6R(^@NW16^jxiru(dH-Z&$D@>wM^HS at MjE>p8
z(VkqZgcoCTLYey%wze`|K3)tRDWBT0sZz$t@}|b~XL?V|NXBo!ROzoOZn&P%)3Wlr
zLwiiX)_ZTBP0+m$dbu5b&~>?5uJ|!e?I3lc<=IMWWS{Jn$0U7Ww`UIq&s$)*#234$
z?O*l=OOZCC{M^r3maZZV3V&F5(cdpDopJ5N1msxoRQ=}Oho7bV5}Z8rZ=7}Mxjyu1
z&g$4^j7M50Il<esP+vQ8IZtzG^7Q2!kDbq*xxAD=&`MT!`+6dA!>U~(+LOfla&Nnz
zW};U$cJ|frlnzSNAD=As-X8zjU1am&UHul>9`&rvdHb^r!vkql?J$F}+0}6k(QmJ_
z^klXdrTQTEqgxYhZ<#HtRF;`@AGuXF$ZB8HmAx@{!%gq>bAAuvv;8EHA5Of_JG0`l
z@`foREa%bLq?azs(;KvJY`PIh3&ARA;X}CSh?RENmL9xr6SAIEmv&@a`|p_NSd!{-
ze_=ThlOGY&I~`7KTJw61)ahMAw`HKOTKSpwK8o#6B^W<)Lc4RU9PB<Pq#5IeE*eT4
zw?x)TUD-=89>2u!&(1;o)p%=^%Mx=ieUwhutK8=Ey4`fGmKfPm$D-tu<MbKv<~35R
zvwp7+X%d$1-DFj914o%Uk3GNl+=ls>xD_uhCWcR`mys~Ob1ONsX3x9TY)3^cJ8$M5
zdXOKO>9j{Ef3M=bpF=CY%@%6E@)~<^y!A5ownJLzCAsM~(qndtB`xk^__LK?mQa>n
zmN{>>Ure_jy)oZqYGr!Sg^2$9ok<1zzt5|LYks3McUr|5T$8>1;^vXnjGghZFXMwI
z)`_XPq`ux*CUzpL`{iH5YbA*LHerKD54pT5eNp!I2&2FAW1+e?>jrIO<&mkIR;%s^
zVT)d!IXkRbm_a^RBX#44h?qiUf8oHI4Ihtp;@1w_SCrp&SeD0mtEN;f9p?%yzeZj0
zo{YL`H`%$MdLfD}KD4}c$7y-1!ApcCVdIFuN?s#JvR)y at Cy$Tm=U&r{LP9^n4-B`<
zSE8OCok at 6(qPGNj20U{k1isjPp at u<rA?k?PHxq^KF#MKXxF4Cv8G4wQDNGd6t{vIu
zc02Kw>)x%*=Y;Rq>9_rJydQVaqV3$LZv>6fFp&n at ne<kB&!POHG^MF}$#1=<Go16*
zK1RDsWPhVPh?eohZ=E<aIYqlkxVE4t^D6Fs>E&1J<&1U=wKZ>1&yW^Xmm;g(TD_y0
zvnDlVtNPuM<LVnpM-MH}etUBGIrZ3`G^xDIM`vVRmJBXYY&j=(V;p*L&i2fkg=Ob1
z%!izV=0wjyB|+s+KMdh^Y~LEo-MhVV#m%0S+_lI06ut`y-!{!D-giSwCGL%`?6gbj
zyT={})*b9KPmr%#>!O6|I$!g#XmiP-x-Ao$S=L4V=JYkZ=Rq#p-)1GRZ6R+LiK{M^
z>swb(9mi`XH!qEO|BSFt{6WsNcR~YAWtF#H at Ed>3`9Axa7K6Q`cR%Hd?+!^UP*yWw
z97?F}Pw-Xynbvn8Z`pWGWl=dUWmr`7Wb{aCUcQON at dFmdYa7pV?tf5w^965CeZ^U8
zTC_D2Cw_XZUECyQjd8P0nNxQB;bvkpaq`o<pVCubNxYD!aZN at c6WrZ)={?sJ)mP=v
z${!funP&2sjQIVh at ROCdwP*zXcpg88UUxEXOwN9DWtS85d`XNVlE~N1P&6JG+M~LJ
zTa&n&5q&Dc(;-OSLDgiM7NOZWj_of?lX_>BJ~|b-I%_869<wr1PEY$@_N(LH)OV%s
zd_7X7kFwA at lWK1f^T9T_ZucvpY~wFFZZn??x0Zc*zM?ByRpO)?T|U8K{io2lpR~h>
ztkacpg)bF!MXaqAI;O6#>uf$X?QG>9Wz&+k5f}b^_2#$5d2+Mvov*W*nC`Y{Vb!vk
zP$pT7W-Z=s$Kn|FrX0f4#}kZnIT-ol)Aqb6)isxT)K5m982c84b1o~5o$`9LXP at G@
zDSIkKH?z+8<h8UDVxKw`c3ZNvc4!#?e7;L(tdriA-L13hNy9qK35{)$uDP~bnJe&5
zNfgOF^t;JnSvLvoN`wiO4o<?3>7(ltF?FpG?yeE4!o$25Px8s%o9(}HqCR!Kf4}AH
zo-=iaCUq4!oU4OR!cjOCnaOt+{c-D6^d>?+?f36EU~8?m_VueJ$=&$wsqE$7Q?}IY
zR$eGMaq5;j<GG~T3X0?sJttG4$LEf2XbAPX#x+_PbPWHQy+3QZ&PLkFxk*}1I{w5<
zwR4^#P3O-f)&DK88FW2bt;zcCQ<;!g&xy4i?k5v`<z^mdUFc>`itR_5C^f~=9^%${
zu<y(y?K6&7UfH1JPDoFAEn6`0q#Q-1ne>jwMQ`(ot8BaX+7Xqjqd+QFQ1M^C_pz;<
z;Sl4CVJ+H`u%Fn0#umlaqu&LKwP?P0s<eWrxi-<+T3bPwlOKW5Ov-zscH{PkD?uk7
z+N<@Hd>ku3Ps_Brt!{fj=cJRK`h>^Paq)eLdJ^?T2Oe~<m_~dq&2gMxU6#47Vt$1v
zmP!4=c;6}{WWD)_ at j=TgZ6jQf!eQM+%opvPd;8A|=_DLt$*dCjV3gTqB*u(Jm2~~J
zd9=JU_i}k+BQ(eFl3n~^&eSPy5QTs6jc9&WxVO{2z at H0&xT#6kDUYeZ#X;Ua(C`LB
zin8D@@W;>6<ZnfHJh(I^uLVQi^fNqXZq{p>CfmGmai-;zas`jzX^$fvDQ_`O0TWfp
z?P7~p648htXKTy2Wq(tcu^uL|M~nqO#}k+}j+TgoErCv{IP0lXi{GjzF$d<@>Sbhm
zB<c6miD-VL2GJJUi?t98>g7>pY+g=buSkiw`rrCU_?Chti3`>Wyn~CpBlw9o7knXF
zUWD^xcK=XVoE?4bzpu*>7a#W!(qwT6Bl|xm_&q=ty|}pXe-9A-B_r85JTrWL=1H<m
z)&S3Exe$57sT5%$-N6;_DKpLslg?@(2a%O5aiRR{xJb$xp|@81cM?~*3GF04+`UvN
z-hBC9 at C&|!k-aK*$u=Qq6GlSlDlWl%`GlU~n(!IA*W}a`jXrp$Qo3|-E2>B<cz?*2
zD9W0K7fPu&*wbHgIp=wX@#d7=tJNbbJ`d1Z#$G{V{K!N8EgB>A<By)6+KLC$AJqBY
z>ixATv}~NNQ?V|zRB%HWT3B+XTXL>DMKmk_<lO86W6P!9ErSIk#$J*m3&VSoTT&Ve
ze3ns^8#H&V=(1jCZGYC4)qnVsX*+|~nqW>jf)sz7rHm%kl$p%4I%rlOJ?7{(Ii}OD
zQ<tgzYP0UTkUV(E8{S`4`_A&x3-z;1<L=_*?5a(}<iAQN644gIa~00MuB(U_IjPWf
zr60?~Zy%!ZJ7(7W+A+`jsTs0zVf1412e4Ls_L3j(xwofAi6e%-d!gr%dww$fW#c60
z9ufk>9$$aBQ+9DNv%a0s#INb`qed<5)EhsF1~ywNuhd)hE)wUYL4D9H3ZzW%KB;rX
zMCUsa+IukmhcIM$AUtSub!D{G-JhX-XOfRa^#J8tCA;|aH7D0u-%gG<k2e?JF8wfZ
z{~9*oQ<!vsWm!Rb#Gdi#rf+EM=cr=&OdZLB>p&Ob<0(zPK_Hy1EX9j9LG_{e)ZDNG
zKwei4mhO5U at N8G({q4&RAnO(H$1jIZ9Q?&l1Y0nYSsiir4!Hf`fw`+VmHWbiu|h)V
zMBI`;s=>Sq)a=9oW81%k26Ck1&1?QzdNoC$L&fkdR|R@@0BLn;(_5fbyBY<zgA2Qk
z87E<cgn+92B?Lc~kPtW^p#w-0FwssT+9yyrgFe@^`l9>(uqOv%^;ZZ%Nz;wIQ!`H~
z=?(gx{x!PJL$O(*UDt#dyww<=p=!Mbp4<L<#RJH`n*H`ETq~!FAr-Ir;n{WI$(-#D
zjFpIa&YgEie%VySWOG_5BD;>=#9<q5<0Q0H7Bu5#=Vk|VYDyP6t(Bj|#qQxt6tu3G
zno{t_RZ9y`E~U(zhPHD{t*)RmvqG~r>0W)=tJc*Rj?eTg#?R(qJ`B4Xqszzb*xnUC
zf-)wrK|R9vfqbQZxL>kd;<~yZb~?s)$*ROB;Yy~Si6Q0E9uett2YqSjO|%AohG*US
zYVzPx^hP1*=K&6B__aQ}#>TwkzR;3Qie4L-^tzv+!(;q;L!Mberv~A8adZO%OH1Eg
zveUY;V;D&_a=;EPrOK{_PpJABvNF7Wc#~PghWmd9l5w8(y+t8A>IXP=IH#5%o%Zvk
z4<$V;FS&+&axBSe2oyr|BbHAbh4QPt&>K&tg%n^AKeVCkjXZ8G&brPd({ByAf{l$k
zsIwkSoqsj9$y at uPa6!{Mn=dbWUai=54CqL7(`e8Xt{CsFsVh0+)}1jNhOH}Ou_`13
zrF92a3Vm45;4Q5!7aXmZN at LQs>6wt=u3tFAOpHLNrlAvyt89^US0OOlG9il2H+oem
zOA)AobBg)c79n72e^dzA+&_rK+_-9>;0+<%wPGlJ&JXKRG%%DEsDC2OL3k%|{MNU8
zl6MV%mQFc7!ESo$8scR$MWr4Kw}&3(F9!?Z3~kt2yIog*rM5Qc_grDkU$q at wzG~x4
z+nLsAoPTJIO{TV3QDsO#0Ec)Cz3eJ3?^DN7<aC&@;Say>12a_dxM5vPu=^vE9g at jj
z%Xe;4JcKM&I&p7?6<7E|r!oaoTxH<HY-WdHTYq*`6a*EzHohTvU-5F5t>aa0+euW}
zx22wU>L6Q&h>s{BmztDvpJm}|>J{O67A*FWDYkQA&GTEgsjaT0v1iH(IfI5A_H@<h
zb<I201ADoSP$srqR)U-@^;XjgdvcGSy=|Fb9#a0dFv{htO<0X-4ViRk(}jrPj?|+w
z#d-Ndy48`m!UXTWzk!MKUZyaIdspBKceyrTX%C5b&e3a+CDra at ELw|k)-_#nUF~?y
z^V!K-l`#!rD1|&yev~J|LLJrIGALat3;-v6IYp<P5 at -sgtL?0;Sb{f)?T8fz4SSlW
zf5{B88tTJEaT|6VrS^5>+&wY-lV1oyIK8W*tD3#emD|Mod-kt_qNAavXh)!+*5S%l
zZx5c6bxvTq*-q_+s at l_-gJleA>^Up#wqcE3H-srOTcPNq-S5#<*`uahx58nRp2}I-
zIHo^I>)?h>iU5gPTcP0}Va-jHZGjGcs8$x_Cf8 at -i)>>UhZ5$}mA9x;M^T-(kIt;Q
zila5~22wfnlqUQJY^f;M%Q*ocQdQ_-hDG7!tjT`*`cCbuxJ*T&X&iH2%406S(-a9F
zS%!$-$TI^lV^qmzMWRzrCYTGMEr1pocg=p9Tf*S=aowgXYFG_CHZBCc@#;%shN94c
zxlcx1H!9a%&wfw6A^<pG-}l4LHervRwTXs0?Dx$E+ at g^P-(oA$9iD9%m#Tb|-`P44
z+Ei@=aPCPxZ#dvgUBKDLO=Qn$H$~`JAidkckHhTj2(^J$hd3bR95JQXG%3G=m_lkG
z4_C}>ydBSU#YN$+<5oe#smzvk`sp*Mp$m!T6p?u5dh1JtNz4LgJGr5_5f7hYWUCX|
zd5T8ZTsv$SvuY4$rT{I2l8PFzzEX`x2~Vfng56K~r<mZiauEB4nv-5gKn_-&uFk>9
zd$F923Pc#FU$p1FzZF+~({we;OPrNFV!UI^9H!L8KG`L*+I7|5c=MSA94n+0)tFPr
zA?vH#tNW(DkkinwtjaPlZIKSB?D7HVGZk^E6z3l!Y^&_R-ZQ!m(*NOC@~&+wG+kKo
z{IF7{Q`&}8^~Jy*oBhp<O(Enqs)PrIsC+{Y?bD}Y3ptj#cO}&eK_Lz at A$x17Bn;II
zIlZb at JmLgePcE0WS(oiu%pN_G!F4;Llxdw7U0b>uYWjIKO=|RQ%TXPR&CEM3Dp2%F
z-r%@lP_=C05Obb!3<(rY8S1bj@{dz=_)%jG>SU`^L*K1Jc>Zd{D=z26GLD%uc*E1U
z0Qa_r*0<oGB>Lv^M6!x;OMoh_L-WVhlm#R+kAB8BWor<x1f27p2vtP$)s3_=HL*U)
zxI#l`sUF!%1uB2;G;*nQBD3_p8WEv(9sf)L?|hnys6n}k>H8qtNQW*=;)<V3txlwF
z;JT48AKcQr+49<s81^u(7#hzrLfWKEL*4-`0DFg`!Qy<r8u3Ks$B+RbH6mHjGO-^h
z9pG(D$vD`nR`10o0um>{VG}6CN4S6 at oEDSv`zxg_F98SiQadK_&%b>Ar`E1FXp2Q>
zY$3e%z_~-nzNfpRQZ73V?eRAlb8G!>)i*V)lg{<W)c&jtHFfk`qgu#U+Wu-d%&(@k
zg>wl_#LvcJV_8)vTKLaOr58y<l4%1kng5qDdORAV5t|~avG9@}_rM-Gc1bGzvS;)B
zXI>Nkw5|G{ikqjWzURd$0owyMs*ggtww~X?-9q;uze^RbZ>UCj#^p-{71NKIOy<0k
z%<b^cFAt2^z)Y`%hO~WRP#m{{bpBvl4 at ueyMHhbP&ck++^_*X^n*;g~Rd&_&yharT
z*y92>gJ+T=FJ_<qIJwPq*7D1bRD){zDlfla`()k#-&JK$Y7FzZB_JE~)O%F7s4HjK
zgjJWEmDQ4kZ*ZN;cQ1Qq^x*VZvu`*vJx+Z^;A322nr9YFj*=$Th#3@}%7R#cx9*r`
zD at -s#y#FHkq^Sv=`p(hd7PYW(p!_cFkpF0ZQ;CE}vg5ZK?=uQNH}nUh6kR*pW1IWj
zftnxc7Ce845pues7o+l;%^4U*NqS^7tTgrwX4jY|Mxg8RQFhS}xf at 7v1(t;*j&Z7x
z2`$k;o7%7M!=m)7w1v*Bqm++tWBEsAec7zX?=gGgTa7|aV=ZN2w$(=m`z(m$QV6*?
z8)tW`Qtn`W8KMA3Ry=ht<7|Ka=raUo#;PEdtJY^z&l_~VvX at q@YvehRei3rmoBYlG
zBz`$e9HFYPCg4tL&NpFwah(LNo19vKY9%{U1M7ng8I$0?v58J}^mE*Q3aMx3<r;Qn
z at cZZ2Y36D~I~ZVrk5A-oKu|BRSSZPnZNbI+<p|8fp4ebQgSWq8^WirE{!{PunoyD%
z&vS#!EeqKV(fO)aQjCKu8*(#E)WA&h^W4kE%LpRZ^RAb*X+^^-4<4-*L!f-s>00U>
zIyUN?Zn&rLv-XGeO(-*%QLKWD-AfOEl^tIVt|(1qYFiz3_ylv1pWe3F+e2t>cyr2^
zZT_Cls>F;4baAj}fVR_?eJ~xFyR-`M(>*CnRy$y{0vEJIKy*ftVM<E6)T>S{MIqQZ
zvbY(o$}hdS!LN1^{bA>u1oT6Lta6Zy9Rtz_+XSZzf4^Lf2>HdwzP?nv`D11;s;hZ8
z=w$G$lR;+kyEMn4ySPKZ_<%vfmT72>blt4b`6C#Wf|^a>W<fo7BQJvxXLhwfkisxI
z at 5DA?P5fmGE{k8zYv2tVHqk1qAN#zyEDWv*P~hiNoRfj%$SIo-^ukA8 at k~Mwf$(9M
zE-FQ^QUp+72KHk37>$LsL{c|?(9gy2*Wlj+R|1?NpzJfbOMbYWPLGa9VYCo4%=~=p
zv`mnGMuM$JvI6mBT0FC;K~d-vF`k(Uuo72Xb2<snJe>N0jVnHNWN2UJC~(m|hwBxA
zv^RnHn36jr3Me7?1bbRw?I84Bd=~H<j{FyqLojra4c at u463A}Gr$npZ5+^#(hK}NC
zRkk({?+bU$N*(;hWL+gXuEO at suK0aBi02De{j|aGnM-`9X3rhj@@qNi1SaENYD>Qf
zC$%HE!)>IAUZSa5XQvaMJQuyvrcY~%^&)yJDo)EMEL_?maN)2dSQc#P5YkJXcuIJi
zUr~NFkKLoYL$A^q&kvXi%&kJD;;_xOy%obDj`2)!N_k7m&xWxdHSJyPPsr0CcE5=W
zGe*YMZuh at q&e>WOeazR)!LNxI$uIA&3fS&E at e>dmg)}rj7MScLd6uG(7Vyy&meGt1
z6z#8CP^^emN|x{l|M2h()J&)k(|kw7mx?EZTWhzmr>yI<J&VzN7A5e*%QA(#gt`P+
zsFazNQ2K=k2W}7{IS*l1t3r_o{HX#taARohFSDRlyO&3hWAa2fnSA}JX)jn}hmg{H
zhymNE1UwVcAd=AtU82Wyu=gz-3m5$6j9ol4nL?1D2Fl-L*I^eFfk1$A@<z~nPbz!V
zLv{RPEac@{8;f#98}u05J=&M&S!_Dy(!14{q(BTvWah{3Fwh=9v$&Ag9^%!M1M$p~
zq86>f1e|B7>{6j>VIbw5_h9n?QQ>p7!4)7jUn`U~h?<?&A$b-D$1zv(I`_O>v>gx=
zfM~3i5?DI+Lpy6JNLRo?s34C)$ra=@C?bGrsC7*eJn1JkVlhzg{^{TjOy~6hileJ^
z9n_EOo5H$&*OsG$uv-8e3R=}xw%B(SPZ&J$I=n4wc(h$o?Y95av+KZmC?c>Ybly$0
zcaQmz9%6ws9XcD=dUk$xn`wJ{+wlonev-!sfA~i)+oer6fZ$`x#ZH|m+~mHf(I9Bz
ztpF?`y2?<gE0KwR<Z-vH(<K(IB75VMFi|IVFw82`UMH0_twycEb6CElNr}@SLjxZ5
zs7t00Mgnl*v$sE`1J3Yr>s)kGgI_6*MZ;bE0+0m6<RI>5Q|<!(vN6vSiuQDszk*PU
zC5%`ps_PmdRcFnR2VoS6H`l;!EG1m!0dN<8p;uv`N_4#LZ_<eEqYt}H-uf*Cj14jw
zgQk)tN2F?Tv1n?g<X2mYjvPzM1tdTI4EjMol|qQ|N5!jv!#60^l=LvZSK)d|O3I?o
z0abe^Q%lmLm;MXsV0LjS at 44Y)^56f2{qfA)XX(J`L1+hGKY(nXdR4Oa-<c>l6R{M?
z;1?GGiGj63Cl=ERZ%+Z?$Z8k7&CPG*6kTS6qkan at +GKOd_MH6H&?fLVeB&dly{0d}
zAmm`yF34tqY#GSL!B7SUkILNpf4eGoFL?3ZQCT9?-kiUEZoaavwFdyLMQ at _`x30RT
z;%KLm)`w-aeFl_rzb-D?rx?W3Fpfoj|D*x+yX%Nkl%>>&HPc>m;bzB5Gi#J?1fLgp
zp#*dMY7F0t+;<o$axLEcOA?bETI1+QZ7!k(0SwM&6sXwSbInb;XDU;*>J7u)o$Ip&
z!=jg=GB+kO3F<WP49ec^tGuT at Tp8IZ0G}yGk)~=H_KxRB;bR5 at E+S7HCp3J^Ka*ho
zEij?99$PGldz_pEvlMwEFx~7s?n6r{<yuA_rMQc541NR|f$KbplygCbDn{TMqH!oJ
zNvh;3)|CoG2HaJ4JaaXgZ=+d2RYqGB?w%I-oJjqXND~Iwoq%MHe_b^$<w_El0SgE&
zH!M}PCyizYpVy(Xcx>Iwit1JW9FK#j(!E1qQSivXC4gKfnm<VioS+v|-n}oOC(nky
z(b?Ct;@SXGHm<U9l3zQmtm`u27EZ&)8R}*i*k%K@&Sn^?bQ at bRvO7vJ{QQQ#i!#GO
zb4r<UR19Cef9QBZ^-+I0vyCPo39Js-3P5qR#Z6qpX-Gfs?K~~XShWG#Og*J)j){3|
zH58u7zNlr_<vY=7%rc*#RXXg4v>Zw9Z=5cNaIc#KBQi0x7VNlBjZ$uNB+l|BX;zer
z^$kv*)%458X*Ux1)h%-x{7%cb{i^EZqO2w#YXA6fPot9 at mHYPYR(Sb6`FCcURzgYI
z4BoMb{cYY>xsL+wjNuG&sVyq1u~Ky*w{V4JVY-D8s&RXKVl2Zq0N)54`_rp`T~#`O
z#3bXek1w5AiM2<nQf#4AMi@%Tt=?0qqFIU}!DS6x8S|bqj?1-2R>l_ftPr7yP-b2`
ze_P-zEV*iLgnVodJkX_riy97GFgjJQ1jj1&F1*qqS(F751^W!aaDks)1y#8<@o)-N
z?)!_jQzd3**SR3GeCP7xnTT3|gaFY1vRdp=CANqhwPvA+BeDDRBu55Iwv+qMP6S|(
zZS;O?EQ#JYx$#11egk&;n_m(2$ZrfPcR-Gn(PZX_#Kpc%4b}B8g}Dinw`wH(*x_+|
zh)Z6kB<)k2(Wo-6G~6{%LK|%!J<)5xa9EMdw}Aks0g>$yWUzgwWjBMzDU!}wF96sr
zBAiYSQQ?s*tQJc7#f4bozf}TE<8nJWf%)9A$IZK-B(1*r1`*${VNl5IWDj2$Oakba
z_zx<Yf4Ev at 8l;^IHa8s|8XgYwrG=oTG%6NqN<A`C*)vQ}#E&*Z654{Lyr}RA%tpJo
zDP!3mX>1QuiiS_uDVye_HlJc=burYSpKQ;kB%idA)Aro`lyd70K<AbL;03Gg8OhuC
zp6j#suV*UmR>JwQdLtj}Se{Q2bsuG-9GjJhm!Y3=%^QG<D8=d!9c?c8XET%Qd^m;a
zVJ8K)m%=;*vY<ANZsZ<u3iK?_rU8pysOK4AeE4&6L^R@=dao6DbnFR=2%NX4Txi1P
zN_yC6ze@&z;mvRPDa?i at 3YxzS>JS6$D%s?Vsr!$Z*7Y4hBTd`lTm1IPxf`>#Hy^za
zT^IwD0BrdJvJI3z8os5gR_6HcvG=Y`Gp7V*VeVeNvkSAODz1UW?m|%ZwxtfwH|;oK
z8BL8Na-Ct+eXmR0Xcm=!F9xY;;qL3$h;Stp#Nsmu68<2Vqa8t(;2Q2}5XGUp#kE$i
zb5)4c*}vNd?UGsIb;|__=F-f8dJPGnFg02S-#T$PB<pud4ZNmrO~)>7l9B`P3G3em
zL>(GwHv=-cN;!e28+j74PcVY84!!Z_`)6ld6LDd7NYkDbakYUc^#7Bq3X+aj?HSnF
zfNt|@BFQnr#!oqnj01tltf~p{w!TNCm?+8Q;@BSBXE*EJwktz|Jh at OjGjZC5M}v7T
z9Ay*dg4PKI^bS#Gf-BW)VDMLjJ^<^mgF_?1!2?SH`n?E_;5s;8w8i7q at HheG_}4K0
zU$Dq~_{)X<zP5Am>gw at Lq4_W?X4*Gmr=~1a(<NuW?N_nC)(- at 2w;a at rz&uq4kfo!Q
zBwXwiU;<z<P=Z<sRpD`?B|Aq;c3A_sz`3F=8bN{_AU-_TZIBJCt|=15zm7hDvOf>Y
zQ^2<Qw<rYsbB51DijIYhLI%870q2$8Nld;Q_%K}BeE7WvP4Enh-zyS<wkKP^vwa4h
z<zJ)i9W5&{RFymEjj$62g)Ii}1_q%iIg+z{uO89EKOdw>{*3q9ElB>u3>j#xKzIK;
zB7o5bo<$%t at LLcO1R|iH8BmFP3TKp~XXoGNriXA3#qJ1iSyRsT!0gZt-VOB^IuZS*
z=*yv`*<_5+RWHDAJ1FHxS5`WQ%gaLwPS$riY&EHekgktsMZ^xnM;795+iEqsR48*P
z6q1YEQDW&)P^m-pclCE<;kVCmOS?GRN~%XjhHz1zTluC#iKx<W-*i$twyTuxcZO7V
zY2xRAPIQ$tY4W^k|JL8EgIRA~KvIvhg_;hdv&op=XNcK*BZE4+DQdQnneDMYw82oK
z!L25wYgc>hkl3HQ?iNPa9Bu^FA8K8jGSSrxn0H{U&Omi6*yk^T!++#i%zY;oIs$==
zm*+Fp3U;P45zn{P8EYA-I)yB{w<Zz at Rfg!5_xF6?bTz#n4MQtAb~buWlHSUmi5hLJ
ziMu-*Q1{KsS+24OoEHBU*G<ok@$lta1)@}GS2>2tuWI(}FHj at y1Rh;u&l<VU4wLC*
zj8DtF6<Ske&L*?Y7Lrc~YF8c7gtZBHqZb1;jT-qa6mF;5hIV!CBobOf;OKDxA3;U?
z$U8%`G`qL+hU)FQdX>@{FQxINHFXk!;hJ^g^n##H;Lv&I73^5WvU-2*;j|be0_(F^
z(xaq(WZ;ZzZ4xlgVBcZW=AtSuN5^ZbR5mvJ at W=M!e)|sq67jGIqw;R at +kghCJr?c8
ztCkZb`z{|XE22t{G<^%$VZ*y at E3pD-X%zZ>TZDGu6}|Pab~1Rk(TE at 4@9Z<NZ&PtR
zOj=?o70~u9E<=sz8ri){6y%{2afXMHe#)?lZ=&2)D#q>b>xri6I>`{FX0L#BxItml
zBFP8Jm1`ygErZFBzDE<*s<jXY4c~j- at 2N(lx|rw{0(MK8x$0RA at H_(7Ekb1%Zll^t
zG=G#KQ(cf_Z85EBzkMr1(X*7rv!b$5t|l at 0)WB9;vE#;Nm{Ia}4v4D-h_YxZGQ{U*
zia`~LpJwL4(*OY2NqiEj)J at 3oU5xo*hyIC1Q3m;zbZzS2>}89<@{4kTXZpk31k81-
z`)Z+Gi@^eOBSuyBT=29zz%e&)7YtrWOrQ6mlD|Ega6B_EikF{ccxs;@x`5XbxE=xd
z7GNP*0H&4T^5XAbm%&C06Pd#!uGX=%sh$ArCx(xJp2NI?zxVTA$&v7e_Kko~XTiJT
zsiOIp9BC2a^@Sq^9b+xtJ3{AT=hAd)NIqe;I_<$+MA(7yZiIL7dctg2^ZVA>WP?nC
zAoGY=a5S`2^*OP-tBS=twYu9W>b%ve>DRy!mB1`G#IKQOo7~@W=;P#%06bH*R2*Ml
zQ(BP3Odgw*>Y_4&Hzd!g)er5<YN<;!F9-B`dM-5Pjy!gmW}Db*fWTQGyJ4c;-Yw=K
ztP?bv^DgMa_4nmjj$)U6)m`Hhg4$C)VoWHMB7A$C9Z!X0{-|ZDq4}`YS1iV-BqY&X
z$Gr(_xkRq{ZUgTa_lB>4l}jeK&>P&dwX)rb$*oxfp|%o?NZSdA!hI>EIwk{)2}gxD
zZ(m6Hj<FYM{t<17rpU$-+_iiRu_h_FhJ2j0BJb{e=-y{1>OLM9(DAk63vN-}$4XyF
zd>hI6+tj(nev?h(G>&ZVzXsc9dR3x)B#8;Rmk)sy3FU_bK`Kg(atKM{o>eV)L_IG!
zPT)qVr^}R*sA@!Uo!ntF^nOwzwJE)Q)TO=(<*MCApVj2LkvDc4FYKT{aScTk-aB^j
z!$_&h^T(q!*+h^BF)6V}lKnQoN1KS-T-)e(q at y8)34QYlxCjm7tcC$E2~G|zu;Tg`
z%|}}nv7u*KZ0TjixCRUKf4dCe!LavbgId#=1kV^Q7o}H+^A8}6?4S}nAbSlgB4{oH
zit&Hr+N%!OPqseTKfI>lNu;UxdyqF|`kSO at fa^`g2r*lo6bN!t9m35UddgEJ>Y2Db
zav|Uwn-G*H=X+B{7Io;Bx}%NNO*l5;1*7?Sle;h1lt_I>c+ZrBNCi%Yg+ckn<5zJ(
zaa93-K-*05tuQ-eHn<mXvR at GpoD^Qs$ZP%1WBoW-=c3XcRqZ*Y^GFKzfUr?*5^3P6
zJg7L0%z9cQND6+?z0IW-6lN;;On&Pqk$fV(3C0T^D0kTz`H(S}i=FzrJW%$^rn6fw
zKvD%-y1HRQH-O=z5eh_A?7RG<Z}V&o1O at SS3L&|IP*aNb9 at 9wnu*^cVbrJZ>V4-Ah
zek5Jczs2$P<sqFGEkOQUP_4=7Iw0 at 3)v+c4RFgXUEB$;7KGby4lgEZ`aJ<yEFnA~L
z<pEf{+cTWTJZuK|4V=N$gz_2xJ0=L~Y2UdOU$sh|YTSv=Nlf~Yn+&W2(#HHXSfAhL
z0^*mA7h=eFEUb{O)8}X{B`O)Jv8#6yIgPxOeV!!_o+aoV^!c$7Q?;z%=}<Zbp^}8=
zOREuJ=9Hewq^Gc$o(}6%|CPbKj;ppnPTQ%;g`3*%Cr{JOk(Cv<3lo@#Wq#I3M2`-P
zO-#yv5XSGUG-l*?OvF>8U0sSq{AdQ1%JyI2f($A9k+FS|kNlu1_5I+X)$pAOxY*kD
zJ7W0JjEmTDqOC1+)M(<0t^&191x~MIwa56IS-WDWng`jyi{4FEOg4oP0+<)%7XEmb
z91*XcOM=`;39Xm)Ra5?!h>=qOE_Dpg6bEIVS<}V*45i!>hEOLtVv7cmG+O4o9nj$4
zn2JWcjhPw)bss-ujiIF4Z@?^q9sD1ZRo(;YeXU(B)W`mwUVULjDg1$<fZ at 8P8L13D
zf at SL;^AS<VL4;T3HZ7z3WyWGnSq^b6e2sfwB!E)DntI#cd`I%EtCf(=>T{f-E)!%?
zhqbXHbts9&Xl>~UD2jhHxUE#~Hz)#Bzd<S2*^zSr)k1cX<KJ@}a`jKIp*EXMe#g2#
zXR0r!j?XQHl7drgOnXkazEP{_#DI_hXU6ivXti}~RiXwi-n~;OWv7!e;6d^`giy1A
zMxs6UUnGznwDH#Ms{7 at vUJ#R+E#u}eJ=@K|+AN<ZQ)aNjy0ddnAFXC&N4KsWNn!q<
zf#&I=W(P8Xe^3!jsecM7=k8>kwZ+ldd+ai)1To#(kiXr%@2AxiLe?Rf^HFaF;`~;F
z)~1=c&|`gbavo at lP6cAPYri9#Vq5Ut)P9p|#ab2|!7J;=dPeLjOc{f$ONX~MHN*)a
zyxWzDRE{@irl<iui8!PSuXhkhTC#W0$u^Wps`JzL_pg!d9~<VM4vbNUnlh;jKWL`n
z$}QZI77=|)&$qlopyqCiPi&|*o<ivAG&Yrw7^XD2`}&i(m3!XD&~!hWPmHmHgIZmC
z^Xea=xMAca$KX{Q_F}0<xQg0O81zH??mQQyO?tC<KfUMs!+tNCq}q!QFeA{b4KBdJ
zxd0u#`H|zl%0ae)MU<kFy!KI0=^E71)tf^6xB=3O;Gp+hg!BgsZ7-NN9allL&F7dr
zqhuix=g^O|<-Ano7xF!eNh1Xb=3KY>?5$MW+{4bG29#~@5>U!!X%M+wx5_#k)_%%5
z8j5xbcl9SZev>GV!fgWzUe9|~!M3*lqHDK at dfE@wc*X=N7w4=%Bv-Qi&A%hs?acPo
zXIB{^seNIz<vk6M8`V+N)s^IUDlikzXn5AdLfPB8@~1EVDjrFEZe*b<yAcWHwXUsm
z>5ke-pi2S{hof+;Sja(v$cAv0U5N;^54K&k_T6<{!;J>=^1gYg)_p&{71)7Sc(c9q
zr2w4GF#mrt+vAR+BS})?7bqfGqJZC(pF|3)T?4HsSja)=+PXWu_Aa?GX+h|+^B&Bh
z1wIJ`gnvH6R%hSH>ugI$I0}=aI5m%nUj_*{f!Tvm<0~P3ds+nuod0}t62$ONNRwi5
zt=3KX_>U!6*V}thoFtgd2|^@8C8Duq1sWl1B?{>V9qX$;Mptah&<?7C-3{z?p7*2q
z`&*O6DH4FCi`L+ at -{s-_X}H)&e4NN%FjW)&GzA(eHyi>G%8tERAWKXZiIkn)K}Z|O
znN?p5h2h@|3uE1M$Rq++2x=ZMj=@1V*u%1`iRg{{9s<Yjf+Q!7_}+B at g{g at ve`uf@
z at gatP)3dk+QI2{PfJL^on3Zj3-Y5SK;je1^OHhAH7W_&s3Z2dP2kWkmF?gvrL7DTr
zJ2(1Y{F4>ptlf$FBW3_=qnS6l>JxoQ+{`ap74nC%icqYU4te&pPNve)a>z at NPk?=5
z=V_$tO?R3hTg}u)di_6730rM^B3(-%{0+9awU_-P&9pf#zevX}*k|gBN&!vk-Bum-
zp&-};3!Xlt3TJKXYSxw)ZsT0Zzk+?Fu0kgCfVv+n8CbgeRf&k^`a4e6NHX`NUd0+$
zCy=gPyqgz;d5<dw`DE=cEDH?6Ti-M;>e%t5<l~EUALxVjd^L^5`vJ<3>Nz$Htf{u0
z+V67*dE at YACTe!Vv)D0l#B%63L4(Mi`?IhzD0d#7ZU%i(2#Re+46?m%dZ1()d)*+Y
zqe0<VEbDd(=x<r{0_}~9`Eo&`?^o{pAB_dt`<w7ArUL&N;cWy(vpVev=976GMirLR
zMvxM~n?W at Mc~Kjm=Z7r(3I*cLZFdnJ#lIId at QBL?hNoY7tHa6(7*L-PC}dr<u~kA;
z-U3y&*w)t_K{&r)D=2^1)tCEj*nK$ThJ;4+4tL&96z9OmKEvNpg at t+oGe;<<!p7Q}
zKX6$pE`wXdn9-Z9vUDPuA*ubly&e6l)d6V{9D}m91Qn7&I=Xz-)MTq&1`b!1)gQ_4
zyd1*jYq!UwoP~2K0`5iw5g#Z2|GNVBd;2c{AujNhDoC}>)g at u_Wr_H@q6B6OKtRQx
z1djrR^j`ztq%o&PAF9 at Z9xdhoj>a9Um!RlSN5ow&2(puK!KNIK>+}HmR1cFK?HaQq
zO&{3<(fO`bN~dxiT4JUKLZi3e0O8~>vGFJ(ZX$34r$CAkxa)4el<IeKUcffNkuFAx
za5(!rQv2VJ0ONiaPX0OkJO-Hc9~gtv>4Nk<&}_KZ2^KHd_`fO1e<Zvf*MQnw$VM1r
zKq===eqQ5UxTXv4GXcHL|MgL at VNe~03ytusqIiF(W0sXZr#?6PbJ*SQ*dS&6%1vAf
zn(xMY7(Uh|c1)nK#=W^9ll2y4g3mjH!oVTqG-$qu!&Z>z8s7_bRCo<7)SM5JFAA5g
zoJ?1%j|mGOD+wB<Pjyz?#F;J%5Uxh=Wnd?&2fFZeCUFnO+o*MNKqCaYZ)|*>Vw+3_
zvEc at K9*#9?)C+d8n7xX;a~L%9&4(8?e#yLJV2*T+{r80R*j_EY%BO`XfVYYQ8Ni4L
za&JeVpVPEEuTAQ%Vk at 7bmV<ud|5$7lrCbTkhU~*5wB(32?c2E0;v53xR+_m7O?5<;
zws!xd$HA()NwnOI>v8jr!%m_&FiBWmPgXvGYwCgw+D%;K?~lEmFO~n4*WtR0K-Izh
zrI#ZAoI%i#_iw at 5wpT0_`o8&>MLfpX+LW&sy0Y%qZU2KB<-QXnbbtA}Z?Q*5H;0eK
zRUhxICVBX6H|v`hpI!26LkvYj=X%FEUAaI<`g&8%nP6hG%<prEH~)0K^|`_2_FxBN
zB%-~3*r at l6poakVcR+DJorm<rsH7SysA(LxMF0CzvU&&TynBMPwnLH+K^oZi{TqHC
zAw%)f!A2}v_Q5(R|JWJJWYCkcXcn+?Uz7ABjo=8w8;%M}B7##oggn=Tz0&bW<JUNW
z`B2&GTuCv}czt)I-4KYH7Ik3Np9~4yZ}K}0{M(dZB>x{q6e@!*=`L86fW18g-tazV
z at n9Au3_kzc^!|K?kN$rcLAl at 2+!==Lb1Rl+hc+3;rojc(MO^y}7(yH_?>-C?;G5?s
zk#}>V?fwR4^kX3<&C?+KgwynEWTi7{Hf&nK8<@``a$dcOn=i0j4dwsNA~)mHP<FdY
zmuXUB at RmzqFal-^I^v4Z3FdcW;lg#Vj_R^KeBERh;a}Lloxw|S16PkP+w|q39iB<=
z4*=B+>9`#$U<U-A{v+P})15q=bw!SKWrH=wLfcO0`+Z#XL1S<fYQ*v66lUSKc)$<0
zQALELQ$Q2XC7|yv$UZZQ1mTO{hb8wim`IEMJAemjU1qa;K&;g1fb2T+0>DxeO4TbF
z&c}z`#8sCJZHAWpW)*>WT(y+At<Z at SW@&@PM4h=~qyTjU-AY$+wKYUZFF82Wy3i!>
zAmzbTHJAjzO+Z%=o~eEO=s`hkV#XSZF09j`S|0HqX|A+xE!4dwC}4K)E9`6)=h*e~
zH_vn!$JXaJJO%yE0z%-WO0+7^wJhs8DN`L))-=kot-IXfcj--uzkDJa6CT_9Z2(ER
zd!m6SsTjIb;O&1V;IOUrO@$8#1vkeEk_i`-D=Jzp7At-k*e5q;GC@=Aj2iHl?N|3!
zAG=h*T!{pIo*?oV+xumy;2e3W7{uv=aUC||SLvK4&)^T+TA<UV0c-5J(ug_<1D;iP
z*Q66VlW36YD(yVAjWBch=1CA=KV1SpA`=vxA-AGbrj;5|YROxL3`E^qHI{25FZyqk
z{a<>$KL*`LaxlKUAUMJWy1?Ka>0-7*`X`XnXwdN|=XlsvUQzd;SznoKe~uB7)Gi at 4
zW;<qr>3#?}`DBT;6o?5HbCBjUxJGR8I8maM#*w0s$- at w6fG9{;-C+|rR at oVqp9XSu
z)IzO)j1)~hsXV%asv~x_ at UpKBP`;m`w}E5tj8Xy(o1lLIZaosfMhFTi$6ac}Lg^uL
zk7C<xno*K7m7qe==>xLLPLoc?oY>)b=4j856DTEJ$K8wB46vr^5OS<Ktj|V;6QIW`
zt=ZyS-3n|X+YfeS4NuV2cRx at _`j%LbS1#Ih-wF+gr3|q at YBMz9w8&BZaiRh*@{2VI
z!1*5r^>5eue{}?Kx4(Hb;8-`oOF&=Efj9(Sk&>sb^v4PO%O5O$6zmq%XZ~>wZ5W?1
zJ)fz{i7`I4s6`{UvEkqDOc+!;20)+Svpq0>SX{yT8qSkjI=SGiVUWP7iQ@*bQhHG}
zHPdzm(@w!&UF3f|*KP1CTN7i9o`-cO14p2LPkj*J4wTaCcgG3N8_9U<!^{9yX%l04
z8DjWC4X4ld#B0#XjrjM3_t1#(dl`;rY#Kow5%zD3!~*{aHy><o-2Kqy0M+pfX~{<g
z;(si*95mEW28Ii2Uf#nqyF6k><06NeaK-k`TmHE2 at eAeKW&TL+g7|UKnKB$I4F3|b
zQy6y0umJhil$nM3v4s`uZ-WAzg>mokMd$lRtgsV=d+bE<!K(%C8jvISuhyW)pj`JJ
z%`Y{3v*i(R at o0<UQ6VA2edm;5Ybte`9RWRD!hm;C$sH?%^jA;<mqPj%XY_+cyA~E^
zr^h^k3!bo3S_a*J(nH;An%!F99_~d~kp<dG at ocpR9hH0dAMXe?51V0X7@$V at t1{pq
zpCNT!JE1HOmq`an_&=@&=~rN2hLlU(RFJ@=DjtTL89`CR%f`F(dvN%KpX{`h2f62r
zY#pH-Sb=o<&Vfjf-|eZGdY@)4 at Osu(-pw26q`HF6+g<H(Q*{D|tS-44K&pU0qWNb&
z(Cmb#cWl8koBTCrPvV`kjN;9Qa4D{V1=X>To4}~PSKv_gD@!YwSTwawOk!q at i9F;7
zI=ElJ&ROt;`O;KKnF#zu-bt+e1%cf!Tdd4{QdA at 2@7~l!Q#H?>>Rar20H_9&*D_n}
zHdabKA_7i;!hH^cEgSxgMId6mtrwZa?^zy$+6>6Zrh_WCdW$YtRy)bOYN^<7>YIz%
z2ud!07%?#9Kc8W3{UzmJlL=Dwf{jDUHo`*E8Bbv+2=jzU5RzR at VMd|(yG3F=`;RF*
z(F;h<M*lh}d15I9eAurtP8A*JSyDVwQVseUy6Q#^uw&K3v`V|B<k^W}=L!Emjhwj{
zpPg|vrzdBpGq0G;7lIskN=AF$b_-*qs+jqoeLE`=9bazd-i`*9P<?AVNx9if(Kij%
ziHmXpwQvrD*J+G|n at L!1=QHp*m{Gm9RteAqTx0 at IG7Vaw;Tn(TtY~0Is|%$a`2QI;
z;J(%@@i_7wyOK%G_ItKp!2h2B3O0Tm(ocA*&ER!OV`0K|1bJcz<qmh#g9B9~E?CfL
z^EC=M`{u613WLv4qnxhxFt3GR`-wDIxJQt;y^;6I{XqK(k3;Ww(vcj&A120Zh834g
z(W&q<TY_kA{-8aTSy_4_;9|jYAxfYR6f#(m><rEVZIOw<B2=!O`W(f;K6dx;>ss8w
zBDC~96uBO2r(0U_5^J}O>Ik$6obsZ at 20p`C%NMm-rNHz%1cY4hTnyg++-G>308$3t
z9zH~HlmdeWsUbNkJJ#+1l?q{9bGX5wF!TckZ^O8NE~sY=7gDM31)yME&wH<OOeGdX
zMb2u(V6(`rTaF4&MZnxbp5kI#X&tlL6;6F_^rq+ou&%(qM&N6gf)1^f)AOB`V*`Pt
zSrtbY_#u9&M at SmZdYPtbk|^O`=vsJd0v^hg^e53zBUO9gG9E=4RKmJM#wvzZ1h)@#
zw%Ur*2Iozs?RAs__SKL)Vy7@(ik}<4`DVnCBvR+DfH&l>iCmX;ylBJ77P$`VWgp0a
zUBvY^aH<>A*rPp!P`WB>%uTBG&Ol7cyWAbl(=(vSlUR#e*XQjIcogu)pc$$Wi_K^n
z-gXb)K4q7n*<O7VDc65~ERB|_7esH+aSjbrP1u^uMD*D=Dl$N?E3tH>{u6t+n8e91
zgcFGHvR^0?_+&<?l|)-GbC_nzRd-cTso2kUX-H3{HhWo*=1sDif)jP5(V~E2R-<SP
zMG at fALrjo1B{={3x6vP?YlQ%u at Gl4G)IjbJdgynnT&c2)&DHP%_1U|Vm<IKODa`!m
z7{#l14UzAU(m-*ne=d)&C-)GMc-#*(x at G{z!~gbj(h78Df(M(1Tdc4#G#d}K;q+4_
zW;qr1NY at H-p?;0yJ8cBY8t%#f*&sXQ5jgL01hiSow?M|GX3qJ;sP>kl{v6L at a`RX+
z%s3a>_oZhzu~P&`SD!vm2&fCd%|;W<5deymhU>R?+4gG(uVv0}I4N#?8od2;0n)dt
zDs?}mFrz?xz7fM8n|=V0^i19*-5QvsZv?&P{h- at j1au0NhJlcLX0NEM5o-^y(S1-;
zVYvi-Er7%uxY5ap4gb2f3nU+F>HVYJEuq^%5Jkf+F$KkDctXIj2ELuTE1!nm_*PJH
zhROUo;F3L%<NM;xpQo7z-T>l=_AhKs<JOVwE}NP~p{Lw=Wm8iwdsmNi`m=)e*m%15
z=98zm>-B*ksdPy-hT>VIU0 at WhuuwmMV>0@;I;Dc;#<>g{`s5P55}2xmTV9F?2)R7*
zsvp4B%_;)~Ed{wDQ|s38rctl{9|_`+gPJPnSeVGP;TRP-NaBYS<cQ!tV8Ni@<`v|&
zFdqym&YeTBEIJM%yHrlF3tv`jnr_5CI$y0sKooJ5*GtWcjfmNYb{u|$?E^tLndLfJ
zk>?QZ>b&RXMl>Ho30zSwOMv}kKf|Km1C7we`b2Dk+jZN?v3r=2Jp<K{v?#U~=bzr3
zH*EMNNCwydIuXP`;0?<I$Z#)CXjv&J3*&Z(G`k&2C8T_8s`iZ?X*%}(Jv&Gjymq(u
z^Qk8|6b&!hOD=+U4m0G%9=10W9aRU&_IzbUgMV}|oq~ZocL%Ls3{EBxcDlWpJS5=K
zuw?=u0Bu43#g-;1^0rV6vNFqAiW-QDnn~uY2Jr!GmV)Sw`Z3fe+sYkinCKUKgUSJ1
zKu1d>6I};trP!e^h#y!SlMH$n%A6RA3?6Vz(^1}gX_^%=18Yiq6951L^D;qpS+iw@
zV&@`<-jx3Zh1|t?8W_r^gAg4+;*li)d}9HpPQhU-&2*K{1k(3$1aDRxYvc_F-2)SV
z_nJZiDIh$`x1Oj`7nXOMo9y0x16N%v>0uQ~>-8BLb5m6j{)f%%xwkV%Hp5gcIXHZy
z*&i<ldgq6?rY_<G=xhyN(>u2NfhmIQ^y~x`@t(Dv!^Y(&*ZEa*xQ+F`%pE^(Hot&4
z71DWtv*HG7j|y-l0#~bA0lL at qtYS-h3taY-<KkjX^!Zf<4oVZzE)|XapYlgUkAw4&
z1nu&Im#si7zyVRtYDl_duZeNK&)PQ(yZbF#hGa^4#moJ2MALrxA5LTND at _w&u66;`
zb_s6S?dBH*4*a5e1zWKd+Ri*#+0vk6M|{8R;3D^ON#+);^5V at Tw>};)w3^0bYvHn6
zaM`oyIvqm!I&9Y%sQphV$@bWUtYcNTiYUR>7&}%quC<8h5>$zT at 6DEj&3RXwaYfYC
zSihN=NZ(B5NGY+8YziT?fH4B at EG%mUDk4wR7BhM%pq0*PJ9p_x90yFCPZs}r>~T<^
z{BDwZOtNQj@@TbGK at 5I6&pWmf<Fl7=k|sG~m32e4&<{wWUQq`IzfGXiQ?F8$b$o+`
zlq<*aMJ(-r0Ubl7T0H~*Twy%PgIU$>147*6uwDv?5F?lJzuLO;xTemutF2at+IG~c
zjfhyFP^92!oCpHqR0$#oMFeC?r~(N}Kv|LyBG5Wo1r-cS*g-|bvV at udk+5~9)r2LX
zsDJ^2Ry1J=M7Bgg^n30lg8fGRl9=Cn at 4G+GdCoatFi!kp-B23-54WKQO<@(%+1lSS
z#Uo)AX1yxs=3XE}dBx7ZCmJzX5#UlindB2!%=?LyQD7PKY7n!NT+>JMQd<kv9ugVw
zWzwlQ4W}76QpoVs&UNyxG&p(fy)p@@yDgM2&_{;Zprm=W$V+hOnj%S7IZ+oPW4hq%
zw&dtJCATCJXoS}OSl6|H!y`8>eVrNC(Z+A6Hxl}r;raqQzTOuu>Ja+tDj&~|7ifxk
zS)AX*jU4}M;A9!I75aFQmQc1UOjT8^40V+EK6Yz6l^u=j|G7K3)A{dFMyXjNCA|9#
zqeNzWL#Wl-g at r7Tg3|Oh$O6PJyAGv``7QT=2gx;kd|8Z^ca?W|g^i2L2gjnfe|${d
z<C#1ZT-Di+lUT-^ad>Z)d0DCk{U(t-z<7Dg{$_a&I~KqY2;LbPp|Wt}uC{|;V4F*$
z_NinNe?Fy`L3=tPm`=6RoB;v_q`fw<v;im at TMKte^9kCed;Ou<kO+K7W@)LrC7g$5
z3MeD`Xtr^0k|(Dd{R~;`o-C><dDn*yA>m0KTWoi#m1^G5DbCAR5IQkR5W&_XbB2Q~
znolaU^_hW%4wo at 7HViLxIGA<nm9xBW#Z6 at E30DsnABI!6*306?O51qm2M=Rs_Xcf=
zh%2v+<H-W7B}Z=DjlHWlcQQrnn<TCMcd+fBu;h{WniDKlLh(Hmgc6>7FFpN?HNv)7
zf-Hh8dF<V3KM{*6 at W_*2Y%AlM#l5J0I=%;4hc-Xo0De5$&z_-GnLl54 at Gm^*Eol-K
z|IOWiu%5SOd_VoM^T&hzwgaoKh-lkXPF2rO$fv~{_EgP`=|S``*UYJbi`==5+Zrs*
z4V`VQ_+{@`$8X*!iL4E}Ii!&JK+sWDCXjHB*X4%h5!x=PT?+Kkoii8NTMXct@=UQP
z#R#-?p2klZ_cO&xCY7DW*-+TcSkb0=%F*6=bLkH3G%{)2&q_D+dPH3ePAna{BU91w
zxDsqBtp#7B>FKAk^H|iol!`(O6T*cg<AA0Sg$MdfSC%*{Xy0x$yc{QlEF<17_vgHb
z3qN3gIx at L6S@R<$zl-ZQ7aD>S$}EyRE8^p7KZ9dh8}63ayWh~{_L=0U>hL3fe3c7q
zi8RV8l!)9E326{iiy&@8rv+it at B>p%E&w3M;lx34+=VO%#WIbT8&J_S9sLct6SPU_
z_&u)UcJy3>|K5!&3L1aYga60E2N at N}d(CI8=##==oDlvea?~JL!P?nJsJ!fdQ*cm-
zAYVh?7AZ)aKSjWerYvqW0_?`XU`MLBPSqk+-EU}Zt at jjOw=jcpfjlH|oaX=CW-j#N
zya-fNhF2llxLf}=B8Lybore0j<4yeCiG9R3yJ$mJzA3u1uX{r#dziy at vE>_+VN=ZI
z{40;amX2*}FigI%anJKg^1J1TCBUgA`=)e$8RH?%m7Np4i(~*OJNt&1 at xXQ^Gn*pW
z at NR=3bqk@<ju0Ric^4B&;ZCVSS0-FYS}dj=xuo+w=-1wT*yn+fuA*x^{%f5OJT9L9
zPl4TL4y>FoTmQEZ+IdmY^N2I^)rIRGmiAiY8ip3CLNK<-m}%C!%<KD>BO(tZOMx+|
zJL`@xdQtf4zHi2Aq#T0aXk8t8i+<(L0f#rgF>e+$#V-0aQv3S?fb~}fW4Z-A3t1z`
ziIzY=^#9=qZ^kYp{z0?z-KkfoiM?%oo~qwe!_1i{*yZTXgP26E8M at Xvls!Fran?BJ
zWicfzp^Ke4Y-?eVlQkTu{xZ_p2aTnWCFF0MQ&Q!C`!NoZ)|&a+gJD^A;A(gcWLb at q
zpo+P9iaDbS&=6-dY7wp~e-G}*u1v8D at Wv>fXSa3l_hoq?=^?zkiAc_R67(jiD$Y}7
zn6uk;p)`?JSKjr>y1D+#8)a@}d#?M}jmE#!>xPn>pKZRnK~^6@^V2p1?29=^f?k}+
z_(jsz99H8`g1zdCSqvmtgyFSNf?R{xEsJr){Wt at v+hdLhguy$|sjVA|<W53L(h^{z
zqT3PXiU{>f4%Zjkk|gNBcS^S}FpsvRzAf`<vCah+lK<yWIYFibnd@(KKh(wOf4u1B
zM{_fjh6ADfj)z-bq2&#<`}YkHN{z<=M21NGuqX}a1K-Zm<iVr at boScvx#_*Rf1;;G
zEilU1GxN`#if<4;Tg}Zf*YNlS-d0UYVShL?z>9|f4`{nwtKfkYRYE`OOr1AQvjja<
zkeAwh5LdG{ihV*P-zVal|C>3MowY{OPmT9iXeu2(K({6`epfc-IABwBfbs?mdh@@v
z*x0#0e#9K<-6bo#3ji^i&6e^KTuXTv7QYFI^xgwLzB2l?IS>Gm1w4Po2JW1KeP<3z
zuntN^i?r|xz<G$kN=x?<D@&9*Qlo5bbCCU1AI3QZ7?zK~ouGcp`s$FT;lYFjZ+(2R
zSVGFlyGm0{8WMhJG|_f+d*cE*;_;@#Mk}?W$B=2LeW7#nfSlw=z+a<yLLV~%-VTau
zpvwe76tvTacIxf$0e1ni#%?nLkyl=MRQ^cPR~^!M)b8u~@7AVMM#?G~XP1;cf;8oA
zVID9JP*a3RH<ZO!x8J{G@)Hw at 9hzD|Y18p%Pq$`pv^4FWh>^ev)zLB#D6fF!Kx&|P
z1}geh81MDNPPBMZvdQLqQlWTc3qViHyoigQB%N=$2$SJ*{hu5I7xYk+dUh5^aV(MJ
zz(5~^Ro at tiF&J}}_Jj=dOdshR;95o6U{lxI3q{Bl1+9d#>U8RXm5kKC&;pS`F)+V|
z!I&8vL^wz{T++8$ufVX{Tb}LUakFLT`bVSolPVF=2cCkoBI*l_q~W^!O~In)y3=4V
zuItuy>W0?DublCS-WfoZvG6vVRW1dXmB4vIS2Ch at Gl21jYv#PX{^WEEh&Iqlp=ru%
zipRzWw at F9U)$#g#4ZY|Ly}$vEP*~+~HGK#efgi8nw~^M-cA=rR1(Eze<8db*A2)pk
zJ_+d&CDc((eVIbPG80d%>5EQM|7)+jX|{~GT!t;(_z5=J=WLnaO`FhD(x at j<wXOIM
zE4C|VfFEH)Q1k_>{q1^@X{%=3P#hrOTT{e_SFNY5r|&cY)In88SHvVvG?UJ~$er!-
z at _6K_->MuUgvVh+3Os)glfM+SnxL8F*dHAYCUi_)4Mk#OGW{x%LP|=fB<7mrv{7-q
zAtL at ncZg#XWd>|Gaxc^cbotJV_fKwCoSK{>fYPCf&j#$3Yq}*xY|CJLo6&|1iY&K(
z3E6>FexWcy6eDe^@bmDwi7&sc$<{MJ?r<$#rs;pZH`z3jDB0DJ#r`!*f5|r00r{!R
z_DDPW8DbMErmi>$%ZwW_h7>EY*7bd;kH?V$#t8!zEGQ(01rgk#QUKzDb6i8DO3RI)
zw!B0carER<NJ}jqM68Xa+)Srbg6Mn3LqUJOWS;{7K$PSt1UR0$McH+uIXHuY7bGSL
zrX;zk$2*@YXXq1MOj){vtib+REnDo|>_%g at cl=j^@hEx96##RzLw#{PN7^dIoYDve
zjw7I*=uk6>e^_<^LJ<(5V!u6 at cOa@_;w~gcgt9>TFurE`710#1Gyolqdbk<K0GTi_
zu;pS1%fb<ZkoVw2)@&;6^pz|{>L=*Plup$C+#J03y2JVNeqZMJ`wGW~*0?B;+s6Ib
zpKAoSzF&O+R^B9gr)2{i<VfWN7y;eJnA79HiA}sL{^4Ze`C#q31rIwd73A~k49aVr
zqVpm`5O$~2uybdNR3K`5ai&C2yixpnw$+yQzOL@%wr?t!-Bv?&e$|)SZgaZmb}x{1
z$9e!}R9~!QK?p^CUR`4maW0(IPQ}+GnHl6 at vQDK^h~agAcY&A3?DSgnV#!`fnz$u9
zg*9nt7Q!HD_>r-VAZ28yw{xvxT1$qmdU7s_CR2cAtA#j<^34|A at jYSywn8UZiBtK3
zl3HSsO_b89!ih2&Zpg|`@4QIi>?~*>Dvp at Vi$x!`X2Tp*>J03`FPB1{vqfFp=frzz
zDLA2aI0GCjJq2%bjjMq8(C}YicZOp9P28gwyvQFvyj2red1JF#bBXa~3{_YfRah3K
z8Scl|0KnNTT0Yj^c_GFKEcZS|!%}bBZHh$4i^hJ$;c)f(h~*$38N}BJJbsC(3p8Ht
z6JB at A;WT(sK@=3|o))wtMV!Pgo=Xx)nsMOTwFYl(7>jXBULrk&l)4dJb)sws*{2dz
zn!2p|cHRXEO-QKgai+D%RRLA6^K1(ox(@?Zo;ZYH*V>jv@@6~TCBNSG4 at YsC&6eO1
zgP_{N-xDd*5}Ur5a1PQ>)Yc6oAdc;w%`|GxWaov*6<|_T_(NRdvReVp&eXw|BbXKB
zWU{=obMUaK)?N at 1b?f at Jy=v|oY}A!l=JVF=Sf(`_EPnF!6 at P5~(TeY0<_GGD^XU_>
zL`r5>)~9Ad_t5l*lNZ5JPH7sjiC>>gX4XWFJWv9YUr61q8xo~U&TZIVeoe`!>DwCh
z`jKqZhg|<=5VTZF&rtwOHXEYZcRnoUEM^ZUcGrc;+>R8UM4S(s<6QmBbLi8YozsgW
zNr3H?Ta1VEM+>pZHBM9Qgg0^A<;CuZ*&cU_A<bn-S_F~UvP*j0;4C<co4ET+2vuZZ
zzjYCU at o2(2?@ab@<#2N8utJ#G18vyuNRzSOj!(`eg<)$x8g>ggT1ED(B)3Zo^e1&-
zr1s!|<jPuFQec#mzVuEBcK{2Qfj65a4sK0q`^Qg|&(gpLMM!5<dPLuxjJ{bCP(<0=
z`@kbe<tANc)gTL^Pll6c4-=1t`;Sh!H6Zq4f#a1R_SCt+Lsa{r<RG0u_j)XeH_oi;
zn~AInl9xK(H!!bC-)Mm*!v6dUdfExhp97Ctvs#@iJk;g|`cz~J;l;M<4nF|;?S{{!
zhccH-{YLY0@>ZB&NxQn3hQ1bo4enkCGFJ`U&n(Mqoj9663(3!Wuqnbn&^k-=RrlDs
zYBh<eA9S|5hWhf;`6l&87bkvhnLfH&8s?Y2Rk!_vs1vn#nx8|Ue|f%iW&MTc-dyQy
z0HG=<(8vvIPAG~0A{Jl at jNKC&!O*LUD0#i9c1$>CeJbvu>B5F#uip{v*?L*oa;H%L
zBQIKEne*@Cz|b)xMXQwTnxhv-iu2uE(+(h&e<aOBjMiK+CU%3dtl|CAt at G(J(LgrI
zQYsZ#+cPBamr?g5<PV`nGjHaMW;~dld9zcHx*+QbF8yoY%=B2srz&mf)~?+dThMIS
zeW}CZPvB7GD&2V*)+Uf7pF)!4g^wo>KJR(82Nyo55HjCui->GjFiAu_FOcnxMzw at n
z=q~=NcjA?}lj#)Nm>R4T at _zuE#zkO<@Lh at 4Q}wmJY2F8*phQKKpwmR9nse@=P{9WQ
zDEvTi`MqC265jWI0TR0R`;*Swj}|?9^I^)7li3!gRr>HZFBUo4yX at tB`~B(v0~l`Q
AFaQ7m

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-espec.ded b/clang/docs/ASTsForTemplatesImages/ct-espec.ded
new file mode 100644
index 000000000000000..30afcaa564030b9
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-espec.ded
@@ -0,0 +1,1124 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 50,
+        "y": 70
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 90,
+        "w": 240
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 60,
+        "w": 280
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 10,
+        "y": 565
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 33",
+      "size": {
+        "h": 50,
+        "w": 205
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 50
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 480,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 50,
+        "y": 205
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 18",
+      "size": {
+        "h": 210,
+        "w": 270
+      }
+    },
+    {
+      "loc": {
+        "x": 50,
+        "y": 435
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DefinitionData 36",
+      "size": {
+        "h": 20,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 150
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 21",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 235
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 22",
+      "size": {
+        "h": 60,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 305
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 23",
+      "size": {
+        "h": 50,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 615,
+        "y": 305
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 24",
+      "size": {
+        "h": 50,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 615,
+        "y": 235
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 25",
+      "size": {
+        "h": 50,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 615,
+        "y": 165
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 26",
+      "size": {
+        "h": 45,
+        "w": 325
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 790,
+        "y": 305
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 37",
+      "size": {
+        "h": 110,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 355,
+        "y": 365
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 27",
+      "size": {
+        "h": 50,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 615,
+        "y": 365
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 28",
+      "size": {
+        "h": 50,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 615,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 29",
+      "size": {
+        "h": 50,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 615,
+        "y": 515
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 30",
+      "size": {
+        "h": 80,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "fillColor": "Type",
+      "loc": {
+        "x": 380,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 38",
+      "size": {
+        "h": 90,
+        "w": 215
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S;\n\ntemplate <>\nstruct S<int>\n{\n  int data;\n  S *ptr1;\n  S<int> *ptr2;\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 830,
+        "y": 30
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 170,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 190,
+        "y": 435
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 19",
+      "size": {
+        "h": 60,
+        "w": 185
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 20": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:5:8",
+      "LocStart": "in/src/ct-espec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 35"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 21": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:8:8",
+      "LocStart": "in/src/ct-espec.cc:8:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 22"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 21"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 21"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 31": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 32": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 33"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-espec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-espec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-espec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 33": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 38"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 18": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-espec.cc:9:1, line:13:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 36"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TAW->Ty": {"ptr": "TemplateSpecializationType 19"},
+      "EI->TemplateKeywordLoc": "in/src/ct-espec.cc:7:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"S<int>\", <in/src/ct-espec.cc:8:8, col:13>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 21"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 27"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:8:8",
+      "LocStart": "in/src/ct-espec.cc:8:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "2201533",
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 20"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "needsImplicitDestructor()": true,
+      "q->NumTemplParamLists": "1",
+      "q->QualifierLoc": "AbsentNNSLoc",
+      "q->TemplParamLists[0]": "\"template <>\""
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 36": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 25": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "ElaboratedType 29": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 30"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FieldDecl 22": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 20"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-espec.cc:10:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:10:7",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 23"},
+      "TInfo": "Builtin(\"int\", <in/src/ct-espec.cc:10:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 23": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 24"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-espec.cc:11:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:11:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 27"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-espec.cc:11:3, col:5>, Elaborated(\"S<int>\", <in/src/ct-espec.cc:11:3>, Record(\"struct S<int>\", <in/src/ct-espec.cc:11:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 27": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 28"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-espec.cc:12:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:12:11",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-espec.cc:12:3, col:10>, Elaborated(\"S<int>\", <in/src/ct-espec.cc:12:3, col:8>, TemplateSpecialization(\"S<int>\", <in/src/ct-espec.cc:12:3, col:8>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "InjectedClassNameType 35": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 38"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "PointerType 24": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 37"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 25"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 28": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 37"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 29"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 37": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "syntax": "\"struct S<int> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 32"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 26": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 31"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "TemplateSpecializationType 19": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 20"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 30": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 20"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 26"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 38": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 39"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 39"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 39": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 34"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 39"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-espec.cc:4:17",
+      "LocStart": "in/src/ct-espec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 34"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 34": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "specKind",
+      "Name",
+      "redecls_size()",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "EI->TAW->Ty"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-espec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "Param[0]",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Cmn",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 6},
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 5},
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 155,
+        "y": 185
+      }],
+      "end": {"entityRef": 4},
+      "label": "ST.CTD",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "DeclType",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "PointeeType",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 800,
+        "y": 215
+      }],
+      "end": {"entityRef": 12},
+      "label": "NamedType",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 625,
+          "y": 125
+        },
+        {
+          "x": 315,
+          "y": 190
+        }
+      ],
+      "end": {"entityRef": 5},
+      "label": "decl",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 710,
+        "y": 215
+      }],
+      "end": {"entityRef": 12},
+      "label": "Canon",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DeclType",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 16},
+      "label": "PointeeType",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "Canon",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [{
+        "x": 935,
+        "y": 300
+      }],
+      "end": {"entityRef": 12},
+      "label": "Canon",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 17},
+      "label": "NamedType",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 935,
+        "y": 285
+      }],
+      "end": {"entityRef": 12},
+      "label": "Canon",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 515,
+        "y": 525
+      }],
+      "end": {"entityRef": 4},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 17}
+    },
+    {
+      "controlPts": [{
+        "x": 175,
+        "y": 540
+      }],
+      "end": {"entityRef": 5},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "InjectedClassNameType",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 905,
+        "y": 260
+      }],
+      "end": {"entityRef": 12},
+      "label": "PointeeType",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 430,
+        "y": 525
+      }],
+      "end": {"entityRef": 4},
+      "label": "TemplateDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "CTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "EI->TAW->Ty",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 20}
+    },
+    {
+      "controlPts": [{
+        "x": 600,
+        "y": 200
+      }],
+      "end": {"entityRef": 12},
+      "label": "Canon",
+      "start": {"entityRef": 20}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 655,
+    "w": 954
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-espec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-espec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..1820dfedc4ae56f0c825dce0fc7dd012ab5623ba
GIT binary patch
literal 29230
zcma&NcOcb!{6DUxq_RR1%19B4B3pHgjFg;nG7b$K8AowAI7Yi;M;($?$KK at _IaY&g
zr^7vj4n=Y@&dEF(hu`b1dq3aL=f7Y7#CyEnukjp@$K&}Faq)ub?w$L0^6>ENK5quI
z;o;dr;o;dFw}Tg4IoDX(%)=vaG1&GB_MDHmw<`wA!xNY~?TGgoJT1JgbnjMp7QdEf
zYofEm-dkxudfi|Axn99IcX?}M)9Hb>1Z2Y87fk(1=aXkv=d+G!-_+zkz at iYE4r!-0
z$9?>6HtetEi;2_ANIlI at 5=d}2-mk+atTtm-Bv2pH$Gw#!P(O)Ve)oF+a-D(uDVhDj
zMy(6s)17kYpip6oOUQ3?ALjQlwoBqFeol~JQZLf1X?HAC at z8dcpPnX?W;fW at _vD->
zw~+fk`&_$sVeb2 at 85Ax-epVI9=X>zNiMl;^ks~!Tf=5P><9Ew%e;BwL*=dw<x8pFb
z_4KW4{yo_mAKwqEC!A;EHLm0uY%>?`*s-fz=pH at mEVEbagHJ<RyxqQPOCClM&$1<t
z+e*Z?*WYVgr}OG;Z!dBaEK}Xz|EVfl#hqTSD_Cv6a`L%*aqPmCEt0!TzF!yOwJ#)&
z^^AmQs<ffsSE`)R`Ns at L9uH7U%gxcrppr`UhGiax?R!6(d8;z=RH}{J#E~LX<_(Ix
z26d*+Fs+e)%i$8IF79sC5{yQ!Sl8Jac+$fyzGK^@(`e at p6w~9k?5Vo1XnT=1x at +?G
zm23O$hHAt{>&i-}qeb1k-}Ic2=*!uAD0)r9tQJ0aeOvt);ga)!!;+Z3;QLeLXR&W4
zZ4STMenI*>;YEL<+NTg-1zUT|P`u83TKn<MdvEs#AJa~iG_=*0Q{1t|=jWfchY}T4
z$9 at ibUDEdQ&{)TCuPEe;)2FpE-p$)r?`ZzE&*z^#w*xla8CVwNdAU-?^K#Kfo#!+D
z63=H$A7ken&*yMip1?@@6%!P_<%aA}wa%%wU_*CTL-{+$2zm6;HzCtsaxG!nH!cWR
zJ!*U|Vi3LP_UL_{TZ6v9_0x<lVee)B7jut{+=I5HZ!v7h*#3ey+(Wf7w&7b`{$h`M
z#I8lHY?6Rw;P2lS at 2{^}gc#O#?#Sx%5Q}y0xh2|3(7b-Tia<oMa>|HYBdt@*HID`r
z>@|E<Q+V&`Um5Is#M;&;KP#;GvX?WaoYI%ASGKh=nv7p$<M5rls{+a2I_l=q`n9B7
z<!vNF$?w<s%HPd|-u>r+)cti4Gec)Q-_h<D)4c17pQZ70ldz`(LlY-?JS0)^V?8Z=
zKNH?N96$cqLAL$tli6~{p5IqBDQO)OJNP0K-0coNL|}q?d^iKT;c%A^%zeARyu2G<
zVq{=vY~g%3R<&qPgt5V4r;E0Pe%2|T0+ma9(2Xix0<gT at a_5qF!)HU^rFXcIX+n52
zzOmH{PmN`(BHbj{`LaHokWfMX-g0spr%bih!^~NQ2oG<M*n-K<m?V2D>hxVp-<6!K
zxaI0mn+ji;xVVwq^E%mVVy5G^H(COOLf4wTHkUqop5C&4E>Plvn$ZA(pIs|IB-5NJ
z=$LYqB&UCA3!OOH{Os^O)M)hnd86<x?*g}Uu{};)Z5yomY)~d}3wy^LKD70Z_C9ZS
zuivp>a+xziZZ~Y75pw)XLeQ~}6I1VxY(3Cm at ua8oBgg66PXSu_`Hmf4Zo3fmaUutT
zE?JH%YsTEZKVPCJd at b?hr!-;v=Ix3-{DaBsO>0-L20Pw7(H!ehaO0NDV{<>X9U>}+
z`SyQ1arWeuX6o&eD?y31ywWXR;hK_H?n`^7AHMJ`&wZD<NSK3)VoK|N9gC%VX_nMW
z0g5NZzR9Zi1_a+)EEKt)KZz(E^j at q9yl9}iZ&%*8tt#WilXv5-WPQmGJ-Bz2v8RK=
zH+30qB1>#XZ#_Bu`OLS?54{^2o|kpv56EoVdhfvIKK`F(eEYR`W>%zL3yb?oYHxT$
z)0B`K<*D1JdEn%QXFKM!`6WIWqI at 4(-+tD^G*mwBQ+_{`moG at 7lP}Nzyt|SA)G<{Q
z`p2KOUkOHAB~9?9d-X>oyx6G^|1pGJCyu`E!Y;MZngzd}zFN2Mtc>yZku7$P353`@
zX8eWnUwn(YclSMj-7RXD#Uc%~>vo&%b;et;!es6XroT0=JrScfbPSm!=wu)?LRdo{
z5~wywJaI8dLm+gA+L?L1k*w(fiE3G)Pw!ZUTOJhfeQy=aM{bG_jysoSnQ$BJq8_8v
z(wHxO-||aiQ}}+ at R1fkk1%&H`!=9hp+~S-BZCoSPueJO`YS|k;muT_jOgW)Zo^nW4
zfN~+{Dgo<sQMue%zROX}x}u}(5+;>@I7;LddDr0Brha#!XH$G5X?<O1;P5Bc!qZG%
z({*T}3vba$%$)s4Z0}b`h-gQtb(U@}jhyV<uKnOhz;(XpBS)tBP*L)RccaLPrNh$R
z|J*f<d;I>ZqPaxHc9W-<(~HD3Q3n?_|9m7DGw??hmTrt02kxY<2vz1-9F^qT?kiw>
zvF)B-_Gr at k)&Nu0Io^G$F|&_^L{&^tH>Z%o%8BDSx8f2 at EX#6r!iUh?h2Cx!{jekK
zjg*`9=RRK*3BQt`yhb8jN0MHo^v}Z)7OX4tAH^PwZoW-E7_{_YAudU8bNi=Y;gm^%
z=tn>Cn<VxX-;EboPyc<)uD&JVT}hz8?m3xQ=LY at SkEp1i9-YXhg9!BW;%|-B@%kOM
zvwJ0FPALRivwYsOpLGpncbVhg at qGN__v5|l{v)~lTjpI`FV($jJ-O+c^SP9V21iD`
z&*^Tm_;mML*w(=Fw#rduKT at pcgmNc3io5)p$}aB++L3l@?c1>m2es<nf&Ir+J|q+{
z;utyoCy&{GKI;>Bp>+0*%TRRXw6l5Om$H=n6*%A1+{Li$qKg4yEW+YEx9Lzb>DZYd
zkCz1Xgpf_+ciBSYI$D1mMcz$^we8l$j5$pASg&N14ep38A2Rlpc=s56TDta~yG-lr
zpyteX_DhZWF at IvKIR!6VU2FO*-|9_EWWCz{;O*@fjxFZ#qBqvwZ`Mss<i$1L3NhQF
z=k6dgzb|sP+KtaMt*v{*ZSFZ*?^kiz{JCoN;0J51k4Jo2{gu~$&bEFXP|tm?_6gbB
z at V4ig&DV%u*~HM`TLnGZ7^6LU>E8t|)$cj at lW)o`9!KU2eJ*-%Z2lvyiH~2h^3wg3
zm)`BVM1fj9qlx#@O<&}UaJ)Oc;5-Aag?IZ?i5VAPX~e8Qj5GZ{Yp_0bF7TWS_TxVC
z3jamUi(?%38y6IIxo%rr4Y_+e7t!rvXc*C;wIZ{&yyNjNrMA^)8nxC=Q>bN_N4Vae
zRg%E?9HHY(&)cTuSn<@ezwgivJUD!Uapb^`{M40O#LuRJANQGj*S at 9uiq9%wp)Ea?
zca3{w?3uyc&)bS)u01i+iIp9BD*3xH`uW at I$6uRej8yWDJpOWk?~7Aa<bm)I|EWy}
zwC4#Q;}vp^zB~)}f4h7{^N#4nWcuXh?!<+GJjq`2ub1IXM=CDTwhfv1{0SK74}8gQ
z_4xI$-}IJMSHDQi%vEIQ`0BpZ_b0?$8(w5iAKGTRLXq1U_~Ow&6qqWv;k;_~-F9U}
z`emc!qS6W8Yd<<ls&%i~wM#vYL8)!?HEkr7w~bQHMNgHUb at yXd7DW~2CHjv_Y_(J|
zYUIc4Xcm_~7i~Iv)Ll%{9dC5wPC{lR?Lc`ztyCTkb1#B2a%OwGyVBwLo2>4iHlxCf
zQSs5)r-~&7fj_>!IMLRzWYcj}Ma6#5w&Xcy+rYCKM@`pVIwY%W+6d#6iAc>R1<D0?
zcf+H*`4d0+?ic&g$D2|0^XzN6`K#|Lap_HUDrqo{FnHe+e&PYOf1cpgXiqxF)m=oe
zX=E3&`C<3%{F;~fHD8>v3S^MCOW`{B+_vZY^tW~I611|@j7Oc!s*_3Sp+1n)6fp69
z>v+ia@}IMXH4+zsxlba9k?+aJoX*}qa=d?K at c9(dt;~3nrM5Nq&xxwHBhlP$zBeA$
z`-dbtzrxItW7UqkeE$4F<qbXYDB8~Vaw^LG_E+<(*}@mDMY0fGyG6$*Qf6m$cXfz=
z&;H!%@!s#XNw77{=V%D^Jb81COtg*IXUxN|(|7F?&#qCgNjQa~3iGEo<q{n4Z|b`H
z`e&Biw-=AMB}t_P=$+IbJW;f2^e0?&?IZjPK5J*LkMP0Zy2cQJP0vCZA&jER{>2R2
ziU6yofo;+~_XHnZNE7B7_;z;lWY!{gOX(-WqCAU^j*Re(sryu9od1~+UuNFY$D4n_
zE}48^UcMNPsi<f(*F4urHp3ek!Y+lWdyID}2M|B*yz=uqqx&v7Cq<(%`uH}xBka at 4
z)jxYbJ}4;FQyS_-2(+l5_fcxRQR!`6wuZ35{%m at R9pI}UY%~#^q9+czwejjp!d>Lx
zy}jD5_14Kx60f&RhQfNR6iZM9x#WvUy-C0CT}c$rzvNh!|5?elNKZ%NNh$RU;$*i_
zlt~-IyJm at h_PF_^qnh27r|E`oNg5-^esvCMP at Z5tll&d>SNtdTj)~Q93X1%NqS`}S
zY6rK8I0pG0P&ioiXSVNRpyX5d@!!0Uo=jb;4dV#=h*c|R?}(=;1P|qqR4=#79({Xm
zA`^bRUGMCZfN4)PgTq>l;{tih+Sj$Pua!?0@`r5qV-wT!k#^q|q$*0SrkRhf#_YVJ
z{Zf3Vz~wft+h at dDA8!5b_I2KyV7ZI at Uh&ProP+y}BV6tDUs2xi20v8A6y3BEvU)RS
zem5)ItYAlsR@<biFYQw0XSQeW)R*@6e_T~x)4AM?@9W={gtUH!j?W5f7IBAfP!b4#
zZe}x+*gD0=f4b^__=lU6%-`i3UFlMIpR(pJaq<iQ;2({wDdOCSpvtu!$4rtq80BEe
zvp#nmgV2|0)pG}PtM<+(-m9N`H?*+z>Td4&4-bqR)*Bms(8#|TT_bnA at 8X?4ATlzG
z+t~&=e%1<qa=ze4W6Mq~7o31iNAPJZ9bYZnW~|M5v6^Y~=xo;`_uLd+kEWB4uD^(F
zrQftSyW=cxW=QY$X;Tz4o>JeJa3R0!^R7|59k!m7mY}{oxr1Vq#GR(<XA38GC>=ar
zG$H1CWai~%YL;y*JXAaJ>`yLY`HjLuZ`-6G(<YaySi8cDO0NIdzOwZ<fiI%7WwcHx
z^ISWea?wvVvt7{xdCRO-Szz{;z0wlr0qqAn^x5tsmyDklk}fy7mHm`@e_;=e`8nf8
zFD7v2THx&D=gP;5;u(9WUc`g&)bgcV;{e(hOlqFy3-g+19*^_?vEw^DB9=RpLL?k9
zZ-Fl$UcEYcLG=-KVe^9*v91M`UoKFZ4EA^4+PUx0t9(7~JHMZTnjVi!wm*i)tUoBJ
z%@Up=zZyQvb71JgLw4PjDZE=KKbB*dITZE#-KOy#9-iyT=V51T0|%xVR%J!CiEfiU
zc at BEh9gDCNJNpwns|0SV at Mnze6nOIUS&q>=jn{pP1FX~Qdv+x~SzB-h1f7ScmJr^*
z75d?hbtJ1{Z6QQa8ueJKNEf;!h$2~FH-R6%?Ix{+XR$KMopeP$kY{3@*2mZDs4m00
zDQw!RT>HNdy&~ZclZ5)C!WPY5%FRX9_bqp{%*(0ohK33xFinOfi9aqS$3&v(^AW1h
z#o8;_bp%Jha3};}Rjv4h_6r_?!7jtZp?glpD4FbxR=4 at O{-93F4CZEV?VSazPlJ+9
z+XjBVV;aSBeiLP at 9~-tfHK%Nk!l+ask~SuLpM?L_!6y%ma%bZ`9zj7yCW4U7NH_^y
zyn16}g#T_DZ7h-JAdoG<KS9*SfB%1;`2AdM2JD!jFQ at E)ii4*fcoBT>k5Bi$py>%$
z?Sw(8L?LhuCjO2eRs}B$md{JRy|HkD>KzN?D#c8>(X}-z=<8q#&mu8DB^Zg(Ce5Ay
zb1e&|rTnp&YVt_|np<EoQ<^9r;V9bp;LU`#J*g(lFp}`rX>&=1jh|DB7-RiU+`3 at 3
zp6XW^CuW6)bAUOj-L2>wSm&&-g#Y+{h%)lQ3M&x)esv|;i9SZYt>KGbY)=VghA7FF
zB=OKhNy;N1xI2FxrgY`Xjs)`wq7G4H!B|PmjgP>P>BlGy0{hqNtAfMOb58y<`O-dg
zo%x(oEA{*wyz0T^f`7tx9HjW at D-OSrM*5H$CEB<H8ZhyLl<=`hpY(%KqV4!*ih&K5
zs_Lk0jH at tnR-qL3{_ at g^my8tEI-vSBa8_UwntH6}Xn3FY(!|1*pxuEVPBr6N7KGng
zVB>OX$WsVaHJZxmLp{Iu?X?EJ*SO>BDiZ6u7fK&2yBpB at g4;6~nEvkhq1p)5-_D&s
zXBb%x?9^1D51Fndr>#w?>kWgdWEEWX&p&&roi^)6U<$WZEc7?5uaC2b`?}1p$tjf6
zyakh~{j;U2^sqXn2}YO{PW>8vfbk?X=BZtJ|BPFeL*>ad=H?rul`6QW))-qy5n0qc
z6{IuQAMah=bIP>Bwa?<4Dve8QNOzQOo$ALY-<CToNt|s7QExZJDt>Bp3Q-RCFBR)S
z!K!=*iv>~fRZUh)HC?TulP6>gX*UXHn at 6Qew9Nw}RBz=nD<9xYu$d!)kC|P^)M!?=
zk9F`ql at q>`pI$BJDCuOh1j=chC2C0(N(%dZe<aLcN3t%1krayI<G(v};885mz5}Gm
zV7 at 6?3eoquD8p>a<w9dlq)D{_%0Fm+VM at agXM0|{`b6H_H~WMbbQRytK7tI<@g6lI
zlNEA7I<$PWz~-~AITnfXEBSMm$lMIWmEX<<7tk4sC0CrN%sp!pb?q9I_y%@}3GOFv
z!H5J(f%5JRv&0~yfD*E<9b|$nEOc^Kpx~VR2qlvWzp=DVgE{-7O~_-VVOS9^b1k-y
zl5E#M;roM~ywF-sIdJq$T^Ze##J|e%`$-({DXpZ`wrdBK|0pY?j}4*avfDK1m2CH4
z!y4?8q<3_Z<gcWFEYVTgFBgZqCH79msx_BH#4+!d{?WG6(gr46Ylby8q+kjfA4=Xb
z at V}7GJY>|kAbgMlY?_kq`<<6i;)T1Aev@$izpIh_T1Hr7 at EZ?Jfr9A(?;WK4^@XL^
z%*d~z- at L`0g at pPn-c=wxx;z~sR6i|l;!&W;%9>+0DNxL@{KkC|fpN~+AczPFagfj`
zFwUt2i-1ieW!aInog1GPM)AOqFoLQP_90W4VJG2zeq#7`u&~3 at F04;A^yVQ7<c*WC
zRl}`i%N2PYCY8U~Sh at DicbJhoXxj)Sf{eH{g2rS*e7jexw~vkxO`+yp9VsQ0+m<pu
z98UE;Sx*o|T@|O*ncvBrtF~!DQVadVjj$1{TM?e+F3*{p at lh-qz9s_W(@!XYMr3hd
zxTacyDs6X+HTEvom}4dww-zqnWSU_pLet1UOp%3&2Nr_hb3C1>vo^Ore4F}78?UCz
z1_nZNT at F=S)`3<k{_YubacHI3DV4kGezO#s1dbLHIa&IdyB2ylG`_*KdGfsXSglF#
zQCW)IW@~JODs7vSJVjztOvqs+iU$3K at dM^&9}$L<U9{>s6Rd+miClJ3yerjgqNPlP
z at wf%E;7KM)2ATA26aHd~#VgdB(&IA2GeXmuk%Fjio+Ny)yG;etWW2|-F<&tvnPWdk
zAx-$Y*u!v7)h_4A43ep?u9~vV=wj7LQ}Mubrb(f6+_OC*C?OJmh!qxXjzS_tq=}6*
zn?bLmEHk>R0>!=Ui1xO6If|*u31n1>F!ZD#W2T at zowg8NA~LhNf7|acT1+|RtMXE3
z<$xvDn4tRGjn)ZFc?qBOaFk3P0 at iIYQbC!5Sz<Ri1{;V9-45T at Xw1pyc88sUaqgG#
zgHt8EZP*NUAKF52^3XS+yc at xa{hzxmQ4ozUG(L2`0 at +R@R}?x<eq*if=~%*)#43_3
z`6{!h_GrnA;kL2*8<LJQH(*%l_?ZChu%WjZB$Z4~;&>i$zE?-8BIg43u0N^fY_wcx
zYggrKORVz|N?5h%rGekQ!i>VM+l8*>9?RBWrIArA)j`i(nH`9TfUK2LkiDxE0QFO(
zpc#vT4q$r51lBmL%3p))aCUFqd1~U`Me|&fWgaJb16wrPziurGzjC<Dn^ZdOyXvyy
z6}z}Cw0Rlcu20*xD8z6Yu0XGwtYl6vJht!vRv>za0 at DhV3qQO=XcIxz6q`<4im6Si
z`$dg4r0k9 at NOfE6WG<t#Z!XL{UGfTWaH<RIzu{6j(cpLNRt$5kjoCkpW>*;W;Y$?;
zVb7V+F<D^wx0Nl_jxw>ziDaA2N*0r4-S%&~kOWrbXzs|Bw|-pp<`!n$37Gg>B-ZrD
zDP^)yyj&#+47`%Rp4TlEy?s?pdGS4M_jj12m~T;K!-_NIOo}L@=t;U%6j^~HH~u2t
zHR2e${KU(t5K_D2Aqs72z89A?sz|v&CplDvi5flvCMf|=V(&#|zXjupIbo5ZKQXjA
z%AwT$aSDO8&NT=xHvUQbl-E_ at SE6(jg(69!64O9<HOC>NIiE(+^IyS2f#;Pn-3m^W
z3Zkgf!YEQrUQ-v*SFihvY2~Y=WD^U-$p>T$eu}jSLk*{2eiq9PG^v`cwK*z>G{}@(
z!aqi1Gq9^gf(+$!U|;X%3RL3=td6-FFe72cHt|nplQ9}G;YA^9p1F^15ip&&^~unw
zt^*o!G2e^4{IwmnVHcZo=%E#{nEOM+a>c3{p#fR+F;r}ZS^lJ at cUs$m1N`G-=H?Xy
z%D~gLnzLrd-(JU?Yo8%k4Xrs&rkX(2w7(3$UT%Xeg!R4|FpRB#k-LCWqW+p&Xm6(W
zHORokTi~c6JC>O$&3}vk<p at m9NwgvjMHk#dgOl)0+Fn^(tqCk-tjw?giNE#?_B`}l
zMZX3G9 at F7yM{-aogfJm8_2U6F3`h5^{r+c$dyw)j#T<m!Hj`r2(qI$Zk0nN-<cCX<
zFX^u1$N!D57Fd~qI2H;lsUlswTYQ9Atg3rqA#?J;VG!*OQqE!-@{w=(l&fDG7s7_&
z{sY>U|Hf>}`MtMA5_Jr1>rFte&=!N9jVK{_DN-6rheI`(|91d6kR71$z;=M>4RXcE
z0pQ+;C~?3_gWL!ue$NSdoWGaMvBoe69{wG02d!9~!LUbxG8zmCq66 at e{JD=TE(B;v
z%Fu8dNEHecB_Py77!u@@jqCwX=uR5rJeFMQ9OM^XexQN6-NZodECe*cK-}j{>AI>+
z=3?Sg at ECy78<W$txIi_xF?~31S%8KiBTAqV at A#AOL>|-eb1e~=WGJ-j#t>e*{WxX6
zS>?aM6ew1|yj1W%G%nH7`lTO$i2{_aL*qIqlNSb at H*uvnUa4eG*_?rcG?;1b{=1QD
z3=derh at BG%b38m3l_{5QbBTS!4RN1tTGeO)P@^K`r6NM(KKVB~Q_WRCG6avle#}Jh
zd0{2gNrNH-RXfyZyH6gdFvpr!@&CPltCYFsMg-B{Pje{modGH^0#hc#81`tcOBnVl
z?CeMT>1QfK)Z$w(E$yg(abCg!l(YgxM*Q!V at gU)-#b_u9%R*~=H%&^p>90M at F)M6G
zXV53qX$rf+IfBgsaAuzPzxH2wBbftu4qh!4Wn><%mP7Hy1Z*#N at NA<6xqeDPB~77`
z9OthNT?IFcp#2G~0{dQ9C&SozGdaGcaO=&7%&wj5qLbvo01;@VP=;@ZaeTt78x#WT
zgzL!lShR(CoWbzqM=hQ8-rz;2lwV12>B!qyDf^5#%*U3s=l#;?xzAea&}mYI8KTz@
z{2JFB{NRiIT17CRSw*tUMEjGei!Q&+QtcB?mmMRI8aGF%4t9h^U_L7MDb5A~$N`K-
zy3R>IoV0S5CKY6&rJSche}#<v=P8U6>3y7H?G`HmP7v(O5NU9-W^roRU8cHj?G{@8
zWOp1pWqCw_@>GF>M4;*c!p{nKsdeJ>a51nJVlWp^>+-TZqN5?hEeF_QZ`_&zzI35_
z2(QxLWfnAFH&shu0Xj6YkY<53O$-W1%Q!-zD}3EJhIEpyY^hyxXQbDU1=?6J>9;V$
zDxKD;`jI)ySc=AE-OW)Wl%N5U0Na|*Oy?U$kp>GNIUc20?{y;S{)xtv(#L28U3CS8
z8dO1QCFQF<hvxB?Oof?d84OO$PWe at s&h>)Rg*Hx{VR`DOC;%83B*;nJtRsSlp?%>A
zqQw~W3 at mqe<$L7ZEnxb+g+eI|39t&!ow!I$;l!++a(f+zYOjsqa|3`=;!q!CFA!?l
zpt%3XE&sJI2;n)rK4z-2wG^{d=^Lh;G$^oT!>PcH6(d^RxhX`uJK)JB0GT)#hC~qb
zPC?GAKzUVfBNy7^w(KSK>&9YHT(8&gTXOr+SxwruJ5`MGEqOwWs&X?+Yy`#(8`r3%
z)Iu90bZO``#B<C*3IV?U4r!e9O_)KAU@`H<;~u8D4sTMSSh<-8AVKH at GQv=rYn}3n
zU=f(H$Nsw4zagytBG!TW at xN>(2I7!7m=ypcV8326hi0N#mj07%V|&5A8DZ~MMX9!K
zI7Rx!A=-p*r3|AVk#zpwX^0yqO$jraqgW^|9m2Id<ENmoRfn}Bh5o$&;h;m5!Kji?
zFF@!8$oLLZ*o?HIv;mO-t3F8Cn(%ML10U-nuncEmfH~39idc?siilMCD*FJZ3KTm;
zb2;zSB%-jlFzH%(_OzJ=qp+&E-xuu0EvGH%@=*9 at UB6prkHxE8DBa7DvahKheVfmm
z_+ at rnxpJKO=ifCxWQG}G9k{<M&A-bkgwy(Bv(%O0a_#$r>fo};zqX&24USKs6%pK4
zRJx?K;G`P+RbZ7xhMZKZk3qYyC{t)N?EP^d>$+yg>0i at +`Xn(mx;9C|#{}4XE{D^x
zEOQ<`Kc_*`Et4TN)4kvm9dBOrOBXgcgU^Fgd50m@)Ch{8NciO6CC~ne41zyny5))n
zg$AUd8~w^*RcEot06(INf1GN2BwK>E?f0jYU*TQa4ddwzhHmMhET%@6=eq^c3T`!g
zZOyxUg3YPyYoW7Gn`Xp-L>9ral{41JzSeKkOP**+?jCJ9sZ^+%QJ0iY(HnScGtV9}
zNb8T2o2#K1jyu68<Coz4YTz4{lE37>>pvZe=cM-C!NWLaAr1<!Y1FD5aVco2(-v4|
z3&1+H?5`)QG{qSB={SJ(71_~>G0`6LcEdvgqJTMld*Rnv)FF(zDnsksiJsI*4$AMf
z#8%-=swfk_3mTMu;Z9L1v$E2!g6U?jz#<+;t_j}CW(J#x^RPr2!vJU1kXG;pEwQFx
z8O6n_ro-)(BM!8QSu;aQ!{`D`NA64VlB<ix;Dj&i0NMd1-9JvGvvHG{2q4x(GGkLS
z0ctm(73Wca+pq$Hy34|}b?4_+h|>VG*IvTvX9Cbqqykd|0WjN3rXL56M0Q-VSar*=
zFe4I?l&PYdVFlKUN>Hw<xOWWP1-pSJutXj}7XjXgJF-bQ=o}DvNEW`pKtU?U>`43A
zh}-}Fkj7DnW%XI<^8A<3Ny at -3|B^&#2q at kNqrRn(Rt9;`u#@|lda|QJex%96ml~~3
z&`@u~*A5TvMq*QYLs*#5(6QMC`yiiApYa>K06^YnO2^2=Gwf(Fgi}yl0s~`SJy>wT
z(a|h12E1LI_(fypFa<NP$x)e-EX?Q+12Pr#AV3*I|BQ3sq``!mc+T3=dc0BWGjpn{
zX;a)DaBp*-C`0ai+LG5KAmt~P{*KJr22{Y9<lDie3+7s;!@81H3qupGsYe$edSg__
z?AqZ|_+W9$$HoFHkYo%?m(Y4Z6=UqY)~?5YK(y)7(t*&fx7Q`e)ZfA=t!bVTAx7l*
zEijvHJfxNH!VCoQoBPd4DU!pRXt=N?Hm#4RBZ}okzXo;<wQm!^$jrnf!jK(FSDCD#
z at B`KtwELX_Nix&~z+EW#$$0t)(KRS?R5pSzYjzF^69)vq39G?nF4|u=P-09k)D at mk
z0!bLg`Oaky(I;kUZ!@_}L?z`wvLfxF_wFKbMq&DRo!<*+`M1vf(WZ&s*2g(*A+V%v
z%)!}0{GGJIoFfv7T6--1hE;Ifar(|&wfpZc8VFiLNfhuq<&oeE*xkG!g7!TWf*f47
zWE|FaHSj4j77-d7t4pyY&b=-4&;nsSj!@F#u$km}9H8G)<`5bi4DSy8XBzN+3cw1$
z!20}1p8JGLhNoUzqT2%&)GL2#ll4SNy0iV{HLUXTcxTs*EVdJA^1}`gK|x4`z9g8~
zHstB-m@^!-#tomWqr;QPqf)JI7WXvf_9utCNLwFefZ>4}f)Quv7Mw<Q`HcBySVaM+
zPPXYJbJh~Sti`4XF$e at i;-^X&rw!1Ut#1~BVFxvOI-VJrW^wXShlHRlmvtaAofh;R
zRWji{iWC?w>xb{pI`VCY>n}tZy?SNYZ&d6W081|&xHaG3SHz6n!H#Ac6rb{d4gu+c
zr|BzgTH~%1$uAT=J2e~14qfC7xA-De6afRrn79=da1n`21OZbB`%_TRE_5^`ID#co
z<0!i^cWE_>>4>E052i0{Tq13F$``0)L}q1y3i=1j0|cAk^4o=EPDz-F*5zf1P?G?_
zmLO9z!up6arY4bX9W>w7p+=a291Qo+s4~4!Dh-nj0u at Pj`Pc-5gkP*>Tb{=@El+=q
z!&qaH$b172|0ORjiC*w`lw4yDvrfvmswx#&%OcQnv(W0gAOZsQqa8{*bSl#%qc}~7
z(T~RBL>P)hUxRBeplpMw`Y~T5?{8~H%?dWb62YcNpX_>8>sHS$w7_O=yekEWOT^7e
z{HxwS8X)AQJJ*v>6qFKJU4xO#&F at TMRh*&Wo3O2?<VtD6?uRIuBz&_5CE13V{7VRR
zzy40Cvm0q8)*l at 4Z(&;J4)+ZJubnFbK$8O{2wm82I$E(zqfeB5pG<(v81t1a%|ogo
zGh<I~7UkB^3ARn-+Ot^G`b_7#H4)TD5rrg>ysaGf;TzHcl88a-OCOa=C)xvRN7rWn
z!#-Xl#wb9<J!C#ojiz~=<@tSzre7fDs6xpc4<ISakyhyYQFRMB^1L4_6euo9OjU7)
z8~_hsFB-Bqd2jNgzgF6NcNwHiN}xzlYdC{h%TmHWkHF42z>q^ScbFxH8IghvbOh_t
zWOv)pu1728*z;<DK}I1Xcn^d_(R1i1C7k{6NW}Y>6J>!W;;=2iHYFoUIvywN+tpV^
zu?&b{`O@@-odkCSN#+Q6)${niXW#?PQL1NT_XEIoh~g~7XkcFwzJHh5wjCz^Cd!44
z92tt^lj~{g0;5&W{i5NHbrV0k<BV!5at@>+-D>;&Tf+kU*PH6bigb7#seP!AaYLE%
zy!SulJz!F9TGu1Ai#znDZwN9@(4?k)-Lqj%3N^|w9O6&ul?+B@%H&eTcvd0cwIOTC
z7?)+`#8;;}Y3Ns(qi)S}nY;ihM!ip2912XHHc+luJVC(JG1sQmI8|FqktAGi63grS
zFWNXh^pDB-uswCiQ-dp9wX76da&B^t=Dn|9Mq_Z)OFG%cYkc{|+$LJFb7^K@;kY$6
zLyaO2$pbM3`a%G6#oES$5O19r+nBEqA=j?1>x4~ZmUT`gF*R#_LuE5?`VCIlICEKt
z^>t<2hEh}K_O`FdjSD|<i$0$Ea+4PiRb&o6W3tpJ>r)z=&jYjn_yELCfVSh&Sn at rc
z%TmGFX8Px`rC)e6S6qHRKSWs}u#)cpcbTmw9OD=~6>aJ$i&gdc@%Ua#AQ-8|pb&ou
z<U`IGty!4(AGZh=5uOBKo5n90iBjaf{mInJFfEFHSL|KOElynveFRJ;3<uj`y7hLB
z&Wzdl1^0#Th<u;Ylc#GO!8~@-{9PRmR)B#@n26eXzX(=~I<;g@#JGy`U~nOXt9>(P
zVmA6%<$jNXCl$nY1AF78qW!+vOkpP|a>LoYw6wHDMA8{7XD_1wtf&1rB?JeQmzytt
z at slPc7?TZi8Vvrl*515hv9ZX7+R6Xn7oxy5v}(+{5{tSlEet7vA2 at P;MXbY=WHc6E
ztQv>#XTecvL5~6}>0`Z=IK;=a(8D^i3jjc)GYa)zfKnGn$8-UvCF=n6CVJlGCch8l
z?1E(f2!qFvi)^Ho#S at hYjNE6;utUyHoGO-ebVf$70!1Y#GVzL={TYmvhVtz?C0bqg
zXFzh}y-yCtVcb&oFN&aoObMz4)vsnC(g9oSu~#Ub`bVwg{ng`Nmqr_Z2R&!rV~%)g
zrPQb at LS!Y)bI3hHwe{4#U9co at XEWq$1}50`dQ;!syuek!rSFn$X-V<&d^BzjAerNf
zy;qO#gFf;5&uD31w|7?dH{Ak}xcN6Pyx(&`V3rGQ>zY4 at _xGQf81pNMi^5FmS5@)e
ze{Y1fF604Bs1E<C#s#ouljYY86n1#_>j at fTrTG-(u)AQK2Iq at woOLlFzA+WRRPm>}
z`zGDjD?oin-M=>%lheR(cc#Qo)AxtF)VQp)cRm|Ha}I%2x-mW^r7(&?X-?f#7^``~
z<bhlBWCX@@xqqzlnDfFsLgkz_3&eJ?R$g#?K(4MwU`vI2;5~)U!xlo&Rqf1W<2ZhB
zYh&eqv7b1D{3#7#hIBEApFt1+6`v}wnWRkv`MV^*6b9?9$Uln}A2wUBN}I<&tqX*T
zYln9~99^g!R-HUv<4Ek$(d8`}FhH}Ns|5;SoLI?)NMQy%JBps21|kE|#mUY;8Km_u
zK9w5vwQ)-07Fe}sIUf1>!fjCM;RXy=)lB6Q2fbk~rGM_`+F;pU at k=EI?MS|v79HED
zu_R+4k2#YjP1d4Tyf_AZ-ssvO88{UnKl!t!n?EN!?3k3ZnWe5fsITEt)88HFR9v>t
znSWj7t<E;)wDxOG5WjJH^>x=f0wlGEOgOC~#<<5Nj}a9c5;%R#UAd`042!fy#g-FN
zZ+=m(L6sG&QuXeCwGRi|BvkYM at U=>ED3)trf5MqmbC>A`Q?l1dCB`~`*AW?xACr(!
zlbt2cIltMXyvSyTJx8T`sXWL<poX&J7`n?SMqMc~$nEP}fE78f)28LXkdHG4i&RmC
zd%rN3UCia=Y#ggoGbf)gw3J=BZPRoA2s0RGH-xgO+c&H~c%fIAl+bdIdKm6wK|3v>
z(~CZaIA^T<Ls>n;^5gk_Vd~JTDW^5M2$>WKsD9I8kOfp0XtV at OxuSH(^XXmSi)tkl
zz2)G_teFC(Rt+0}Wd5{Q{(NLXI}zx_gCOg&Axvn2ozC?~rMwHMjANy#(HJj*ikeP~
z(X7N)2vQAlgNa4x{r4y~*wVa3E|#XR(+`XXdP(a`*CNdi9IDnY(<=IAHW4KIwRF1-
z_riACG|siKy)H2y007SZwKi3BrOqEXRNUBzYfpEq>;_v4!#W?P__X&FJdTQv#FUy_
zVI869U?n>R4Gn=v;I?gvB!{K_z?&xz3(XnsF}T@~W;KV2e>)dsH!LuI983gQJ#n`&
zhqI7SKLi9Slvaeyuz{`@84%r`W!CFs^)g-8z(9b>L+nP_u-d!Jd|$YQe4#-Vh}B*}
z>g|lD^dZew0>(4QlyjH;*l!;Mde4G7LP<&^6_b+gl9qPg)DTz2G)Y>qypq||^-Q(&
z%l3_NakuPXF!g>bta1H3!}qECV04(9$v(E=>pVd>LvnCkMrGO=0FxpKUROx`@2p7P
zJ!_kOgO&x(dT~L!9H5+aq*CJolxboU=c9Hsa2BDZD~0VmU*!ihZ^s9x0DWB=9eyj#
zj@>cWq_HCYcO at +rE3|Fj4$n*uqANOBvXt;r at j_VDhy)`YP|v=<!vwvCbQ4rnjI7GG
z^|oHG$tGO_#-$ps&_G*Q6YZG_uKLtBQTE?bH@!XofV&v!ZR0z<XLuXfRH)u{3!Ia8
z()1Z at s5pVe3zhM@Q>N~Z{gI&uZq5(_D(O3LR8 at tQ+h_}@gOn5kDBbBsVtlkCpwiv9
z!$ONG8%CI-kc(Ex&paD^n65!8+)$^Wkvju;!8YHdP1kX7`-RSQws at 9rwTILct%%pd
zUT8o>2A_2$TACP$h%%B>ZhcUmm7?iSlp=pb-G0gpIXL17aYY-f>HijPgBqBKG;8DZ
z{h%kraD~0TT1D6ekQj=TQWUIbqob!>0ev3G)1c at HOhTCPM6YBo<B~Q+D8UWNdHD at y
zDa<(Z|4L`6p_)L&-?+aKHNkt7AaOvYE>>%|4RbPkB5M0yAe$(#UX3|vup*y?xXjg1
zL!C6`ME{?D#U=@?FGF=)BkUOvRe>5#sxiWpJn85SEKK^&S?HY&;a<7*^bdws{G?rx
zz at oPgri`};?1U!w?<7_CGUSBxl(>45YO<8%C6~l&h&EvI+%jgRx%_&4#?e;2g!;^c
zu@=t;wkycGr2d5{i~|V at _23YN8J#dKd-Y&jxV9W6Q{i<y*9_wMo$X)Zv52seQ)wN6
zaA1YU<O~niE?wF3*YJVVKxHC;HXFgp>u|HkJ+BH;nxd at RFg>zDGMVInA~_tQ$jMrQ
zMXgV27pqp;tEc}G(9&2#6(2PnCrbDPpvp2(jPRMMdI(IEs?cIi+QY#sF*k|>A>{#{
zv|eF}m78m6St2kObA&*7DI at 4G<nOA&44Ud=g!vD+Y{gkD`r$g?W^>5JLrv&oZNmLT
z^$ne(xR_E)I(gEbB$;Nyo<ma?5GUnN)pP*T%-IH7AR4|7+kA4$AGLF)kQK5`GuR8?
zCDXz^_3@>h^A=wx3Qtq^6jM#BuDOKIFWXA at e}X8_5THE!D+?0bp^(A~1sg!XG-*)u
zX=#5sI=I{uPPJ5&>oA at Dn$Q^Unk=QJa{=4$wrGKsj4h!u7Y{+TD;6lLX2~$x5J`CW
zE9Al?G}zM&8dqwZIUElJnYk;_16u=g=wnWz=$K1)nPGn<7)39;Y#&RDeuQtvCo!Gg
z>{eP-0Y?GZq%g`3-sZgy<TVRyQX&(i)FpG8{?oPinP7#N at k>AiVtWKyLe+8w%Is>v
z*F{6<MO^j&#*BTCiuyNdyH at Iufe~6jB9>OouFQ7axCSLt_75+uQ?KFQ+QDCahgLTx
z!Eh>U&xEJp>2~P!L+RfB)fFtTZ-A13h70=GRNOxFoCIpme-aRs6(WFi754K{+FOF2
z6J&onGKAAf8y^JL52gV1B0#mIjn%>aP8+DvVB`MQpr9ZAdmQ`^DNP$ogH>I at rU>Nu
z*rc7VIo7}M9Mu=;eX5%}#R~12(1n}@`Z%a at gK?|C4ywp0!?d~|PqRoXiQ};mtQuoZ
z>{DGR0sP%llEYz2T|H7Rv at UkhSu(U(@iIDe!fkmlW-(i`->G=Uw9=xo;j3kSXaLZh
zaZ#)^hHz?{HK<x0m9HBksNM+BGu#QL=b*SnId?^uJ8XZG-kvN)1&#|WumaS9lI8ex
zBo*b(l7Y%sb&5MR>y}s=99)?AN|6KO;7K*-*6}K@^n>G=31`8?Gvq0za|P*!Ak9Hr
z81D{`_*L)=ZrKoAPabr|a!JkGXxwxrtD6>5`eTv9&0Lo`KSLX*HZEBfklX2aHqK7A
zR0ulOb$q_N#qZdya~wZYg+g?x>qB)V(9w`$Cj)Mt!5XSi&@sBjPfA)sWJiky8SzSA
z;Mu*IgBi at WA|@;G(!bGoX8Qc?ESE(yC%HK$U!5RBEsB+V`d{8dZSypNIm|_?O2#Wt
z4uazpPf|rB1(X2fmk{I%dSsM+RQ~dI<sa%AY4QHh$=oQ7+u`N%0zML`S=>9BIe8AK
z;oz{OiYOsO!MLJx6<5OSu%_wjKutwNVY1q870OpE;Ignm2+&^gWxq86z(OuanDiHN
zF~-G$pU569M3MzG2usmeYoP5mn+-Wv at m}-_4Ry(1yIa;b=UVAhKx-vMZ*G^bCpV%5
zk%SXv#CyEYq(3z^M$%mmQBHw#s=q{&lJd!Um6vC!{CD?RF`@a9gfMKWAfsU18Hoh7
zH&FGOOsAoaQsBi3=p2#IJs=?f!-R}YHbIa<wi$A|$+lb=2XHdHaCy- at j9jdV?i!;Z
zlH&Hadc-J#swKwZ8!0<S<<;tnedz=L@)HHgVOWhxxed#Qj5p=<_paK2rX^bd+#4ol
ziQJLDZeR$+*I6qXH?(df3u at wEMKco|Hyo{mumNbmu_r)Y!fJ+bio!dTvrg;8#k*FM
zUj!@!yEf0=2gUvk*MK640!6F!JD^n-e-NDz5QEa*fBqI_T-B%OnI$t24<=S>{E+RH
zjOWryz!^<zJO|Hm<38>`N*rg9gKVjjO6T{Z)(X}h;l3mm2bm-)b|d}Vblo`jQ(*tb
zj<mgu#MHH&*R5q8Y`&&gyVNq*9eSkgdZSO;cBHfbVfqG;E+bhE%f-d^8A9*dvAg}p
zH23|=49sy*1m*&e7eFSVcc8jzRyi5eQhR+6V!?x&H3uFb=QDMO<5-}^7vI<A;#R(O
zMu`?<{_WCvTtFSJKM_unwCgf+?t&IJb&!(mxx&QNeDJ<7xL+1 at a>xSnw}nSxum;5@
zWLY-#84q#?W<g-{10;}}m93{TNxJrtNCgV5pgvO}`%-nG7-ML-#;ZNPn-L#+yet)}
zugTU#vOL}>i&jc@#lScKb8BSRD1VAFxS^*+5zVfFVy%G%7D;3xTKl7aFQ!Koi!suw
zTmy#S3Ll|a)f!`|<`?4zn17_$OmeYsztc@`Y!JR(G);yE_h0HpW6{Q1lp^>CUCP>4
z&=&F>6c3$1fnn at K&%w*suL$~(vIQ2$NKBq!ZJZv%@6uEqPM)mM)Ba48lcQaB48}1g
zN&Z(O?oT9`0&NpyPc+VStK$P^R}$02^>9yMPybw^ayB{(hQrZNbt)QzkD)LM@|cCU
z^47&Yw6tUyTIh4;P(PA|&|2JT`eTNqD`zH0B`*Fbnyv0G1ROz?LnrChr~pq8jejG|
zpaXrqH~v$OoB2zP4Jq(O<8AoO;vKX);KpzS5@^*D4cCXj2 at ZN1S1UBaNe*=?Wa`nl
z at _UffsG1Byf@n}Cvny3OSY5|nHk5b^pr9Hr3Alh*PzkgCO@{p&l?co_SynwM&A19^
zv(}&lQe%cSb+{k$0?Hs<P&7$rH&x10UU&X(yrI%F;aeDa%O|*wV`BcGf>LXQMLV<u
zkarfFA?Nm^13Z^i?29)xAK?L=PZ8s<n-iJor{2A>$F7^gA6XTgL<Y=|Ni{D;=LqGo
zq4wJpUK^6R3Z_3p7s7s3T$#QCRYsDS^>E)-)#KsmhbS^a42hYbZjE~SB-Xg<9JwrQ
zx{Vo&E<svk+(`a6v26mXrO#f5S&|qsf<;?FE4UPQlil-2%$)0rsq at Q2on3}xul}_M
z_|PSQK;Sp8mLiNMzex1Q(zwEmfY>p|h7Kr)IR%k5<@}Hp2|5F>sXagW?l2Q0Fy)eu
zL`j1+OZpUA?6W;?n0eDrg)b0njXJ7vk}~C(gis8NoEU;Y7N(=tBS)Lx=!JU;f$)HT
z%q*#oKUR09*4-JZWg0kP<w94Ag&B$RwmaUrw|?`g_{aQ}2eA=;-ohU~;(qkI8Pc-O
zrX~J{`;R}ZE%i5+!l72R6?f2IHoN~Ot%5 at Aiyw<rmFeF`V96Qds#p(AT+}XK-|KDU
z{=-CHw^&pms0M^G%h)a-ahm_Jjh6u^oo|--CF5t at kk(&ft3FpV_X%j5p;=6X`GD8?
zKBm=b+eCWi$SuJC`}e_Ji9 at 0a*|8wqoW*j)7>Jv$CRpX>!o7^-B}f`H0R2X9-*ysM
z80smLzA<xJv3+x)F|OR@^x!@^$TB*K!)hS1f;9r8t at M@~49(f9Lk0yh&~k#ih|T1d
zIQ831U%G!jQ-v<AvTkNkZFi<Mam~aa$vawUAP!S$KTDfuyZbL$I!U!x-&i_I;{V3b
ziok&urWhA%6H|*UT<sfPBdm-vMR&gcD7#Z~rHtDVwgr?-Fvj#Th^YN-y=k+$E^^Zj
zl1X^p0<&uy=^(#Wc0k1vW|*u0)~`hsC}5p{ZH*u%5pU|d+V6nisIqsXJH!Y(-W$c-
z{2#-GSRs58hTR01 at ybOS3MfC7<`YtLr4zB}9EBfdg*C}RZua5z6ptC=N;$pYB&c3>
zyQOTZkArc}fhGxyGjPK<HQtYlb|v{AJ@>cdFyN&DicY_PVkJ;venpm>vM8 at IC_ZWC
zoJkYzE^;?n>DEtSn;DjqNrU#W#FY~oY+^PC)C$Z}ym`SvT*TsK>4i#?qKx#HQhXOZ
z`(?w?uCGtU(OkO{8xdS7yR}H+xx&R!rVhFQk5>f(>_P8J2~blzOY20)#9Z*Rbu?*G
zoC775HMb;f-QoV*CY<SLCStld-diU5Q^yL7v&J9U;&87z<y7+%cE{5=e0=g~I#Y~*
zu@#epU&L>wls!=EzJ+kBMgqlEi4DplO<^5gD?@Kyh+g?nQ_6%WBWo9}Scnn6KHe}U
z7nH(WQ at elYxFBPD60_^s&MpFmcm%)_<D)Dout(F)$ugQie&5Ke5U$=r<GyANfu4_Y
z^I1s%G|^ag5oHQUoltq=9>|@i_7PZUdsOVIe)oj0kGB1!v;;28-n-o17h(bYjc|om
z$f at R`%7y{}pZ>yF2ng<mab5wWm_fEil_+{ANmah$nt?>Wq`h_|d^qlc;;fUWljx+d
z9kl}wqELw#Ba;pLNhXdiBr4a05C?O783dO9hxwEav~u&L3Nm0xsmhA3DF;~AK_O6U
zgJ~UkOibwC at 3Wx3T0dl;uEq8tf!!!ctm^;8xRk)vrIM#%kZ<ig0Wuh|T|=GPs}5oF
zCzt_MIcoMm9EhR{6jRwi+vOllCm2>^uJzc*qGy1r)I>4UiC$~mb;I!WSloR7&^#$2
z8I@>x-WwYR<MfjTmHJn?E4bQB>SB&~d`G<Nug-8-CA$D~0V_^`fDOX|o2ig#3MYcD
z1N+UA{m9~_LQn(8?PU-yrt`5{=1B at 2$-iLZhGj7XmY=bf>@)N|UG+M5K0h}d+EP`4
z8r${-K+=$AiZsl0I7*RIpk%72sH7oClIwd`<9PQ(Ws?^=zV>C%ItiGuK;UAcq!jL<
zZ+mE{(2n{A2?nsRSmY&$=OPiH0u8lN0f_tlQC5L5F6(wtq*5zPE5Psaf<8)nT5)6d
zHQq>rHq2C0$*Q)Ui&CJfbz=3$zd13JltP?~f0PB~HwcYs6;d4SWNU2PG%^lRW>Qjy
z`y3SP(QIRdR}0m{Hs8VD31I5CjSfv_W`C9&9BWH_iEnN*i|{ElIY%F_KSqI5-<xFo
zis>>O+$RbF5(xhBgLHh-3$8$e;bNF3u#>YxdCYXHIm=HGtPm*PbQxsUluc$S8&}PK
zi3y2ib|F!$2-cJaMFQg8P}est^db=3!>~~F(R*BUqF at q+gGaC&jI}^}Liz2ymbrJC
z+3!Sw%4gw?6K5!g9SkmDx`Br^_lO2b2bS-BTL20Ife<FyXeX46VA<W*ql0|Z%2w&a
zkXGg$X#&5~CJ`wAB at 6J|HB&x_;zC~*t$qX33if+;vt at irVlc9R2CJ$(`GUFDXOpZz
z;SfzW*e_s{ks*2XF;JUagmGG_%z7)|26+nklpujcmj6#MLH at YUWtM;jQT4UU4yZ(Q
z6sFL_m%T4~_3GZGAwl4)fA<SO`t6r5i6%46E0_jjHRrxVB?2(-X-zk|*~VHcUm%Un
zqy<fIOkIAy1;t?`Oe~Tmr6mQ}YXqx4q2??WKWEdO598zyi?|YbHx{BP!q5#zDFSLR
zYzzb4NcO@;q?HFY4kS;IRFE)DF@{t at Jmh)9pczjrjqe~W)Mmluzq=v~RC<!^M$6Ce
zobV=jiZy;u5_3O+^^i0e at +atfryqS4p~{(%;Vt?4v)>;y0=au<bl^=VeVgl9DuXSW
zF|jF9Y_C-*N!NqtXT at m5CBb(-5v-K6U}>BY&_ONlRuPS`S_h3xo-$MQmJM^OE9<>@
zYtVpOc{`g4dY3Li>fAH%(<wnlUjznrx-1)WX~sQN6MNslPUr1?W^AH|N!2iWEz0~$
z<ftsA*iC_j8)|6p(fuU5l2_%U6q`(*PVEPjiouoGs8U<HY0HjE#XL=mgZdwSZuK0)
zhUXgEdq_#)TtZ_L7rd4tSO!#P$qTAsPmE=FlX`iMw!N?P#@$LJR#KReV$88LQdjVW
z&mB0rDY`z1SVpsHoEYn3k(Fpt+Nx#EAI;zsExrq}Zz4za{Gy|ep<Np4^T8hxd35 at K
zo{R-=;B5^DDW>c?D{S0Pxc)lrmlU5iP0BDJ0>cfK0&Ruh3O6j4X^;oQ*;bMi at -^rP
zv}@LgL=O#(ElkuUbCp1=5cnf0S-oYs#*P`A(A9bKI_0>@?=rl+J{Q?X05 at A_uA7zx
z&M#@a>d;gE`hvyAhUH43AR;rYN-5?9Q~gX})5w7^=eYVr(Y8EhEWzC^^cmAB+{@Hl
zUM^u?+48^QWY+&JPTEGWqCjz;2Q91x73Wpu+J)`9+%wJW?1~&&pt|Po7;P}BBkKbn
z%$s<e;C^(0nBA&Ri$TyPV(>)J7ON}#xnrChBe;-5_B>hvPTIJN)1UX-_-_RhFnL=T
zzWo5IGFNYMHHU4P1uFwVclMNSObfb<^xUqOHWssbQBcAMn^K~hrbrP#X+jJ_yfHtB
zOa%Q-pFm$YzR4HxWYK2hre!$thSTj-bb9AdHLMEvAuY%o{Lxt69TQg#&{RNAHcd(c
zsgfiq&hU!BAZ)4WrNv&Zr{|WL%X()58xDh3Du&RZ1450-6OD2T^i29=hwS>g?r&4R
z#h_ghPyXA%S255w7BZnhp`krX4OD>-Gc}4csRVR}OkA|?ic}$Jm+<?*^$xk=PaiYm
zV_#Yrwd9-hLYjg$WtKfH#ug==-+SQZF^`AG)8XfU@~gOmEe_MN at eeW)bJ%?f-ZIeU
zDpO1fLF}%!!6J96(dvw_c&%|<IVH7tr!Hv9gfpm)pz|i#($#^lL{GJhsus7?(KA?X
zFs~}QaG55xL>p-b=ky$C44_Y$fd`@UPPZBHN83bOGCGvVtareYW5i=@&zBUG=v|Hp
z0)@i#K{#pU8ZFd5qtrM2fVj+;27$edA at XY+5|u9G2}~%0^+kgM4z8f$M+cTf{T^(>
zSpqHtin=CgO6el$D)7!Ci+OEFD%1pM`u~;o?SW9{U))ly%Fl+9a!HwVF^k<Kzg)L=
z%v4mX47m(jF>=2&LvATu)+Ow0Aqm at vYM4>Rb=<m%kl9H{4CRt3jG{4^@Sf+P+Wqam
z??3PKM={^$`<(CXobx^B^Eok6>J7Ep0(Me at 75I=loktiaU*YDUq!wmA=bDaz&(i+x
zwot9Sta$6EAG6ZzGjH}a0Ln%yIo0+z$7VGTQYkU&B~}jDBWmq<_OyUp{8ovCQ{bPc
zmlxdK7?Rm%1aTL2x at 6n^^`W~c`L{XYZq=o`DA-(Gmv%kYk?u1BXB(<LF534ESp<Pl
z1hS35%Y<nbDSfa9z{Ba=$g5;)AW7U5h-c6xwmdBamJdEv8RXk5cC6cj*fc97N^^k8
z at kVjrpq<h99oP#4Bs7R-Xux(re{yrmdoG at V#5Lw~pa`T0zCt~)dDDwHY{;y#&LIDQ
zGyoc7g=TGl6`hZ%ps4n_cOV at jFN42TK3i|J3rJM`f~xgs-93s(he$LCc`bBO0al_*
zu`!M{(KKgqK>GvW2gRczqQWo%hKhLisNe`j9=UkT3ys2EQSrXC`uq(LLD8|p3_^b9
z^G`tF+PD(I$bNYU!Sl at -9muC3U{y$V!%HXWf|<;Ig%Hc{gV}FZkEXBxA~5jbfLj at S
zLC_j4tezd~9;JN|d at e={%Q4rx!dy%i=H&AW{%2KSe8o*42$Pai6eAiCofwBx>O#j`
zGa(g$1=P{%#_;06impJnl>ERB*Dmlz=O!LH42y9se(YHJA3|VxXc+u#jLB^oOHJ=m
z*J__PR)1ZE^1(Lk1 at RY^75I(7Vf-HZ2)=||n0s~#VN`6~#d8m9j*ITAD`>p at 7#8}A
zup~{6&Ry^6bS1tZoUX{+mLf2-2VXOdu=TV5$o`!HAn7m5zyELk<IL}UO-|gz1e)ht
zZ`0*dB6o^D-EoJrMU3xx0eK(-F4AV?`I&+}6&w)bdxOVV##8rD^GaH at f*+|<{@VVZ
z4r8n?Hyv>pt-kJL*<4+_<T}>n_I7Q^-~=@{Yx9i4^t6{UxzowZ#BcUd25PoSto$f5
zyy1d4LBi#UV$W?h5eZ*+so_by;j=r$BwQph&@Rpwhr^7-#|qoGab2%{b^iPm`1QvO
zM|XUkpGq*EyQ_<mn7Zy6KW*d;TKr#pzzkAV`40@*F^`(%xUWly&3x*~GxhrICP0=A
zCoB73?xSR8V5b&To!~Qabys|Kzv_MhxR at a!^+I at 4#$Dzum3<U1%d8k-q)w9kS6P(G
zAQ$~F?%wBp4k)}a$lxPkrP<p|-3GQr3DKY|_&@kl-^YggeK`(@_CI_3R;(2z+kuif
z%D?VEf1ZL=*$N>?yEc{uNB{Mx?u9#C+P7L9Ixg7d322bYkS%X*=#u9nOV8^gx<E56
zMwnjBS^-~;Xo4H$t^=+dfAWQ|dilyGREv0Pa*S;-7;xsQvB1zXS^<vWB1oMFZMlXX
z#P%O4!6DAEXb3ivYq{t*f!Q9)?Ap(dcYenyKfmD#;K$zlBvlP5#bxs^-ixG?kvJ}-
z!~kB2IJ2NysvtQxF2cHPWUEzvXxdxM9#cR7KG%L>UK5UdBv>-DdK2=vyn+lJbA%j-
zN&uku>i~EWZ-iVD!kMeq{5KzIUR++HZz--s>ukFsPd}jPi;Kg*WH<NZ|I@{pU-W{z
zK$|%(dR)1e5;mf~^!S^xc6 at Ybv&T|{>sknUt;;>@0i5N!0nGvvY`(R^u+9led&X$q
zSX!0-{Qff8O~JaP0Rcq&59{`efLEcu;kj)>?8ajY at Q>1zTG#_#SjRO at 6=oc>1M<%3
zMgsj^w~8*2gx2iYp&iLo?8<sqo2uB_&PpKTP;2CPh#GRk;lz!*x0D{7L at j^jx(f7-
zsKqe07M;97nE<0Q|DwNJ^e>BGrp>8zKQhANg!g|s2hpA2N`Y-r^0n0csA-;Srm3l?
z_&-)z<95)#aIhWfxlyYBW|+^R2O139=nh`Q)mQSS>p5*Uq^bfJAok5q%W-Omz;z#z
z;p4BFlXA{dg;<%x?f|2ON<R0yElPZ>-?zJeN3`o9s{I#J3Ul}mGlyi;{$^ak1|Yxj
z`W`(5e>0ruR3T{y#MFP$wSPC)|MrgmF{Nm#@83-g<T(^*Rzc-E<UjB=IZZNE`UlK~
z7UYC5`k?gEj=JK7QUmrK|2aJd5yRGR$8$@4`pD8!*W7*drJ5Gv#8hcQpEt&Eh14q(
zue1gJYu9l$G;NPcTPo$BQS=m$(SRSlr?8_#z__&AuROuGx6v$ayVakP>fWVN9&EIM
zWsf&z6HT~1 at 5N)L$EPu8*LDW3O>Pw$Jp(^LyzvYsuvmdtNuby@%A8I!ctHjPbozff
z1ncRllXs64dXA2GwQILzHQ*@=O7Z+iAC+lqV<X{E)#ySKL}$p}@cDQrEe4Q>1fvDq
zXkmLbHaQ+J81bChmxZAn$z6v#Mi4Oe{>#O at 8N(Is^fi-3Q-bMaSG+32Gsag`K-~6t
z at x72$UKZk^ib%@0=2HrWqYizQjickqSR?a$WtRk;A7A1(EAs0K-F>C-eyeQ1>qz~1
z;c2huYw4=AI{o|Usa<(j+*2BUSUj+w?zO1{U%H2qn{gJjoDz4rahDWGeZt4Hr4 at iO
z{U?*?#`<46U0s at bi^T~G2I9_#zQYS&sZhI%wv44N<N1(e2vcXdbzVWIPM_Gsi+HrZ
zg_ at AIq&DT4-086kK0*0{rlDr<;XkZmbYFGup}1_p_^)_95qNEZzi=I=E%vXG(nb3x
z67*_UOARcihlNI{(w?_KAfojEU}b<0b at AT5bG@=sPFdb;zgUx3$b?4gNvpX?y;5;Y
zGbQuYHbJYrFRi*xnTC#K890b!qFJVckK9$;gJ5G=2Kk^P!tcLaKnR-Be4)`JfdD2#
ziWe&YbN0J~nd%ne?%7E{n%!eL%^xY5y5&;Wj8VrAISkUU!KM9$C~F6fffO#7(7qTM
z7TN-(T0&fN;7mRsfvHz$ZVln%BPZP>x!yNZMQcbGT0dzvjIQMQ7{msgzh;vVTxe#@
zdN>qFJTS<b)_~}Le*k-liG;lGY^bJ+8wFmoo|jImY^UbwdQ=^YIAz}aySVk#$tXd>
zvi<~m*tRZRt at fmbyPoO77q&XI=?G>~xbFLVV-|M9D-{gVKx|(J3U|?PiOs0E2y@?9
z`^l$>5y2Sq_dn|jv90bm3PTGoPwj(z4rcaKHSxg&0PIRpfF16+LxUoX#iJhg$+F$z
z>B?u1`6VTg-A<6hnwmNm!^zU at F@i9qFT<ul6ilh0g^+X2xvT>?2ll}kJa0Iri8gdC
zzIjE}t<`uOTWd%kLC_JKV}-d^Z^eRbgvfJ<TMJRLL6|u`WqvC6qOD95%ROgN(8o1>
zg3*Ybl-xc&?Fj41nB*#3-2s7-tHm9MR_r(gHlCWC7?xg+Bs>xHOPZXCDUpI1Y*z6r
zd^ZYtd8_TVb%1qD#a}AW%BY+q;J#-w at f$`U at i626Jtq?%X#=c+;LC};!G;!}%@><`
zOUP~M at u~?XQ8-AQyC4AcVKE?eSR4qBaTFT>;olVNK>ZA=%aU+JCjLaPKM`NvFDWrM
zOasb;1Rw9b!$?-(E#^h|=QbS3=Q!Op!-+YJhTtUu{rcHhH`ABjKWBlxh7D7)pF&Vw
z*|=S0NAvq*xugVj6~hgXVuxASE$VcZt%G3bOCYOVrFy+|kH?D~F3dQXbCeL+-CB>k
z6GLnsV-L}A8G^ZU$Y}!Vzt;q|{92Y)n_UqnPXm%7r}j|nw#~HVYLh-Z9QKV at C3`_2
z7y at B2tRdPaBpXYPcu-LBn(R{&5ofB~8oAKW3nzBb^7%3ExRrJ91zej5 at g0yWRiD`}
z-AAisi>7;4ujBL*Qy`V){V>tk(6_W%pUXPSS`KFcy=Q5JUcysoriSU$S7*7i+*5Bg
zrq!Z_X$;-`&2r4+69FlY<p`PGS{(F=Wk6XuQ~SQ`?a;<P0lsf&q;cR!Nboss0u3Z!
z`F8r-Hj!jV8mL{u_DCnbJ#pv_*{#o1p1;WqQi^~27vF#M?t(_JXXhQe8hdl3Q}Gcx
zHq5;wZHYp+VP^=<tiv57oBF}F_d;<zqrs)pOr8X~BU+I!lbL4QnI}(b+srGyUQvzG
zBtaQ%+~xG at Zp);H=qcc_;}zpo>&F~P5HMBtU$K4{rNo?2#JDtDC6 at RNev{q8*od?V
zQ2&%N`0%Iv<@1dev~5-hP)APedkc6<_q|j`K)j+t{8po2xUs9}!HI#E at SC=s15gHl
z<>L1KV_GzE>@9U`=CG=sk#CTRp_lIa(_SlKdep&<ly`#tt-9g~cB%)%f$kt;KDaJg
zcv`@4Pb~M-OxXJq0(hsQF{Nd0HWb35?QAn#+v2rwu8<Cffwhwqv&;oY!DPnOjpkL5
zafJq4K|$G?4zaYJCfDabwPnOd)IZA(#pr(OITX4=AtD0z3#K`bQ??_`c2L9<t*<!s
z<eQ%(BTne9fRRPcZUrxr^orqmr1GB_4brOxCWj~nR|Hr4jh4{E?h4i})$@no)Hy$p
ztTwGoA-cX$k)(VQI5lTudXOeG0qgLQ3C%)ZP0a^(Ivk?%?0nz at hH%fBo_ilBw=s6`
z4~axMMyRVg%^LVMYpm{K$<Xx?S#d8w?%96_T6i8w6)8afZ85BGRv28_%sLBOz>F-@
zsfASek)wwZ4D^ui*YH|?q1SpnqW%V+R721``=xKYS7mc^K6JdJc%34Q#Z<LA&eTm^
zw35it2X}3Oi5IRU$!+xf-r7k9RD5N)OyRkaeEFG~h;92VW5dRtBq*!92faL?Oj0HU
zoRPV6Rsc<7Sf$^>!6;7>u;iiEju;EB-9LH)fPl(L#wxg>YW5brNu4%9&V|gKVq}I?
ztX8(|1nmYOoAfPw(httA_E^{PxAd?L6Bw at a(`}jsVYAVU(DHi=OAk=e!z|`xBT@)^
zDNqc@@R?MrpfGbICwGy-=nyaV8#7kboe2v*Ost4LSb;@Vx3EB6-Xo?|JjXEi(K!Hk
zHa)mx`7G+)Eub^;O+gD4wh$9c9I3 at aN;*EA*MVnb{L=+S1F`7XBr)lpX;2}6wrUF&
zCl-|5wt9%6;mydcynQLMCZ`82>~Kyp{BDTpd!<nU;=P9NZ6}|^HwKUXxJKMwWv5rb
zLW9EqUKvzE*v!F1T^)XJ=AaZ}L&+*IJ1A{Mfi3m9MI7W)$3?&>YZf1M>vi;f_LryQ
zevK2}lCm?`GX{!l$ow9AM3sl- at 7YO*i$qD=yU}Q=OoMF*Ti=1yx;jbL1S%LHo6wT-
zL7u1d`#b67K)EUXHVU+vJU=Cd>C^kS-`F|H;~nf)p}Tjk=O}1?Zy_9K<fK7JCR!G}
z5eqm?)26)hdQoXhU?tzb7)*<9TnutRYw#5A$r<*b;UI9i!5O_LjuSjkJ_EPI#dFkR
z5^B<bv4%K+C+ULN<L4HFsRGU><@K(GQc|6f at EuNB7fOiTo0frqPwAgPn*X&k@*4kA
zCpCYR8*bVo4UKmqbrvpI7-H at jKlv~CNC3f-lJcJon0h%9Mwm7Ky(f!Xa*ng9!<y%#
zGvasKpKOnCK9Q&H$sn{X+F`O;<Tj=~&*$kw(>0)m7lVXS8uI)M06RmN*ZOw4(h0FE
zA`9eyrNVKP*_mo0H3U&K8c^n`Xt1t83LQ1VPmlJ^c^81gWgUDe34b$rRE&hv=AN^m
z%!c at 63v5lYI#xj50G)iaj6_=gtgUD`=@Z`32QbXu;$4;B6c=(3q&p(yX-Q&Ry)iN_
zr{gewNg{!jDESVyk*u<cl+^nkNxXB{NxgnE*)Jm0Lv(C at S`cpC0$}z at 1ziS9jM7D*
zng!Irkw%6xw7DD>Xl}ehb7YOqe<St21zkqrNQ`bcR8xB~G&Md4Ieu&ktY5mU3ly(I
zqGyX?)nM)5sX504krh??h@${6F%EkenT&PK3arQywFjt^Q*uKcf`@0b-0CU_6n=N)
zE-(`QPSBUo;8}65AS33Pu2yvU$W7zomJt(2MVCss*E6TQcrCd9!g>PVOevjxuqbjy
zgLbKPz!B8eDuwH<1s9XQ!?#{9ig(DqMWb??s)<G_lh<DzH`TU07NcvX$C-K{jchl*
z2taY^nD!m2H#db_|8OyyZ27|dP4!WAMvfBSF7??6&m-Z}5{32>oO1puQo7k$K$!!>
z6pEchTEC5}KVW-JJNX1feQP$4*a1<BT+3rgf*v-+OyJW7;in2a)CKdQ>3kS^YOWcT
z>Z8QmT6I=Hj{NWH9po5YB>i+AT<$8#&-Ad67$M`}<95$#Hr<xwY3!(7Nq;vgsPZ*k
zZqlJr`1ls$9LO4$ONEQibU;=XC;oOlD?Epiokvi;@RCTu?q$Lj2jJgpvhwK>vpXb6
zZ&ni=zB7|}7gGDY8y-SwK4Fnnx(Bta?Y&*l4uT~s*OAnksJj-+NeVc$5bgQ(>h3JR
z7bFSd8ky)Ai>*QZ^!h1~3^(|*W$y*grb%A0wj0n91LUcWzi9zs>u)>aVb5~bpGiZ;
zF<wg^OIwrgnGX9WVsr)rTfuktE3)!#jq<$@AE(?8o?SE0!#>vIrzh*)JTV+|-Jm*a
z66eyO=FU83Vmxe!qUm{y)g12)*M3ml`!HNAHoxHbKy0 at pa@I`crdCbmq-$+lg1)g2
z5}Ad)RlCY8L=7v4;rOkBdK;WLfvs9 at OMFCZ_z(V(2Pm)Oq)e<7tDIHdl+Ru~HZhdL
zcA#X9#awKYbh(+CV>x^KahC<09C^}&rc@?Uumd{4SM^p&xW*UU69$xe-4fZ>kd;M1
zyUPCF_X9o+7-S#8i3iPFJMFRS5B5in|El&?5}l>`5AGbT$h&Bpa$!<v-s_|mGR_f;
z>rT9J&jicT*KWqtjgtojXSiV<=f~>;ZMiYNxN at Rv>XH&o9Lu`Ej at Etk;(>eOF?dIt
z7}RB*1Q+a965ce6Q?6QadgOxWY{aJ!9?2jxG6w<TYSb`N^o=t#Rz?e11I4?Q&tlBg
z%&#w+G@$3cSnGREs#|VQroshH1x5l=Ri1xb`7B`sNr>wnK3p>nYdYb3*nHh44k7zG
zb9Od~)7_T!cMxs2|Fi>7&lHI5cT!#SHI4Vg+(`?8b-vdDsY<mlxa~XPlHL0aFm!-M
zro`7N@^3m<(@CQWe3>{Qt<J1y^;+Mc1rx%BM0y$kWn<s9j};LW18om>Vs|#NmcQ2G
z94J4<{LP+TeqBJG2^#A~H!sxg`bYYT^Z<~<{&J2wY|vL1lHb-pW^Zj#Wfb2hYW20V
zEIWs!-}7a7!?Ht=aZE65{@KPRCrMD>HpTOyPPcK^;>!mi`d;E{x;FSnr^5ZI04 at Qs
z&I%r%%XgsUI#@PYZJJVp3MT!x>2b;sKvv5{@~G~TqWYPsXR0H4m$z+YvRxACV<Sur
zM0=hI;0-TzDtun3bve>yFzHUhcDz9|5ceX^!D;9!zGJG;v4`TQ8T`?i8ZpKDz{nx;
zZng<dZQ%Sk3>Az#Ph<<aczUS1oQ}TeI#}i2)$nPze7bYtHqNfX+?q6jw7A<OuCB=N
zIgxnQB3us$6~d1ki at he8=_8_Z`G)ZqH;{7-97Ts)+z^|6-Fb{8;;%w(D}rQJEh)P=
zYnPEeGj?MGkp%ViqE$V+iHJUye9z+#L#A?_GZENo(m1<Eaz!JII;Cz)o^SzgAFBZr
zMG{k2qbR}TC6Mk%?L<!vn&|+X8m|iRCEa3`(r&X_C(lu at kXY|L_(ii^hh+&>VjOSS
zXCO5q&Ev^r{jph}u~k}}()U%r3LLon5 at p`v4C}oV(bHo^0$Y(XM^YSdsniwc*B|P#
z1st=YwxmB}r-N#D{G^OS at WE0J2awus1&Y^g-yXv456!l7N0fTm+k}rgS0nTazGeD6
z$MWMoUb at P+ONuB>@a4A8*mi4ksyntd*Ln|LsS|Q<og+vD at oE61Juf&~2J_sl#*26}
z9_!6^?yiv<2as$02ij1fZxbdmF+o|OtbH>7 at UILH3o$XrHGpyzW4<dq`&}TVI&rPJ
zer at 20#AH-G at 4p&|Wrd{8kn|}hAVVjGyIGFYrImCdm`+VRYF*b0yN1x3nSAZ|>0Q8G
zg=&mc7tz^gP`G97Ply~*@JAXahO0yQ4=(FnXp^og`|6X)qBj}}_Zy32ZP#?~q_Cy+
zpOq#t8fH}(%s<1t{{U50VCE=$7WKy53~e at m4qC^tOIa76?EN(Q>s6c`ugTneyLoks
zlad%vf5k5&h`o-eQ3p2;F2Y^T)XC4b!adu~kjLCyw2?FG5ZIV^(z&>2ay0c_JK9{A
z2Cb#LSMYhs=fGP0&2l6$+yK+HedV@;>6Dzp at Z$AbrUj3){co(S6fLX)kM!BQg2%TW
znQA7->8?3*Om-qcP?haxYgj9`^O~KKD?0X6{ByLfE+9cmc52dBEd=wB^v+#7hSgh(
ze32Y0jQms^8NGYm{yX3p**#W$tI0_y%FX>l790wQkI2p^FHsi~-SFci2)Lq-#pdde
zRkZ02SBO7k>0Bl_>O^`b^``b`dPIbl`0VJQhuqM6(-_n!lzFw4H$DCPOjXIQZB2pa
z`)m at yh;41=gc`Ft&D{roE;_aU&d+o#y-yHBSM^!+?kQ=)rbyB3C3oc8jskk(JB6L#
zk6r_Oa?M^IN#~heoRC3%d1Q^S(~#NgKYj(mYfvj}hJ~L3^loGjWV_!4yJyz%+_>XQ
zPqp5px_$+0NA}>99ix5wP7tDa*nl{|qg`-bdIA at vsr7vR=GFdtJ#G4u&X%XX+zco2
z8=6kG^M{2oE54h5$9P|k*2;G6B0yl)6}a|qa_}iVNC}G+w+=9TcD$@<zW6=YW at IBG
zE#9&dAc)S!icMM7+($+n6L#-Y-x7uoCort|aZDqops`W|Z$knOJB^>Kn;7eXyD_58
zWB$%w^Lp4+*-;133_1BPliNe=)Y;$#!97f&isxCv9#u}tQ^y5EDzJY%?*(3|rFP^y
zUi_)59-Ns`d=|Gz<+weSw<Arcq+Etoy$L03p(xD*e9cE8qrpC;aa-L=^%7!{xE=~`
z@<>HG1kY7q7Wp`(PPUkwt6QRS(qTP`Hi>&Ym~@<MhEn0N7C%VJ^gmQ0Sfs8HV+4 at s
zh<Mw0RvxD_v at 0<C<HgGYp)M!4#EmRLI*Vd7WaYc79^_>09gX%U)(y4c#9QL6)t4T<
zak-F4Kl#!5V-e<d<KCgV0=%=iLq_8#`d~Ab8DAGfsm8x4VFOU-K)!XlRj;-_DY&t4
zgEn|vJU-Bb>cl7ATKXYK)8q?q1{4t<EsO%j1te=m#pwvM>fTjmt4VX<b{<oSufNpm
zNqb#b>IX6|*fk_HlAAY6qu|ZWF&vEKj9 at 10*6ZZ at el1SHq1*;$ZvbE<cbhY^x*xVq
zv?oW|g)hgLpB6b-ClsGH#c*0Wwo0yz?#8~zGH;S6d1E;U2cy<&=^MZuV4&jz$kQ6d
zY)EH1n6NSkc;Bp!Pfq|L_AiBsf|YsdKK|KlI=I22Jbye?0=@!_^P}d#n at h!>`jheQ
zrmeRnJx&KF_PJ~7N`O44{1!|E&%*{v42J0)qV72Opu;hr<^xbyK_FqEgkjWI&-g8i
zIH{eBA*+N2us0uA#gFxMMX1(9dqA=y6quw$I5f|md-CFe`feG(#g!B=C_$>gw_ at qu
zS6ASJ*X`<fis}0cxzNq}0rr3%Pdy^2(zBvnyY#3dqRjxCAZ`VIzt&YKr0A3M34p3O
zNdwMH#||-cxrOi6gfw}zuq%k!htJt%I8*H(i4{S!#hM%hs!B!16Bk at 5u$~FIn3Ck1
zo1U$?-_)pwNdqcB=4gc@)R&Vs*5+jO63sGmAd|$39?=4cl^}abIJa6g^SGg4z|es@
z35Ub;N39Mes8MoW5If-<CD?B1iMydrkF$yyONaYJ`SIHxxz`!pEQ3(e(MHPR0?Xjt
zJr at A5FHhQxz|JfK%`s(Iv5Q}Zu_z8Z{|$Ouy5ZSv(`i!v8qBz6RSM{~U6i}=g0%+Q
z at PWV)nU`lh=VXOo#^-gr+;0F8`B1qC?pvA<>DYo}ol-H-O}8a7OLRD^df=gau!<~6
zO}>`v>np6d8+i8ZoE#N6iu>ZyU4P8(#~4-eCTE%kH)H!fM8!@&Fw^_S7@`wVHTwa{
z7}7LuVf;+QRXX_Jm!{S=;YnA at ucJk1aly9*tc;PQ0*bBrb_v1*oyZa3{W8Kdr#fbR
za=D$i!i)FDaNnpWy+5u|Ssfw4OO$M3=^$^=14Wy;-R{psk}2yg0{bU|_QJ?o^Qq3p
z at W_EwS~i>ev310I${xx&*txpkb1L^9b{rddqQk36voH)BQ-jUc-9ndOUsiH)kBYPg
z+o>BkzPFHDLyZg&URGI8-ntgla?+lsZeN{om>cayc5ab)<bdKM#pwQ49kMn8Zy2a=
zruiE?Gj)3Qmg{dT44-2)cFNP7PHSm#*4#b5lu&f9vECZuG{@ieG%jDDL at y6a%gdva
zioC%+39iB!!qz|Zm+*|m69u?P+O%}oQac#W0Q~Flzz9Rl1z}2f)T>*H;=S{Cw;98K
zCBT6SNNEufh+P0YhC&Ervz4XZTk|UED+AoNyl=(@=eUMZDxt~@DV#tdEH0f2X@^o#
zO>@;D>0yr4c0Ta3AdXjJS99V{OO#_-H56|UPUv$gZBqz~Ci1S|26coQVx%S>ZyyoJ
z{`6}ePPbc({0l{hlF(-=0XwUu0`Ew2-f}s$7m5K!K;TCkB!LZvXiX&Q14OOQKiVy+
z-#u6l*Ppq&J$k{PyV`$_(!h5wpwys)XF?$*yj8nUyA~;*ho*>1Vtor0Hj^fhs&Z)a
z%hA61%lYi86YOa&AjaxGX=c~l*oTIJ0R3|^2B5AVtZc$YhSADA;b<{DF#d5ealS-i
zZ}jeN7+=A6bJBpcCWj$(7*ZemmJeajqpScdTJCP?Mc53o7QyGQAoS58`=c$F(2nMA
zafT#OFdW at 5x-sW39obM49W=~V)PgPu(@_`ibqX8&Q}LBmZo>^oDI>Cjbfp5 at k2FV~
zc(`#Zx#loB!=~PaKjE4d0xgxW*DN2dS4H07ssOwR;#Ch at BEov@;td_s?a{XA6rcjm
z&klrGq+S7FI5cNEHpFf_iz*83G|kT)KlHI|uxnJUXl<9nO<Qa)GWAHHL)VWq>C3A;
zW-9cwo=P~j@#XaM-PQFp-&?4FQ1-I&Mxk&w&Y}0>$9~la9qb>31}9#=Utweq`(T4}
zW{n-orKocSN$NCPANFg(!P0ugddzE+DT((QP4I*5?yk*hFc at tgDy|5fE~u at uBEEY!
zvH%ti#&hzvAc3N_?cl+~>+e_}aRLrlfr^d-Q(l5?(>rky!n$+K)^UE4Q;J{am+vsR
z`>nTaf#%p-CKP7!BA>#<yFwy`IB56b*xX)#h)_ogunmN))q0Y=57A2!>g_GIc#$)0
z^5J#`6E1Zx2;i1TQS)FZq`N7qg_sYOnLy`5DI!Fq!@3;E^B~oo0sYENDCC$lUpWZY
z52;Sh$^xd<sg`LtNb{q$b1e~-=Z-iI22Tgg{m%lth)RGFNmU<lged_u8BB?Ctk5d!
z;DPQYbou_WNZ at XQKxiW*rZu;`2qf+6uh7UA1SH at oWbKj2CV0{iz(k7J&aEE+`q0UI
zL8MsRFhd6cH7$`Y;Da=V4?Ko^;1T2luR=cmKP^r>PR=ffWhgG6`e8HL+a8PkIM%LT
GqW%v{+o&o4

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-inst-types.ded b/clang/docs/ASTsForTemplatesImages/ct-inst-types.ded
new file mode 100644
index 000000000000000..0190a8a7af301d8
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-inst-types.ded
@@ -0,0 +1,1627 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 45,
+        "y": 75
+      },
+      "name": "28",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 28",
+      "size": {
+        "h": 565,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 90
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 29",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 155
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 30",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 33",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 90,
+        "y": 590
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 37",
+      "size": {
+        "h": 50,
+        "w": 140
+      }
+    },
+    {
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 45,
+        "y": 55
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 28",
+      "size": {
+        "h": 20,
+        "w": 775
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 605,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 36",
+      "size": {
+        "h": 50,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 650,
+        "y": 155
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "BuiltinType 32",
+      "size": {
+        "h": 50,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 155
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "SubstTemplateTypeParmType 31",
+      "size": {
+        "h": 60,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 34",
+      "size": {
+        "h": 50,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 35",
+      "size": {
+        "h": 70,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 605,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 61",
+      "size": {
+        "h": 180,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 590
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "PointerType 38",
+      "size": {
+        "h": 50,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 495
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 39",
+      "size": {
+        "h": 70,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 290,
+        "y": 410
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateSpecializationType 40",
+      "size": {
+        "h": 60,
+        "w": 210
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 145
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 45
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 595,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T data;\n  S *ptr1;\n  S<T> *ptr2;\n};\n\nS<int> s;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 640,
+        "y": 465
+      },
+      "name": "Source code",
+      "size": {
+        "h": 145,
+        "w": 115
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 32": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 68": {"syntax": "\"void\""},
+    "CXXConstructExpr 52": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 50"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 41": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 42"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 62"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 43"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 41"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 41"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const S<int> &)",
+        "ptr": "FunctionProtoType 63"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 46"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "RD::First": {"ptr": "CXXConstructorDecl 43"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 46": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (S<int> &&)",
+        "ptr": "FunctionProtoType 65"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 47"},
+      "RD::First": {"ptr": "CXXConstructorDecl 46"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 46"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-inst.cc:5:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 57"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 24"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "36344361",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 29": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 30"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 29"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 53": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 54": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 55"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "VarDecl 49"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 55": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 59"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-inst.cc:5:10, line:9:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 60"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 29"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 46"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 5 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "24909989",
+      "PointOfInstantiation": "in/src/ct-inst.cc:11:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 42": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 57": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 60": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 22": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 26": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 35": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "ElaboratedType 39": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 40"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "ElaboratedType 50": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 51"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FieldDecl 19": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 20"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-inst.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 20": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-inst.cc:7:3, col:5>, Elaborated(\"S<T>\", <in/src/ct-inst.cc:7:3>, InjectedClassName(\"S<T>\", <in/src/ct-inst.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-inst.cc:8:3, col:8>, Elaborated(\"S<T>\", <in/src/ct-inst.cc:8:3, col:6>, TemplateSpecialization(\"S<T>\", <in/src/ct-inst.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 30": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 31"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:6:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 33"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-inst.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 33": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 34"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 37"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-inst.cc:7:3, col:5>, Elaborated(\"S<int>\", <in/src/ct-inst.cc:7:3>, Record(\"struct S<int>\", <in/src/ct-inst.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 37": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "3",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 38"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:8:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 41"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-inst.cc:8:3, col:8>, Elaborated(\"S<int>\", <in/src/ct-inst.cc:8:3, col:6>, TemplateSpecialization(\"S<int>\", <in/src/ct-inst.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 62": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 63": {
+      "Canon": {
+        "preview": "void (const struct S<int> &)",
+        "ptr": "FunctionProtoType 69"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "const S<int> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "syntax": "\"void (const S<int> &)\""
+    },
+    "FunctionProtoType 65": {
+      "Canon": {
+        "preview": "void (struct S<int> &&)",
+        "ptr": "FunctionProtoType 70"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &&",
+        "ptr": "RValueReferenceType 48"
+      },
+      "syntax": "\"void (S<int> &&)\""
+    },
+    "FunctionProtoType 69": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "const struct S<int> &",
+        "ptr": "LValueReferenceType 64"
+      },
+      "syntax": "\"void (const struct S<int> &)\""
+    },
+    "FunctionProtoType 70": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &&",
+        "ptr": "RValueReferenceType 66"
+      },
+      "syntax": "\"void (struct S<int> &&)\""
+    },
+    "InjectedClassNameType 23": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 59"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 45": {
+      "Canon": {
+        "preview": "const struct S<int> &",
+        "ptr": "LValueReferenceType 64"
+      },
+      "PointeeType": {
+        "preview": "const S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"const S<int> &\""
+    },
+    "LValueReferenceType 64": {
+      "PointeeType": {
+        "preview": "const struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"const struct S<int> &\""
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const S<int> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "CXXConstructorDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 47": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 46"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> &&",
+        "ptr": "RValueReferenceType 48"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "CXXConstructorDecl 46"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 21": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 58"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 22"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 25": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 58"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 34": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 61"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 38": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 61"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 39"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 58": {
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 61": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"struct S<int> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 48": {
+      "Canon": {
+        "preview": "struct S<int> &&",
+        "ptr": "RValueReferenceType 66"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"S<int> &&\""
+    },
+    "RValueReferenceType 66": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"struct S<int> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 54"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 36": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 53"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 31": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 27": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 40": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 31"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 51": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 59": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 67": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 56"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:4:17",
+      "LocStart": "in/src/ct-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 56"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 56": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 49": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 50"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 52"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-inst.cc:11:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:11:8",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"S<int>\", <in/src/ct-inst.cc:11:1, col:6>, TemplateSpecialization(\"S<int>\", <in/src/ct-inst.cc:11:1, col:6>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "NextInContext",
+      "DeclType",
+      "TemplatedDecl",
+      "FirstDecl",
+      "Keyword",
+      "DefinitionData",
+      "NNS",
+      "PartialSpecializations",
+      "InjectedClassNameType",
+      "Bits.NumArgs",
+      "TTPDecl"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 610,
+        "y": 115
+      }],
+      "end": {"entityRef": 6},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 1}
+    },
+    {
+      "controlPts": [{
+        "x": 805,
+        "y": 250
+      }],
+      "end": {"entityRef": 5},
+      "label": "decl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 610,
+        "y": 115
+      }],
+      "end": {"entityRef": 6},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 740,
+          "y": 120
+        },
+        {
+          "x": 665,
+          "y": 145
+        }
+      ],
+      "end": {"entityRef": 7},
+      "label": "TemplateArgs[0].TOV.V",
+      "labelSegmentNumber": 1,
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "DeclType",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 605,
+        "y": 185
+      }],
+      "end": {"entityRef": 7},
+      "label": "Canon",
+      "start": {"entityRef": 8}
+    },
+    {
+      "controlPts": [{
+        "x": 490,
+        "y": 140
+      }],
+      "end": {"entityRef": 5},
+      "label": "AssociatedDecl",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DeclType",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "PointeeType",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Canon",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [{
+        "x": 600,
+        "y": 250
+      }],
+      "end": {"entityRef": 6},
+      "label": "NamedType",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 600,
+        "y": 280
+      }],
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 12},
+      "label": "DeclType",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "PointeeType",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 595,
+        "y": 280
+      }],
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "NamedType",
+      "start": {"entityRef": 13}
+    },
+    {
+      "controlPts": [{
+        "x": 595,
+        "y": 280
+      }],
+      "end": {"entityRef": 6},
+      "label": "Canon",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 400,
+          "y": 390
+        },
+        {
+          "x": 255,
+          "y": 190
+        }
+      ],
+      "end": {"entityRef": 8},
+      "label": "args[0].Type",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 60,
+        "y": 460
+      }],
+      "end": {"entityRef": 16},
+      "label": "TemplateDecl",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 220,
+        "y": 35
+      }],
+      "end": {"entityRef": 15},
+      "label": "ST.CTD",
+      "start": {"entityRef": 5}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 658,
+    "w": 834
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-inst-types.ded.png b/clang/docs/ASTsForTemplatesImages/ct-inst-types.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..759ace2d2c7be51979c5f1736dd13ceec673865c
GIT binary patch
literal 23806
zcmbTe2UJr{*ESpwA)+XUBGM&PX)3))i=hajpcLsUMWl)}0TI-wp%(!K1PoZ{D7|B)
z_ZI0$4ISx4;F}ZF=Xt;XUF%=}@4c2LXXec8*?Z64*S=<Q2k2Z<r=ez{Mj#M07c?+e
z5Qqb41cE#gNeQ0pG1)I55cECXde_{}J3BgBJGmhc_g>AJ9d_+2hIWP6E=^WX2`K8)
zrPT~rRY!~@@`b)N*33?j8O5t!n|OlKkGwn5Fka=!gcw4o*2m1fOO(nwIP&rI{jzKR
z!_r+#O{Z%L&tGa{)TP2#anVE<<Jo(8bf`G1(hLhnk0{hEcRlo;6_I*)ciIT!m>OE7
zLp9WyGyOV6y3 at qHwW~^6 at 5Ne5p|{T0vfqz|zxZuTY_aqOt1n(BzEnBGpHX1>)T)s0
zaG%?(Qd8?%KV&3B?RescAKmP>F*}jcZC8~&KW?Z>x-!k?#Mat4A7-Spid{IR@)m*P
zg9 at 9F%p;c1L9XlljEaf5 at 0qu@wKe^!Vq25!<T)zBe=X(sB}6=#GzngM5W2+2YdSNV
zbXS{TA9<<lja5;6n3_kKFI8?|m|CHEpUxF4Pp!Ia#U4BR^7(J}XX{JPWGooHzRmaS
z-Au{a7q^L`8Q~<g=VyDTJENuIpZ~zOOMM%Wnjg><6nncMcf-Qjfj{4 at T3@SC-!;dS
z@#XEgV8y&9Yg)BJ+|DI!zwg&Nax<BO3u4w}GP~4M({7b<{bCkp$0u?G#cqjDg;<(<
zD-v-nd<qSh*Ht!pjzXRtkrCpuS?ecHa_L|7U61@&a{u>Au at qs7pszhRu@!d1_3nfG
z(t4=OwBF>s5w%Ahk;U_g=h9|pgT1VVo$9Y=q8z!;St1Ju98Xl74jVZ?sI%$*a7SR-
zaMB5JI6^hGG0J%|JGqgu;YgFkVoU7Ox;xQ+cEMsYhuCub_wU`q>G#%z8nK3&i&`ov
zdwijzzI9*JpUre?oRwXc+I=K&__)X08~Cr+S|w<^-aoY~BYZ15-(lAJq at BO}v1*N_
z(EEd&TeF-w$Kq%<j->}2Tkbu}l%yY}S{l>sEV)soXGXi`h_}-su>Q74pI#t%Xau^O
zBv9_XNcXvUI_JD<zgM5Ftw=?i_VaVUv^`G|%W2rp`zmOQz3`}XA|P0dL$V`&hSC-Z
z1QZ^<VmtXG-nUZUTs|HJ#o;ASKBYvLrcHN*RC!=Vh~%EvWVLHLJ%XrjyL;0p>nMmk
z6Tit=^Gq|9M&zpaOv#et^}?dKrl%23T$uvzJdbCiKk7@!Z=BYbEQnNY(AK_ at Kj&tZ
zCi#)4*!?^`AI>{lG+TSm^odI at nQeCW_k$PZv%2Uz9mdnq-*1X27~USGTx;izK`s0s
zj`#N8EBv1RIrl!%1?jcyJ|`r{dlS?BtpLZ0UcK7#eM$izdC$J=c<*{&P=Iq!_SDdq
zluhPBqwTS3J`0_G2BTrJVeK}pDQ&im$A=2*e6|<YZhEU7UgGgmd{P_w^Z=U(LXq}h
zm<`iR(_72a*KveIcP;hz=V>asdi#ox3z|;le;cSM{Hk1Xw~=@4ZM_{^qLab-4F!+6
z at GaCMowv!XbPO&0DTmH6(_GDWu)vUerF76!7_A~2lU}or<bA$=q-pj^$WqO at tEL<g
z><Wg1RIj(h at 2cJ>C))iA{B&8P@@XyAD0H|aKWKJo(hY6R5a5x_HoRA<V;XkfEZqG>
z#_GLM(eT)`g(n<&;)07%iJ0`IjWy5e6F<JtoN+oee6f{pu(+G~5x0+BnG)6R$fW8<
zJ7wfirl5z4pHgR=2zO at 9y>z~oA89?xI{k5uii=nJ_{TCAHa0O7Z#z4+z=^WZIXd30
z$9BW at l(%<mD61YzQy=11z_izV?k{pyKEKFx3t at Lf7J7O7%<mKL4|oh)Zk at gse;6C|
zi|7`UNNqVW)mro&b*a&Ew)7iS^)39=Gv5BB&Y~3ht9-BM5%#VZUWPo;R7OkW-Tjqx
zZ*a27J8q>z$EcnDlch%}rMsri`TpiB->CVVS<_wyH!IH*?o)nd={9va$ceE3DbnsH
z#d0JyreV9|gHopa!Sh)<?rOZaVu|wM>r#`JN#xGUJtwq^{rMjld<#ItP*AW5pFF{B
zV0A|~<1v$J$$4L8JvlAzz5|{91<&l|t|^I8r%F at iYJU*@R%<zAQo)^}HKP7lL+(~|
zZYRnla{B6!`NI$=yo~oN9jrLpO`Vh5!}V_Dx##6EAC_#QOK>dLkTw?sopsZ6Wouo>
zjaZ*uto)>RID1Y~y<$C^iZ`b5bH0$=OI#FZU&id$AmI;%UzpgHDg<1)=QzKFELMdo
z_}R*}JQ&~I3Dg}iRFqQU4LNJM^?58yE at C}(_;zoXg7$V#$2p%k!Nlr&YZ5+d5)omi
zJjJ&1o_l$S8S&H8827z*v)^DyDZP9)(YHSDGPDuZslt*K at 5wKk2ThY#lkt6Hdn8X|
zD1}m#JQP}+<Lgfr=zL@=Fz<rB6vMX^6~EV997iX)>pDX{#42z3*7i#ee8S)KI`%cs
z_{hDE!Pjw28b98Jp`NPQ*z$4PG%zMy(k5e@{HAdum4bJ2V(Ii6Ro|Rk+Ba*65ZNJ;
z)jYpp5ct{nDETdaerzanxj3PoNxs}bj{45@=*NPAj~^ZL<rAa^pyTH)x-VL%8fG#w
z-8nB4S6Oi)PPFzG^>JyBmRh<g%IG(OO*i<Oeq4H4JB?rb!A~(Z at u<v1aG|kpsF78y
z2m3q&Di{))rHk at uv<x;?^GO`bs}Z&N@>y$yLV2pqKUvifvGHCt`vZed?8aU{;>_y{
z?71|QWP;!7*63Z`Z^sgA`RzyIUrQef{icx^`*^B8x9-#v``+tJ*BB+zf^H~yX_!8`
z$<T86%<*S;$g1ziKa8mru(uhX;TscDF=11wf81aOUHrD>OJ!Z4oMF%(<DcH$ax-dh
z#v^{msf<o-Rq%#h&XJUKvQF`hbL at +^SJ$Z(<%Lt%KRkHgcF!wHfA~D&Qdx=oaQ>D)
z;u)crYWQ1Fbz{FKmP_>wu~ye3Ny#T><Iqpt^rh!tITI3&Z93!-PQ2LSIk`*oQO`qf
z%uVe%`594Lx<m`?gqUJ+#QfW<-3=jLKYysav=b(`{Uvv|_^y_}?-_)fsmi^qnX=P6
z>B;pLoA>p<t6n?8;ar*fTU9TY2A%#;<<-Gt`e>UVvDoC_J&tOzqFT%s?!QOy at kmZy
z)yx}CJt=lJsq()2t6C1fM79zw^|;a5Bl&ze_ezbLPWk<~Hu~gNpYeKf;FuC?U(Esk
z%~OvrbE|2}eR+@>afIKfRWM=1y7+@{eN2yn8`D8+b;W3*XP0lJ8qoDdzk1M><`^JL
zU#zv<(&xZ`DqZ>E%Z<~D?`zJyM$ccUj>(X{n>s2Y5FHq;U8-?0X7QqBB!k}B^|%-1
z_dZcI`pumx&~LU}wR)kVdi<@USLDkKUwi7{@60!aod&r^d9 at uDLL1h@5giL$WZly%
z at jDNW9UJH<qUJN)lu6e}c&B@`kgUqh&e7$-l863CP0#NSS8{pesf$K7XXjM&1?%eZ
z57M)*)h0ZPrZ$oNk(ePtZQU%gio7#(1{ET5Vd?VZ^JC9AbMHBn)ooVyxAiZykcn at -
zdd$@2VD<i*yp- at w?fdhoc1K>?nTw0)O4c$xVe3nI){h_iENxu-RBp+4IVOSMx$T6a
z?AxXgKKd%ZPQ{P3mBlS&Ar|pu7v?6uo{&~%SYK#6uB7Ai<>D7d{z9+D at 70~>Jz0j>
z)lEYB?3P1rxuh(G(mylhGYgEY@$Yot6X!tqH`q at 444*1mW;%YXV%4#7Ho@~eW;K-j
zoPO1#+l+<{jGu)A3v0(ItiLZWx~Y8Q=)pYS`5nHSFhG28ET~#AeLGw{@0iDR3ptFf
z<GCYSsT?9N6peBfnq8FFZ(JObJL_Dbtr4WW8D}6swe(Jcvu04)l9!%P!mjqFjSh((
zSr#@Zo&K>NaNg;9vh^5UQly4v+YApC-|JI%d~O~<d@#In?LB?cuR$FB9og}RTHh}o
z7Qt)ren1H3cxzvG(9OVfDO<EF at 90rbq-<7^Bg<N-nS=ELafuJdYYxPuS at zC<`$!a=
z0*OsR8`Af`z~I*Q6n}*}Y$>iWS%3F7S;0tBpEuq5r;#NZ|G|yGl%cB!<VDZeTq>FO
zdsbj}l*!dOslYZ$bx5k;<;9#x$qxBh>THvqDR!RUD{e6Zm=A?KKJ{w;{wo#RoE%#z
z=~7x_jP{Gy^B*Lo71Q;7I4O3Tb at X=aJ07TeTJfEKZz)EZk>DvG^#10a<k*#uHNkot
zawaEV>~h!f5?nTS$if6pR&0(Pd}Du1 at O5J>P0!Kat)`}~O7b2eOVKs-T}Nle#6GC@
zG#<WLXPT43EF3Q=)6X7Z?noc>e(J2B^Rt)15--}~TSkB0qn!RmWfx7~UHv-Y@^|X6
z`Oe<c(v;qEhXdEu_4<B0waGFjs5Kw{HEf!YltH5!ZbT(zF3I41pIPvLnZ{uEIZd14
znzPIvA!-iNQw>(ey&d8&<`o;?%AaYUARn+}Y<l}#ib=HWv8$+FKpNsOjrC921MI?l
zDqW9jwHjDd<{lO0v<o;!ot}=fzCpip=;hnpmB!qnV|lYQTe5i$`aR8Qw?ivx*?c4$
z&pKHtbALRX-S*i`IN$8BOhNgRZkbPoT{ayiB5ytW6=atgWq;aH^>b8<6!qQydc1zk
z-$FExX`w%+>f-4$x!sB(!Bx}(Ppds9r+Q*)Ef+o)daV7N%RV9z``UAH#6eqUBr?`g
zMy4fOW^Lko-xI_1`o^N2dlP*=-V;Jgvp#2r;wsI(#V<O_i at NUdsu@WlQhUE2oe(L_
zJVfC}DRiHoq3S|b;3f2livDDCH+2S!kszlv+V?8$hFB|`&6s%fMh`LJ-Zjg>6MpLa
z{Uc9%GBig-FA*87e`P2LXT3T6J)&$DBY4b6F=93HIVMe at w5bAz;*h_vh<kHVDiC`o
z4YB2U=8GeBV?d5xnA&?xm{(AgONZn9llXGxsPr$j`~y7izTFGw`v$7E+^>%u9v&~K
zoGCH5F>NN+_ifqQ at QL^^6I-M9<>BI_5hvxCjoHi>c{f_meUAA!^WN|Y`nukj)2GiH
z6Am&owbe^D_=OU!#4uX6H%(dX-<gK=f^XR!5E{xkxAda_ZAj>uow*!h;hU3dY2IxI
zDdmJz<op#%+=<a|qQ7#qeP<HWom&#U$~L7}XWN=}nQp|L=0fr*YsBV^B?Z&P#^Zx=
z!Ji^5F8{6@=RAMz=?TZV!=gzqX*MGqf6v?;rEFW})ki(=S7lkh9jCUVQx=)B{V}us
zUZLhgeH-!ZB}bRKk&6q_r7wd0gcEfHwlJm<48%yUuL^DY{mt|pUGsW9vr)9RwkF8T
z at rdW+rVnceQy`;YFDuM+MZ5A1LLN;r{z#Tv>Q<Y^rO at xt_P9!G!PMat>#W#gKCf*$
zt0?j^Y)h}0`nGs%c3i%jOJkWs9q{auv8}{xk>-~N3RRkP?7F8{`lKj!4C<-tQcoXg
z8_ at K6!0|1r!Q!LHK=daW-Um&N`3IcI9}D|!^UTOFC8Z3VJ7FBT82l;x at FVpJ43$)U
zS&qw6N;!Ai!L at Pz(#6+eRUgBvIv>kl&PQgj$rdtOnB9B!_4Y3jlU6nD2QdPtS0izC
z<}Aq$O)dK4{_1{@$wK`<M>1C!<oBu22VJ;7xom&TgD?Acc-MfN(W*k)b~}$`t8r;&
zp5rOqsjKphh7Sa0_b%X7&uo+F{iqVJe5x}wE@%9y!lBZ^Ky#jXVDCm}1$~RVOGoPX
zfd%bkRSx^W;vXs{jjPWhOJ2Xvq(kK<H^^AYSFRqlwa)exD(fEe=yT-rR65qhY-{G;
zP`0F_uEl?MLSIbwI^MZ5TN|gC^-9GC8&^Mmy=1X~sCm`RK3lEZpnSTo$>w%%KwkXO
zZ<EWnJqDxu*KSg|&>b1|96Vp|G<lOXr1rIs7-JnSs=)msM5%+qN}oG|^>lngBh6C0
zCUW8tnf}iLMuDS2rXSxjn4Qos%R`m0^A1_AQ6}Zyj;T6%zfY2WU`3LCyu+?6_Wee8
zs-V at nf?4hvKI16YCpO;<+T(mxXVI;hE0Jj-<q5joqE)-1QVaS&-5ITVw5Qw%B2T=f
z%R8G6eQbGMLFU?fJ(k7KRzx&;{oot5lA4f%ZMTM&wvW6U)f=>HmGGFU9~2!MS%3E}
zQ80BRO*8va&I1oBqq3Qw2 at agG9rB+2X&Z@~7%q*Gdh_Iyrb`E_ZrqF7x+kFd7E-wW
z$Vye^_d~<`Nio|`YsXa|P^OdVyWPuv+W16}^`e|^RA1%><BhuI9|sdYt>{^=Ut>>R
zq9$A(|MIN7`Ks$_<`zMjurZqSFV>o~3W8G=*K+O4S$gg$xO`5^6}&N|p-?#WO77fm
z=G_^`FHtURaW7sVn4kGktfaFg$+U%-0=8#m-0gQ&>rrQ}Qa!4T3uYh89_2jv>Tsao
z!-d$i&SZ<wfsZcRq9O90w=;cj4G}3`Ov!eH2OyLbGk%4=x0ieHJnu(Y#I%CFi2Kti
z$&|}f(%-)l({2cNR~@UT$Z;EceOXq%^q!~NR$trw2X5ZKem3=(qWyoJxj!9wqx82)
zrEx|8<DKh|T|$$jjvwvUJ|<kQ7NC?A!HXihc-UJ!!9dN(<)wMAW~7&hw9CUIC3FSm
z2MvBKDW6lmET;U-Z at _p)??Yt&ag`p8 at 1a{=Z at J?0jJ*fnu19_wSg{_kWqi{8!tSk+
zVnKUMLV3MlY*mwE%8Fp{m1;^(m6JFF_k`NlI`)M20KPo8t%OCNp9Xdc33A4_7ZRF7
z9W?J&6m3JVe-<T7 at yuyeU*y*2tI~J1<=zr5wPI_cJ$WnEIg+N+&V_^b!@IXPo>`3X
zAG9EHy=h={w~E(7Hb+Uv&@>o6*~7;Cu4X(zTjhQ1M$)=<%>ChkR-csv3l&nW+ZHs6
zC#!U}oVgJQjo}Lz6}@}Ca|2qrqjE7eKjl;H23;oZB{PSxT`+Fqs?YstO-)HQ8$xBV
zaePji5Frqm%tPHEjoe*54VXg2kKn3Va`*!#Rbte_k4E9a`qGQp@@7Zx5qmQ57}rV@
z;)$XFpN6HNts%9oq|W&a$@#s0Q3d|8-=m{7o8H~*J=wj5QH9*O4y2CfG_a^g5F at _b
zmAfb<Su%G%(J>(VeZil`YuMzlRq7hX2F`(ObKPJ?n6Df at h+65}$#}oCR2IzK5SBSp
zJa~nv at Zx$^V{QN~XkWYw1)k$@+*tPrkq^A8W`LIGy;cw?8jpk}JWYq!pIpp5&NWH;
ziVSLXKJWXc at 0v5AxO<5^I=UyNx~s4w)dh6 at q>dr#vsyr0;4@<56>>FHkqZ9kw?mCJ
z<%B;;2g36qXh}Uz0!9^qP{zW4`;!JoKqOs}mWjY1;Rf9Q<ApmZ$emS!1?oI3o%t#B
z-bRfQrW6eiqm0Fp#=&TiUi<rXfdM~Sw^UPOAW^7Ql8jgKsnpNG7i6~8kXB#Fh|k;f
zTQCvfH#GcUfNM=B=ow$alzP9-<U{iu0;49;;%m!qF(zN(miO_yY`NDmBx$sr at LvC?
zoXO>t%I>vW>n4RP1mksKNGx9p^e;S)H$Jc6BkwvC8~$oQG{Df!M{SaIz`4h+-wwJP
z0<WDGZ)NHC=B$!Qaq`_?6i{5rf*Pjwy8&2{GM4UuP$QAWkk$WsAySn<ADg59z5ZO4
zI at achn=WhZNCUiVXgb|tWiW}|VK`LOSs_>KyoWc&){UWzT?h at U?YcNr?~&tOFN==o
z^GxK9O6$y&QMc`0>>=qii4i~RjtyPzqOclIb&2TX&fyogGkrtu3cls#aAROiE?$7P
zjAtKz^eu`%L$VeMgPkoqb<@Q_b(%TzwWm>!JLu()gt$-=E1NSF&J(#}Gd!?Cf$m$~
zpy}AtdF(0e=i#w%;k5W)$L?Ieeh at aS{}hU62^$pD9ivW~$QB~EK|-+MKi!4AuSlN?
z=OEc1MS)s5ol*@}>yP~TSgdo}JT~IRpmj+o><|zNP4bnKV7VkW!r+h(VbjABk>sW2
zBDoa!i?n8wpw^x{-%;?NT#G__yx-2cUl0!bsjcQh!%tCYEG`^=fTQI?@sOT?F#~YH
zY;JpVJWZoyUca_9XUx|Qh`UsF at A}l+pBTuFZ4mUO%>JQNuxhr+5xD>2Wtm}7r<G>9
zQ2sz2`#puZ3g7ze{JT}rF;}1e7TP_ajKKm4A+HY<sw`nyd%9tRLw5Pyf_f2Z4sX7=
z7bX&YBYdy*#SBubt|*+EOEEb3VYN4Jre(G$vBf0k8!Z>ag~n)LaIJSN&%zF7l=6Gl
z<3f3IUx&B_W<`xqH6odL&(CM*S=-!H+RbSeeiXb2B*Y>&gxXg6Esn8`VZ&HleisKt
zyo>GY*=EUIXwr-=ySuk?e*%NS(L!_(iecJ7vR5+O1GN)a?PaA9OTV4R_`G||XXrT;
z8*ipR!-!|zzP0k33xa at 8U@(N at Y_)M)Lb1MnV4IV*!ei~s%&lO90t2^@cq1rIL>?9w
z9#<^?BAdZ0ZU*)v!*(}V6fRE)#<H^OJ4Pe3<_$Ek`)Y~M^DOE;G+v<Q2ck=Fz)WoQ
zX6;NsC=1hopJ6BqfyL-Fa8&#2fwLYqWvtC?lGz299`oXmz#CAgq=luT(L&sxZzS98
zH~iPf|6yi4a72=w(O9P+UI;{H^+MD-lOomH=VbT!LCI#SV~EAErw{k?J2oD-JhWto
zea>HmmC{P%zzIdFP<Jpc8A9UdYqBFr2WsSiE)WQLi6gb)lxOZAWt#zOCP&z^DgRer
z58D&rTr}4=*kroFwxK|@DnBC4M+T3K2sv=i at 2Bf^PT+o^Nyh*GrHM5AYZt`A>H9}X
zb15G<G-$EGMta?!lCHa=%G30!^~9Ee)B205!<Ca5Vh4($#5M{S#7o|)ytHe+Gnf+-
zZPdVz21_A+M at iUQ)D?|hM=Bqv+h&ap9I662Xy?80lu|z`>0`HR*q&OU&v%cl#6Bu8
z^&yD-wTnNED)C})GCAWwC{ZqDCcYq{a&iq`42Z?HY}c<s)4rMAs%4%fdDhR6vhbRD
zFi8JuGMtX_HO*XcV`v(}CpvP$^V_;YavU<DVbO`t6W$jlmW>Su&Si*X6jsLejr<WQ
zA~2#}dqTXh6eUrrbiZZp04o0>GMZ&Lw(6F`q!VOZ;0x(GIJOWAWloURw-(sSK8Y+S
z^fEA%M~z)m$4W8ciOV^3_`zw7j5v3L&8alI5T_d4OOUQuG_IXOi~KCM>@3dPw0nU)
zWA|!77A&MgHI;`k*2{Q()j-`iEP5hKq0pPv$LcwftX28T^t$Kxs`s$ZB`mJhUNyBy
zg;Rm*y&;cU>5D7|eB*<ld2tj4FiOVY5U~Jsa{`uS#D5Od$!ajlH+Fr7Z2D2nJU|~n
zo4ED(YJJzttAflNDGfGyiQVMo?aXk*wm(u<-S(F(IuA2aAK02YyMhyd9&skQ&lvTH
z;E<oU4<{V}PRGH6zRV)&)Fq2nm^{`*o0j<S#4B!W&fW$_&8c)0JKJt+R515o`%q8l
zAr`+y*$>BXt!pT^ad+%Ii{!k+;NT3hiA_ at U?qJjm@&-RtYKa at H&GjxCuRFgY$7lQd
z^W-N*5Mwn8agVtMPogWrx|(N<eA}vv%qs at Zs*D~3yJg?t{;U`QAz|L0lF{i^g+4TP
zc;`tA+yZA}soh^`W)+Hp!m*qsUBC#1v|O;OD`Vlf0K&W;oBv56;S5z<*isaK92)kb
z51V0^wPof{06{Bz-Lb(eR3S<mY(J<lL^2c)9nInxCts2-4bT2yilXSe)4T6`xdhQ0
zU&10=QYq=ms}^NXqB$AyjC<mju~_6!AtepP6c&xe-7k~=NZ*TC0}tJOZ#}uM&J`KR
z*f*OJmg?_z!m9_g>bKQ0{pSf6BUi*1PZbO%n1PxO>{q-NCY9%WhN^(iUUbN>yt!2U
z63rHf5%#M6iI^ql^@M@;vgUX|x&nK1U#@I!hU54v<8So>rWj)yOElZY(?M$Z_m=Mm
zRA>4T>j at BVyDh64aL9{lPRWeITxf(u_`Y_x{E<!Nr%`BTm4I{ng6I_f75YD74z=6U
zKenO817rW%osDN?XW)|8P+3_^$CuZExbzx-WFe<T6sX at Ag>K7sROouEI|UL8*ql7&
zRf=W6;<neY&7}!V$MJ*fAtb4uFYbCf!VR%VRkaX%{m|T$=2i3A=fxn~vVg{|*+)nS
zueBBpf2Ug9UCW%Qr(gBy)mG at sz01k5e))D%^qQqxQqf?TMxWc*1K_&p&fn5?M?rQ#
zpvHD~M!a)q at k+}>T&`JF>SH{m4xop*FFO~6qVPw0`6cBJ8h=L#Qr>Dv)mP44S5-~T
zZ+bh~X}&H9*%h$g%3heNp+l{J6|GL#jU9%_m9dL at kllq(x^8yMojfQ(RwKwZpov&W
z#|6d(h=dE^OV+?v;m>JVo`uNO@=D at 45ZCr&6axC9j!Eqt_k#i0bLQ*UJq}LYMy>c*
zti8&RW>bgVwv9-pj4iJ!3ed6IjW!$fPS?o$KAvVa3flHPO5p3Z&qL&@9(JDg9R~zM
zu{?^Y!!@*Ec8r8KK)?$Njx!-{;`Rgcz&{*LJ|(VMS>3kkEbd*y5X^j(k_qlx?cqH@
zrT|#h+U at NU!qSuH%N=u9L5RlyZzgNip at h7**MQ7_R>V at jxLawA-F3M7X1m8_*J$}6
zj5T2W{T%&c at O|MfJ_4}F)&imnphQUURaBX?-e<zK^210e<N}PGU<eO4z~~A*{e3UX
z)NjEfMs!}LOlYR>^iyQ+aNc1sE#i6^XSOt()~$fnbWUf~n_rU!pFQDO5gRyUbUI(w
zws=^=j_<3}-a|cW1sH)+njQlFY}$Xi-TNG7Ft;!}H&|oP_yQn{ob#4fMqBJ3FOUO0
zA{NP@=@KQ>q1c-2$mpJ&uM1JtNd(HFgYeA5H<XOC9v%=|Z=u7rOQ}*RyyQZ+S<?gb
zM-qSI)3NT_9dS%*k$rz^cvH6d?TcHYzT-;jrf1mT-1*4^mERzX=8hJbME<m2IDLpT
z;fD%jLI7rEH#VhuXICDi1C7z<R2NtW at H>dt_~4L13pxsTegv%kC1y%kPK2$1<+Jq{
z6r`0SB%(f!Z_kkQvpedihB<P2dYfyc_ at Q*|qlFk!Ub#BhZ?vshnP8?$T=3f!K_zgZ
zS^R{G7OF0Wz5L at r0F2Udg(!iUfN9`33H%29+rGh##?+Ej3?o4-Qe`v at sGFn`&FyXB
zsxb8z^j?{T*~~e-OLF325Z*JO^;cfBmw8KRb9YbPZUjNzzEa-2W?-gt+E=dcsZr8-
zV77HVNNzjZIx)T^q37vrVPkkqyPQwaGcYpB?cuq`sPNwV8AU(u`8oO|uI$p{T~56`
zMJ-NP$3Uf{?)?SF7E;e~5H`2hFP`EC3%N{(ul23CB9Z$_h*x0CI5(MC24a2dL6jRG
z^{uYw?e`(5K9fI>M&YI!wvrbe`;_SXIDbWHGwZ4SoZpuHa+0H#RbTUNsDu4w>zmcP
zL9;ov_Huom5x!olGiB$=1H!9^OfUk1hy0v4Gx!U<yuS<QHMVIIaH*u7;6#hJwI0tD
zGF8KR3&}(f=pY%?%5Jtx#U8hXJ%u_;j{?nXp4u9*aJ5-_)P2Rtu*EfRduf^=y~WIn
z23G#=TqLNjfMS at 7A@oX%+-R2!1#yikfm`A#)>{x=k-NMa*jj%$eaEPKfXO+&%leeD
z!jxlXi^KI6x>u<>nRIw4Ho!p71~(L)b6FKx7Nj#*{;CJn*&&isG-K>sR2VyO&=<C7
zDIUeZtasxna`njIhsVe)xoerGYwReAva@}CSs7hFl0?vLtNCM=Z>~HyvS>MZ)DYL2
zNl?eWM!A`(+Uj9*le@(?zSMfD0Ffd5Gk1Wt+hV!oEjWeoE6iE?q0JKtKEi_Nf=Tua
z%{KQII((axL7S_unh*_l7oKt1y3{thG`=a-cr}qAsf9HF at lOm#i)&Rtxt(K5Ei#s{
z`~Z77uJzp{(z>~iIXW{ZNC%^b3R?}-xg8rzxcdaz)qJ{Siwz*SicvOvj6maj at 45uU
zqM!~}Vyg+GuJ4f{iJ+JSOWg`bHn9MZ!Hx%Hf$vW_be^iMzA8}^3N%$ul{%?n(^-7c
zvxJy>JF8D2r8+uM{;op2 at qq``sV-TQYUxrHD2eS=Q1^K-;SJV5b_?8*yb;HX&e~L0
z56MX2mb{z5OLG6QjwwKjoTSQAO)c<kn~OVzwrK2FtE10O8e4_9LaHW%TI1gtJw9Pt
zQc-yrXzdWhlDTE2N?hN~M5<PCj!l+?EJjBk$yw+_xzz|nvG`$Z$9ffE^#b5}npM(i
zRTeD*l`gY^Ju&2Q|EKSE{R}wHnmUzo#qKwR*JqL;`47b9RqKv507XmeUN%T?V_vAJ
zG)h9Kc12CTwEk;cI4H-!fbGA`HtP2l>9`_xFt*=qqheio0^r;ML?fa>V4l#XN;Lun
z%8;znibG4F7C9}~9Mh01u!)?i?F4HwipMz{*|d>JWZ_Rnb=q0c16cAr5V(~Q*5IWy
z6nPrdU#nGtaEQnXXNOG*kDh?a&!xBkl1EpL`<t^uxr9^~u)tW*=8Xe|SP<M4U1f>U
zuxgn>Ca at nyq3PKVJ%<Gb1L&N`W(TTOVyX_yt63V1`2gr<g#tlH738SE at W5~+L=K68
zu48QYAwojQUVZgFd->$PmkG|Ex7|Wpd#gw4$9F}QO0)AOY0rb`MLgAa2b6!tElGbL
z_n&$S#1R363}qi9%5Cig5ZU55KCh;d53SIL0m4CeevYK7{cpHdDOCOl&29Y$p<zio
zzI at uZT22S(Pnf>#^(f$wchVYDMCCt2c5!4#E{28?c6Xx#Mt9n_bIH5Xk*Y-j!2T%o
z<;))hmWi4gd%wN<Z at +elzD5u2^s&icDqL#}Bi_JTK-?k+S-`PvriKYNZf8iFeO0Gz
z#V+#mxt~MN>r;}yO>XLX3on)9F0Oib&J6IuC2=AOT{U?}ErS;VtlDYR)rx at u@1i<c
z0G))OI4=tfR_qa-S2Oiyt?>KF0wfe at a5I_ic|>U5WQaz6up?dF{XvWYZ%4F<;92G=
z8J|Jio5mk}VAw)B{OC at Pw2+(t`c0ov7_#X^y?lpn4)4vUj08z114414lk3}RZitSN
zD;4=&5FL^2qA)PgT>6e=JgMXOM5kL714G`b8Uz_s)F!?Or=!K^t(xko2$yB at xYh;B
zo`**@Cp%W$yyCmqLy?=Jw0M9DGMAkVJVRVVX`#5C^L;|}V0+yHu>rhe0RhW+Ti*om
z=}3$+oTpkFFalyIlZ?Aj?Czq=imK`%@~q$RQc1<H?egtSZLme%uMgJf_SrSCF$;5*
zYNLR$6>hWUnvIHamlsfq$b|M9m`v1OKh)+3{0fKEKF$?Uh9TbOA61+xRYn0R19a at S
z6Wz>SCjept>qL*&PpJ;*KZSNqMMj*2;5;S at q2P!Jq6J8q48P5--#(=P04k*FRv_&m
zFeq^xl|S9o1 at L^QlHDsf#a6Amg@}`M1oKp%ws63YLC0F)0`M6517XfKdc|dB%^^n@
zPolBP*o$C%7*?$S<Y|@%_SZww1_JK@=1UL6w3+uF5nXxqNb7 at vaG^}v6JRtjdIP8@
z#o9KFTkH=Vg^LW*{((p1LKo>_Z4?bM&cL4m-XKLC3~=}gV{9lFsD((?(vlfy0<#z}
z;uAMv5KGHN4+{$iGw*z)Y6~QG?GgMGMUox{d*&kOJavHABTUsnDfTD&ME$Uduq7c3
z)JoLc^NL=$rYC!FKLD)#%NmLTCJ|(Y0ow#b{QvT0;}<U)m}wt1E{<ve$P#XO76GI|
zfKZ01{di&#UI74=C^VKWh>R4s{aXUVam6F$mS=}yoIpEV!-V+ThES?R3|~94Aqq>h
z@#`R>=H at 37`1ure8X<H104b0I!O1 at T9eQ!}Fe3E3KM6nH`9ubHg4cFb1_9oMk>MvY
zDtO5KB_iONVDYHf5dM~DNz?luK->|g1jZ+4yMq8@!DOR9r^Uba|3Bgl^VSR+Am(5c
zhXC}BNgeHLGc;H$AivLz72hHJ8fo#a;ya2#mgUp8&-v_k8*ZlD>c9|#YD7thbHDd&
z at tt#uuXcR9?<x5_xL{+~uHPF<^u0CXoV74*iGsd#?1}SiRfMt8!wbOC`V)e5W<HAl
zsy(;oV3dN=GpR|aQKiGaFFb5F6hF8i0oDeH)Wx``I%D at BujXLNE*vr>v*qK7vckhQ
zwMR+K)DA(oU~B91sokpY)Ul|R1xCC^QDtqROm`jNPX-sLNxfLW`TgEz5zcKw6RLM}
zWZfAWZM=Rcb~%1t?&$8q)^3AU>5Vupw8GpW(&_-51>Akr9(}nc)&|gmY38eXVYu+y
zhR|KGcY)*(U5`1|?ygHzSn!=jKv7&#@%{p`RqcuuWaqmV%mUbBFc3yj2yJmLTVd|n
z`wLFqxyZS0Q7-g at bFV)uV~<N+YFXO8=O%0DFjKp1$4?ymSY@(s0P3B5sfHb)8MjRQ
zp#9dd%$wDI=6<^(H at u6;FvPPV9n4F=D4|ksACs9`=n`tBX|#v^0IFOci&~#6)~<2i
z-8J(GhEpQEMevx>3ca=s-*Z<F$v%ISSFbl#Icmua1>!W<R#n$Upf6oDdA(i?&Y+M^
z*O>Y^6xiZ27>rcKSldXx=R*tbPl`kGs;2T%zxDD-GBmklQ)z_i%o8b?cPYqr!5|F-
zT6=0uoEhN(W<Iu;OS;qr>Nv8;+FjC`a0>xq!zG&S7r_7AjLgCY2e!@zwjP1%=S@&p
zAq>%zA-f1107N7h4b<BhU~N3?g948Odts1wKIuZ!M3y2=ENZ5<)+7vB5CaVyM|H+H
zd6^GhfzsWB8YFgej^i^wt(Ge}E2tA`V20o%y0luvPxvYnD4MeRyWLAwoKo(ZuKpG1
zixZI0^~U^heEX&vceL<hUWX-LUbNx~ARV!664^wHX9jc}#&!kZr?H~hI at HScOIPex
zGbam#Z*$#;C-7DaYJudMUDupjQeE2IGf9SLVV4xmZKBlr6b&%JOWo1lnMMGwyl7HV
zs^LHnyD$nZR-rku!;dawGZ_-=TrzpjZ+ at 7BwBY!~^V7)@jjg=j-^EjP=@IZPSOF)|
zOT^{3<$J*Hu?8BXXRrtS4d|r(^AFR2GK^Xo%ke=3wUm7r`ttD-8~1((5W50t^{^NJ
znG$51KT#Pr3>Zyzo^C%%|M?DaJ^w3Mh!G4JF2d;@-rbn75R}y$!9Q66IO7dezMX<!
zjF0K=M->?#`MhP|k8U+C-xp?A_gh$vb^{$#MV9ZCCsgF*E-Pqz`yK- at k{s7+jdCl@
z?wR37FY!QuPUq8%S0)#(@TRSMVTju(H;=v9ReCNkEdu3Mf=tlAYUj5nwH3CmzR*Ce
zu7~xe;9vFz>+{|^`<CbIE!5T01h2t(3^6lOcYC|&vv0YQw?*Mc3%jwRZo{pjH978_
z8&6kO=CA%)M@*p31z}?pgO at qxo!U4bw_t(0T2Tm*7GK1ERV=q-`G*N$%mhUC;ZfG4
zl`1MPtD=t;s;j+UvAyCr>2rGl&@>d~*RZ*a_{`d<=7rcU4H5k~W5(3k87>TlI8_tX
zew`YV>boa=g9zaw=Is=svj^vI7o_WE#6=BcOCO3 at 14sb<3E+`-$?W%irdDSjGop2;
zC#0?d3<-HJowa^4dtU{MG8<L1N|p-$6kPqg-f>}$+>q2|kO$LS2FHWb4EPw at l|Y?^
z``ibZG1gkD8kKT(Y*76%v2fWO8vwduC;Lpf&=Jc|^|1M#u;$Hq(Gb^5kaX328ie`1
zIl^7BV}}WloTA6?B0iY{-O)i|bVT)r0~9Ao{1m(#rIsNUOQ2IYRto?kDFCejhWH_8
zR%s`8biLBx$ve*v*oYaVwRspV*SWpozK#k(<6pJGBL*fmg%Ly3cM0k5Flr$|vng$$
z(^}f$bXaq=_;KJT?hi3I+U(<a`Rv11y|?ZL!<ly at oP?BC3N2 at B3F3bo(Lof=0~}Rh
z^M|p#QXmCf4#0bgB^^FG at -9Utm<e5Y-VgieeqiQ8n*g|2doOP6ujj^r;{$;id6u_5
z(0H?2PKLr at nT6Q4@gOgHDbzMH{?CA#L9He%GYU*N_KGw1g`Y2C^{^i%?xp|pciVJi
zfv6fw#Rt1J^2`G37ui#;Z;`7<C7_;TSp at T5DS|W#05e(i-&y%^I+wr0wJ?)S$T=w!
ztlCrdg&xlcLUuinwY6M#^v}-v at DbUSewaICvvJPhvEK?C9*0~tFf*w10RGB$dD23?
z7OrD}_E`<FD0HhyTJcrv{45J$dP4e&NV`HPQa15FTlhI9Rb9q-;FIQF<pr!ar4~3j
zcmp>1fA>&LHPrC7y4fu&0gCqE at hOn2{=&vj$JQUK3drS}czk%&SRx}5TN~;@a1Cvp
zy-}8zQf-~YkE#6?^#@NPAnL$YeZmSj^DEZGV&<t~{Y%l|*?CjfxHV4TXe<5B9fTpv
zhZ5xN4ZwNAtS9)E08 at rAY4|Ukk&#T_p6b%0+iDQ>!hQw`-Q9n6_?Zv5PC%fmH+Qxz
zcufnyXXtxy<_?knzH=-<X9blQd)U|J37?MwJ3#!kzZmwx(0re2s)1~v>52qO2H?@~
z(NiRhr__H{)po^04~Lp$-p8?jx;J1_^>zXpJA4vAEdGZNzwUq|Aa>!0B#;bed@$*d
zC^~D|BX_xx4&PXU0g&<El=;Z4;!vGJlsljD|C|y&VEiiq31#lTf`HF5$L>+Xn9u)z
z*9d^2urRQYi(hx59HEGhpZ?D0w2_IZ<o=_Ils(tv5rj-4IjqtL#UI~NL~wzguvQnp
z(x52*eGXyg!5tw3Dg;CNb2<Sd{QEq6QpE~+=iI^lb^7JEDfw`Q&d-!R`F88zB0Jgs
zW9JW?HVg5w4P~Rg%SL4P)&HoKHBcvwe0h64sjp_UIngA8n4hlDHs|PQ=;o^^<Ue|f
zgj=8aoQDE6)Gqj|#V|!D){6NQe!q3_KNH?p>TE8n!?iYU+61=NZrwLP)LbRu;bZGh
zw{JW_Mt>6$JMl&1pirL3e~lTB)Mms-tiRzEs$djJV*IyIM<r7}w0LQC0lXi91b+mb
z+6iZt%wG9XuRDqwvFeohr_OoD!4BqyycX(VdB9`<EdR4QWAHM7P>JOGTC5oGxqt;C
zk-YXn at y|T+jZg&K^q`mw%<D<<N7?&k*;ntU|I*yoTL=9Yko$^Y1q)a}!XgRw3DY$>
zDfJJ!MtHJGpYb at iD$7`dMCE58n|ckG=4J)aetXN#&{VKmvk!(?b at 3f5Uk&cCYHAlz
z$>$a9H1K&l9365P at Iy-`SrO_a7MAYM(>^`yZvW-~@d$XxK>H6xt$ZI#tIE+O&6&7g
z#;6?eWthq^l)f2Ocg}O-e%4&Q(@>+Y_;LZbt$^Qi5a4|7HQ%^t+!sAi8M|%MJ%d8W
z2k2x(Xk)XT9W1!G+FHH^I?BwHGJ65wiI->jn8CW90-QuaE;}zj3Ahdl?aET0!MXt+
zTJEvKR4n at yHLSS+Izo*f@{R$O;hta<6NGQ{7VA4B=m>;V(8X#-N5H4Nip`#D{oPB+
zbdduw7vJ)iDgwRXS|w3>b{m}I!=8h^t|ko`S^R>6xB4QX*jgVozyuY$nAn3YdMi*T
zKlg4oqbN7Jg7H<YeOi_UAQx8Lpg^Sh1%K}trYs%n7<x0mEFaU`J77`>zlvgjLL(8Y
z!l#Y#^}_t6yOB|Fcq}cePD3i}vEgG;o#5O!Iw8jpYhcDO=V^4gxH!WVyGyO_t46^u
zKLqeC0JoJKs1;$AA3q<3%D>`{g7C4+O{vHbaN(klqzld*q$;I8I1f;GEIoS?EtD?%
z_GukEl@@BnaJ at u~J38gci;^DwjK(eQZM at +dT<gx=#jfffhC=8JP at kJuprWFSYKIRi
z3 at qbXCs6sN@_<zXrwEOK%}07Rx2_+0+hUt_S8v;*hXYD??D&|@U?dHdT3~bg+Dog7
z0=s-JwI*=)K=_iIcRcPB6|(aa)v<}Z=pM%aH;b99<E!OPBn3Z3NzAa}8(*`eM6SBS
z1;e|C5rDtk63cml9N-7~#K*t{YNtFW<oyhpC6nC=k0Y|*&?E<FR)`CgpZ32otANU5
zkCOveCEOMt)oyB3=)W<7k#cL15IQeRsLk>yG|kB_BKKeI%zu$ICj*z46JUkht}Hn~
zc8(TqWw`K}lZT){jv`$6)FFb3_x3IsaJMBRsD4-Z7M0e<+!ca}$lcIZ#V+B6QxMA>
zu;#^-F5&HXSUw(320X+(C99swi*DYhW|}fZ>A5<BMSa(#p<XrYZdQKc{a|EWhpIqt
zg+mv(kMuMIJ`~i+pD~%*2v0jlPy<B{A3faH&hOa-Kor-Z((PyRCJEC6$3u)F76MwO
zLQat|1o4#FXrdq*)pkx7n at kX2+M(T?cR4VM;u$%if{h7iZOnENSCSA!FHHot1}_9;
zyPyQo@;IHDYwx9QTmg#$2e|@rb%CwaK78n<C)qA}>54Fb_cg-W)yQezg{c-TN-bQi
zt~S;n1_}U#&Q?LFgpDe$m4G46!WAfh5w=s;4=DhzQQ`#*kKS%5i7K*&wiLQ=lYo$S
z6w-__<bJ>dCXe9i%-Wa8I{D=N7fX>lHGAbeR9ZSPiO0wV&X800x!D0(bVbQF8-8}j
zP^wzI4~kuINSyV?0c@$p8YJ|>$Mk`7myn!u%ZzMacl#QsPvl#`g@{C at h7e)D?^2yH
zJtkg3&3((>&1;4>oB$xYr2%sHTQ)5|?j!)gb^`|j!gWV01<|)=;wp9r#}f{*f~CGZ
zjlQ)E;Wu+;W_NpL7R&~JdBJhR9BUxKU=p1)I(o}5sqS0PveuUfS;Mr#{?WUk4WX5M
zsQe_rx!Nae)84M-WL>S<PFc5p!YznaNRISU096vQg%;m?KPyn}4dm;f!?_SP_`-4a
z1<S9j)#%-<isoATms|=J+j at XhcGQLJ^q-1>0~eUWP^mko<U{9YFMB!bE`;|1B)^C*
z7Y?U0<^{#FM8~J5<`>GAI%1w8e?EZhnwT7e)iDAvF<X%MoH3xWaLvgX!^6G2I^R*0
zurLn%;R;G(xe|x8rr;IihM?&wQ9{`qSYHSZV2min*!E2YarKq@{-JGeP%wNcQxz})
z_f?*9JUlU#-F<axdM?o*gQXz-LeHG{b6Qz7T09q2A5{s&(&v(!8H`D54L&-q4dQ4Q
zieZX{(BUX5_VP0|UclWo{uCg7kUxFl=h7(pf`=3~5)+0_KF&<VSEP$#Q7e30FjUWB
z#B-2M&Fz9{+uDH<@Ok8S`9)Fez)!JBmNXJ|UBORSCo#27Z{qu at p}<$tZ%|`kUFP7T
zfvd~>JQ&;@UXNQy8DLmK)?$n<t(-eK3Etg$Kq$_@*ml1 at Al`hHC9B at bT#M8K_N&|T
z|D5hyt49inB!QSMR9bDFAu9QEqasHiKgBM5V at wVmOW?*Jho)IxWZkn;bIB0NyXBT|
zeDIyVc0e!-Q;&KI0ji(9%B05&ivM at M?&}3lu*iWn$@%&ja*$N}yGWm6*J42x-O8;F
zHaHr)E15MD3+P7z21lwuN=>oZr6d}6C1*b9Q6Li9$_2Fxya`_fwWdFQqgF|aFEJa%
zV3BjJlFj=F9_I7`wTKI^133()ZvjIDU%1;Zba;S1NYMEI`brO=Gt8C3)Gvvyg(-u-
zeg6 at xU}S(6_j%#}(HjoufQv=({D&R>`#NYM(Z%>LQbCx!6l6f{av1B$KLyN(reo3w
z|9 at bg99#+ at O$K-Z#PB`MKSVRQ!3glx9}*cR4 at 2Mo5rUj!`K!pyH)8*W at IM%$1k<B`
z3OGP6qO9Np8BpfK_aOgPIe_r{t03~lRm#o<msAN_mD_h7$y15l`AzYMBc?!nrAZav
ztdl6rR!o$AK>l~q#b0Wd(llN9#BZ&0ast;v%>?Oz0`G5ugJ6}uquKu4clH#jvrGhL
zS at x?ne{I%t%q{_X`t$HDmwzJP at otoz;frB>QC3!M{XI)^<IyPpzoFtK?%3cOqRmDh
zEF|fEhD*{vtD(hDTV9sgPby$7`*aH8yJd5a?VW;%Zq$fwJbzzPR at aG)Cg)C>|4ep!
zRKRyOzE~usMyclVzsKS8^&a3HDxE0vpH=$r`Q1-<=ND>Hvah^&AOzMP$)jK+{d*Bu
z<FCo!Ys`P^*q1#x+K7*!*ZxVt at RJbSJ~LYF%nXVBt*!xv1iJZa at IS5v<5$1~?GyEz
zfH>kjGOUHtlaKu!SWRr)Y&LJ9xA;o*Xfp3MTkx~8$nNE+vi at gRL39U8muHYp8rMz~
z^|y|p_wwsqv9tNReESd<I5fEQar=DnO4X9zZnnO_gUJ91x3Fc^g&>J2`@VLN><G-U
zIV;BAYw8|51=E at so)&ZUmR$$mP!g*8V at DH!j%gL`kGz<;eMm)*4TYjhlUvF3`)>cT
zAd~15otC&ND$actOa}e&=1()ETc>YN_R2JS6vTZ5OcmGFrnrI}aA~A=%bVxLzx at e#
zi-yYv3u*IKtPK&XR+pw*3@#eagyGOO7OG`DiYnOLn?2r1xg+QQZE$i4lv4&U-IZVu
zAy&uQmh3-QPiK5{d`h!b6;ra>rvF>`8o(H+5|7 at 9^Saca85?xe6kHODa|sOx2dAjN
zj#?9-v!G!st`;JsAT3vF;xU%bm{MJ!*4+>cZlJzIl_gX}=YVtUedh6>Qi%41cV0_{
z<sz3W)jCX6i2|R23jWv{NZ|b$)Y%h(pDtD9{PiSY>sI?AB~-pSd2_m|->#^Bq<0bk
zPy0gxFOZ at w=hsrcaI+cn&P{&#+`qjH2O178GD&>w&WXSN^vNES!PQHYhh+N9|8)cq
zq9 at m$?Qb7Y5l6Iy0DSg$$AGff!HXR~YFXoF|L7_!xasi6W&hO6f9Rq8b08}*kmX=*
ziF7Ii!Yy2o{Qy at 7vL;*ZhBYW9ih~=;B!-f7tOd88L~E%M9nA6w at a4O|L73vc9=19C
zR6&&=>&}0`!K3G13P52XcKz8j2T*!+L7;F+WQs`BEvdt4IwrI^a?AMyh4-`m-DuZP
z=$=3w11rtR^+ty`HuDR<3Rn$Qq~PCeb*}`eT3Ws879VuP<^x(lbD-ZQ5G>(8`)<P@
zS%7_Qi1nUiWv)FbXd*~T0{gjx92}YAXd92?jZ!K=5kq3=;1uz<H4WLtveA~Vr7iPd
z!Cv3in at a0MNvO`mDk+8R8y@~WL?|ia{S6bJxK(lRdE{Rc`DcM__ut<|g#J5!f!Oxn
z!!coqGSkKj-&Ms2W(+R$B;=|~1dxvO;Cn~I)~I~V>nJAi1QC?s;R`LT1OG`!h+|Cn
z(N#Y&!jAycaLJ`>Zv+`juG!!2YbpFZO!r at l!s%?RIY4q{wDxnd(8t?mh{E?KC&A8u
zgE)L0#Q#NrP7C-^!BfAm>%oe*R-Bm<8Q~PS at 3OB^oebd`gyM^aMdnaoz3JtH`-kix
z$ZdT<vU75S0ABC$u<Sg at 8O?z at Vg0Z>!M3~?i`>~gCJ58kg3LzlmCdQ(-rWW4xBYP0
z3bdFh1P)Tyz_nUgbe8U at H$|ER?H564npv{>`k|4cVAyMj2T*R^i(KeWi6|Z(HL&GC
zq-{M82%&8?ODWG#ph&R8>7gs&KXN^+A|aI*_h;o&^!UglB$DV)pRIgk!XfaJg#8mz
zkV5eym{d1^aP<=Alt}Ac at q*+O!10gPvBe12qWN8yDPIvoXQBPW<IA=u8l=JCVB7!r
zyjurOoFzAf;W}Wf=$AHXMQLw+ueJdMG0^_$bEUT;;ip%Dmu6U3H+ at A;!A=CBBhLZe
zWq)7=2CI1QL(ZYkIcM0MlbWtRf7k7uyR16NY$o;Rs2ZH>g0+FmjMOe(fk;phZkq<w
zUV~E!cnmhxz)AF5&aoa8gV|-PN&`lr<@+d#kaM3rvB({t13S|4BsdAKaoDEH<=+J7
zdd=bNNxb)0<#R^B?^JY8ZIlA#z{2Rf_}%Xts$=E<bkO>MMZ`%l5U*pe=%gR-+TC^C
zzGsm(&5)(BDmuEpn>SaP%mR=rX at QDjk;XF~;5g^)WOpHd`v-A5HaJ;I3`&ZkG;ifz
z^%fR)#x$!HzP(jOlK3R;r^CE}MZ?%WrELlii at ClM*xJ>10UmAXz)gN|Zxh_<<&boG
zim_4^5WD_W5Gu9%fP at 7E4C0*#K+X9hLypGWQ3n?lDvkQ4z<Cn at K;@+>u7r;x_c;35
zuZ+kXqQ%PtP(2^=_uz>#%)aNwNRHEWvkH;W=Ljgy7yR#n+J1Pyu<Vo}4egJ4%qRco
z#@uFX8&#OtaYlSCE~F=dHUOmSu}uQFg$oo-R(ug_9F`EEz99M02J95~A~>7Fp$|oI
z{VS#R%A*nmCTKn)6N2I at 6yaaWz!pL%_P<Wk$2FHmsXD7C4hf+noO~m|wRqrcq?r*Y
zhT}nvbHpv~knF}y?O4iJqdfmT>N`8}JbTkZbVs_mb<q<f+0b#WP1ygz$T3p3#vpeI
zs<-J*hK at usKJWdl7IFXw?&<{6!rJ<v{n%keW)i3a5WnyOKFzRL!ulnJVsMMIPx2eQ
z1h_9e9&9&Q&$#eolq4Vo<845oDr5b%Rf&Qsf!ULqH%uzBdue}w5y1NZ$$}n940uLB
zX~7e~*t7LDIB^ot)DKef<D3*}0uE3%Z=@eJ=qRUnyaE&)KwBgup9Uco^Rwu)U%6T2
zquRN_P2+ZPS2Km2Qz*2;Bap>_P>QYlP|FM)xLBb|X_%pOeFyJ!i3rCQjf*XXq$4i>
zFe%jT?&J`vof&{7+h}C;rRn|4b(GAu7cdhadrPy4EKElG$D;e3u&s-#?HhPEa0C#u
zwyZLg70gEUNHhMqH34qdG?PxMfmZgnA-KKV2>+T&fjd7s(PuK%MY0ZfI;=HZE8fLB
zW~e5mq2#8CdZM9xz+UK10-*99A}jVv&y_tTEtwWyBX#LkZ4E1iI6dc>mB;tW;&=I`
z2sf-Ypc43~Zp9c9)E5cWe_>lNx(-4{$~rq|0}fovvoUZ5M)|Yd;Ye1Yj5SWyi7NuV
z#;qpedBN?eD>EESX41fpf4yquwJX;9+nd#EZtN)ojow0N at eJ7lJ64jVL7@YqMIzp8
z)Bs#@W at q-Af$$f<zw=ytl4?Z<ILqzQ64mUt^cAVZ?3??hz_m`6RcEEX!w8{!oNV4s
zzGxO=NwZtk1K<(Ynx`t@%GEg_WI|dD>6Z<7WD^O&r%WP27zd#~jvt+6zaF(4VjlM1
zUEy^woE~6jQ^qRZ32k*r%=7aB2VL2g at Nd?r+li?z+1wN;iOEOl5q)oK>{{#<JSLx9
zAl;z at 7BMyFUET%eU%3cPN5p5&Vpz6P8c2Q(tEY~;jM{q-^!4^26w9loPL}Ua1&93d
zk^83>lz`n@*o3*-wVj?InZXeS?35rTgIz+5m_&9ZihGj|o=I8)=MP|{i-h8K0hg>A
zE$(k!&3ggn`ve`xnc&n4V<mifn}Z%d$vIPrA}<5SV4)EFDj<3`O#wvOk>9DT{8d1Q
zUm%&0l=i(ZNRG{JzTGRB_vL_k&tt_1Z2OoC_E6%LLjo5XV{4<FZUI(sjSjFya59Cn
z#tQYJ+S*GkmLyI8dx$(FkWj3RO+1a}{y%kGeLPg at 9v`-?solziT%?yXp@?o?dKtN8
zoMB8V#Ms75eJ*8UDK}+_HEpMs3XN at aRnmA##Ykz8qL(YFkC(}%F$tA2HZLj4Chgwe
zbB at _=pW5 at EV`iS`JkRg>J>Td1{e90@*0|ESj*J$B2>UB)7}60C(Hh4?jW%6J>eKtK
z<Wbk_)IWBzG_rFZy)fMb8}?`13*4|EHjA7b2uW=Q%TI~K<d~+fef*S*R{SY+!mQ&x
z?pt|{R*o|>*OTqt$mjGF9`^zb`F;Y at kon7@c9FR}Ly0!SL<LA|_6goQYNx~K1GZd8
z at cwxpYKez18+(gohMwnSwm|Uw49mtbfZ*-3!qvKDfPmn&#ge^IyfCxVwm>X6Zzs3#
zP$``g(NAvR2wjxRspRID=#d-dzrO5B?dFM=M0Rt1_!-#n0fG$cF$8c3ARkE-j-NH1
zP>D4=bk?q(=&AA|*Gq>5TjkmH;~%nQBVWO6#%myGK}*f0a|keL)*JO(m7MH}S=~T>
z7D^z@?ZzgPtC8NCjd_PXcKrf<LLph4sz#ul0k at L!>lvPmThs0YU`{C2yk1BH0v`#p
zDEvC(;aN3sQIoFy_=w(kB48X0d}ilx%P(p^3muLiF_LM at 9~iwM*I-acv8Noef^2XF
z=*~yqm?SrKcvcCRqU3>NbyYKA2<)(>AqH;!m4V|)L<<a)AGO-u|K0+vKQ3=;vo9*U
z`J<UjNLfyc`M=QWWN4S_NFUth<{0qn14Z)Ez9#$lB0XuxUNh{y^v%OHZQY|Tz!d38
z8S~Ej{J<-78=u at jsHS$w!H$9w{OqC%v$N^@p|R at FwcS2u81eFu;_#4&j2N80+L;J#
z*)Oh%>)u^@b5(4L2TsHmSX*v#fFSv;h at QNAttM_w^Z~FB^DPGSqz+eW<Q4Cdy$?mD
zG6B6Z)l>>a$z<aGoR+DD!!J+ZP{&9}Fq{WM>Oyu#FJ11E=1?$AUgQ`|)jsPK%js{X
zxTU(+v3~BJ!Z?0$CGvM9Dqc){Z=6oz5$(b67zb1O(oG8I?zCRF#_Uo~`<s(YyFIM~
zeW10fQSl$<L at q>{6QknAagbK%cu&0k_-+f>-`;X9afGfFeUOSin*V&Z(eL1&gW*Qo
zZt)fl%)izU^tHKMAgPFMzG4{gDz<DNnUKh1+V}I>wg)cEmZXTkDR)^sz$52mkj{8f
zsR#|TD`|Q9{2>dhRQu=wD>mQS2+V$Xc91+ at ZN#DaRd&eZnSib8ohqBDhqT#Ey3(fG
z9=1c0fnI&Ft(HZ53Qy6NTN{n`<;PtBdpIj?4MyvxtbH5HLI9>}0h at 9EZj_s`e)jR|
zqY(+=-0ftj0&1yJgp__0=)D7xV|^G~R<w;7&~@pnC4lFAUFwIZHB?Sd?ns&9`D`T<
zweE1x12==}qtPbCldAV9MH(l1oEz26$RA-jqvjGls?NWzMyQPpJqWa$Gsr?n>BU~U
zOz((5d9B2=D^$7E<~tIx%(nVePo_g5l{xQ*X8!)pA^85T3;e_^-MOfJyr&%-u8Dto
zbv?8&=!xJyqzBVTDuGbgfI at AeIl-uU2NlAi{TZeLxXV0<<D+saHKJTh`1%sHR3d;>
ziwGa`RG?ivFli%Rqg|*o&x=|^BAKx}?X8{$g_S0o>QCCdn1MM{lQh?<Vv|-|5?R4Y
zf+#>0nti-)ky9|ebv?laKQ1ICQn4oKNI(pmT_<DCHz4Z9v&_=4;rtYiuDX};OTk-)
z2-aCv*OZ&&wy4#byQH|{$*P?((X&csneTPfpwmP}!dN_i at 4FB08~eNBLK<a0QG%9J
zJ#R}(EkP=TEr%MLRu2M8^PF*7{G5|#eyI-mIyGGsr7oKos%{U)h23$s9AR)gLYUM*
z4BoF<-TlfC&iWT>H`AH=g>_&K6j28f(B+SV;iAp!gnGpP^r`+iDpzDBp9f0=&Ls<n
zB&9M};v{nd60za#gt_gtjfahVW4{N0z=*U7ouyesqVU{^nk5a9Gc>J=lw8PLXnmm|
zD$bk$NEHT}bngISMK at tANwiDNE*Q=sqf$-NKK35?zd!p5rIr_x6fgIu+uqX4JVr1;
zo6De^Ot-+~eZTEngryjlZz387vaGDpj7q0+gb%9HwuksKM&D;89O8!99VqsKvMY6C
ze~{0){HCZlYb}^fRM(3kLZG-X%%AVxK;)absdmXDkjse-JfIFv`w at aPudCOgpeknD
zWHFBnHx#1~y96j&EohtL5UA=KVoh=RLp%vZlUDNml!uiwVlrhw&m<}`lUsvq8Z%dH
z3cGr#ZQ0Jw;Mq*}>MYPv*OcdAxh(i9sG#`ltvqgcRZH6rvsDEnlb~;v$*qP at ZTtv+
z#QH{7!XHJBE`&&q9d(>8d=3RoWZD3qwRgd3y!%k1$5zLT at W1IJw&2tPcHWCS8M9`o
z9ri?o#W3#osM5uusNS^vOxUBtkc>f~I2$=}%^*q>LO2Oj=j?W{1WOEVT5#D4My7Ht
zku4G1s(#%Vc$qEP*pOJ=1Ju?I8T?}cIk86na21|G4!qbcA-ULawbP=Mth*9}bz>!k
zR~I*Ni5Kd}R7hGN<cpLk$j2~mIAQ&%er&oo!<22AzLx0DOekR!yr(UIHez}W<50ki
z$A9}n`-rWakOO^(zfB+H1BG&(e|w=L91|Z7rTFCaR3s at tR&Gy!@S)NNN+VHu4!LZ?
zqv1ULc>l&Ui3w*Q9JFysZBQlVE!f&E2aFBoHLMw&JLDmC9JnjY0R;P(g}eoG%=7*Q
z>;mYxuwT)f;n|hF&j4?5eIdiZY}2p{MK=|)!M{KS+qNV7z=ia%s%JN2p3(``o>QSM
zJ_k8{$QIm<349{Eb9%CByHClrd>9NW&*9wkRHHKR`J{s#nH(R at H?jF;{;ooV#@{6y
znIp1^Jn7=Zv$U7DOjeyVjJ&tVH;9km3yR`7V4D?oU{1CiE?yP==tc>L8#e+FoVRSu
zn+PuZsK~;)n{CauTy%nd*Px=NezemS5uP*=-H{8jtMUKIt~!thjB(+v>uca)&W at Qd
z*|5K&SE^u9K6bB7M*~`y7?qH>jvPF47MKyp(b_a1TnXM(c?)0<WKr4bAQ+NZ1gYNW
zNVmfR4)V31>1#bwKGt#GH>%^5a%ZV5uODo+G+e05V1*S2%wvb7#=8-`*Un%_9@#>{
z-x2GV?yV?qpq%r2yrY2+5qjx}?CjBMi=9PY;aBcFpLMJ~%^16Uf%2p9rjC>V0r~}X
z6rTQ!4<V39>*4@}#`d{;*fchts_qo5TU$<VtiqZ{*SYSWi?PLOPH?DqM0R%5!|t9^
zh9UHDF8e=U&@|_NqG^^Goy+5GDA1MwRf={J<XB*JWPP}wbk9k~j(SjOwLxlVa&He#
zaCMMBALu;rm56VC%cpbBooI6hR*F3DL%p=4c2nDj at cp340eWPsbjS8oT&wS!c5H=`
z%YoPdegM;3X`mh`iu5f4kKz}|RG8Cv0fCVWh00TXiFsF&KIhj5u7?vn&ioZ at CR-0=
zvbTqw)&+}@oZcQ802C$65BNpOQz6ujFD5}VPz|xKU=@H$pRj9_o;QxVBu&CDpO at x~
z7vsV}h(oHEXdyr%CEqFn+Y+K&QRlyO8)lbWR8&Ahve0~p+(XG^O>My#+Th4v`pd7t
z at u9x%zsmQy at ur;(DL_=F7}Exgpl!I|dEkPdf(tqc7wR7k at hNZt4FebXeiO7ap+7$V
i!smBB|B1)qu~pGlhOC2&-O+o3Xl|T!coBQ^PyYiqc9%#1

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-inst.ded b/clang/docs/ASTsForTemplatesImages/ct-inst.ded
new file mode 100644
index 000000000000000..aa2f16203487df6
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-inst.ded
@@ -0,0 +1,1479 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 35,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 50,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 25
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 75,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 35,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 55",
+      "size": {
+        "h": 105,
+        "w": 385
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 475,
+        "y": 125
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DefinitionData 57",
+      "size": {
+        "h": 20,
+        "w": 240
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 35,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 28",
+      "size": {
+        "h": 505,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 240
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DefinitionData 60",
+      "size": {
+        "h": 20,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 29",
+      "size": {
+        "h": 105,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 670
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 46",
+      "size": {
+        "h": 75,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S {\n  T data;\n  S *ptr1;\n  S<T> *ptr2;\n};\n\nS<int> s;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 20,
+        "y": 585
+      },
+      "name": "Source code",
+      "size": {
+        "h": 145,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 30",
+      "size": {
+        "h": 65,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 495
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 33",
+      "size": {
+        "h": 65,
+        "w": 315
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 400,
+        "y": 585
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 37",
+      "size": {
+        "h": 60,
+        "w": 315
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 32": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 68": {"syntax": "\"void\""},
+    "CXXConstructExpr 52": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 50"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 41": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 42"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 62"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 43"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 41"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 41"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 43": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const S<int> &)",
+        "ptr": "FunctionProtoType 63"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 46"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 44"},
+      "RD::First": {"ptr": "CXXConstructorDecl 43"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 43"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 46": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (S<int> &&)",
+        "ptr": "FunctionProtoType 65"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-inst.cc:5:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 47"},
+      "RD::First": {"ptr": "CXXConstructorDecl 46"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 46"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-inst.cc:5:10, line:9:1>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 57"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 18"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 24"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "36344361",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 18": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 19"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 18"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 29": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 30"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 29"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 29"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 53": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 54": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 55"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "VarDecl 49"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-inst.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 55": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 59"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations": "empty",
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplateSpecializationDecl 28": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-inst.cc:5:10, line:9:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 60"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 29"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 46"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "LocStart": "in/src/ct-inst.cc:5:1",
+      "LookupPtr": "StoredDeclsMap with 5 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "24909989",
+      "PointOfInstantiation": "in/src/ct-inst.cc:11:8",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 17"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 42": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 57": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 17"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 60": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 22": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 26": {
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "ElaboratedType 35": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "ElaboratedType 39": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 40"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "ElaboratedType 50": {
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int>",
+        "ptr": "TemplateSpecializationType 51"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "FieldDecl 19": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 20"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ct-inst.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 20": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:7:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-inst.cc:7:3, col:5>, Elaborated(\"S<T>\", <in/src/ct-inst.cc:7:3>, InjectedClassName(\"S<T>\", <in/src/ct-inst.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:8:3",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<T> *\", <in/src/ct-inst.cc:8:3, col:8>, Elaborated(\"S<T>\", <in/src/ct-inst.cc:8:3, col:6>, TemplateSpecialization(\"S<T>\", <in/src/ct-inst.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 30": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 31"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:6:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:6:5",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 33"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ct-inst.cc:6:3>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 33": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 34"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:7:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:7:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 37"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-inst.cc:7:3, col:5>, Elaborated(\"S<int>\", <in/src/ct-inst.cc:7:3>, Record(\"struct S<int>\", <in/src/ct-inst.cc:7:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 37": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "3",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> *",
+        "ptr": "PointerType 38"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-inst.cc:8:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:8:9",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 41"},
+      "TInfo": "Pointer(\"S<int> *\", <in/src/ct-inst.cc:8:3, col:8>, Elaborated(\"S<int>\", <in/src/ct-inst.cc:8:3, col:6>, TemplateSpecialization(\"S<int>\", <in/src/ct-inst.cc:8:3, col:6>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 62": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 63": {
+      "Canon": {
+        "preview": "void (const struct S<int> &)",
+        "ptr": "FunctionProtoType 69"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "const S<int> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "syntax": "\"void (const S<int> &)\""
+    },
+    "FunctionProtoType 65": {
+      "Canon": {
+        "preview": "void (struct S<int> &&)",
+        "ptr": "FunctionProtoType 70"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "S<int> &&",
+        "ptr": "RValueReferenceType 48"
+      },
+      "syntax": "\"void (S<int> &&)\""
+    },
+    "FunctionProtoType 69": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "const struct S<int> &",
+        "ptr": "LValueReferenceType 64"
+      },
+      "syntax": "\"void (const struct S<int> &)\""
+    },
+    "FunctionProtoType 70": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 68"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int> &&",
+        "ptr": "RValueReferenceType 66"
+      },
+      "syntax": "\"void (struct S<int> &&)\""
+    },
+    "InjectedClassNameType 23": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 59"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 45": {
+      "Canon": {
+        "preview": "const struct S<int> &",
+        "ptr": "LValueReferenceType 64"
+      },
+      "PointeeType": {
+        "preview": "const S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"const S<int> &\""
+    },
+    "LValueReferenceType 64": {
+      "PointeeType": {
+        "preview": "const struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"const struct S<int> &\""
+    },
+    "ParmVarDecl 44": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 43"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const S<int> &",
+        "ptr": "LValueReferenceType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "CXXConstructorDecl 43"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 47": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 46"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int> &&",
+        "ptr": "RValueReferenceType 48"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-inst.cc:5:8",
+      "LDC": {"ptr": "CXXConstructorDecl 46"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:5:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 21": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 58"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 22"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 25": {
+      "Canon": {
+        "preview": "S<T> *",
+        "ptr": "PointerType 58"
+      },
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 34": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 61"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 38": {
+      "Canon": {
+        "preview": "struct S<int> *",
+        "ptr": "PointerType 61"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 39"
+      },
+      "syntax": "\"S<int> *\""
+    },
+    "PointerType 58": {
+      "PointeeType": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T> *\""
+    },
+    "PointerType 61": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"struct S<int> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 48": {
+      "Canon": {
+        "preview": "struct S<int> &&",
+        "ptr": "RValueReferenceType 66"
+      },
+      "PointeeType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 35"
+      },
+      "syntax": "\"S<int> &&\""
+    },
+    "RValueReferenceType 66": {
+      "PointeeType": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"struct S<int> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 54"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 36": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "syntax": "\"struct S<int>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 53"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 31": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 28"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 27": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 23"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 40": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 31"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 51": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int",
+        "ptr": "BuiltinType 32"
+      },
+      "desugar()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int>",
+        "ptr": "RecordType 36"
+      },
+      "syntax": "\"S<int>\""
+    },
+    "TemplateSpecializationType 59": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 67": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 56"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 67"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-inst.cc:4:17",
+      "LocStart": "in/src/ct-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 56"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 56": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 49": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int>",
+        "ptr": "ElaboratedType 50"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 52"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-inst.cc:11:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-inst.cc:11:8",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"S<int>\", <in/src/ct-inst.cc:11:1, col:6>, TemplateSpecialization(\"S<int>\", <in/src/ct-inst.cc:11:1, col:6>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "Bits.IsCompleteDefinition",
+      "TemplateArguments",
+      "InstantiatedFromMember.ptr",
+      "InjectedArgs",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "TemplateOrInstantiation",
+      "Keyword",
+      "DefinitionData",
+      "NNS",
+      "PartialSpecializations",
+      "InjectedClassNameType",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateOrSpecialization"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "DefinitionData",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 145,
+          "y": 220
+        },
+        {
+          "x": 20,
+          "y": 55
+        }
+      ],
+      "end": {"entityRef": 0},
+      "label": "ST.CTD",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DefinitionData",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "FirstDecl",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "LastDecl",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "Definition",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Definition",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "NextInContext",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "NextInContext",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "NextInContext",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 11}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 7},
+      "label": "NextInContext",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 305,
+        "y": 60
+      }],
+      "end": {"entityRef": 0},
+      "label": "CTD",
+      "start": {"entityRef": 1}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 760,
+    "w": 730
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ct-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..4315858dad69054ae501ab2f8b19c2640aeab5f2
GIT binary patch
literal 24568
zcmbrl2|SeF`#-ErNef95Lm`R~vW}%?%#e@@p`o%()-XnPZ6Et+DkNLYM6!m-HU_PB
zx~&;oWnYGDBgXQa8TDQM&+qxYUeELBRhj#~&wb9h&b7R+_jOJ9MI+SioriXEaB%F_
z*F#+5;Mhz9e}C`b1Xpw;F7Dyr;5+Ge<tp}^yQ{0c8<vCPP7+;<+r3+ at C0LhdPvrb}
z2U(rLYPp>yI8WzO(W{@`aC;4Tj~y7m$QWqr8~vmYR|YFd9Gy5*_n1$$)cSU(?ghd}
zUk?YhSIGV=tx8jP*~Fwn+(g_KcU@^|kIgb~!}4%C!Iz^C|H{rX4bf>27H-h8_4OKm
zZs$4h;q=YKpuK*--Q|+FQNQmrq-659;~bq96aDgV6O9pNW|Vis=XAYC8$7;#d at nRg
zw_eqEcwea!{q>EzP=(IX$TZijcBdVRh{`Xr+*fsZW}|7YW-{Zj(;ZoR_r at xI6Zk?k
z$(agU5e-fvBupginlalqWA;SMy7T!_UioHR&N8OLhZ5+Me;bz8b>Z=*w}LRbRttpj
zID5YS`srNR?N7VCIg!_oH9qBWy5 at h#{+*-DY-gP7BD#Blqa`11wX~D5UvB5K72cMF
z6SWPBE)(+iFNJ5CIlu1Q at x&zOow4A<`d6paj|+~OzKp7qe>$5{EK>Z*8CFaCrZeuB
zMc%hMgX;GV_{C9JwQy{0H?<^uXUX#M%BG7#v11hOJr@#=^~(wCCP+($%?Ye{5m&qf
z?;K(>JICP5g`7H~L1$ozD^BX~;h)!!7J9B3x^z<wE?%?Us at kn!Vb~L^Dqa_r^R{H`
zp{T8{>-#WIRSNb?+6QQ*%`W at 2CL%|8uXd(#PdxZle>2&0lV3x5z?+OXuXCC*CzAxD
zLo43ix{&$k#OdcAy_(EU=6$DaYoT7A*ZR7 at OlC#2Rr}vcwtToAxv*_(XF~2fhr$o*
zpUc*QY_~~t7k6a*3eK;P>R6Gy_^E2bZ`(CY8b8W+P_XG5NBN$Rm%&PSMH~EBg)HoL
zhN-3BJ&m(TC#0%IZYBFgl-G8?o9(l<Cw#@`5S24S^kg~$%V*<?!eFv5_Q0!W4q6$R
z9e#(TY`$x&)D)_8(_tjk=-6&qsL)+4*S2w&f0?xd#1WWz_xbn??+5(N0IBz4JkGlB
z?ylcN+uqpb<aU8>@~%Jc1pKXVk|mV+?Pp$cRfy>;>x at F7kCclyQV_*{nVmyNzuD(>
z9GK5eD?3~5lIM`wS~rtZdhUYmo~!P!zx0&F)s}sRbwH~vm!Izs-(<0``hn~&td2Jf
z%OPGDzBkU67!+J0?3+Gxu<wwFVe{>V7V+W(rRQ*$JGbnuI`Y0*yt~9x>$bC`_=^a>
zRG}A%!nCE(`WZo2J<|T=i at T*p8><3d^iCMc#b?QMKYzb}8trB1`1<l0O)AzLAHLcA
zkg`I_qS<$u&LRcW)y(YbA7f5XX#cq=;>rCIn9M6!>3hRtn3MOU?g#CPr*As?LRC%c
zj6t?Y$TDBsxgv#wA5J<u99j2(3%(1*gf_<-Ylp2xUE_-h at mBUly^uP*xT)nm<`c4s
zexh_m9et7O3^C={_TT-g5d)8zf)<>Ft1;$HyTS$i-M%Yok#>dFv|jCcAKEW?;{|u|
z>5?}g)n}5`JR6iw;V0h=txWnCraHd2;=ZVn)L7Oi$4NsizW-W^dl~96L=rKp>b?_n
z8j8L;ne8I<dY1{8edw;)P`s-;f@}T7zLKI4t4hJO>F?2-KV00)v+z=9A=~N^&&p at 6
zkd&v!TjRD}(D^hJ!lBtS#5Az|XZWU?TJop(5088`=3RLsRmT;u!aq0tcvAK2p76MF
z-2 at bV#I}j+ptG&fGyJv)<IPtJ0~o0#Q=RRe<##WeSh#J8svg|TKmPQ^gOZfbkN8jY
zY1~vel(ebe{rAp8LMi#*H*0gW+*AIERT;&-c{=yw){ebQ{23E&Z1TlDMD)0gr>)A6
zSL$Zh)><AbwfiXR$Df5b8 at Nt>OFi>jx8dTC4<_5)3j#vduA7WW at AlrCjXbSc{Wd>1
zWB*t89T=e(XpDG_md^~~L~fXXk=UjtjidRx1roj0DepL7z4ttR-?`75dpk^H6aBvP
zM at H?Qfv at +5_R3t)RjWeSeku9A>EWTGEjj|Zr3JO4d*Yr4+sc-<GY3n)-mDY8Kz(ta
z%Va5^TBluJv&&y5z<jwiQB(EO`jMU;>l5D=mj78DH&5xy8&wY)@>-~OI7yak+O3_*
z>ld>*CEdEGwarGWG3)j5pSR}CjSC%(`IesrNVNudE9MzVj at f<CH()+B<4Pq8EFNFZ
zGWK0KzB%==CWmn;U+CBl?@i}K`EIJb9~l0ncH5TF?|+>$BhWTop7NaRq<hA{jgD0&
zhpvvDE+Bt&-nv&`RB>Tfb at 6d4?f3K90!rl`?iU-lU24)}evTw23KlxH?mg?3bW>dU
zoVuB(Q^UGL at QYS`LG|OY7L+1&#W%{hV)s&&s|E>GT;KT4j?C*EG8k&w>Gt%W%}@RA
z!0mmyuXavEBhj6&!V_OTugkVBGH<Kmf2q25yGvF0d-K6lZlg&A^`E=N!o8n=IRE at D
z=@Oyi+(15R$FIgsKC0&0hbH=?tQ0M`ktQ~^_d9Rp`k*zefRrX_^$r$>?s53=-r(ov
z(^F6g5$VJ6`?Y><KL5+8@^!1bH%`ZD*lpjnIg96Lw{g_x*jq2eMP<VsLwY1|5(R_d
z$_J-USS4NZGTc6S(`?(hI@;SJO^K%bn{6qM4OjPnSUUKTZbwF(w@{R^Q8{8$L)PVe
zrCHL`elJ`vX#7R?Q%IV>*flD%L!Xx6Kxxm!SuUJa$wb#6-_5yPQP{HJ6kv^?dE?D+
z3c!84IDKP%Wpa4P0(ZCn<M*~Kicpf}>#+AfsEix8iH5c}U0t6Yd8hXynLMbj^O1nI
z|7!DCE5bX-gYmj{Dm36-oI#X<)=$3axM$K7X-|!p`kS5!NN_dFZ?P3Y_k^9hHF%~}
zS<bb7 at 6G$VoR;M=lk!QzA4MwPm(O+NWtc9(lk=oYxFVyfA+36w2eRE4^b~A)?C*}A
zP3s~e(vJ-aJPxrC|HtBToZ{o(Mt2h)%_rfHH{GMW())y6Vf4=Yv-o at N)kuTuEqo!=
zo>@LH=A at 7||KobJYKp5+?;iN$_3RUS<vG&hcWLkDs@?S9cEjBUqk<QvWuN9IKQN9a
zzFy>z+g0Z$G9;s#`r)Fi6qygMhjWY=k9($gmvU;&QtIxfx0^TJ{HeoCvi=yd=ZzE>
zT5h=JWel8jRoX#uOw7dMgHm+js}~Waou@`V^95C}bf#RgS~_*W7&rFR{st{hD!lYt
zaeCF&q$5S2+fjDqufplQ^jSWMs^`X!II@&A+KpaEPfJCi!yX_z$JC at FlhaLh76}H8
zwa|WY4h}?oig_}2<E5Rx=YibMt+k=`x6L09o?E(tE+WA9Djg{DwDo`4a_p&k at i+0e
zR-s3nTnruuX~2?2Q>5tmLoQRQ>AAz&<(v(pUVHlXw-S<X()IGg)Mrab(h4_R?$nYI
z&|#bXo-Q#Wm*O8&`Z3~(nIpbmp7%=SK?j4p3=(Aw#e&we18*D&U?gqftW*uy2X72j
zciVJ)s{f;SP*qPz?1O5f$zRV3qr*c}P6cW1i8)lfFuc9_=b5Dt)jjGll(zFC_tP9?
z5+DvvwY@$;oFZQEU|X+#bZ)DwXs?ync<0=V+3Myv(>B at mty#x3#p1=E+BGj$bBi%9
zN at Y%t_^$ZOzF_jX9EuE^(oAz0iE~GHAu?PwcP(c#hP`4Mx&%kQz8*RGk7LR~XCMBr
zk~|gZ_Owk at g~saq#rUiBHTj*ZJj%4qXY{bCpQC(Wej at p`vM0z}ZHQL;63yl{61n+K
z?$6N5ui|)Xe(B&>LNz82!Bz6~S5?~0^oK=XbM|34hRjQkoGiw)A=^Uw9YU6mI`hnr
z2S=Xy7HC at 2p!YItwEgYMoqz0IgyNJ649g7sxNwr!(lMqXdUjZ|(3h7RMAD8Xkj=(k
z3uf`J_HgR&y8C%Z=A_?8XSY at B=lKJ>Y{#E&UWZT8FX0px7#7h;i+R_NFyk)mM+>k|
z$4cDoi+y-zT3hvJdEWOto~%vWw7JE&DfrH44AHWYU^e;wJ~VsM*5fGt#u>Zks>}7?
z4UNRIJN%3|+Y|S3^7r)98&dB5GWeBt_|sPN-`ZAH at l8rIN4Ke=JPx&w*j+4K{wdhj
zRv~kLpO1>2)UQBW+{e|)uL`wVF;Wre4t at LUh2;qj-}Z?>Z&yp23f|nS?>#d9c~AbG
z=OS~9W+AnDwjvcvnv;8_4jTo$I8b^c$7f>fO7^dDqc?M&)b1$9Gx=3|`5&hbp)db%
z9X!RiSFUaBp{2>z1n<KGXx*2c at h_FWKOA*!BuPjHiNxOUHWQ=1yk+xKL7qs}^u9$u
zhqgp(<;roG$z;eymz3S^gI&9we*Vffy^Lc at ol`1jY*ow_4$rp~ocRhLphxbCkQquW
za7s`|1aETc3h;I6>I=0jq9i}H?1&H^d3vQ9mw~768$Y<a<;J6L+u}KX9o(H0ub5<M
zdCuV4_3q5V8B$#Bc-`IyMkQ;Tb24kV1SsDbfjyp75p$O#?tAZeBv9{+l&#qN-F at 87
zcw at I>dOH7BwyJfCTev1e1ncZ5YVBSdC22dq$2y75<#|ofYu9#xT3B^o`5mpf^QI}w
z9jV5F-SWnPx+#Hs$E{jA4P-t(?HJHpOeH<l-4a4PjJxP=k}rAvtKj4>`so$PchY5C
zFN-fH`k6!@tN1Kn%HVl@=I7C~`?3NI(s+VY{iF`XJrn!V|6_MC=6b;u{jEPA#2t&Y
zrr)@gmi`F#=BCu8pqkn6UFReCO0zMhiytB|Q-=3YpSI;+a^Z<rd@;A<Xpdyoex~P8
zhN|b_vkpB$<(zTr4E?M#xyR<QEr!JNQJlBVmNN|-DJN=FFh54C`<(gH`;KNAmRsZa
z)s$B5MV8KN6MkQt!YM&8&h=9l)M(^$NuUJynbvImM>lixo-eA7tNF%e>2NO1&V;#u
z2j9h9o#N%>0xq9SIqrIO$=AL)(JNkM^u}_x)mK~nGn1FeU$=2;aG%i#(X!|!OWgYL
z7Io$K*)N&sKKlr<WHG_re)Ia9PjtT3KlOS4VYD{#;`N(~Uh#Gu_!Wo2=-jo*0p(A>
zFg6zhZnlh=7tQ3=#}0%J8AKo?-<&;U{N}me(nZQ65;LECDY*UoT{B4~=B%wp?QnKi
zleawA`ZMawM+ at O4;<ew8&i&*6LB>Bx>PuGNG0$(u&s^**I()TG+`Y(4P@=o}A3K#{
z!jUeQ5zd{IK35*YH0RRGu`$R?0S!&xYWLoA+hu%E*0~+~ZHv~q-}@5Lh?a*x$E7;z
zQ-dCpawh!w^-e7~JV1U7Qj(f<PxsL$%8Uz^c%wOrFPiE76X+1pVb;((arncvwFuX#
zH(S3Phn(H+!!Ufu?AE%a^sCjGht`JQe@)uzxHUbAw_H)G>@8t$#iz!YfYZdyj3w2w
zUqr>ct2H*`@1ID~9-#e->=9|)q8{q9nFZTy+ZvmNe|)yyr|`|-+|%r_hnd2^M)SHq
z3!c2H_ at OfbN5R}w#7_qV(<!~-^_6xDY8D3qjmO_e=<}1Go~ReLI*(Xxk((Q`*~zro
zhv|5>${{wXNvq)eI!0IQsiNjo<QzCZHI}n}GmClbc|FaL`gCuABHrQFiQ1nhLIP4$
zD+QXjJ$ih02edQNqsAzp9{u(F)4+Ne=Yl at 7#=)7zmxs{H9t}Oac;}&?;Yqg$7xrLA
zLB<p^+Ir!*-Mu&Y*Y*@~+eFHd5yit!cDA1>6}{NF^klWtnbQFpFsV+o(K~_qn8()-
zR(kDFpe9FnpF-SEsojqd-`~-puB#Fvb|m}PSN;xKn2ej6$C&iNdt9bBx^~)y>gRTu
zMYu&pv}b?2g3>>C!R%M9mBZNPAKi5q$Up5RXXD#($}v!miAl}47CQf=WY1HtyOQ7H
zl%5CbPF^~BqPV8*ytYxZP<&soV`y>Y*Ro$v2EW*qO%TqO?v%IpIy<R^LA@}Nak)&|
zo1<$;wm$6=C#89nCy*f<*mV6H?gxp}(ALzPVfHAp(=c2!*5=dYp{GXjK|b5{{U?W#
zC89pjlTj&GG$pi6b|jS)4cF`l?fId)%Rj&Qp_sY!k1b#HItEdx+dnVfDs|t1wjOnS
zA#`2$^~lYdto*0PiV8kF*dOR<eU)dB=V4Llh0~<|3;dZ^_VZeKCcgQwIle$qHnB59
zkw5lZ{gsxVR|_nyW9=F$W<I`=zVL>q{9&hty6#G)L|TJ(Lu7yAc0)DI6_8)$-g{O7
zJ7jKt{o$VV`Qz;(`5(n>QY+ug2QIo#&dodTxZ0k}`Td4EPe7tDclO<kuCvDTH$~@~
z at VTFnw)s__q=|e;Fd>ZN*1prx2M?dwrljzewuO1@*l$dy$o8l+i!0pKzv<(a{P0iO
zk9t1E+;ecu`{L+m`ZQ$vF#oTsT0*Oh7Spq~)APlBSQ?zFsiTp2{-TrKsB at hC(_N25
zwvfYf>)vBNUq}47qR#XDkqFl#zfCXQx3xUw82c0=0gE_ at x89ntrp@VNSDqawab~BU
z442-MoQbpZnx3bWwx$2*e_+a8bvUR)TKUI5*Vv;uVQB=h&c|2d{9-K*P|JEBos<z%
zxOY<H1 at CK(w^8aY{ZGYP at 4>=81b@)8KD9+EC&TBvZ4X6%5<b5o)SIKB_hWq%-${wR
zf)0DtI5;lc*GHVWa)(Cm<;D+G?Qs~RWOV5`ZK6JYKlxHft7=<8 at 8f%RC+Am!zP~7N
zv5=P;8qkYaZeHKd3w{WUm1;R2)^DX3$?J2e>ld_i;OkvO4Y{dd;HTy&QHv^uutI>J
zz7w={E4}r4$QC8W>`z^^ev-W2KN9p>-H#4UupU4d at zG_&d;Q%cX#RQ8E7uaHF?}0D
z-Nb3o2(l%Ke>`&qmCDDSE*Y~f+a88DnvV6yhT-f2!-`lF_E?j}o6RN4Y!UEf4c2o6
z16}`gBz!jMkSpus(gVzTY>QqgN|(Gi%s+O*b3Q3oTnzkpIztCo5AYIY*&p4ZzVYuf
zW`EYj9?N@##=7-qI}b3CtO<8)4EwKJh>f-U_pP&JUDnIO80)2q>q~n%R at Q5_XrC5-
z%@H7?Wk6nEWp4jIz(XGiD;nSrX%;8$4#7lvsc`VPau~UsC2tDBz;A6iOhX8P$9d^e
zl~C|fpxeSMBaZ51MR{%YZa2xdQG5E6BtpnB7`GCrsnOV#%9r3Z*Q>o{s-*HXS!Z3+
z+~|R0<aDyGf4d4Sa7VP!3!}G)M9e^4Grne>V(s+~(?6qB6~YbSS}MlE6+QR$Ft;^p
zTdNaR7S~ZyWtFW6qo0+nx}uTz8pNU%Bae$@4<8O!fxaYjo-nKPWvo~(C4~p9_54r@
zvEy@<qK8H>ApOHkuZ2%c{{o?89;FE-c<*FT{hIP!44*488Xk$855S%>WaQ<dn_+<>
zJ*!F~;D!`^dkm&|hhufBD14hnnU-S&ZluDiLC1<*sH*mx`CG`XW#D&UD5g26BgzR+
zY087V7`-}MlGekEo-iWMqZlcPvM_axd|V_Bt4<h`7O2Oj*fp0tY7eKE&6ztq&lyWC
z>c!gtg_^roz2yB4lR6{#eZ`oZOt!hEaVb#K|41$W(Ic@>EULrFVzgYf^*GErEJq}q
z(Q4P7pM~^i$ou%fAnOIe(`43+A1U~rG at xE{vC1?hsap%a2)J~ORhk$=$Yw&LAQMTs
zR2dlG%uxwPbn7$UQ!fU;hHGrfnbg>~<m=$Ch(?Kt*W{{6(PVVH!&LfuP|VC+asO1?
zSZ$g)Hf1w7iZ8NqZFl*EAW0g>X|TpK;7_;;$8SwB+F|g==MB{1y_F-Z=!pskvG=Pt
zLe!PxFwKYtuBbU~`Q<y0g*Z8gtHR*lR1}iD=^zyM<?+E07Y^;1Ffc;akkrxC#nLEO
z4usW#xKQ>W1bGvWtHqU2deZKy5nhP%*H=EFl)D4`9IQn|VIsl9cZxCQx!0SugNB>>
zEn`T$snkv|ulpMa*TngKZuBhFWc|KkQK}A}LPkxDz1qz~FZO|Xu<vmalVPwfp<CY$
z#b%^jQ}PalmJY!-g)yG!QkKp2z|s)RO$$MUCyde3%DJ#47bU5mqnJHl6DnLj>=z&)
zYmaTrKCb!EPX~Ps=U-`ctG~aylZP%JQ3ULT82B?)&=Ez>5+Eajt=o(0!i7fR`GjAN
z;Tw1JF+NFTQZO<*irkR$BAI-5iLV>d^_|sZE&ViEAd+#xzmmlJNM?N(SoeI&H+)4>
zy%M5ZU5EqHHX*}}Xat#WDAKVmneT<(LF20-rF`8cZxS>O$jOD9c<6ixif0SwFDjo<
z&pjANm<q&s9RW at jm@#qp>F6S0&4+0mN#C%rBdqfbR|#2=QXv}tG4GPmPdEXtUW!fC
z=ohr{@mTe7IZrG!I7x4r?lY7q%Wl9Hc0UfJkFO0CPRp`K$3!r!#|%bnjh(0CUAL8-
zz1h4RWpRX7Xrq>LxJsA<m^bhlt|L`ZSNc6tujn$}D<^Y=x`YD{OfIyfz>fF%1rBnm
z6NW at xM@I7-;-A)N#`J}f=-qySSW#qOjEV6=oi-<H6TpAS&|>#J%<V3Wsk10T%#3oM
z8QK#UJ4S3pbh-`)hEIJQXIxp_8_(8}Fh-Ux<q|2Ge=x!GX>4&w at MBDB{$7nfE8=d}
zUV$vM6o`QiV>Jmx>S7v6u@|#dtsqG?q6i*$4|o99vW at ZQ&5=ISr-*2akuKLYT9^uJ
zzZ__kcDJ{kcQg(M%bf7BkH(oI`VZ3*mR(t%gF~K=zMj&Iq`pP at RIQvBrJHmToZi%C
zBwbJcC!lDe1}YMzYL`)a#cA!i;$8A4{`GHix1T0&7d^>Q5w1B<|0!N4K!3++vglEo
z7+#e3&r&52RuBFxiW|6k;%;Cmz`e6i5}_}wBZly=JojbXjVHO at s<bbw@)=^JKVL+N
zsoDy2XxC0G%^J-dSZI*XjdjzsV%};y;<&J;Hh$?GSr-h=6M?i1gw5)2cdkr}(ahzX
zi~4<wG1h4R;LkP>HI`G|x!kJPvW<+{4<q2ekLa{6YQXO;GS9$ZV at dR8s^trf<$!4|
zfk2nG^)kQh%{89L7}4k&GkjtVW;M1_+_W^ApWbex2^KtndVrCVAWk%e!|Ic$S#}E@
zlO}hCa|Y at t@TR`s4xf9)vQ&kiQ{ndWkqGQ3pU=~Jy02trpR1cGF$d}<&V&Ko<@Ie3
z!<qVNOkMgWOG^eGw5%((ILPMcL?J1s>-j{Tz>6lUw$xSlB`p!hJnv`f|4fVZAgr{-
zX;Z?-X62x!oiiyHn(-L(PuT@>goP;UFqJ}gO7T&pn5Gs2Buf`h6K{`X5_MwwS_^|v
zxn;L;SH>^Jt{3K^4%24+pgzBzd`V!ZO&!%ZuE{!HdY4}(JR0MJm-LCm4N>cwoK4@<
zwO5L_+hU74;LG+kKyl-^b>W^DR(+mVwysr7O`pPFCiq7%_<^equA7#N9nFTO<X~gD
zP!oPMHv__p1Utszvwy=%BQaUP+09;u`u2_4%xLfP;8jPFQKEI`SXk}aQXo*KogUA4
zN9&3jaIiP?&|0#a#H`@^<`eSbl&)NHnIM#6_3sNd(_Izceag8GKnI9{Cm+KEe;gnv
z69Y{voivRdzWaPiJ`&Cn>Mb6+%yiv$=2Go6VG)mcA^@NSg84Xd+nIv?H4)$SFcn|I
z(duTss_>#3FW|#js$NRKtS^>QwP`Hn+`<7J at L2h)ksG=ROz2<Q`e{a-4IucAf;WTT
zfc?oDFTW5u0)iCFMa4OE9UwRcn{bA_K1Y7YLN(Xs1trgthdc at Z6q<e7EC(<V3x|Cg
ziQ{oqP&_OK-trKv0!$iK<9IaDrJk<a9h<}Py)KCLq(1>O(Y1rauRTK3q at b4N^EjZm
z`XQ`?h=phu(>Hdp+|}Q)c%;6vAIyK6Y+s6L{{3Oz at Z13r8_3mvmSIiRVmU4l!z6mY
zFV5ufw)R&SA)Skn7Qw0AeydQ;3{;-AZ at G<5?@6h{Xn})DWu9KCpZ3a%FD{-m?WSq<
zX1dliOiZrc`Qq{02cD~D24*oL#|%!5j*Mbs?UCnCW)fFl(b4a;Y!1>TY0u(HZQhsO
z|J`RnHg|1>b^MT<j`re$;-<qG4bH^8$|o3`d}@Mgb9oBbw8W6T^8<f(gaY$7q!ESu
z7E`fnCE4NBS)D^#(YeOeL0K!xFBNCC3w2PQI+jS&^kjpuBF)R>MY$6HER2r5zf77q
z$u~GH-~q-q0V5iIoiWm2YxRM$FqiTT)#->U>ssx2XKX&zOu8jj9~M-qu}u6~4$dM$
zoK|SR!&nHam}5wT=ut8j#)!IYRxjc(q$Hj0!$ap6rzJBBZAHDGPOBC3xR$13VjfJm
ziqnky`b at je0q1$hU;`ToqW5>o1`>u4=|a(?4%Wut78FN`#J#$9y^YrvshNdV1JX&S
z=eRXnOFc1h+z%XKIKysCZ((NgVSxG52Ui~ColCEjq{-O95LSa1rU`q6MG-<-W&Z|3
z1n!fL_2(Tls(D<2f&-NhQk^8N!g~qdbN>VR2#h!4V71tlQEMbJm&DZUhS|>xhZX5L
z3O2--VRk^AZoP>h>c%bB6 at d?|2%yXILLrzfVA{0;S)j_m7e4 at s&I#fxfmvTvBMvm`
zmmwlWx?2ob3I~$xe#L>~`|5oTwx${LxK1nmqI&VM2e1(K7LI^tEbP-Az5{4tV8x~l
z#Z!SQmeqdSJBUDIC>@)3T7})~lm`6jM9=(LD0iixVe)HJr`FivDed<_wIykVsc8v;
zs+3ep|7)3|k%rZwo_Pg;5DgTV_47}+B(P#Ig6T%2F8s!jannk!&ifaE at itFUO}^KZ
z!;7ReEQ5!?zw&AY&dTewDC`kz`vN3Cs7GEj+Dfwd)gW(-6=f|l5u>9^mPxg>N~O1_
zX3b6Yq(J5Hhdl~QXP~LyY0tDWVmgk`ax2jAbt+~-V<1|BgR4ADQ_35=9g#7J)QNON
z=E7nS%v1VPS3Abno2 at m^u${rGB&1#TZ91F?>q=?BD1!~X4#Uk?C9m4!R}`^fJ`3>?
z8(YW`r}YNE)V3m<Kg9zl61W`37}x2-uH9_JDF8eJTuG2~C*gHG9*c&X^1D`xLE2R8
zD+-cg3wPLBVoO~W+su+g#K7T8BD_n^Gk`iTn$Tm&51{7yoSjaNN9}VR{C-uO=IY&=
zkSk8OuhHWDYWa1ZOD7 at 0y^yrPh}^;QeO0Bk$wzFChZ@!WIlM%SJdd-KJ%@G!3)2R2
zLqQ+)PjnY-|F5%UdA;2Ld{I-QIZ|q+%J5gF{<$)?!kd$-UD!Y>NJ(Cpa%XNH<c0w)
zLl`YRUL`Yv3Jb3IqKlSRgtpE$DxN2A0-51iGM^{hNupADC;Apr=P{WoIY;0YQEL2E
z7`==N{HU~hhQ#!9XFAC5iJq6sQ(;Q|0L~fYjg3AQ**!Z(^!C8xAa!(SdD)`(P&&Ml
zST5C9*u4d$dSL-)$x7akX=$U8c`5(IWErBf at Y2tMpWOPU*BvXjVgo!ju~w$7PSkol
zlRy}UG#yZ#h4mTPj>9;5g0HDA+)86#uX!@juwY}Ik)+hD^NP8L-lf3apiMOP#WEAP
z518jj0ZS?ZNoz$ZrauQsvD_Zmp^_~Pt99G*=f)mv#zF6fFl=ks1#@~i)a7m0_E5al
z+YU>(fzv8frWf{_icO!xX#tbtC3Hp<i8Nka)xOgYk_jN3aFyr%+owTlq>BLB at a02y
z2he?xFthwT`x47ifjItkfrGX6KS#qJ|K|d*E0)+co at 3*$jSC!q=V3j!1E}hs3oK87
zU_Zy6ZzFtwZL;U%B~tx2<5M!=MhtWwvp;4v%^$5a5&R|oSwFqEn?VWwX7g^h41P|^
z<>REEck at J@?HzJY&GO1(DXG(;@AdfFH><s1dkE%BVqp5QDC=UWKF2Tyrpu=<#^=ct
zT+ZF0j8ZP2JmJBJ at 5o{p%-1i+ea8uNw~vJboJiju&gg%#IC_5sGjBgpI%;cmDKU1m
zt_&%nbEq-mg#6r*z*7bMOV?v6@*qOF(z?dQUZ28h_u+#udR9W92-?A}jOzMkGN#TW
z=(X+d3y}5d=leirnpem%+OL#E!_aeTmapqlDTUp|i#Kf0eQ_rdHag<RVbk{Z<X{Ix
zNx`&6On=5Gl2IL7sgo6qlCCUtgnexHER6V#Y&J|-g%*b5S)#0f!f>xK&2m|QIf3U*
zR%D)VM;^)~-Bo&Aa8 at m|`*w#%0)GkrboHbM`ndDeC3~h(^=(x0LW50>;<Rh^bQ%zL
z&?C%r;4yo<!x}6^H=1FGOd-}su4yh;HFsp7kUL5Dc$1674nVd<gEg`G+Ns2 at z!X{c
zn#rs>%(N+yI(sl>_0khr`ZJjDD32Rk;O{|DBh~g2lXIxq4FKPrf5)tC7#+{#Mmow%
zYGz5;4Xaf;wUsgDCCtMa<F;x_vsB`)I<|tl$+Lmo`KE|Nbd2m&LYg>%ml2yL?%0ND
zZktOr5qn3J3u^aRML<&r-`SX)jqTM|W~nNC;q~H$&IbU-wR0yD1-{yE(<v;EI%Wq~
zL1 at oAQm*y9oY0%U**>mdqK=eFRyD)I!i627TyYY&ap8n-yFyQXfAi>@in4*dtZX5W
zfC+x%GiN@<vDm&iWz;>k_*r4H=@FPGQ7z!~DG+*bySnqhM`k*aer~Gku|8lGY`<0T
z1Lap0`K!JlX=3R&FsVQK%<^Qccd)RZBn#95Z@*zl|27=96#h>GVWBE;QvaVW{{dzH
zwyOVaSzsC-y0b1j90ShlEP$v1;ViaH^6Ul?#!e{MblcD0`&j=QKG<N?cw9HQG=$Zs
znWHSWEpZ1I5G5~=$lsAQKW4lcuwi2TZ@?(|c{e$elltvl>E=FjfEp}4P5#kQ>$uZx
zJ|7;aP%;<)P5h<kstust4n!0M{5o9r663B_xtR8Sl=~xual at 5SO@7vt2Z`3p1(O3=
zFqefW`T{kVuU(N)YPpt>>ugQxv>Q1C92nsBc<7IA`_y0^v=oUjSoAc{s at sedixmWU
zjs%Urt4C&_29S{=Ci;y{&PDU*#@Gzu+S3yJIF=+JZZ;B&{t`>n@|$chnaJd6Zg56E
zb?i)FVQwBeN*}k7-{fl_x3m?iu!_cEZBk4%*jo-`Na<1((Z~>ov}GfKb4}R3(MgSh
zcGxSLx1IB<4B8lP9p9w_ECy(TsBCwk*s3x#6%;M+&&Xkkd at bWPAlwW$HgJMR6#Sa^
z`<{7%5o at pYq*u>b^8+soB<DD?@M?n(MOb}MR3EoVCJc<1Pklu(Gy02Lwy{rPc3Ga&
zF=*y+SBvk7#s+aFlb34IV$nU|qsJDVB&}fbs#anB`9%f)1qN&WxX?&Oic2IGmPJUM
zpX}8eoo*%wNt(KA>@O|-+Q1ObxzCy%oO&w}O?6#upwm(H4RNUrZp{{zoh;D~auQc%
zy2X6>=n0(&8yjAFL(x9K$P#5m`CUcVJmWCas|$l~SonoBhCmE%Bf at SCadNcB#l-T`
zvrqRMlFj4rY8 at N_OG-lo;;PPi^*Tq0q6H+vHQb6M0{|vYTVGq<64D6}<>4bVC{ZoC
zEZ~YRh2||`HSBq6nrb9TYB~mD5zB7EijuHRj5E8~j02zo0JlS at 1l?H|4K`a{y>3%p
zPPLcki~TZ&WKPR<pQKnP&(YwVP2Y4-_3$|@%`BwV<`H}1>UrP)fS2vwYL<Ns72BY-
zr<iH3>hqAb?5tx11GC;sr&8;gWY0=^<H)GNprFl3^YEfLZ>`=JVGPRP4Wx==KXb}<
zB!a#a*a*dMuap5MYFyJA7ZQcsN{WejHHvwlC8kf{UCtRoh(=C+BzeEVzeV;xp$48>
z=Kg}|F05~!EUud|iyeF&Sp<*By+t`s?mtfRzxNw1&18OyyY3b}xTamauuLNSL8^z6
zeVe9t0y!8GlX*)=NAC>g%Z_y~`x;M at CN3w)&FbF7Ey)z!_{_8l6m{r)J!}39z`^X%
z(DUT=>0AlzuzndD#M>=<rm;e at tiffec9MY@hVcfoSFVc3I1Wi_{Ipu)3l6Qqg)s=X
z^B#T1yVg{w%2b|6Dh-yd?n%yjU1b at -!$)uGyi%_~6sL7{#tdu8OaNTzUx1a+C}5Gl
zWf$EZuIR=+DZMQZ{|UDYTF^>ZD)_o;em4{2Gnv}846-65dBzCpW8Pf20^wbnA*>TC
z3##y7Cpmf(7DtaLUGizqSeVRMiD)4- at zUKAf(ig9U`C4W1H?l?WR|YK=@`q8BAB0Y
z#Q_bAx1RJVdeq!;JaxhTMv+XlG-Qp&&8Yx-7SYMuM!|xX$5*!gVJcya-As(A_Y1Yc
z3BAFQ1bR3Q7Cu#}M8QXC6xx;HqvSLja~+F>Ul&f)U=o%w6C{A)+fn{)o9vL}EHtXX
zUJig|$_tM+L0wUnO?zbZ^%z?SlqlJyV~Ms`?no5->+}yL(eEE*X)B8(b`>v6u)mP{
z%3X7(F&ppi1~go+Tv=tzH2TEv?zDl$1uOAhtK`eXdf`TPMBxmn4r8Q@;)C!;<`%<(
zN2UI%K0{X5e^?pn1YFx;8btuM>2#b7f|=1dp9ma%K>9%z+sP#J($8-vNJW5h3`qSE
z6jL%N_r&r7du8PaIA`Ban6fEex>F~xUv}gQ>1I94!fGrJ#)>km;C7ZQFF>ChaO{VE
z`Dm@>`88EJv#=w0NqiWi!^>ws9rD`;lEFwYvZ6PP(Kq_5L(kJRZ1GhPk{r#-5m~hs
zTV4P8o_=4%R(0`ai1!XFih`@Mx^VF-LMH<3W=rbrKaYw7>X!HB{0J%XAl#`G<O{61
zV)*EoF_b+vz$`PIm4E^dr*oEET&Gy3OOdWd2(eZw7IT2E*GYhCe2Sd)i&U(l|2)`l
z$s%j|e{HcFpdH}2BLt)v#yC1M8N9x>sml2e0SxxUN<`TbWr_I!>r<r#8KwFpfr?)4
zrGz8mV-wtPRt0(J-pZcndn_Kb=;#mm%4RxM65a at T=F+B=I;Jt!sCr6k#b(H8A>H~Y
z&74tf{g(#@66J>0$___~MArCJJLevtn@$KUi78r&R-zD026466hS3r2f`8zg7tff~
z^H?y7`$GvQR1Bi1b)@dw^UI^!QRSkfl=0ZWT_B%l);><=|KO&c7d3 at P4iqDEWk|Dy
z6AI#MK`}t)2+AemS8soYiF$q9F_FL{89na{6w%n{qh*cd@=)N_-jwmRBi+DvGOTp{
zjV+a0qeQasQ}~qbL_qqtPh4G699Rs)=oBI0GBrv=$7I|$txG`KwxZbbV)kAnY3u0^
z6fC!(`P&m_BV&olUG7le at Ux?|7-2}e5IcAQSayp^g4?Oh!WK<Jy39;&8&=gMMVlCS
z<uNbJwc;!p-jPoV*p6VD5PN5SC!@$R6PlDp8zG1j8~{j*)}G6mXn7(0&C+FTuz>uw
zA|<0k$CuF-Bs4#y8iq>`5 at NByx#C{LK>Jl(Xok5Q`3f*q8&i_jxW*+}Wx-g!hPFq|
zIG8$(LFz;m7yBbv;e>hA$z8pDfpyF|F^tN`HMyf21<J1PVsMU~1ijv}Wfx+g5VRI0
z{7B-jP5^TNn`Ryc96WGQAbH!UA+YK2|InRgK6;LfPxCk at FB*wM7j!F7a$wBN7RTi&
z>YIfoNt$AC6K6>ATmmn>&>r&;gYvuDk0$qD at -YH<6WA?Bn)v&mT7PPsI5j0}HH#Eu
zI#qOsyhgI_Q<_kHUQu9Euv(xL{H~@VlzjrgRM7`_YnLh1rIc9vqQ2Cj#T=(fu2Rqa
z%%q$#>%1{P#3J(9Dh?_t7B|bCf?#vg)>D%~7QR{D8)bkHjA{g<@AE^MSMmi(HCP#-
zHJe+Nooss75kg=RfNX<m!WfxQ`xMj%vV-%U%_jiw1spxgj111Bn)c1ssbC}N at u1eQ
zzMClP3pIgy)b`;Hzm+vpx!FU&);kFg=1t4+2nyDYiOD+#3&(D)y>|6^uRK8aO3I_C
zZa{t&C5h9lntM$^p-La5_^X0YMS(f1Hde|@r$Rq+2!okC)B3AX7@!<%p%YiHLLyp=
zJ|etlnrghTTSeGqp3`J^D-w+VdyO-Zs5N)@d<k$Mz)8lG9#r)I53j<aoS>j249Y-9
znlw;&2|(z8^W<WroI_f9iwBWpt6N=`nx6w$uO>ziiqrvs3(JZ6-xao&9cQ^4n|=R>
zui+pjmxLRVQMjV&IqUvW7kB#PXh6}3Do|zMoLRDp1Q=&}`A#w15bvgW4(t(38iJ9}
zfu;@(MdMTQDomLTIbXt6!f at -Qx8{WB7kf<A`(X{03*~_G2m#p=I7;H~?EUoExt{02
zor)mW;Gx^6iGxGBkI9Q`m%Y_ at D8KK}d+q1z(*r2+KL2LGRvo6*%l%VML^7SArZ&$l
z2#O7P5t${fgF;cWnv>hT2Q!{j{||*NC7+S`ZF at mbJw%r&!>=?I`VnmH)J-6KE+Flo
zsW(urp1avUaJyw`D7R?E>Uh2*7i}k$vif1>0o)!ptr~*a4(#2!3j~^XSUZC at M_r1i
z!Z7S#m9OwNYk7JX;pcer3GsRzS`%ce6j&SM7mF(XF}eT+9`x05U{v=h&Lg+8u%7l|
zn#_3=al!{Acu$XEds70hG!-0;K-uh&_IaCqK_FSO%uQ+904thOs at 3bWXB#U)yKM{Q
zc3@)8U+la3w*n@%$aY^>`ky4&{sUx|3Tl91jAR4U8VLULP|*2K!gv at 1WT*i2^~K}s
zuq58W8qX9l8nl}4v+J6-!U@)kPm_n@{?l6- at 25}k28Cb%OKn|EP<o|V7FAbvZ6 at t!
z#^rj!?o_n)X>#RJ8d{mw<(-k+56aU7?yZ0hbOIG*Ar!g!0NIon7<)U{QV#lZ8Iky4
zF|HBYj)?)pn1LZOZHtofU?CcXFQQs<Dp>J}E?pwfH59GPsqb9SsMBQQ19TIealO=u
zQQ4kiH%>m^6Vgfk6XlD~8%Ea}!WfWY2yx;x*&`Mc<CHq|yFB2Ez}nDWn|+&k=$(<c
z;dDjuaIFD+OhRH4HpdxxQ6tXqm4^U;P<F=@K-UGp>!6alHxd_r8in+yASeZag*O#x
z#a#=BdrB<HK6&&<x1cpj42$7h^@RE;dIeTwQoVW^Mrn4XVaJ`&>psCpj`XNmkv&AT
z!&tA1#xzH{<vo+Lw6*4^;~{|mP7-C=r4;$&u+p<NS!cV^@yP(hx#_(B=Ma6m17oAU
z4ErxfdU<&&Fk_*X6RNn?NvLU#1r<aiVSXqV3mePs%?;SZfrUZdgF6K+kI)Dr9X<l|
z;<jWyS04Ij5Fqj<t at O7hY@P=IQ<Sb(IY{cOCs;SPueC$f(mqz2mg^>YBMA#ahBjUD
zT|r$5m6mq>=h!~d*h+`ETXVYUQNq4Bso1hB2)N(ebFDGTGCnGnf at tb#KMB5;((ZFV
zJNM&g{Wf4AlC<Jc;^|i*tfmQD_XG68Pj}i^G=}@BJzc8>vt|>(voeQR2*buSXvY7>
z55D^I(nP9{$B&(3ktd`Sdv^joufj&t%olaoZ)0=1|DzX{=b at 7l%dc5nYU#S^u1l%l
zuMfk9cG0OqcXSF at Tg+oOn=;xn8Iir!ANi|Q!Me~uySaSrg~~oN>WSz#>zrY at Gi1k4
z6Z*=1z1>)3ccn#FUJrTX_;hu$F0&Es7RI3J!f8Xc^ImBadSnAsQ49khaXr+dhKFfg
ztB-*)UcMhhUS(}a43q}fM)!nvjUctiBvm)T-hTqyNbs_ihBA9*c#NN~PhX>#*~P`8
zTM{!}s{(;K_>Ln5d8F!kOkeDP^JfKpmYtY0>R3VT7|g;O^)a^CCN;TpvR8~Wq3kc!
zSZDYT(k96PMJRsd&S-jJ-V;q`PQ5gTJwY(7&?pw^y!tls2#M6JRE%iWj2BeSZE|*C
zik*cQM&<fV<>LM^*Bh=|^m0h>=>mytFR0o9pcjPcBt*D4AZhr)JTXzFIZFlUU;${V
zBJ9@~F?mT*P(58~;`SGXB~w7E>&b&D?nWMI7Jiq)n_(K9p0~3ZSZ~MYN5=g0!pb|z
zz8Chf=xqe^E-|q95Ph^L={ODDeWwWH6BE_{63L7LkiGOQIfmw+yK;EavafCd(1?Q#
zfhoPiGWbYLaiZQx0?AF at k=jY}&YEl;C3lVW%^$rcN{<97iH0RRG5J=X>v)BcHMA>P
z;2e^PK|Rco&gn&?6qzS1HTI3|xMY#46r)dE%>f8Q+r^w!({2WtaXY!+K3T(E8mr1e
zaD4Q=9T**Ir at UL6S69$&M?G~zviOH5Fz={{X2=<J50pZ+C at EQKMH-nxy}_iQ9!C)Y
zC{S63&{Z+gwFc^==>yN+FcPGI1m&M(Kxio#9M9{Ui}C46e(RjjTYN3A at Agp{b(u~$
zGsQa`x6qVA2vpy<6!F#(pN}8V^oqjvcrO at qI`X&{Y!wGsBJU8CTW4L}%T3Xxcp>1I
z&h at +#)tC<OZTBGX4kpN-QK~jroKZToFs+$e32ND_XezD?mpSaePaRG~^S-VtL!hik
zXVKJmOOt+i2k5y2L`#iJg6&f at 6xybZNSb%Vr?Y}*2&SG(;GBb#DP=2e2*5|BPvg9F
zr4Ijxm^?MPvY5Mg#mD^BzUeCcz|l+Y1ha(dG68RyQ1DOFLV!~=jw~@SIq-8Agzq?I
zUT;>=xfhY1yb8Mv5GQ~crM~`^;_4;D3B98IH$Z9Hg5KXWu2CT6)g>pGT&?RPN_QEn
z!H7mxTt%SLD9af0ic`EBYtkjIl2e*XLfh2jHlU3mS;)zPi(goP4YQy)PRQCf|8SpF
z7oPh+uqI1=L7u`Ys)aEI5EMT?LV_F*tXLzj&%-1A#80j?;fjl_CNF>jRQJ*G6k1Nk
zB9+L;$*SV90-1dR2F2XAu3dCA0JWMFV=X$iJ$bAZ-Idan(r9`E&)|`waj??C)!QK6
zThHg>dVNN%-f1bFO)Rytt4`+N5 at 5ZD?fp}H4Ht7-NwQ;RMY%#;KGiC~>28?94dB at B
z{<y3QFVO1hwnx3zDto8)cL6$@#9j-W$3u+IQ#?SwVT>^%Re5~I#w_TfkF5KUU*6hH
z&tdImw>kdm&(K<}X7M{&^YVY&M$5$E;%SZ9`4&PhH at Bmkt!NGaC;||tHpnpI5IJ!_
za+gw%(9EgZeQaL$+pn#zLte%_bR~uY6jX^pofkpEPCKykfem^IFN$i-sd%^4w|0^U
zTBROwxNsTc+7zU<QF$<~4;>R`*&|MGa`5BG#r|ogKx`F%wJz4C@%-R)L2#!dHcGdT
z1o^jmG)&S*8rF`|n)kEhF3L;S+Ef>%hm$Q-+<YidPDZTVq-|=UslpLWM61gYnVu4}
z{5P6~ZDG~E!w27FI}Qe#veYRAqjMcWk at klOg9!z9Ed<9i6abv@$?<Vm_r_y<Kt()0
z$4R|9bMc5*6ry6 at t~1M^gq4?Y5UHohg_{ec2!-M_eviy-11wotx-Ee|d2PC#*z0}m
ziUCTRL_;$(CL%4dPuChC>;?`^y{%xEZuZXLx;dbKG|pv%mKa;Ac^D&NfXF;JdQ9BH
zBgxTeE*fZ)=%@czh5=IVa%w+8_!<Ogyoi(C-h<f;cSmnn*OOA0_^74<A|(b_gta5@
zMcSMol3LJ#WEq?18+rv;d!3vSB{$Fb)71~*=XSDnEmb8!?8 at zHETR%rv!oFIL!a;6
zNwtH^{XeB-|79j<z>xIqVZBIpHeB9EEJnkDg<n8b=}!j-tLtNf`q*f$U=#kV!Z&yb
zkiZ*;qs!u^*(78bK=O-0Bd?jF>%M_F>*T;^<}NYpltXOaK6+FLa7O$SthxZp-gE~G
zc<KEkMQiIaL#Ur?KD3-p7p|cBl|oe-Rdt%`o#*yvXbZrcBSalkdZgPqdr+BV)zbl!
z{{WC3=>%vjV$e+29|v<lbw6a~F$a#&LR(7B9rC4K8Ut#UzR?_opdsLj%}oW-N+`0U
z&BhycKzno!@P5NI`V_f{OIM<a$-N?MG3veoy}pWv=q)oc6N1nhx?^;y0ps&-qNZbF
zV+z8{E0G(n2h^wzuv7*RGo^jpNOsi_&_8;GF8{*=mH+!iy<(|9<AZNK;N|FJpKxHU
zI<vnrnB$k_pN2hF$(>cZ2Qpxb5v=I%r!Uf7-+oTdK}(1fxTRTj5u!+GPWbOrB(xFy
z=pv at 9ec~5r5?NMbY at EVF%)oxoPz2>b{nRlrVzPyi15Eno^fy*CV>#65R$aJ;V!5gG
zV_y3B4y>J(m<^Axz{VQRlJj37DVNDI;xy9)6#x!__XWMX`QkJ}q$C_LS00i8umN2$
zB+sxJ%dtHPI0cD68&Rf(Ym6C%OM!?7R5x73y4zc#1x2AuglYf1^gr-WZ2!(SZMM`m
zrUVk$r|!6=s+)a$fM*NYh$a6`V1Z9ydH=cwG<GAtfKHG<B>FW8T32=RN|kU93JWW2
zUAnY+<CF~|L3IX2*5_so2#JqS;nMLzFc+6{*4_1&IwlrBfiHd(PAL0L`JlyOcwN~n
zNuB^b7apJwI$lzk at R+bWF|RZg6{$y?3HDJH7lAKC2vtoWC`_}m$9WKb=j}mdnL!n$
z)ViX-xBLwX!Wqf{)zm2hG`zTM1mUv>AT0aTe at R1Md_gVXQk;qG-Zv3NExatTL}B_X
zs5Yq8x$zcWWme|{M+Ow6D at yMt%xutr!}m{t+RTJlBWa8++0&i8xBiGDL>ttxfS=t`
zb$NPM!toovm)?L5mJRs?u9oJ^DEv#(+Y46wf24ycH^Q+bEwoqHthZ{Yc%r(_K6&Yk
zwZ(c}QQwVq-FV)FsR(+BpM|67NLR%Ys=B8^;kGGCl=UVigT89kdwqB;XWpU65lPPL
z3C=2-&Zd_*iCTLk#rV~tUIil`ZK!BC?y at M|DQ2?9)?f5ng1yZVV_3Hd9j^Uc+p{&L
zW|raRA&OovjJZGRDaMpjqWOmol+PX&r-|y&5?Q at btV7?9dhL*!wNr0MF2>?WZB&ng
zyJKn>K9=b|EvXgjok(R4$5x*ie%BS~%V0E$kdl4us2^>zfCNW1W}P5w&>;7P-sbp_
zGRIvTvD&%%aL5HpAq=^UeQFShqzI3o?UiIIdRS=pv?$$p9>Pa3QnIm;I5X?Qef$Y3
zGCi<@Q&xU_zQGy at cv%uup*^9NaqX4wKbSntCe|JS+03wNRVTt$zc&SZon94OYuL*O
z3(4C at Zz8lLKy?0AQ#>Vi-~}nS!hmcpI?^uhv|)jsH#!OJ$~5s!W0~k=*!!k1hDqRb
zmohEZn at U9bfA;t#0i|fMrvN=D=OFxwg`Yjh6z5^}+N2l;v at I00v?O>w9u2C&Jr2W;
zhT&e8%z5z8pFu}xz1^L?D1S3 at Ufc$9F(a<VX}8}oYaWpo-H!L#aC)GzrAz#9|2}&0
ze_j)Uz%}0gy2kblz)UxkjBRck%EgZEtV3cItu})1|6-v4i2k+O|J%SnF_4{rUj#BO
z2CNcr#Q{I-lWRzL3l`pGdFu at i9|nThM#y3fW4k)Q{IgdF9QU6#TR^q5i`XC_f~<ks
zzcjX19c-PNZ0;yJ%>S=2gn)~G2bGu4Wx!Ybi3BddIh5wCub*Ecl&mM?CX}u2iE6D+
zM&qU%{oQ-B{thLBj;7MlX2KY;`(nc4B;!xD;Rci&amx-{CRS<+rJzH*Al#odGhSk+
zVl5{1M_Up84*nZGmIM_D-%wcSGSC1 at K%IXh^T!z7ttyst$+F#Hb?)&P$6{7O2=;Y6
zoRJcRq+nO-{E+0}cx69rB^sKpQLx~*F@@c+_Wygp&t1I7`}b<giSEC@{u>cY$^Y*c
zTj*SW2H70Cu{ETaEoK|frnSXsQI2vpXlGNatONPCYX>X(`zimtO3`m-09KnYf{$y@
zmnF~}G`DXE`v?sa-)dB=_1tYiV?{fNtc?%+dqYi^T#Udv&-=KSg<%}yo>+u-$#2_m
zS|F}nM*MeN!^cgR{440CDbtdPXhD#Nk$C}hXS=!>7=*ues_O_XHc|=jlI-^RXwY<q
z#q0UhkRy+PzBQKP&w%zs+%EpaLj3Gud32D7l6retUxWB_iM=nj`fr36R<Gb6_qq{?
z{w;*?q{2<#>FjZU8mig|<}9ug7-a~n$?&fg{p;GltcP8+VOy5mK32^t=(<CPxMFX|
zsji_vt~>56MwDw5kQMGRXn^s-E5FYX4L>x)ptZoDiFK=jvV~=>m%UGVNBvd<Cl_Zb
zV|0td+06fz-%l|<y*~_=5ulP4$Khz5y2R7#Pw&&{z4cUty$3m7`jpk!`3fXly2_+0
zIt-VV^r~!%MHYj=H-h*Z-9(~qyT=CGA)gfvu|OFxTds}JCRWlu%fs3u*a4Dk)7>|X
zX<Hs|AqeKP(lDSYfB>d<FF<%K<6!NAN#|o1smIhMzKz)X)qC&&$RhWeD6&Eth;19*
z5+M`<KWBFSYRZ*ypn at ABv<Y@|4v5-lSpi7??um8lk~diJ?G<naK(>q<Qh0n~Eu!o}
z_O%WR(Vy)LF-BHhQa;}*3HHd8$i8D^<Ezw8`)UEp4Xq<;O_HdY>C3fZo?jRZP16yp
zLbtjO#{M$VnWs!nkHSpZ-;@E*wg!^3v<k#y=+XNf;sRqaD8}bL6?*T_HB3-!V1?hh
znZzk+;Kpkv-NpZ|o(amreS!rVV(QOPL-;2a3Q-qyEEgMKryQp<d?mg(PWCqhB at w<h
z__yX)hAVEkw_NdJe!8hRO~##`a@<`lQ!uwDv%<EFLhm1CV9Qkr^1`w5_aCrP5yBrT
zr5gm2NkppDGtk`>+u88h6S}2D`kbW;r}XFbRK^y>b#c2C7No8c_1O6pV1L_q=`K>?
z4YQe~PszzjnF38YB2aEyM{0g>j8g#x{%*4U6RUs)6nwQNS3Jv^EKct=i^DgxVRT+%
z?H1N at j5@o9(nxWs*Ec8$0}2L(6gCGO^o9QXNhQno_MlWE-&60>Z^104#4ub+n?Xlq
zDX4J+ZHYTdTz#kAZWGVL`~yj66`(0;)sR(g)^Pykq1Q&r-dNuZ9{%e~*ysKSMF0Pc
zMjKTx)<XUjmHv$-Pw4y$km_pB3>giYRG(m{J)oh8ZO`l^i*28*4j#5W|F7|h0NVTd
zrdP1*13G!lO<9F|=OX?lH)lcL!>@KC^(GqZawDu=Qz5Q0dpg#G(^m9)){Q6&&t>1o
zqy#gNl*M6c at l^ZYp_bq)iPz>wYOs)NMuR`@Z&dle`ndAACeCgxTHCtR1s4<zl&xGv
z;R-0#u(*T-_d<bGFz^+Dj0+%pH3YP+6$BDNfkp({q;9Mgq6i_TRw)Py4GJ+~Ny{or
z5&=ns2;B2d(EIiG-QVTUnISXtzGu$zoaZ^eV$^DT+ikS8wtTFy_~8&Hn0aRH7uz&-
z8`S2nk8+*LoOA)xEgPfsN)O!)?@d$>9oNMr6WQN2rnA=+jW=Y5kb27Z^555Omr0C+
zWFBo>e2|lwOjK{^l($+ at 97B+v7V2(cd->RZ#$O5J!N>289?kqe0<<RU|3BET{vgc;
z_~a`V=jt7uBVO6Zn3bpbS&*cj)=p2leDgVAw!Wr)+IMYms7Z923SNE2lwgPO6eCeh
zC27mIPcHa<FMclk&WRJln(>!$rj3M+1xI{MTer&MYvzjMbFi?dT16=sBK$)5N7B!C
zMX;~?3K#iC2u~*f5a7pWldIT%TFvzI<hbUx(0%k};^}Ck1Y^06%8on=F$T<nR6PPh
zBwHGZZ&&}g at L}P_?=TT?N=!R_ZH1b{!Lr1+jfH!IggPmb@>3Zlfblxg8#)h3d){_H
zN>VdrY4bxN%crq+GzH5O=A!pZ+~N)B$%U98z*L^unaNnExRVvdW`y)BD-^YJIRzwb
zVe$^$?L8 at cGlTsxi7`E$`=G$1RjnGiuvAeOMH{?D#(jA#FdEmUDKGYOl1&Js;Ad at a
zGQD~DN|CfOLq+Ym44QtPV&`n`B*$5n5o**t{&E{Cs}$e;h?Vq1Z1jcL7-;WOGg~}$
zI2GdROkhNudR;8b#x8BqtvvW-9ask8QWvmhk%-LBYT~CMpUOJp7XLNs97tLNfsz{n
zU*%;MIDh2%(N?0!GvoB(f1jSg<K at 5KW6olO5d8yuy}vR5E;~cXitIJ`wz+=WvE93%
zH#JT7&HgMYDMmeP=kningPX1>RpFb<a4nnsD?W8YGS&t3mG;G6oj|B>%LWTCM$C+Z
z28yDkEkbw6^we~$On6kCTW>8mzWiS00a2r?v8C*{yI9G+;WOQ2K0DB!Xj)~dWOx|U
zN<{2Q=PAwYG)EN9<iRAZ8)<rekE)T;w0gW^Tf196G0RJOJrOX|?Mp%&4?#!C3!1;>
z7Qb;MbZ3&rPf&g!cFiqNk!95dLwkm##U54I)~!9HNinCk<X{gI?-u5xn$t7Jj7wW*
zd8?TC7|=$b(Wtn>P%+Dz9<}suHxD~7=fRYwwA!k~EzhyNlIn{Tvo>E|7iVejiE+0Z
z*rgKy%LPCt8pWuNTCux`<wK|31|bQV|MMWQU$Qak2jxCSr91h%VI}-&+qh&Pq5Q;F
zN6NH>R3A7H(K~{Aw%i=Bg7J!`zmKTyfZyLbp%4H6>Me0sFdnIGTPegQ=@D}Qg|@de
z$4%X9ypCbgF-v^klb<KclI57_aofZFhT?{l?;}2nBvo$w1mlE&Lo+E7aGa25M85jH
z34wxS#@G~~znZ^^{W_i1!S5;X2h0Sn&g}=OtXWN1*2NpK(?1 at Xe#y^ZMx38y at SoI9
z1cqIX8k_1EEbUsbQ5>Iw(L?P=$I?!LWfcv&0k-Y6x%uGAG`qX>n0V at t9LpPXBR(!u
zy^=DsJir$`<T?$|gqkqE at z_n{81<ryq-_3KU{x{w-qpEg=bFV$c7PJwsP7(Ct<+FP
z3x-CUwXxT*#=>1uazl8PdRK;;#cn2U at MCrvAcVF&7|2*=nSi8L%n9^fX!eZV;uQJO
zQz`MVQPS{gtwWhH{r<wBj%?QC{>w>#Ez{Ea3ir{&eg?7yc$&5^`P5V_FT7yPjWF!~
z^kk3s7~xra$aL{HY_h)m)LZ>fE^~K(Z3eW-S|P%SGo8g9%btXa8|set22{M{bHts^
z0HCR;N_pA+g|4FI(Q)qPZ6wBc^~E&kBXAV~Zm>EVHEW?b{*vs?+gwB2T-6M18OSZH
zVU4^JqHCW+s_=)^aX#D6&KF=`{IPh0wF8C<H%7Ttoxbuj8T?1HR<lQ}EbOs-LDH_g
zX2zhA$&IS$Ra^5#EH%ExB;OXb*iRa5Zp*AGZN%ngfqe;2+LSTr3c1o*R at UPTKCk-<
zCcn;B=eS<Nz02cdwPeCGfwptVAAFPU-f{Z?+2a42pvPr$PgKq&Lbh{?>lCSHI^=%_
z8s;;u<-IvEuV7&`P6snNs`DVY48Y}nyFuZXl|cT6drIj3Us^(E9HSV6ssV3R<U!w8
zK=Kaj2e*UtNVCLK-(&3S?D_VP-^|p?i%ASsK;6qIM4C%?kpspxUWFP2=m~%z%RhbF
zFa!u2I1$)+gA6z%3Ddy#DRppxw}7MF!A+eSAT=czS!I5JxDkle8<LKK65_Q1{|ne+
zwyIT7pxu1OT+>nXOh<~{mH(`Gp;h*Be_$yA@{N6oo6%dO(f5qyJ^^l*RSSsk6s1_$
zetC53YjIo~AsyYUme{S;#3l?*i#+1Zl?gZ6Pe0B4i_+-A;I%VGJA5?*>e?Dtq8-<%
z)dnS at P@;m?l#-V`wU%SOt at JReifhk9wUAEtgSZy;`f410QALSo<DT9QEH>u86-fvF
z_MGE7nYA^ymRvf949!$^NhOS6^YkxRUQj<#*HT;syhSs&Fp;_I<*qZUs7L8acQx0^
zw-Tl007>6p*Gz%ZS&hZp1+8%(S3uzeRk@$Xj5Q`!`QO(B+RLtWQCsY|lY&C=C`YV3
zCP^!j)Kf^rXF!Qe3OpXgc+P08zK9|%@P6-bnchyCj8Sv=Xh3SolK`#W1Oze2x)a+d
zg%luJpHGFgLaQ|y1i(8oE#TGTIU)Wkcy1&76~w|0ZO0_(ERT$V(<pS|;B)(W89^}?
zd at ZK;!>!`%KK!^F8<1wjGMnJ5oSGJ3VuUH>;(<NvP!uzl-Xi|+vDiA3<$0r(QMkU6
zBiK*2&>n3<)?#7z`^U4wdWN}#rTzOJ|513-c=rf3bnpN=6>)zWFV{1vNip4b2fS`S
z^}`OWP?Sf}5dR5<R>k?`7?O9ME$H-Ge$eF^koD_{??<LW;0BKhMF3NqY*G->w(%b2
zniaIES*IC-Rr;tV%rTxo!y{CiIUq6gxlN1Z^tI5(IfM46ZQdF!QBYHQond+?`jE7~
z#&38vrXw^?aK=Kp7oS=r$DGq_zKB=BE#e={O~-Go7FrN(X<1j<<oI$wk;81Q_Khk|
zJ>}#h7d!F>vsaI~7zQ;=HJg+P;U{r+WYQLE!yLlAF6_#lQx7x$1g$qK-g$lOEk`O%
zF6|-jjWy*KMSYKn$gmpd^LFv#(~q4MkYJF9qg|)bQVC~_X7NmViqf|jb`4gVo0`Rj
z#+r4mwTxk~FBrs7bzPvPEx#*6vZgI!_16g{hKdZcM+et}e)wy4<yFs?#bo|t-D3T*
zppq3O*&o~dCACjlkyqfqFa<sk_^6Sq at HJL=(o?bi+M8E<UIsi6JC+Tuc?U9Z!6JTv
ztVfsm;6i?#bGaWYSvr%ALTQ9gZ$NGcrCBqH(8*2a{m8k;SAp{aFdb#Vfa^m6zWe<S
zwwuaA9~|JHy^$QFiJNXH(H_jOlHe@~hfvi=C=gA97H=aPrCs0~jW)_CJh6xkC5VGc
zUSn4O;`Apt+yNXC4^Y2u(MCo+7fhgG5NOpLq50*_B?e8*|6k%<OAW;j)M)4_mnas%
zFpWLV!LE$3)xfqb>Qnxgj5mh9E#$O*+rO7mYGKh16g3v6N?jC|YEC`(&A|aWKJEbh
ze$_oP!(0_xEM_I at W;uKuLC)owy at FQ24*uCo&}}y=ZQdQ|c|c#mo4gETFPa$UWizDQ
zjFSLhekubD!7ulvD_fepgy&*Rd-TG+9?(tPk^Y02i@%S#E0CBZ*XiBS*Dz|&kEmAz
zj|pD>Se}J<c1Jr!TRwEeek4cXlV0=`@@71+?7&$^capd7UWXvj9sJ=P(4rx6VMsuN
z=Jw(MRK0$Ob?xG&j=s`y{+EQTf{j8+Z-<pkWI2%XI{E<Y#bz0oyk?dka0%J5$(vw_
z&J>$TVh9zbPs}S*>?+e8ziy>Vj=TDgdTAeJ?Tqu_Tg{%7=Os|8t;~8vB^ED8YbLPz
zIAcXYcknrkI&nf?;h at P<{<NDvENx0Fd=olvEbV)G*5(ONlPVWh<i8EDSF~GHnFjEt
zBx!4&ktXP>_710!7j6xATf$Y|ql}XFH410LdF<ljft5U88C`QEW?U*-6xb2TO>OjF
zSYi2q!dA_D<;J4?9%7E((SOr=$I%y;Tp8wMUynNu`^Os6GWy8?P+Xz-+XI!K(JJU&
z!DQPFmL2mwON}K+t>*MES0tXa!bzFb%l>cuzIyYhG(8kX8l+I4hM6bPY;)Fi)z;E`
zofK20OWMJ at XNsB-UMp;3HkM~4V+75&GPg$j&$2O*bg7&(_V@(j?(_5TK%$?3__K%+
z1Rf0;9EmZB*q}{|^a?;4Apj~&v62URF8C$wA51=l+uj`g2oD9>m>fvJ8%#=0?DFKR
zym^FMlKTRTIv~=E{h{g$`=l*Ulzt}bizOtzJ=|Y)TO)H94Z0s3a!Y#BOrwwqG?>al
zHYg01M3U7Mg9d&07ElbQQ6SIhRx*E*|5<N{e{Z1s|Cez{IueE=%R!E+^}`wSl&`=c
z$&7ctK^NznEM*i2TK{^%3m>wkv|(b23u8^CAUvu#f!{7~Rxy9sRe$r+{=TUaWh2(d
zVR_t?cA1uL<P>k`bfK^{hotr93iGW`^;C&GO4@}_8Z_qGO5%{H&LHc6Sb6c4U3|$l
zR#NR&%V*kL-SsOV<-c>a|Dj{#k*j-*2g|ONGl=Tb0Td0R$4NREPUxo_5mq~o3iDR)
zFj8EqQ|$$1P`>B{Nv(RKS`Mp(hXLX`86kH2)wCj(z_4NJmS7j3+ChluElw6oV&tar
z&Cd04{WtdnX=ppF{J*fhMl6dBRZKCjjDJglMFC3fA=K7sk4}CiT|8Y&Gp8yZ7TdTq
zhuquA2mOlJ;QYYwvyC#2$lCRI4lhAi8)uRnFHIThYlMk72tdfp04t;eOtwP!<Yr)$
z?8!MF;64s)DTEfcirHKLRkSCg$GQIUzCg+aI_vSV#}xjC?#)~$MiWk@(U5^>X3;AB
zxxn$4<6w1~3+e$)e2+h=SYL6oJJ*SuGnrhSzaR>gsR~Lo;Si1Il%9FWy at Ct!*uge0
z-sDQL- at 03bn#O%w_uU~A1!2VEPj0 at A548Ev0<Uu7uVIww4 at CK3uIH6QkOrT+D{&3D
zzSs56pxb$jA}NASU^PP?KGa~eEC+0BkXE#@@o?g{XJw8NZAi-xV5pU=R>{n77mpBQ
zUypXk3qBfORu0C4eC at Kys$s(Ikq#7*mLoKp`FF^zVZU1=9SLCxQT&(Sk?}fy!xA7?
z<7gX>r|6OZFx>a`Jh}?`e*D<XrSB_s9N~r>Li5Wfv&s at -kPggos<uo=6Rv76=*<&s
zN3*MDMqWW?gZ at xfi!0y$^OR1(2e8|}o%-iAEZwP at L0Ppu<NklPMN;25eBKEY{b%iV
MJwPhn`LA#P2b3`9r~m)}

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ct-pspec.ded b/clang/docs/ASTsForTemplatesImages/ct-pspec.ded
new file mode 100644
index 000000000000000..eb995c4ce0fa6ec
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ct-pspec.ded
@@ -0,0 +1,1868 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 20,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 50,
+        "y": 70
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 17",
+      "size": {
+        "h": 105,
+        "w": 220
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n\n\n\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 295,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 50,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 10,
+        "y": 565
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateDecl::Common 61",
+      "size": {
+        "h": 60,
+        "w": 385
+      }
+    },
+    {
+      "loc": {
+        "x": 15,
+        "y": 50
+      },
+      "name": "14",
+      "objectGraphNodeID": "ClassTemplateDecl 14",
+      "size": {
+        "h": 485,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 535,
+        "y": 210
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplateSpecializationDecl 18",
+      "size": {
+        "h": 415,
+        "w": 215
+      }
+    },
+    {
+      "attributes": "template <class T>\nstruct S;\n\ntemplate <class U>\nstruct S<U*>\n{\n  U *data;\n  S *ptr1;\n  S<U*> *ptr2;\n};\n\nS<int*> s;\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 630,
+        "y": 420
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 200,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 50,
+        "y": 210
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ClassTemplatePartialSpecializationDecl 40",
+      "size": {
+        "h": 325,
+        "w": 270
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 295,
+        "y": 115
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 41",
+      "size": {
+        "h": 45,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 530,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 16",
+      "size": {
+        "h": 70,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 780,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 62",
+      "size": {
+        "h": 145,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 530,
+        "y": 105
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmType 42",
+      "size": {
+        "h": 70,
+        "w": 160
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 345,
+        "y": 210
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 44",
+      "size": {
+        "h": 45,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 345,
+        "y": 260
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 45",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 345,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 46",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 345,
+        "y": 420
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 50",
+      "size": {
+        "h": 75,
+        "w": 180
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 775,
+        "y": 210
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 19",
+      "size": {
+        "h": 45,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 775,
+        "y": 260
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 20",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 775,
+        "y": 340
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 24",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 775,
+        "y": 420
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 28",
+      "size": {
+        "h": 75,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 775,
+        "y": 500
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 32",
+      "size": {
+        "h": 20,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 775,
+        "y": 525
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 34",
+      "size": {
+        "h": 20,
+        "w": 185
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 775,
+        "y": 550
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 37",
+      "size": {
+        "h": 20,
+        "w": 185
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 23": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 76": {"syntax": "\"void\""},
+    "CXXConstructExpr 58": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S<int *>",
+        "ptr": "ElaboratedType 55"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 32": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 33"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (void) noexcept",
+        "ptr": "FunctionProtoType 66"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-pspec.cc:8:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-pspec.cc:8:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 34"},
+      "ODRHash": "0",
+      "ParamInfo": "(empty)",
+      "RD::First": {"ptr": "CXXConstructorDecl 32"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 32"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 34": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const S<int *> &)",
+        "ptr": "FunctionProtoType 67"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-pspec.cc:8:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-pspec.cc:8:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 37"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 35"},
+      "RD::First": {"ptr": "CXXConstructorDecl 34"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 34"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 37": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "CtorInitializers": "TODO",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (S<int *> &&)",
+        "ptr": "FunctionProtoType 69"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ct-pspec.cc:8:8",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ct-pspec.cc:8:8",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 38"},
+      "RD::First": {"ptr": "CXXConstructorDecl 37"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 37"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 17": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "CTD": {"ptr": "ClassTemplateDecl 14"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:5:8",
+      "LocStart": "in/src/ct-pspec.cc:5:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 17"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 17"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsFreeStanding MayHaveOutOfDateDef",
+      "TypeForDecl": {
+        "preview": "S<T>",
+        "ptr": "InjectedClassNameType 63"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 19": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LocStart": "in/src/ct-pspec.cc:8:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 20"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 19"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 19"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 44": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LocStart": "in/src/ct-pspec.cc:8:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 45"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 44"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 44"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 59": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 60": {"skipping reserved": "\"__va_list_tag\""},
+    "ClassTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "ClassTemplateDecl::Common 61"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-pspec.cc:5:8",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "ClassTemplateDecl 14"},
+      "RD::Prev": {"ptr": "ClassTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-pspec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-pspec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-pspec.cc:4:1",
+      "TdD": {"ptr": "CXXRecordDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ClassTemplateDecl::Common 61": {
+      "InjectedArgs": "null",
+      "InjectedClassNameType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 75"
+      },
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "PartialSpecializations[0]": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Specializations[0]": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "associated decl": {"ptr": "ClassTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ClassTemplatePartialSpecializationDecl 40": {
+      "Access": "AS_none",
+      "ArgsAsWritten": "TODO",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-pspec.cc:9:1, line:13:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplatePartialSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 71"},
+      "EI->ExternLoc": "<invalid loc>",
+      "EI->TemplateKeywordLoc": "in/src/ct-pspec.cc:7:1",
+      "EI->TypeAsWritten": "TemplateSpecialization(\"S<U *>\", <in/src/ct-pspec.cc:8:8, col:12>, NullTypeLoc)",
+      "FirstDecl": {"ptr": "CXXRecordDecl 44"},
+      "IdentifierNamespace": "0",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FieldDecl 50"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LocStart": "in/src/ct-pspec.cc:8:1",
+      "LookupPtr": "StoredDeclsMap with 4 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "VarDecl 54"},
+      "ODRHash": "38696185",
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 41"},
+      "PointOfInstantiation": "<invalid loc>",
+      "RD::First": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "RD::Prev": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "ST.CTD": {"ptr": "ClassTemplateDecl 14"},
+      "SpecializationKind": "TSK_ExplicitSpecialization",
+      "TP": "\"template <class U>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ct-pspec.cc:7:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ct-pspec.cc:7:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ct-pspec.cc:7:1",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateArgs": "\"<type-parameter-0-0 *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 72"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom()": null,
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTD": {"ptr": "ClassTemplateDecl 14"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "specdThisLevel": 0
+    },
+    "ClassTemplateSpecializationDecl 18": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ct-pspec.cc:9:1, line:13:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "ClassTemplateSpecializationDecl",
+      "DefinitionData": {"ptr": "DefinitionData 64"},
+      "ExplicitInfo": "null",
+      "FirstDecl": {"ptr": "CXXRecordDecl 19"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 37"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "LocStart": "in/src/ct-pspec.cc:8:1",
+      "LookupPtr": "StoredDeclsMap with 5 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "64344219",
+      "PointOfInstantiation": "in/src/ct-pspec.cc:15:9",
+      "RD::First": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "RD::Prev": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "ST.SPS->PartialSpecialization": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "ST.SPS->TemplateArgs": "\"<int>\"",
+      "SpecializationKind": "TSK_ImplicitInstantiation",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TemplateArgs": "\"<int *>\"",
+      "TemplateArgs[0].Kind": "Type",
+      "TemplateArgs[0].TOV.V": {
+        "preview": "int *",
+        "ptr": "PointerType 57"
+      },
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFrom().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getSpecializedOrPartial().CTPSD": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "getSpecializedTemplate()": {"ptr": "ClassTemplateDecl 14"},
+      "getTemplateInstantiationPattern()": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CompoundStmt 33": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DefinitionData 64": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "HasConstexprNonCopyMoveConstructor",
+        "HasDefaultedDefaultConstructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "HasConstexprDefaultConstructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "DefinitionData 71": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasOnlyCMembers",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "ElaboratedType 26": {
+      "Canon": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"S<int *>\""
+    },
+    "ElaboratedType 30": {
+      "Canon": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int *>",
+        "ptr": "TemplateSpecializationType 31"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"S<int *>\""
+    },
+    "ElaboratedType 48": {
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "syntax": "\"S<type-parameter-0-0 *>\""
+    },
+    "ElaboratedType 52": {
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<U *>",
+        "ptr": "TemplateSpecializationType 53"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "syntax": "\"S<U *>\""
+    },
+    "ElaboratedType 55": {
+      "Canon": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "S<int *>",
+        "ptr": "TemplateSpecializationType 56"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"S<int *>\""
+    },
+    "FieldDecl 20": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "1",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int *",
+        "ptr": "PointerType 21"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:10:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:10:6",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "TInfo": "Pointer(\"int *\", <in/src/ct-pspec.cc:10:3, col:5>, SubstTemplateTypeParm(\"int\", <in/src/ct-pspec.cc:10:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "2",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int *> *",
+        "ptr": "PointerType 25"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:11:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:11:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 28"},
+      "TInfo": "Pointer(\"S<int *> *\", <in/src/ct-pspec.cc:11:3, col:5>, Elaborated(\"S<int *>\", <in/src/ct-pspec.cc:11:3>, Record(\"struct S<int *>\", <in/src/ct-pspec.cc:11:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 28": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "3",
+      "DC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int *> *",
+        "ptr": "PointerType 29"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:12:3",
+      "LDC": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:12:10",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 32"},
+      "TInfo": "Pointer(\"S<int *> *\", <in/src/ct-pspec.cc:12:3, col:9>, Elaborated(\"S<int *>\", <in/src/ct-pspec.cc:12:3, col:7>, TemplateSpecialization(\"S<int *>\", <in/src/ct-pspec.cc:12:3, col:7>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 45": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "U *",
+        "ptr": "PointerType 43"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:10:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:10:6",
+      "Name": "\"data\"",
+      "NextInContext": {"ptr": "FieldDecl 46"},
+      "TInfo": "Pointer(\"U *\", <in/src/ct-pspec.cc:10:3, col:5>, TemplateTypeParm(\"U\", <in/src/ct-pspec.cc:10:3>, NullTypeLoc))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 46": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<type-parameter-0-0 *> *",
+        "ptr": "PointerType 47"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:11:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:11:6",
+      "Name": "\"ptr1\"",
+      "NextInContext": {"ptr": "FieldDecl 50"},
+      "TInfo": "Pointer(\"S<type-parameter-0-0 *> *\", <in/src/ct-pspec.cc:11:3, col:5>, Elaborated(\"S<type-parameter-0-0 *>\", <in/src/ct-pspec.cc:11:3>, InjectedClassName(\"S<type-parameter-0-0 *>\", <in/src/ct-pspec.cc:11:3>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 50": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<U *> *",
+        "ptr": "PointerType 51"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:12:3",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:12:10",
+      "Name": "\"ptr2\"",
+      "NextInContext": {"ptr": "null"},
+      "TInfo": "Pointer(\"S<U *> *\", <in/src/ct-pspec.cc:12:3, col:9>, Elaborated(\"S<U *>\", <in/src/ct-pspec.cc:12:3, col:7>, TemplateSpecialization(\"S<U *>\", <in/src/ct-pspec.cc:12:3, col:7>, NullTypeLoc)))",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 66": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 76"
+      },
+      "syntax": "\"void (void) noexcept\""
+    },
+    "FunctionProtoType 67": {
+      "Canon": {
+        "preview": "void (const struct S<int *> &)",
+        "ptr": "FunctionProtoType 77"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 76"
+      },
+      "paramType[0]": {
+        "preview": "const S<int *> &",
+        "ptr": "LValueReferenceType 36"
+      },
+      "syntax": "\"void (const S<int *> &)\""
+    },
+    "FunctionProtoType 69": {
+      "Canon": {
+        "preview": "void (struct S<int *> &&)",
+        "ptr": "FunctionProtoType 78"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 76"
+      },
+      "paramType[0]": {
+        "preview": "S<int *> &&",
+        "ptr": "RValueReferenceType 39"
+      },
+      "syntax": "\"void (S<int *> &&)\""
+    },
+    "FunctionProtoType 77": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 76"
+      },
+      "paramType[0]": {
+        "preview": "const struct S<int *> &",
+        "ptr": "LValueReferenceType 68"
+      },
+      "syntax": "\"void (const struct S<int *> &)\""
+    },
+    "FunctionProtoType 78": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 76"
+      },
+      "paramType[0]": {
+        "preview": "struct S<int *> &&",
+        "ptr": "RValueReferenceType 70"
+      },
+      "syntax": "\"void (struct S<int *> &&)\""
+    },
+    "InjectedClassNameType 49": {
+      "Decl": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "InjectedType": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 74"
+      },
+      "syntax": "\"S<type-parameter-0-0 *>\""
+    },
+    "InjectedClassNameType 63": {
+      "Decl": {"ptr": "CXXRecordDecl 17"},
+      "InjectedType": {
+        "preview": "S<T>",
+        "ptr": "TemplateSpecializationType 75"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "LValueReferenceType 36": {
+      "Canon": {
+        "preview": "const struct S<int *> &",
+        "ptr": "LValueReferenceType 68"
+      },
+      "PointeeType": {
+        "preview": "const S<int *>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"const S<int *> &\""
+    },
+    "LValueReferenceType 68": {
+      "PointeeType": {
+        "preview": "const struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"const struct S<int *> &\""
+    },
+    "ParmVarDecl 35": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 34"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const S<int *> &",
+        "ptr": "LValueReferenceType 36"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:8:8",
+      "LDC": {"ptr": "CXXConstructorDecl 34"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 38": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 37"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int *> &&",
+        "ptr": "RValueReferenceType 39"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:8:8",
+      "LDC": {"ptr": "CXXConstructorDecl 37"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:8:8",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 21": {
+      "Canon": {
+        "preview": "int *",
+        "ptr": "PointerType 57"
+      },
+      "PointeeType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 22"
+      },
+      "syntax": "\"int *\""
+    },
+    "PointerType 25": {
+      "Canon": {
+        "preview": "struct S<int *> *",
+        "ptr": "PointerType 65"
+      },
+      "PointeeType": {
+        "preview": "S<int *>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<int *> *\""
+    },
+    "PointerType 29": {
+      "Canon": {
+        "preview": "struct S<int *> *",
+        "ptr": "PointerType 65"
+      },
+      "PointeeType": {
+        "preview": "S<int *>",
+        "ptr": "ElaboratedType 30"
+      },
+      "syntax": "\"S<int *> *\""
+    },
+    "PointerType 43": {
+      "Canon": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 72"
+      },
+      "PointeeType": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 42"
+      },
+      "syntax": "\"U *\""
+    },
+    "PointerType 47": {
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *> *",
+        "ptr": "PointerType 73"
+      },
+      "PointeeType": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "ElaboratedType 48"
+      },
+      "syntax": "\"S<type-parameter-0-0 *> *\""
+    },
+    "PointerType 51": {
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *> *",
+        "ptr": "PointerType 73"
+      },
+      "PointeeType": {
+        "preview": "S<U *>",
+        "ptr": "ElaboratedType 52"
+      },
+      "syntax": "\"S<U *> *\""
+    },
+    "PointerType 57": {
+      "PointeeType": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "syntax": "\"int *\""
+    },
+    "PointerType 65": {
+      "PointeeType": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"struct S<int *> *\""
+    },
+    "PointerType 72": {
+      "PointeeType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "syntax": "\"type-parameter-0-0 *\""
+    },
+    "PointerType 73": {
+      "PointeeType": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "syntax": "\"S<type-parameter-0-0 *> *\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 39": {
+      "Canon": {
+        "preview": "struct S<int *> &&",
+        "ptr": "RValueReferenceType 70"
+      },
+      "PointeeType": {
+        "preview": "S<int *>",
+        "ptr": "ElaboratedType 26"
+      },
+      "syntax": "\"S<int *> &&\""
+    },
+    "RValueReferenceType 70": {
+      "PointeeType": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"struct S<int *> &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 60"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 27": {
+      "decl": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "syntax": "\"struct S<int *>\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 59"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "SubstTemplateTypeParmType 22": {
+      "AssociatedDecl": {"ptr": "ClassTemplateSpecializationDecl 18"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateSpecializationType 31": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int *",
+        "ptr": "PointerType 21"
+      },
+      "desugar()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"S<int *>\""
+    },
+    "TemplateSpecializationType 53": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"U *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "U *",
+        "ptr": "PointerType 43"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "InjectedClassNameType 49"
+      },
+      "syntax": "\"S<U *>\""
+    },
+    "TemplateSpecializationType 56": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"int *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "int *",
+        "ptr": "PointerType 57"
+      },
+      "desugar()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S<int *>",
+        "ptr": "RecordType 27"
+      },
+      "syntax": "\"S<int *>\""
+    },
+    "TemplateSpecializationType 74": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 79"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 72"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 79"
+      },
+      "syntax": "\"S<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 75": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Canon": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"T\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "syntax": "\"S<T>\""
+    },
+    "TemplateSpecializationType 79": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0 *\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0 *",
+        "ptr": "PointerType 72"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0 *>",
+        "ptr": "TemplateSpecializationType 79"
+      },
+      "syntax": "\"S<type-parameter-0-0 *>\""
+    },
+    "TemplateSpecializationType 80": {
+      "Bits.NumArgs": "1",
+      "Bits.TypeAlias": "0",
+      "Template": "S",
+      "TemplateDecl": {"ptr": "ClassTemplateDecl 14"},
+      "args[0]": "\"type-parameter-0-0\" (ArgKind::Type)",
+      "args[0].Type": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "desugar()": {
+        "preview": "S<type-parameter-0-0>",
+        "ptr": "TemplateSpecializationType 80"
+      },
+      "syntax": "\"S<type-parameter-0-0>\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXRecordDecl 17"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:4:17",
+      "LocStart": "in/src/ct-pspec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmDecl 41": {
+      "Access": "AS_public",
+      "DC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "ClassTemplatePartialSpecializationDecl 40"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ct-pspec.cc:7:17",
+      "LocStart": "in/src/ct-pspec.cc:7:11",
+      "Name": "\"U\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "U",
+        "ptr": "TemplateTypeParmType 42"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 42": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 62"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 41"},
+      "isParameterPack": "0",
+      "syntax": "\"U\""
+    },
+    "TemplateTypeParmType 62": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "VarDecl 54"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 54": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S<int *>",
+        "ptr": "ElaboratedType 55"
+      },
+      "Evaluated": "None",
+      "EvaluatedStmt flags": "",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 58"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ct-pspec.cc:15:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ct-pspec.cc:15:9",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"S<int *>\", <in/src/ct-pspec.cc:15:1, col:7>, TemplateSpecialization(\"S<int *>\", <in/src/ct-pspec.cc:15:1, col:7>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "TP->NumTParams",
+      "TP",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "ST.SPS->TemplateArgs",
+      "TemplateSpecializationKind",
+      "q->TemplParamLists[0]",
+      "args[0].Type",
+      "InjectedClassNameType",
+      "PartialSpecializations[0]",
+      "Specializations[0]",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "Specializations[1]",
+      "ST.SPS->PartialSpecialization",
+      "TemplateArgs[0].TOV.V",
+      "ST.classTemplateDecl",
+      "Param[0]",
+      "PointeeType",
+      "CanonicalType",
+      "InjectedType"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ct-pspec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "Param[0]",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Cmn",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 0},
+      "label": "CTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 325,
+        "y": 515
+      }],
+      "end": {"entityRef": 7},
+      "label": "ST.SPS->PartialSpecialization",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 305,
+        "y": 170
+      }],
+      "end": {"entityRef": 8},
+      "label": "Param[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 170,
+        "y": 190
+      }],
+      "end": {"entityRef": 4},
+      "label": "ST.CTD",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Canon",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "TypeForDecl",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "Canon",
+      "start": {"entityRef": 11}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 540
+      }],
+      "end": {"entityRef": 7},
+      "label": "PartialSpecializations[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 315,
+        "y": 200
+      }],
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 13}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 14}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "DC",
+      "start": {"entityRef": 15}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 16}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 17}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 20}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 21}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "DC",
+      "start": {"entityRef": 22}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 636,
+    "w": 973
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ct-pspec.ded.png b/clang/docs/ASTsForTemplatesImages/ct-pspec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0ef2dc47497cfb522f120f104b87e578ae3a73b
GIT binary patch
literal 33720
zcmZ^}2{_bU_&1KSlr1DXMVqa~46=+RYbBl*WLGjX_89wELMmlRMH!4W%2>+S*R&vJ
z7zvHFlChgIm at s(H(DVG>-}V0gb9G&r?>Te6_c{0W`P}!3`^Vgbcdz(f78VxXbEbxu
zSy*-vSy<S at xH!O*57q|BEG!2iL$6-*H}LWDa`pCSVF}KdhduNjYAtU*yH6zc%JEXu
z<lKA?*8LjZv1d|CkGz<a<>Rrn at AN!=`G~xhHzraS&wn{=ZZYTH_>wpbR{4 at V5;9Mi
zo4d7SSrtax{1Qm2tu^#Jxis+dkeqsjfdsoBb=;c#o8m{sF^m at ELk%Jxp-U*$cjp9e
ztwtsuXsWG)(UqXuA&1m&Qr9e?{E<W2yR)NQI9m2ATPKR;3PFPo8|@;!-IVyA<}-mE
z^lYcU)~jEgw;RWK-p%oGDl>@J_lx^f!dWBRws(z1prOXU)+up1==BG9t}ct`gQhzM
z18g%#6;X-D27(W|bibL at D`d2l at Ftx;ZdQ3cX7sS<DR=yL-K|<ZRCo1p?szEo(*pD0
z?4p2>*Q<qhBqRjCETrbf=bs6`mh)!%q`Z76W`E|nD+7v`-x*xWvF{&RD;?~g<!zYw
zjCxV^xD|i#w`ag{tcKBm(C{Jg`b<9$siWkzXxPh83l_mzn+fkrgO;v^4mvhDwO*Pl
zV{jz;gzJT4?+?VjG5Y at UTstM%k@&mf^V0GQiQB%Id!K(=6VjC4DzW}@Ux9?Jg-)OU
zY_>*LF`!v9=!R<{!fSgsB;G&jRtVcPF34yoAK8cHXcnZ5eoch at lI-U6-{jXw49dE3
zwcbeh>J_1QOt42}Vm|Ay!yezhV!sKj!%_~qjz2z}6-o;@n0e*AU#pMFGE1*Obm*-L
zLyrQnfy-&BqUbSL2<rX|JSY04>s)-nK*hb3bEbQF@*a^ph#R6I45xE$g>foX0p!a2
z;?GMb2T{GBE+PC^&N<i-gU3zbnK6%#Jry(DwSMrz6`2c22|?Sze(A%)2i<Jc>q-op
zOyWf$IS$YE?1pvRHoNA^xX*)h(>is~!!N>+BmYMXhKH1nzM+>e?;*NQZaQ!MI($~M
zr7bDS<-pwQ5X<DL2+74Da$V8N`zOtvt(ICz1`*O8jkO=Eq=M(>ey;A`usZ5_|1%`%
zc9ZRTO}D<&BZtu4OUvQ6#`fiHy*f0spu9Lw@{fy-WEc+MO-;{10#OGX92qN=m*m@#
zzkcw%Qcu*_QgTr{ob$AF(0S{qGi&cX$(Kd5yemFzPtUYy7Z<61ZQk=0g7%d-&-i3F
zf0yl;j$GVgyZQ(_V)1|(&#zEH*T8?e--&y@)%Oye-ygtL8)9DJ|Lv at z!RSv~%u=h(
zWb!|Q=M8!=x9=yj$dqlQymz_B`sMn!!_qE8L~g at AP2Mx^v*&c|4=Oh6uv~XLF5kZN
zN?xmg*8oE_*3yXPZf^?`JYmpe1yyDEutAdz-eS^8k;Q{P{Z&GPCtwb0zn^?-;l23P
zeDQ^Lv+BkLvHo*WuS$5H&)*GssYL1%zAf*5jQ<tl;DERDN&B1UejGB^f>65f%6n6X
zJAImq!_HBizY0~H{UFc!r*`s&4 at 5R27*T(qpBiK>H&*V at 8+p5|KqQ#ZVG^WP*EZK`
zBR at Sk@T*VZ!(7Dd^8qaXG1$Y$+2b#CpJ!)!Ht|zSTSb2AA9$4za_`6*>eRunyH}1`
z<Caxx46pr2K)@a?f4aQOr*^TwG}h=ur7dH6^y~G5BWEaV-A5iCOza-$WDS$93pBl~
z!zH08W^yj0t+(eBSCfX=;al<+C)q-eO(MP??=*SMy0705!y^6e6x!Qm&o_z0KOuJl
zml~nmdVfTwI9AV`crAL6By at K8_H;J%$G!NW5I-{g=7krAajHg|@3ywi`oWf56RoZ*
z_4ih4wS9;WKe>c7&%Jp3tU6_I&)A0ko?TuwyWT19$>8sgt1b<QBFb&_2S)B;te&L(
znowXlAk{tDXwKgz>*MR}KhAnTM9SIHQ?KF&=b;vL%A5K?$p-kH3x~A{InGm>RS)y0
z_+_IdB)%@!?@3OPI(yjY7XRsm_s%mzK?i03JiNs6=*}gsKn^9{4_a&%-^SCAg+ at fX
zns*)hG;%7xi?6==d7H$BXx)j$sKs;0wd(?_h-KAj!hYXL9-gXNy{nyP<@F9(RS2?X
zgp5uuyEml0Jk%?p{`%mP3&mF^4+pyzrM^v-7-JF7d&2#Vp*&>h(yRW=?1PD(-JjdZ
zb!VoR?`J%myz)CtG?1sxmev34wfhOZ-yYah$lI+;BGb+9{@FABtKEVY{QfpO8y_c%
ztM!raD|_h7lo9qf3qL%?^NZ>F+go?qgD!HuH*sgZWuP~-d*dB^@e4hb+OsIW+9MnN
zN&X*kJF`@lu(_cNq|bu!d1dON-!Jl=KAs)!@1n^%ctcX{#>e*xR|I%pzlP=6huw=6
zhjB)nfO*Vk_rN@>zV$nvey@&#1>cAZi?`}&GknRYm+Cwu`AO2?!lkf-8%w$E&qTNQ
zoZf9}E;FL0wY8oZoDs=;TN~yXG04+e%_C!`c0S48lszcVGDv+8Ump^vZaJLrd(NA0
z&RZ?9;A^jc7L155{1k#g_6;V!xbpsuXrI)>-*eZnQrvBC@)e;FosTax&obVgdP_dd
z`8~H;LLxmpSMZLIXe;LhJx at us$Tu6 at uUS7FxOEC9;5qT~?k~GRAG7dYUdeZ{V#UTe
zFJD~@z3rYFX>ep!;oa5;o{NbN!s)|ov+AlMTO?g%LZ{7<8!PZqe|YJG_ at dD(D;}Sh
z60bw+jW0Y8Ip^`L{n|v%4^Fe}jo<aSs69i+S(*c*^cI~92}W!;_73XiEI)ex?TZQ5
zpKsB+wx(3#y)mK|)b?Ipx=^l<dN9;<`sqj3GzQK830k`Dj1R9jkD?MqFktmCBz~)c
z#2fJdA-1|z&ymtr=WABB>rA?uc|ulNr$^@pY+%LNraf at m*F+bC^g+lu=N`DA?G+Vg
z30#}l<$(|WAFt0!#}f|tPO`ouP`x~xu4G at 8?3%wBa at qChkX^R-5$-P|BW!!j%q6eA
z2pqU8b~b&#NGPJT^?2%10V(*rnmjAxr{^Q9N3US{yb8svWnK^5od#j at xT~!XWqQxJ
zt*x}46FRns_K!u!nTw9!?ca3@>kPgt`0b?Tr1r%4fsBFM2m)<Mbeuj6->Wl(6XrvN
z??1T3XQNWGbSCRjo=!3Mk63EiS(Jb^;xODz{UN*-QYNXzB@`2)e`L%5%(Xi97UZI9
zMTteQrB|0OS^MfogKM5wMk8`;;-=0`N8x@{8b}S9_!+)pJeoRUsGn<kOZwZ_1FS#&
z%}jqZJh|(Zk?7Q<Gt$lxsXbfIZIUtkCG`9geQepYD`yW%m%P3w^5VUgz~MCyuk{+f
zQ}wTYRSU=)LB7Wo3nhoYXtT%>KCU7)QD2Ajc<Y~>Ik$eNk}&62f at q0Lk)ijVKaqPn
ztm8~#KV$t6>>Qh7DIcf&i;@?#lw*R at 2$oi$*29XzXYN0hd=vlkXvpz#NiVB^VxQA^
zWe+&(p0Dck4a6U>xtZgrS at rYyt?EMP;fw*Qd<ph3uR8s?3hqO6w4Ta_y$YAO&%KjQ
zSGW~xj)-}${L)&w#b1B9CWW^=<r5caet&&!k>Bp4YkfRF9$%<E^!plj@(lwF+T7xj
zlltMueD~t6Z-_ALL>--5=~ph+ww4a5csviiM|tz^=bk(E_lw0F)U7`^N{yb!>{j~a
zdos4D>vY{J31aD3VqQOFrCDcBKH`2y!-e1cQ(n5KXu4&UO1BNX{QR)n^eufJ{?F%Q
ze?OV_eeoqE^iWko;gcZiSLx4)u8E}1?yBX*R&U4Auj$VU3vv#^GSpkrGJJn%e`xsq
zf}lI`kK++%{R>HQ3%yrvtqe_1z5ji$f^+hs6xu(xdmnnAh<S%VR=0cfao(8kW!2j4
zAMJMA$Yptb%M<BaaS9D4YHvhXJmM9j?)C`v;6zOEMeT*+FY)Te7e%hq^T$&i*izL5
zF5c84OKA)_yl7#$c<5nFlvifMFULsSuDQ*yCdZ-4$uhwq+Y7x{7X?e+MxjVomK>|2
z6-A`Q&xh3n+o$Z73|{yYytt^UF8FmN;{%0&KISYIVEj(+V25Pks_ob%ii}F6m+#2Y
z#`3R8S%*=+QhDBU6w$4V>PjD66OPFiS{Ash2V`n}_YF?6<<48&Z$a63Gitr~=m&`&
zPK#<{6h5|}qoimSgul|BGno*&_>lq=;)!tKIDYBY9*<$x%Sz{jEU&Xsj(T3O-*5PE
zUDWkzMn2!%hTByxD-Pn`U8^xQLU^`!cRJTNb)|!G_vY~QQK|E(dyl><^~i`jc7{F3
zFoAo5JvdEP+B3<WXMq0~?&*cE6Q{3H1UzSW!)5P$_KXN?_%?N5+UiLJ;}Ij{1R{gI
z{p3~Ff}=7jGixn;a~_<&m8nK(nTgFC-}Bf at Zc1ns%qL1d{NTCImi=cwe62ri^;?O-
zB3G`Q(I*(EXWP%vXH5k2ta$s$>-(;s$LdW9TdUZeBjr%#I7eDGi4RVeK46zUok!E;
z(eoAXa(wJ(uS!@CtVz?w+mp>0VlOS6)(apF8u%6-%;9>%jp+EZ`p09+xIPK_C32P=
zRw-8BE&5)f@>27CC6$9WL at f&mOObjRX)GI0s~_H7%=`LLwBW<Ll-fLm0o`+o&wJ`T
zFE<bSkF;}#eygVW|GZ+w*q6$g{=_VuHKhV}FyTm*w)|@ep0MMEDP+-f8Z9oP=;WJ4
zdPs`(?K44?&5vC&*YsxDt^VO at xiP$kI-2|W6J;)S(gL?S^5;o<-M23Mi!dK!H!0S<
zz)v3+-qz2Hl(c+wNIiGj>ZyM>&Bi+GKo&w+^{P+!$<eMm#a|-tH<nb(g!>fkO*XR3
z--U|k3{&*(x;uI4XY at PL;~z_AYg*k9Un{d00}Bn+d*w8XEN$M*x`!os-8;kXc_Mc~
z>wU{DHo;b>_7unYE0{(rwLOk+ZZ?j-P*eJ14$t>>nR{SKso;6wo8Y at N_1Mq$s^0DC
zT;bhovv;93PMp366zX2++~CdlAawIQ|Ecg7Hii2~Ri9pl<zH^~>D~*y68Ql0N;?&<
z;6}Xj;^_kn`MU?@?#S8s%a3Pj-~2H-Cvi-Augl9c?K;9>&*SUz;iWiI?S)UWvEJbp
zu?spzu~sq{ax85b$zPC_-g0~a9(`7FeGC0o^T97!4Y<#@&6wdIwt9q0CHNe03#$|{
zKQA14loVXDykE6Rspfb%?dO{tJS9YHx=kNfjF3HnPsA2EUs&)g8uiH3E}`&ci7RVc
zQ)R$xO^j8_Vmw}t%P#g%bZ^A<;AE`@Z&>dMxLsL*WLU=hX(1}d#yM%8&fJu6>fJj1
z3-+-cWDfki+|%5mrH<d{md{oFgL1 at Ked}P~+i%`Z&DxK1D0p^Dv;N)ezD^b8hSUf~
z at zruIXA1K2@L`fO at n}_Uw5SL}qv%2sCwzT>>ywP+qaS}itcU6o5$8$=avmv;oGtzN
z=Mv#jm%ixZYvE5&<G*Fo^9brc1mCor3jC*C<r3xjwc|a3g?hOm8~ZPR(cm%)i9NnQ
zuIH!V`%8-F at 10s5UROXou$jHKf*f2E5jUc~cMB+$xKrZ1_|(@?UP(5)YX~jxS;(Ur
z<?wwdcHR<Gr`5%M-_1q1`)Tu~i$aeoeQ(?tym|6zar4DMr?)&0&J~OuOQfFQ7-uO_
z_7Pme);lLl7Q%Ie-`yV!v*P(#b?eyN=O*gO=MdfLaXZn-bETsi*PZ%GBhIwi`N_(z
z5n~J@;&Vbjw9PIa`_XUZQ}Hp!A?3BV<ox>0=h%OuJ>Q#|t2cfcw#yOXy5ViIIknc!
zdV()e;ryA*m7}{>M&&nW-RC)qwXl{)6gvHRhYLf+hkhC<YS1Io;NsnwPrZaC;lpG6
zDSeCFC5`jm5r)y|PU8VfNC9?aWa1YtctH7WWr at fS+o5AepNwc+HOkq{%O317jy8Jf
zuFP80!1C~+a(M5h`}0a7DlhWOTwmyp-;me5)PF%)yhO0|fXU0%(46y^<dY6MRFGH9
zNX0CXu+FuM-iPm%UJ~s;q8>^yNmlThuW~%Iq4xWRcj1J!>X&zxG{58hKLb-Uwe|g8
zBZY7HeqB?NK0ES*YqNi;w%n at RiqpWD#{Dkd-MIX73!UZeMq$>6b_rsPhi3x=9)H&V
zqr#c at Rrt%_8ecz6w^ltvv#JX}FrH<1r`otGJe4KLceeQ5Yc|e7Uwm40#@$Dn5vQ&?
z&wRc##y~Bl8PT}+J085|mw3w+BK=G`OcC2;%<drd#LULVKAroCiLT1qQPGbnem?~`
zrnRcXwg%twP2Bgj at cde{NO6h!CFmoBSqlG>UznWum9=2tJ?`7BvG`HjiP|^s7PTL$
zgw5XgXrg>u>BP;Eiy2y~g<qfDK~zrI*~=Vyw2)+V4~ENUo!^?2z+mmSlqCj9d<{7d
z`$wsz6i#Agz9a2t-9*z#*K>Wd4}PTI+32hk+>=Rhe4$w)|IY3Ar3-EY`|Wu#wRE+Q
z?@ABlO@{m35C80 at BOo@X6r~`4*Mx-bGIKj*h`iKwU-3G`ZFShoV__!uWz;VNn=$9n
zy{f29TZ_{_%i$MT@(=rP6j+vW=t0IJY|?JYR;WC9eghsY@<*eZ)BFhS8ipYf053k=
zIY0aD^8BwLAv)`Yu6Tt|=bKB;EA65G$X7es at ykjTg`WK9BRqLsNn_ at 9-MPnRh2s??
z%2U~1oWJMAyGmY*2?ly}R9_M}iRFV;Y`Dq8 at NA)j3d)FA_l@(zUU)2qiR(uXF-qI!
z4W19@^}HL_n#tve%3yc(Hqj;UagUIyADIf4+G;glT%VhZpVp~1x+^zSR8_o%O`dDE
z_B`5A?G^1Ed;jcGI_m&*OXS7vG`%aHilV%}*|~wGXWm!jUibK26WCMZS*otva3!|i
z_0duFL%m+JCudZfiz9_{dexQnbNc^?vAlk8`;Wl1Rq8cFlBMV;%${2oP5D87Mq&ly
zUtS6zny&}dj0HHuj<`@IuKsRf*Dbc820*3M&yQ>bRD6Mwt0MyC7g%f?Ju)B+qPlgB
zTyH|-+qqjk8?}g>2(J3sP^ll%XDS3vu1A+Y(b?<Wi0%(5pr2k8Or|~5=JUF7Ar<k?
zG~mAdIF9cIRjs5zorS^qbvdJ at KLypSzE5B96wg^cm+5`-Z?@EE#?6IKH4l4By0#>}
z+H3c2QWN>ae8k8r_+$7<a*{qmoD8q?_p`gZ*EZonSEnbziATG$?Td}&Qu+a-W`&lG
zST4z+UlD7Tl+Bu5cUvv{UzwyCe_C~YYT;*d%=*&gWfgBM>{n-;_saCTYpOebvf#;g
zq18X~jmt+z2eb07q<<xik2`&f9Mv?ljdG!_i8p-soyDsE*~ENFQCg<CBOf8UX at R`Q
ze=G1YT7ke{u($f5`3=#3>@wKAqQ$;l>^W~16)AjQ*H$RrN-(dbfyRl8ZXy2s+$+?A
zeDUt{pMmQ$$tA~(QGHL<Z62Dbao+oZ?mClyIm)^A#SHH%>ru-kpDgi=zWAT+M;?5#
zyC$MMoX at Rj{G|ETy|RNkFQp94!a3WtL^g2r4cgdxuiF-5=KavaS1fxBZtqqyPoCQQ
zi1hi(LnAM)JAD@)Xu6KhzD$4oS>2B at Zb1^hnEmBl9$r!Uf$X=MLD#i{J!ic0Kc0Y+
zDxcctJS-yaeYn>v>b`smhoWqcmBh%PTSfbBD~S^8*9Jd&<}-~SR#{f|$i`VpC=Xsp
zF~(UIR|i+LqpnKu)^WH?KgOqr-ALztjs0xbc^BXCLFe5+{j!4TKkkO{3#0_;zS%n3
z)@WBd;9dD${@VUs{?uly;X(GTfVcK6ES^i}4E3)D56+M1mltdHzL?f}=}tN0p&f}A
z*LYlkd2el%kX{9e&|7$Xfh+hx)!dwr{_TSY^F^N7Z!zxO-}&$@CtcAq-2Onhh+7O=
zSknURuDYa_!1gB!PBPmWrDd;faejylUmg^@hAjzN3SEMb>0K-6iY?O+eaOyiq)zN0
z*BR-kz at OCi&@_6fPA`6g>$%YOU=L at G#+u{FTl8q({Wow`{Fu0H0rXHs>j6jo*6Ap*
zmkA3v5ezyhc1JQj)Luz+y_w0_Y}D7H`53tD_J`zYhWduu5ozfXa+5nQd7;mQ6cV&D
zhx6;iUfdZmAPqO>@V(xhxAS#3=3fb6Vwj}zbF`4VUOUUJ?St-!Cm?`4y7P#Qxbq{!
z?6e(0xc;3I^;ZVjf6rw1-%Z at t`+ETY_aggi(l%Eon^zagB~#|zVcUy?wR`nc7YAp`
zC8HMkTn{rJf at j&Q%^O=vKhV4D(*piViaZ*s1g(Bsg%}xY{_oM?0Sv?iQ}$M^&U?jY
zM+hK-cML`8np3!1`H7t^42oisWIYHt1{7H;9>fqv1}4y~BQIe8ynRI8nAJf<(5S7a
zpj!ix8zMBn7>bV`-XpX5kKN*j)}^gKk(-<}zxv35(aEjqkBialQ2gBm3W>3vzd}XW
zj^MldiMJQYy{aTa#04%W1bLL?$x6&lQ}x%it|eX*f#Sym*@!$Cef&o at jH<hhfe17P
zzG8PaJ53)F1?NVN3SlBS-M5<5(UFLCY~MAUqfh_oiYnE$rn}zZ6RFcDn&gJJ8sVdU
zS);y^xNfp{vq8z?ALX=NMC*aIy^o4)sfpt?XeV4#VS7-ILee^2j1(4-S;CTEw7hU8
zv7TNzgVt0qpfq;t(`;f8N1@$!7yC%sv(LM#gxo~CkuPz_$Jprzmy)sItWurCv}SIL
zKT;2Fs}U2RR5s_l3EKck1plEx4Ig}Vqa_v}FlCcW=@Xbek8B!0)Ah~w8BGn96}c6;
zJUW at JA^zeM^r=c29ooLRu_gR<%b`$MLwC?(snTi{KdCG+;WIA*y~2%2qU1%4hhw5T
z^Hi*d>wCuTjG>-sJgaB$MNz_YR(YO-ACC=`^}Dt7^+e>Bxn5s+NwEG$R6cU)d19Bt
zPy14xrVdW_g)zDw&1V1au`LspnHie(dR$X#EICgFk at vD^!|?As$9){cxB%IN&Z#lE
zgs*vb=g69Ai}9uEp`+!OB1mSIB!>EhU}4V%|12xXwyDPSRnP9);pw24eU`&MpJ1fn
z=r?i)wd^MM?v*1wi*sL*Hu0$q)k%jv!zG<WCrn{CB9PuKUj-gzmY~>UdraZ{HSol|
zYI|4~5!>0<CKCSVk{J8e&HRwv(u#7reUIw7q1M=XF%p4Fm!S4O7 at uMtn-U%Gxc5Yh
z!DrOv`%}M*&>Awa2~S=3w1Z^V?!BA$OM at F@@>X5^RY|bv>%~7R1E%?er3hqc^!MXo
zUC|VQUkQnmJ41=NJ^1>9$R_j(8J#zRF9Sh8;rCR8?Cdf$TTudse^T at 6xDh5RG|S5H
zHf~{-aN5#<_FybW8kwl~BYxePQdLyt#7jgtU*jeAY*gq49A?WPJ6S}R3zO^v!i4#)
z^l0nZt2{io9F4lH11}Q|Z$s8+&;3)yhQTGCtV`(d?XN=w#Yaj?@duey&tf at TjbbV|
zF$hG at i=eZpS^C5 at -HrO_u4NBdOO}X_xR*QWyIU`^jNCl1+_#L49qdO$ZY4aeFUk<s
zg9-*<-#7+(2J&BBIr_8c{wBQX$;|jJVz!15%)W2Fj`OOWLp(aKLhPU7zhk&jpjU|`
zw?szx<a0{$-Jp-p;mPnB)~HL!(N!I(D9X&j1TK5EYb>Xa6t=tP($~aPxw`JDP2<iG
zYx<m2E3`VhybitUO=`Gd20`}2v=- at nE*QIiY(^Tx)IqrD<-r^y^fKy4E#-pYD|78*
za&1pOVWp&m>J-pw$bwPtS3ZpvXt|;kGTtsL!LZ(>u3#+rWAibAYd-n4lZ`mv_Qs)-
z-Q(`aM0k?-#>f-c`Wzlc#+wM*xRxWTbtK|A=x0&OztalEp!A#FiH!ed$nCRDhSe{V
zO`*Xz=Wb2>cI`6g8}2EKqEwSLFhP#f8^TN0)ZRXn;=1xQh<C$|yhfsNP`Vz<!X`9l
zRT;IHdZv1DAj!h+TL_7fsu3HMVMqQAvKJv+3>rz%nI~>`dt|RtXXOOGBa<EqCsWL*
z{G<$-S%$GQ2NBGnCj>;uor-~zK=6V at QM@8fGE%j7VW^_L+Mi!E<YqYCr6k{RwBXpD
zKns30U(EtRa)3}bEys+73c000 at a{za#zfDu!VI68yM*qTP&VQLZX_HmpBD0d>~R|H
zknV3s_FI3W<1UM)H0$(HCw&O at kDXv9H@UHc(N*<UWJs=5b#sl{YDF^JlJ{s3h=W1~
zOfV*bp^cTL0&bL(MwsToPQ!e%?B|Aac?TE?u!@6hM8XVKYes at ZaEhW#ZQ6#ghSK&7
zOF7)LI{>!h)N}DJ2-P^W)qn<w!?aaR6I6ay;{Z*A<oV_{oQ=2}1D+NHbd61k+;$-i
zZ<_V_`(%@EuoBC>Z&rxQG>`a{)=ghc5c5fS$OWYh<)pRoeiMbZ4MuKH%C7w#W3_C%
zKOR4F-z*12dLzua{4{-(F0`A)h4}`GwVJ(3+hf)~Ps7^EOfKjy#2_yQUsiUfY%H=n
ztU at P-Qm9WGqg%0lCd_Yc&=qnw*H3n0VG{ApyNUP}8Z~gsdo1R*>R8Lz7%6!<smTEB
z>D~a*uvi}g<HaP64)J2_T!GK5z9NM!jizVUR$7o4UPztL`(Nsu64`_iTS-fjyTQ2p
zSc}-7m12I3KFy1y^x4cJ5xUhBxwIwsR%eYN_65tT2^8woAX7G4AB`EKmu+rI%x{dC
z|EyH<1a at KOLJAWW_H5~<&h`wHXVbaun}_D*eJl=F2H7D<SvKnBWm6uP?z1zENyv+b
zSVE7e{|BKvCJ_rKG5XP!!eUKqLvs71M~r_$f{d%hpv~-<?zhG4y2;%}EbfOx?Hxvs
z at 3+dr;{v*+d6qJUtkU2H_|w~~1?ZtT;Br}UXKAJbUO>cHif6tCccV!bj>Qoi#`5tv
z1C-j0=dq)C-3fY at K551va79qA>#anc6^540VR<pG-6uGwrvhbNFqWnj5NNe*w~0e>
zUSw9dG|0~n^ilcfK#PI-yah54{tB@%Ox3);dgoDT3ocv3ZZuB?o1#@dZ}x1dzs@?+
zM0X7DI2(-a=0|RR)g}tOPUw0zOdGXa at uWd}C9*XJ8|#j_^8!cum{ZICzL7LsFAa`%
zzfbjMl>j>L0rSBq@^O(syG&d|SMV<qsw-4(OO}`&vMvM7z5rY;FMhBOsE7w6&rcL+
zFS$#>8ae~fdIKbAdog*JKAuM|oZGFom#7u*hTTJ~L&Q+JqaZyZIU0{)^}@+r at G+*-
z4JK1?-k$~DdL7xbo~c`_Ii!jlmBEB$LPqeAv{Ji0WnF at H30>bMKCOiV^w=L0-Cx&J
zN>zTHgvF)Nz`5{>kj$W~^jMn_6hCy=<pXXJLHVntA<wM4E@`7iZ*;=OP9rz}@Jk3F
z;Z}5QRtzg7hJvV6R;<(26?m at Cj1JjpOpLTLR4chXxG|J!LJj{rc5=&CZrgDk<cNgq
zkZ$zq46Mc#fT`6K-CF>A+KlYN0A+j(=c`uAUS%gK;SSL>%YyGSpXy3rk|MMeuDey#
z)8qYs6yi`sxo48UtMoZTHHZ+N9jYscQDsS^M#YO6un&Wvp2bhZw?dN6qC6s)nz%=?
z84onc3Hg}O%nT7}wIO9)W~P%^V5&Muon8HT_o-w?rwI*GO}WF|M!!BP(EQsJgHWQ8
zqYsw%aEADBis2{s23bIm5xP*PmRSL%q+(8>@)3a5eueJtl$&J&zW%rHQ4SR=@+w%_
z3z^t3u<I>Tk2)mDkTTBO%%vhlF=g35<|G;6u(~eqU*$z%C0<gETdH4$+<?=ikit at x
zc)%e>@I$kXaPJ~A#Vw2;CwmAyD*ZzkA!*~ntoem=^#IIOD*!0d(gc&|%*{L__0N**
zcH8i at R-3I(98-3%e6kUsxBZtE;!=}R^Hc<t(N$<5F*32mo%);^*xh6R#@YUxiE3-1
zp&=kP2H2K4L{Zw&h*`%*_4 at d1ji9n<W>DAAvOuY!SEwFozC9E-4&qgQVsZ!uPsT?&
zb;dtbvjBUGp?qGJb4Zr!`Fh-cCEAl(GxtCRKDza}W({YGQv3njf~M3fi7d@{m?j3L
z?jfe2PTMJg^U>A(9M(6lA<o{k3!~V<g&8N=uZj!&&1O3 at 0?kk-&y0$>m9jaJ7*6uP
zHZF=A8-ky1n;n at A#JE{JqFcOo7&2PRR;SnsjdWuuBah|^lL$PRF at 9!d;vgnr3s+0$
z$R at KZUA+w|Ai;A0E&@b}fj<Po!@({M_eWD4pJVrYSAoaCi(>!%+fEO{Ol*d`G2B($
z8Tyb$ehiVg%>-;#JY_=<L!F4Vl4(J!bQEHU1=!C*3<an0OpbP9D`LS at BAY261RsKl
zn*#dfXzW?G&GKkD1>O#o!E|S<*E!CjltnqVb)8ln3kMV_*%UQ_wodi{N}6u^_iymR
zOxNoa)uXbu?8IhfG9Ke({(k_34gv`9hS{~_jo4)%YXQOtgYMt49$+K_;cS>Z7t9eh
z7ZSrBnV9I7%0*y`1o(_BN&65wP*Kwh_=4GNPOawOFU;d207h7K4-QN at 0$Fv9c?3*$
z400-dT at t!|B!9nebDhn at P=u4y9%++_KNo9dR(ZA;2TSNNxlw)2>QtjtPOYUmKqzT|
zKQi?Obb=Lh(|I^3Z4`|DzQRK?$+iKh6aqBQv`*y%q%cKj_2_zi0 at oZ|?~J$@0;r(E
z!v(W?LWn64>JSv+thShT9GaBD|BJcq{rlT*dv=tq^XRt+o8c*MaX03+w<#;Toty3c
z25Z>fb|yyyOg)OJ`;(b|GYXh61l at C6yuZs-XB4hhdju%TW)hn+r8+&$Als~b8|Gm7
zh`_MoklrpBU;^97f<$17U_Rr7;sCndri9>#!B75Ui2w6-&;Q5yX+mX=B-}SU*{5an
z#oOjh-g-x|dZ-e)y9+B*Z`oDk!2%WPvCdvq at a_HI%#aS4;Tjhd_(|<P47xA}vnL<t
z?7;y|($T)=t6iU|4wUAU04?Kq{eKZVq0zDqRG{Pb&q7$CTbW6#>g8V_K(WL=ZSfY^
zT9`-T)YN8KB7S+Wy<xx_b=@TC`wXoICAz9(+|@?b8HLiTjQ0vy{^e;~;T!ImT%H at H
zBH_y1coSEhA^7Yce4D at jg6yQ<^6$*~yh+W=G9%o?#@;)b;Z>FM=aGZLl)#g6zziHl
zZky-~v6abj)w6YB%i~K$9FEymB~y=t@>xq;{G@?HZQ>#-i)yiz;{!^wPqBrky at XSJ
zmr`+)crvPX?N4a74SjAyj%ZEIVhuVVj?)ta&P=jDQ=q|JFXzyNI7 at z#9r96QYQx;P
zRE%lC8Zs@#xBsPCL}PaoX~AOcra5~5n$ENqKvip&hu0JyG_pm=t?OtpO;JY3&5;a4
zAAx4U^rmdegvkkWlky}<m<(dztwY>5EDy19r0F at n0R8{RqkNY1*}+zASW2RMk?Oz4
zmf_Dj*)Tr$C=UjL5~1{`AxqD*xQKnpK`xkqt)^468gGK~Lk`bqyEJ-=e3yPXcd^}4
zV1pQTtgmgLV>ok!115s8bHOO))T(?Qj-Kp0<-<y>K8xymPVp2A?F<4`$<(j-q#hGb
zr8#tGhdBH%E at XeYAY=)$gf#_uJ}ZjO1vL?R<PgBk3372VDMPGxxC1*flv&>g3%W^I
zMuI|<3w7RITl22=;_ZX!FtoqqVo#H6HwSSpwEsEw3E)&g7Atf3?iE0A^pHjXS|H?l
zzBwWRm*;_+)CKoe=hPNy1GuwFBQa8pvszDrP)ll%gEo7af6t^?ZLa;UjcjHoHlC|2
zx($UCXzXnTfgNa&a4>HU+jRa%MdwCJ=B}_l-(npEgs%R0b#o?wjR@&jJOD`GpW$Ze
zU5cstbk7_a@(s#HkAyJcE0fm5P>zJ`#j+8DBux(Uw_I5n7&P}V-2>F1*!i0SIl2LU
zy1pGRfM4pefCC+rbD2WZ*bJRI-?>7A^x<Za7CN_aZx}s>L1NE|lAV3 at VIj9B7x$u$
z4WbgATs8WIH!X{Ec{eju0aT%nV)c|}opcbJQcTQK84vgI`+!5)Xe8JLYSwowkQK|8
z(}s!$b&!998{;f;)Ro~(-CU5CXlEQimSW-aCy>&ha6mPk at b|#KtwA_0DIj$om~Cx_
zANUS?xM{rb>OVGZ9iU9}9AkeJ^o*71`XT3S79 at 55e0UQ@u!x~RPGy|#4!WtE>_!P~
zQNcH3ce^TP*A_OwXdlY%QsnL at z6-37><KrftJ|6<!#6MIhroUKwgaScPDtOMmeDuQ
zf)aRdMug^v>|ZJxn2p0&5!9tGVgrHz>#ZlOEZB&-Erd`N{QBxg&YxmtqVZdj(_)`{
zJI5EMG>6M?!%5l!4CjwJh(umOSQ4&a^*X7c4!y$U-lVWLpUdpfByE<L5u%s&5N&E;
zyT*H%wn%@<4)Xctu|{)CpQi*L4rYv}Et;a1fk5-6;u2ig)e<sZE)p<lopn!ObM4f=
z2csvGk#y66r8L-0tHW$s61w(MEe^tNiK*LbA*LXZ(4yPhF+P at JInIgDL-l=q+b(MI
zix6Z$6QO82!K%w=Yx({%-{I#V&7<lO+lZi9R^aQER{l~^iQ}IEWVHay8Lf}vHmA0O
z3W3bXpreHb)5ums__wX7I+l{z%0GHqZJ!bZIlAk)J}qK^W(}Dd-SaQ6+d?{-P|?l@
z(JOnwp at H-_dZXi2eH*`VVO5%{+CMHC&3wSAO7E*Np%3*Q1-CGOXjD}R*;g*Mw4G0$
zrF{IO55`I-dlu4s?o#@Fo%D&+b?dDy?!4wQ6JWPYOatr at IFN*HJL4J>?s&apB<T`T
zCx&zYYN8{;O6B50<PNg at 1wE01m;{-d2i)KTkY(714n36G=Zqa*bpkBp1PY5xSjR+0
zgzVbalWj=)9JX}GWCRajWWg%z{5NpS+rx~W*|fIISQ7qp3v8qmS9f#U2g}e;-zqbq
z#I!eAcpWEsFFeH+eIRUDLz+?aJJ7^Mi{|KGhbR1w&q%`i-G;C1yKgMJLx2>%0%l1L
z-yEZ&c348{8-gWixMLG0gb8Zbj^MOU=&BCqzzI*{gTk3fTcHhFU3bppZAHrAIjRR@
zeTL|tnNUE3kqEOq)l87-^v)vCe8Tk0>9s+DY<N^nVR7<6ne2<S+FUu(S4?3Yr at LbA
z2VsHL8BR$iCM=Vlt?6y(1h7h$sVPSuB0^6nLCJWmvsj&t2%B)*fcY^@Ske;)SHNX(
z`YjHO_3RQnASt3Ojdm#{X?PE at -dt#)7j<y`ZL~fuGhrG>X8~Zqg&8XtzfDm`ph*ij
z+0PjxRzH_}T%@DEj+)YrL+O$zOFDgY!}2YSkJRw~H4BI<ulRSU*2?jy?E=Sz+-8JB
zDdf_8yP85hBCGM)G<GEYtHN54;v36Av!KI!Gv at _$P+e5ht6KHV0>Pt4K8Mk_7ji2`
zs{v+Vl_a=*q_xn`_F at x&Y<kkiv0lU(KF8DWnjc|SMmUpJL?rBU*yQWmGt?(Q(?I<e
zHQnEtx~8~};BjqGgj at -v6^f`+E}Owh#f4exT)no3*b1edR$>A6PzMO?Y6iM4IO(wL
z6EO)WKx-f(G;m?ilXE5Q*b#^YjT)+ay!&k^JW|a06DTC<b(*fsJqW?%p-xcM*ay7h
z-Y$qAU;#0_GAE=zm~si}P2>l;OmCZH-0R{cWKUdpbefH*c$d9q)4u!ZJqpAb_TUee
z*c=AcMR}Mb!MOp9#nd}3rr;=>SS2ZJ035<xXn`-XDSANenzRi+kaQc%Iey*OHx+*3
z)cR%<kgWJRD|xmsH(fo30`36*Y?NkUGQ#aQ!{HIiP~h=Fpxj=53Rs=k&MP1>Jan*F
zGKKFo`+wbl*8nF2x<#AKu4TtHx`4efy9b~G#p?+?7+?y{|IMHNZ7$gCdIV at q3`IG+
z*6+l>K$w|b?rxJeX0ZJiTejZ<bd)I_SbGPcbBHat1;Uv5bsIl3f5w3X&b?ihW7fE`
z)6zr?Ahf-JhAqTSr|mo8qV~6`Ax1hCc|t`*IjL2+r#go`41DTua- at OszmW2m8reF2
zOc}*Kkx<WAuf=--m7498#DKdv`GXpS;rdyc*pl&pM|dgwdvG}0D1GPMX~@}sY0Q6`
zfkcX9(2q6U>;-^RNAdy^`!5j#(#Pqcc6sIjQvKgcR<DqTwPGIu at is}4QoTw7q9DdF
z50rVDLiC7<P{WD?7#to^o!iSKs5 at bBn`szU8~n>Sn2`)f=4KWHtopC`JDlVH`TE}i
zfF*68#@|@CQ|8!KCZ&D2gkV2jt%ss~4b<T at 3>u3e%*fF-Xz7vaj=PA4OCt}$c4HKs
z<Ur#qSENdvNp2{#fekfgkC3 at HCWqbb$T6uH*fpRq%>EnDDzhsGx?No0Q2w^f47szJ
zbaSVNwi~nMg8g at 7H|EOhcGnTK?Ed!i0BY`97;&hR*jm^sHbYG8-d=Di1lj-fND*hB
z!vY>>)>pE%v-lbmdZEt1Uk2)A6qe+yj{n<PBWbe`wF0D$tjYfG)?5^Y52?cjPjJW$
zMRpClSUXENsIRN<bmK^jT||O)fi1EtI)K~WZZ`U_jIu<3xu2ItR*S`h{@tcTuNm0=
zzuTM5Ugg5>`Pnl_TSae49r at i+oX$Ey$Y63R at X_HWir4=X|26XOdc4R2jcmWv8hNeK
zh9Em~_`d&+Z2ExdbZm06m+Q*(S}=Y2`Sc0CzvtTPhg`7nvAT0>cYOQuzfxS;gN#3W
z8aTmr;}-}Nc>v4o-tC-ocABQXFfin!%&$N}y4-*`?zBIF`gl|}<<KBoGY3JJbgM0B
z03)NZtFCcK#R5W%rr<)}<@MVC)l4W<RG?D2iskRhyD^_CS^rh|DcKGOiQC&d)dTPL
z1J1=<5)`ZB?=KE;IPbjPEIZ9!qV&+t$fWCacvrCS7f9qh*0=O|pB=%cF3FLdxV4(K
z^(0N>XG%g+(bzePR%R at GGJdrQ{ZHdZd$bIo)*M7}8E~p%(E3PnI4Jl4>)-a#1*bsf
z at U}apsjh$pvqO$Tx2jpkn-k{u at c!v-nNj?f6Wmzj@@Jhq>ZkKPEHM at 5XV*7&y?a%|
zwy;jg$tR2v(cDbU3_n`m)fcg#xgb38&~w&3Q>rZ89l21;p;)$>GT`bjlUA<%UDUYK
zvbLn2x{4bkAZ_&UYqQD&D#(aE&@9!jh_f`$<Dg|_+4hB2+aFYUq3llILE8|1f|AEi
zeapU>s4_L3#EviS!Gtx!NJ65`#6zg2EpL*#0cv)*TW7OxvRWJy)KCq7nz#0Rp=Pp7
zPj>w^7Zle#>Zcq-5dl4v{c{Rzso@(%JSFXPVWmxnV{C_;XN{a5vRVJU7BTS2TW&8h
znJP~kMQYeJO4^PYP-_z%WBMiw1HkWL;#7!)f_2KR6=rp9$*}3z;3?Zg+`Lm}77)N<
zzs{o6O&PPB;<3rIlT^)Q^mtI?lt-E=DITqeAGN%xgw`ovrzV{3s+mMb8tCKKJgV1l
zGqxN=nL897t^~ugcIz5!+4umJ2{DJVNqovgymt1>L6eD4NNMFL3TBHX#PE<BtoI*h
zyCuL9uOnX;TGoe at nQk3emqsq!qwqXUFua*N&}S)ERj3V{bww*)b?R-LCH{#(H{VO4
zH!P56%BsIO0W;@Ms-9y{8ZCX3cMBW)Tw3&DqJE}LSF(4ru<JA|i#&Vt=$|r8-5#$P
zO67=@Nh_tQ)jr`Y;v|yb?jN6svm?V+-I6KE)YrK^)_dOfjDIpbXHvS}<5Bk`%19MT
z_3wVjJn+kruH9n5GhZ2Au>_q<J%6j4Rh3!op=3jkz6nY8W^DKpw%b!=Ln^!W2V+SO
z7y#wT8qV9Lr*J9=s;SU%#@2fTKjeTmsYjSJ&ni56ICrd<i)f5jSg0q|&bR>rM6{%9
zBdsDEUu+hI{n~>G=w5hmf*#n7750^!Hy;){=j6~;pZlq?4T47px&rpXs3>m(89ZqZ
z?!J3T#AV&b8*2(EnuASd)+nr=zU;Z%-?DnP=$?vV-lx2tMX?clQ0*kp(ya2b2-wGa
zGCoMGSMuVCfPv?f%$$(w)5NsH_KG<nMgxJ#6dzZaOx2^sh=yxMc}IpC*E+A5yOt(6
zv;u<dP;z&+$F~vpR`*E_@(8r7?(d?{07b7wV=1_~kBWGN$)>ahxXeW^adC5v=t_mG
zJCqWzBOQU*PuP+3EYFk?f%c&R%&tST54N+uJP8}nJ3qatDYyPI1hb_Gb3BE)?eVvb
zDMZ9d!6Lz$)hY})=tVv*b?vNu4?8LFoVk~0pg={#%`?uN1P~!8nxc-Cas4hOu|A{B
zL=G)Ew0Fz^vCEP)Cw<lDG!x77Ws2;i&KNj7JM<wlZf~=Ko$vvM8jeA&)y$weqEHBJ
zju~xuFz=Zm>d#D2e);bf&=YD6=q?_;5#ix*^fQ4VON@*_6-E35dxNl;bf6Oy7xb48
z;7vg!qPT+c at BYi<F{)5|Iss1w&zUHP(7=PSwmI?<AeimB+s{DZ6Knuf4Y%b16>$Ka
zK-Ghp;voR|WqkevNE^YTj*}V9YIlP^+)1z3GEc{wVX8b~chj=eEl?}VDJh>WX_U6s
zXNKR^$IoIzh_IKVep at O?Y0#LV2i~Dr0h&jvGeymQ3Wqo1?wqhdhE;UD`kj;Wy)G#H
z*G4jYId%P+KJ8Zis**c;|M&UWA&4G`q{(nfCD at 7W&$tb8FE#JjL}S7oGqo>Mfv`6N
zB+<C5wF_yp**1+6o35mW-55LS#)$FmK*&MKgm?&`EsXWhm1_6=-#wvJs+w%VU9%Wj
z@$1gKyaO<rBdK^tKJi}3SaLfem!z$EPpRg5ggO)<&Ys+DC?O-)+$VlWT)Y%bp`OJv
zh2s>AauvE|wAFO}o8{@1w6rm9A}r1<H`3|I*;k?ltvgdeVV5~IXQ!dHT_atsCrQp1
z^wX9iD{^wSw+xD~3r-xwli2?$nKB%ZIx}ajM*d7~5c~gpOS at tY_LjA0d!EeyQ$(ey
zmm^HDKV^=XeS)4TEq at MgyCWu1kn`pS)*5WCiHsj<23=e(B7vaQ)k|O)0gDJlT5Ve)
zfzX*9a(BnZ_`F={C%27&iE at E^Z=2k9i4~-<f9;l8lLfZ0o#4QguHzc-eD2P5c=nNb
zMqxuvA==eZJlQTJ0%LHFY%S(xLh&FLM_OBrOf{*@CP-gc!Q&?fq&B=qVwjGhz0WPN
zD at vQq3z4n4YqzyzxBKnW!~-#K3iYB!O6Dk><56jy1wxND^*-j<+v2fHOk4_13V}M~
zM5Kl-ubM4sF4}tNOpk>l`V({v_ko5Fm{FFSV$#!X1zqwi9q8d&=$W)b5sc}P0U0F&
zD*TeNLk(-vrHRz3o!YA{YI7yS1?c}qfEW^#9jy;uV<k2_l$dmm;;9e(j5nF|02HF~
z>wWSiezha)NCCTlSidD-N$pwAoi*%KTWmD!zE1tUgv~14lEzhoB83+~)f|5m*wUj~
zfnlA&IzBG}ZE=EAG at MfXr}Q+@=Bw27;s|#d-ucf7q at ypNLX#cy{aDLqQ52SJqwh2Y
zS;^^EdtM^><_$3}YRJKCv|6MTCa&q_j46#-_R3kEV?Em)TGH-$Q`hGXrT%dfxRnNQ
zt;NN)N-ZcoP(mi*1VZl5?L+{MkzK|Q(Yd8spncJy9ZGO|2n8U~Fgrv5YSIdIDv^;g
zVfZ5#=8KqQK`4r1<ATAvPAQLNx?s>bi at czCNd>Tu3wrWCG>On_pRA3`MXy*cmQU4@
z7s!H90OhTzK at s3qNI8NYIO!cgmJ&n3FtGKRuVp$iu+bS)l+ViC+^%H&#!~7oCJf*1
z2 at UDftX1$G|8z2e|904m8#@XogBl2aj!Y;A#Uc<1zeTBj1%wYv>?L at DUJ9@~o4*l^
zX at J{P{=zQ6?dWG|u1+gY=n$K7bfG0CIcL2~>5Jlu>f;TDg29;>cmh8~l at w-qjQZJC
z(=K(+H(uJ~W9>{@TQI#gX-r#v+nVjnHH0&(_JF0CfNrbrPWIkw8tI{h;x(b!lYA^;
z2Kgb&AsAL-vc}_}dz9+<UJl}n^74Rg&N!iAQiqK=K?>XdO6Q at Y$?f%^`ecnPyY(*P
zUOALDqQhS`h}JjDygQ-(SlU%wD(LAUO={`gR#9j*WhH at dWLQhrZ>bVHyIjO5X`M4&
zwVkDBJevz6q;Z6-Xzgac#d=*`6;j<;#{;UUD2{U3eGKk<&5>EGH-Az`mu+v`*Op;j
zI>M~8nKiP6M9*F8T%xkPKc*s#^|_$kF%+xu1+JG}{h##urb3h3FL$H!CUB#p#VQrj
z`vKc4-W10*gKpG`C<^v8F^^==j_pyo2^u4U!@aP2k^3gnp|?ShLaS+pN=%TAO{h<n
z9g&;o=~eYPA;Leq1|2`H;OJVRjzxLbgeSS7H~@!M*SSGy<MBcx4D{#5`$&=_7PH^=
zEa+37X;y*V9Njz^s)P`T3Yp}o_CTK at ui}NFYz>vF*L%Oou1|~2USm%ods8gww$xQn
zM7P<fblT`!&jwuxkjk_Ld9h?+%^_tp6qAv_geDxFpg;XPUuWnz)yqHrow-lm*_g%?
zpS2ZdY@}i{*@^hu0j{7C#e?Z{qW3w;jb{RO-^7kV%Yp)nL at yzGb$(<B9$;7EdF>`1
z=l*(Z2!<B6r|aB&b?3`T15|gg8*tAx+l`bB9*{Lb$5=2Y;U<Q8IqB8f9G-b==dD-1
zr{#Dz&~JU~9U_ac%exf<R%*5W7&;I-<UgBp-jy<lAHRRIs_U?2C-zzLPt&~QGSlcI
zAn#w;U<bf~1*%(mn&17oK7KB5gl6B>p|ds-asr^B$!QnnO at N3C8^U7M%$6buM$BRc
zAQd2FFe???WMc*PW+z(ff*S$b(R+K!f0IGV&R#V~>WH(9L7M$61LynFvi at s_SrK$g
z9%_TAyPi|48asfjo|~#tP&ql4tUak{lgoS?1zgG4YlzPdS&{6)<%BGKZxM1n0F=?u
z%1N`cXC>ArxJt)*lL$U{;BXK|n=*tnR0?l-MEuwezh$z;ax_hZW2g45`<@Uj_2s_F
zyvb9G;r7Jv at PJLl$q&rLUTuuQ_l9h2rf0S-%|H+|L8o~dGM)S~B+%TA1h5VGX9swO
z`nTlns_a>=4`sLUg-Us|MgwuFUO&-s*!QF3(=gq)Vo;B;Q^<vMk!7y)kb~r1V3+aH
zUj9SOiVmnDhnk at d1e(-^(a%zpM4PxV))_Gms9+}`KJ=5Gs~6NNtcfSMTfg`CiS0J-
z1hr^z&JC{lA+Gc}&}d#^$w4$)-Bc^jQa?*`I5!4>nJx_6G1-~NIE5??4xcndS)`dH
zt$HMHM-d*32e at 1U|BL!4&l26bQgf=qf)d>pVms9JQ1FKBcMNB7%_W{D1{t8>bCCLN
zY!yO&PO(~<8(kPKIZ-d?Qfh)nI7zL8qieI1a$6u`Gs6%1Rb`F(okAu;i>cnllCA;^
z$}Sd1uM4jQwL!;{Ve3KZjeDA8*W=EjD$Eu{n6}pVk^dgWjE*Cd7-_A#TsI;lp-%eI
zt(?sQ7?ZLKOc)BLB;BL5YsXrvOEMuM$QLGZ=GHVqm9*(fmyASQSmwMO<XK58Cv&tr
zj_K at n*&&zcyiCi~N7esMp1!O(*a&@+;nr7U!9gq)p&<0}p$~x(gR|702=cRP9V^<a
zi_gTmTn9lN+%N!!Ow!(ik#jf=y4aDb0 at w1nZ7jye=V*X%n~Ih7gWO5zzOcK1Ic>VY
z7F at iv(X?g>^p_!*-%N5 at x~AA=*{$7L-yQDh4YZZ}`x4C6+;ZUB$S at QdTDp$Y46)43
z78`j>tx3g?%bN_$j%2Mf&`kFsX$N1aRQN;&cXXX0yD)O7!&E+^k60luW{j7Z!u!NC
zDZ`RRSW(l7=j|oEybmqg+(hWp9B!TQXts2?qEA}`KKEku#uf96v6TMdrsUc?=t+~r
zrhYa&ULzes(=eHIPs}L8Eu*_G1nN-Ce4^)qxR^_CwN+Mr3VVh?k>Luf1jd`>G=3G=
zhK{pEtl(CG4GJPq(!Q*N(NM?WUZilztJIqY<ZFaRK7i_u1McvuS`=z=k8)tY6l)(@
zQ|zU<Lm4~KdZ;^9{Yul!JW;`5R-YBQDGin3`~G~G3D#>Do+cO9=Oq`LJ(b@}A-7u_
zS@%5%N6=e5m_&faoxPgqD-Oy2Uy(dC>13$GZ3<PN<~F(u<jxZ21zR+Pt(y@!ai+^t
zrN77T_T=&oZ8>?5g8yI(VL4F_XehXeTbLeV32me^V&KxCL1cCAG%_(MLGn{wI_t;w
z2;16gw$voU0>zeqqtKYi%AF;~q}{N>%f*TBz%^Z)w{_*<A_+4l1Q}vXa=Re?or&{v
zY3FVpsCfVd9GD5QN=ES3Edkx9uNure%c(^)fG}SCyCplsi$16Itxm)oVP5-$+;kem
zcU<)~2M)|VCKFr$_fUyynVE$l#`HN;_^jFG%DE6wE0-3-hX*h~C2(%$P8`1O{l-zV
z(9nVU<i&1mR?sur(98lOb&j0ej4nqYAm^DkMpx#<Q2lUctZO$w(a23v=$M8G1d?7D
zQh|17*MrqYr-y6j4b{^aEAfSm5*TZTV;1$LY3TnUUfQ3BL;bRB%KVx-M{AYP_3z>I
za1kg%_Ng3==4iBsdZxLj)&QjPM?73LnxBhD2Md9<G6M|_ms7h~+0$yGCUGlZ+~wKn
zWXrgOqSl7dkO(}f!Gk_mX6&sx7{USe-QQ=&`~`^K4>=5dL~1M(l58yIOma%y>oP`P
zg)f-0RL(Hq;^9vBnfYY7zvy2lZMZZpr;_DqG%m-To3>lICjfG3m`uumQE}ZqRjgdV
z&GDfZZk*;I7N+G}OqLJj&jwo9EX+O7q1EW at a{oBgY2TZ?jBcJS44<?JyOA|to=$f1
zSqik0#ntE39-F0g(1tor)T3ly_wf#3d1g}Lz8C$UzP>!JsjF*OP!SchXi)(H3sx;S
zK_bWyKt+NrO07Z)2-pHikVy at LA&hDr8AL@*gfPT{GAdCK!eo6FgoF?gFhGKe1eB17
z0b&fpT_ at PS{l4G57yj`lIp^%X&)RFP{j6s_X`M=mpR)kjlX4wmo$g!w;{o3!b(;K?
zNL=%hI*tOcRaSAS)ySapNZi4cs_bnAiiKbT^uEGCuFz(eB;`FR+TBEBtrK_}0XDZP
zkPbeq5hFtr{4T0Ddr^I4hPYEaes2rEs*IWOQW)l&T}dC#f2&N(l6nEzr>1OF=lmlM
zd#Aov{qKF|`V)Lbyy?Qg*ulYUSXkw&O*+4>GdMAE!!kg~B<=8zFNhiml;_l at QBaz5
zkzuR1Nle>TpA at ZN8}4|;x5cf|O at 5~N()n>sls(llkhM_0I#H_lb^jUR at b6>FH2V!V
z^n$~)efZ2q<|T=Pe~HU!nH`G~{jT;yNe#ny3|qO4rm#j8M6SJQ-$EaW$pq(Vbn>Rr
z_Ui74ZBWtje|n>P$ilN0$Di8H6nHG%W0^6o+cxQPqK;D6l5Jq5Z`>-q;C$GW+D1rW
zh)2x47jiPzx-bhS-wf_##<q+D3~38wIL+cSqM?McW!H8KjnBK`{yOmVR5G(aHLFD^
zU89T-s&Bk7p8sTi#o%DbNBb`~WoI`2W%|7GGi5La!jjR^)z6y^_$~!L33wk={y?r*
zfPd{kEcjpa3;SihS at -<#lfg^T+|z|as|3x&&n4$3hMrvI2{nPWKvisNJG3y4!F%WT
zD4UOA9XVq7cYG|ZCiDq>W1hWw^TC3%i75QdO=c*V$a#rTng`IfIoyz*6$t?RNe}uS
zjWcBQt^aB<n_*`o+13P~!0;_+<Ysc{7*YwzykGtSpdYt)rBMvQsLx@?PZ;)%LdAjh
zM9l5cV^=kakr$TeMJigI5A(HNFagq$l)6ob8K2~V($<p{D>K6>%x`URgZCy{-#b_i
zJGobRIwm#0+rBE;eJo{t;!cCP=)O5>=~=%Mm{Z)W${Tv<Mw0;jmbk$ic)=f#3mWq8
zVJl-A$@+U%{kmUXpO>lznch{45++v{7z+TjAehQ25#3&$N9Op*?qDC{GKX^u*Y6#8
z@`tOGHe|CLYA)r;_YJH2)7I4>oF~qK=eblq=5t!Cx$XD99>3Iouz88iC8GmoO72v~
zwgdwsAA&3dVyH-=5={{%OXrO@)aNs?SJcYbq5hb0&!-zTkjEm&{F28 at kdRIIt7M}+
zA at 82q%{aW#=M3Tr{0w7I1F}14@$oy&itH)Nnh1XO?JuYaoouTQO&L<sTK=yg^~H79
ziJswrFl%ro at x-*iI~?bHJfUMGI0f&>-1RoUx&OBek=fRgG<168skF4 at GPWNOdSzSD
z+}2k$EvtGz1kh}BJ)$0tWK?An{8uv7UOYhDRpNIqdQtSdgp}8zM8ElWigWqDMzz%(
zcatrzCRFB<BVmdfoS*Wlj?iBd?=uOThdS-+ail4{Jm&|W=(-P`hj<+a4yHQ)z+Bkk
zO$twE53E-B`L>J(B$`8UwZS4$jaIB5TdH-Js`%3<=OP;?Xm+Dyo{vHMeC+s=(f?lI
z_U?1<slFB at QV4FoHg6C4bG@x^2FC71D#Z%zIF&GulPuw9$n*ENXraeSa1Tm53Envu
zubF#a(|YMr&osYODzSBloz(404<S!>$1X>s5_M at l+K-B=ToaR}T8Ei>u at sZTnaYx;
zPd;RD4v!$&bN^g6_Gk_#eeb*#skg>!x|ZKtJre7)kbu+q%WO`OWV2za--H{t<3ifR
zp<S3RchTeI5Je)O3F$jzy7uW~4UguoDo!S?we-X+x&L<6<h7Hc^>djatI&>?l<1|~
z at g`opcY86Z)8dDC=T$MuBAu-xg1*gdVt~lO6Zol at 7VaY5D*oK at F)ia*Zs`bAVJ3GU
zj at CXUYFw}GqnA89|0LDdoATYe&BQvC&aXk01A01#;JxFoX_hzupCgaF;%*sm#J3|H
zM4=`v#$bUy=2|AS!lXd3vi?1L at 4Sb<yD>vl#t!W`X}?Oh7LcC~A{k+{F||-}E#(RJ
zc~LBCiE(EA`u<}pqAT{lZyKyP-;fXfo8 at O5Hj^gi6V`~mTYX!=c}$&eD6$l$sS~3n
z#Gaq-(cyKlJApnBR&K2#pu$O~z=C7fN^0Sb8w~z9&6XDcSgJ`(__W<cg%9mOIWD?v
zqE`U}==^*bFh2i|1#muK4pSj?=n?O_A}M(W{35vAzbZIL8v9?AmJgUF9Ke7Z)EC-7
zWwYOJY%qwPTc(d<1E7LWxM<$JfDmww*`MM=W%~5oUe#hB5I2?*{st3NH8-o(GPK-w
zT0GsS1)Ud`z{-Rgu<7JlqJ*k`PLbN?HnuycfbxOrPL50yW!PlJsB^s9;#S(Xc5eX&
z?wi<=#cef5_VskGW at ac7P$VOQ$WB7-v9enUZw0DuUPw_+<6t?>y?TByZrFJcUq`#B
zD6-c%VQ)?fF%m(-%amO`4;h-tmyKv(8p@@`a+98>P~ePZR5-U7{Lxj^KM(xP`3>C;
z=jOP5d(_3Go4@&G?LeKn!2eaK+I!u at l@rUowtSf>4wGMfAh#P5$PYA%iz?4K$(9l6
zYFE5|PN}h4blW^{mVP>Ze`!VAP5wT7+_CTNA%W7>!kP~2w)K+YbY({fu}ht+`yI9E
z9X`&viiZ+DZvR_`<T<oLxyykmrx?*Unp&-zm&eGdqS2>}yAuYZBgrGKf8C=3uE2F&
z_JG$EIe#P0 at z9Ay_Ql8;E;}Da<v$1OtEkyTyr!A5gQRW0wS^v^XmZ!=XX8|Kx^p(6
zWToL1pik=VCu9KfL=ECv6;u^dCid|npfpY9NY~2R2ZIwV(QrV?GCajvR7QDoKXx?<
z??xK?oEq#IaSyN<$L*8}SGm}8rMOsex!f-zYC(Fm_JUy5N$9?kv at Qd8|K?Z;nPv|7
zERud^b2b3G9om@)SyC-_V(Gnd#Dwlh_$E2Xsa^U9UPzG)mS?W~T1othy=u{}XL4hf
zg0oin_mWXw)BPS)n#Glk!7i2EZr6pxE<g~EO=LEW;3R4Q=fwU#rJJqYFk6e1iL}26
zgM&OXze5!q+%;E~>~$>}$Kk#0A=yHZHtTJ+-sdlvkXU%8@*%xMzBax3$K$v1)R0W?
zOGwujb9EjVDI11p9UM7^Us6V2R!E at buRsq&XNc-EjbF@{y;q?Tdgv`i%RTu+L*!o^
z7d_*L;kdgOBalULz1fFyV%Je5Izeo7asObt5ND=uh&k_ at Pnv7cF0KZI=|j0-xICkp
z^L60s1U+Us_qhPe=v$~_C4L+k`0zNDU-S1;+~eQ4>o!&y>$VCxkRnh~$drdg*fk|I
zP9XdH#Ni2E)0I&#K9=+MGYVh&Q{$`C!Ck>}A{X(eS|EMXng<aa+4`yRU+W{td;H%p
zID59B^A&_au7-<bT}V>XIfS3qfIg`fxHEJ81Oi%oy*09QDgXij-9^iZby_X%q33WT
z5%?;CW8k^)`ux?VgOyROxGW}fr0m2uk&T!a%J?L_h_Fl6A?2_wRUe(&w-p($k24Lo
zqapNeY4`MI$WH1^ex8&+ptjk|Si(`ei&>}mOE;k*Q at RKxu`T#hVI31+uj|<<^I%N&
z)t4s~SnKn at h^6%z$GIB_x=Fs-Exds9b<y((UTY*jglH_GaQBX#@ZR6!A#dV4IH6>f
zc?$W1`k5KIl&LB88nZq=^T0u=jJVZ{YJRRlp?rX)a at yG`e|<Ii0rU#S3R at an?-xUR
zXx6cfxZzYdF_FC!(^t>vG`Kj{e=$;ng{fLVOJ8HVsE2plS*|DW=TZ_-0H;9A0iarK
zo&K8<wbVsP#`7<&u;<Pb@|Wtwwt7wc);RPeMaQ-Lw20buJS0WYo at b-{(%iiEKpJsv
zM5Ln at jnc=`KikU^TsVFKEo+BT(4Rte=(EtSB%~@3LL_nQ>i562YL+-Z>&G+dO&c%s
zT>#l(%3YpGT;waKSmW7c)!10m=K!ix1J=esRjT^Vk+>w0-{I7gqr_V<W=iv0hu4L0
z%xIZfM02ERmK25zZAfWNYpwnMEBA{oHDi@}2_8%9u(2pk{k9jYlTS6BXfglhdEl4Y
zZi&vk$@opNZu-VhpRK!{!~<XKwo9<>nL7fd^p=A)^*I!fZ?Qt7V%{}da60})4#Sq$
zX9}2vUej7WyIzyS8 at -0rPU798<9L4**T<yn{AdS9c?*uIZ!<xVj+AQ<sG!es;H9op
zFJv%w?lPbr2a{e$|8<mmF9pw)K<tgFU2&Cg7{jdBdW45|k4IQ`dvDIX4c&8^T$(F<
z`4vH3pXYEG`@8Jm0Nsei1#zS6KQ2d3)vM6;-_oSCrBr#g!HxR(bn&&H|J41h#eN&t
z>eDud6Wh?~>lOw?FD(LiNQ<@-eEG}N9Zabvx||p{cJK?z#8cn6W)aPI7n^$qKfVG;
z1UqHTw|0qF*N at o6qL8|$rS5U_9!a*K*G1nBSuGPrsWb^G8zG-IU=dI<tg+_m$+StS
z#mk%Q7`^9X{3A!l(#BI#)?<DW<&Ub-vQZ+%ETpB{qsxd6Zq?RRqoem1x$K5Sf}Ar8
z->7;b3c8--Kh2j7i+VZuBWbORvpCaYyTldfoYs}4qj{r`)6a;CPVYoX{$%!LX9m?=
z5bb83CRkoApY;8JDddxrv8{WgUuMS^mPcMo+L}a5^s8u32<nuQo!;6dwr+dWtZ%GE
zlRpZVZtmI~)Er5P*GHFcZ}jMwQdEZed)wp&qU1c at MPy!fLlzyG_P!~rk$QG<2Kg#V
z={28Y0>AWEsCok$MRYJNrOKYRbN$@NjKCi;17&P)AuW7^ZQVAMWAqs7&LezlD=DxK
z at jnV?01ed;t8sY~QKINAvOH8unK-=W)1@^&1sxe8;c!xFFyugO_LV-P8_-zhB)%_%
z<LINt$)uh&XI>+S-jq%o#g=E#kK>J95AI{!LgH1r>%7hjLO(U{Z%q&mwDK69#jiK-
z>`|jVhVo6Omn$LaY)^3SJ3+t!Y~zNB=*-?cR#+4@`XahAtvG6lOH#>#PerC2XqLus
zaBF|Z3{#p8nPx0lRXadi$o;UXp)pr+47!7TbFogNMHk2RpSE89U2ELtYDq^Qk1H?f
zvK0ztbLsVqId<$AMd!UNma+TpfC<UjMa&kUsW7xf#Cg`T!@sR3w(i7>YB-PZ-b*)l
z0tot(auKmCiGVnFp+3#@e1l1b$TM1!K at 5>Tba8S}9?l*7>`YUXeXUD3D>hRGD|&zH
zeP<YOfYP`D|EvU17SjL|LZo*5kGE{*?yl8&rPr2aD6?Y_b`PAomD!f1s6F9x%d7T*
zd+k%OxdoT8yBWE<{g;5>$vrKyj)Y1DoM4-~Tnvme1ExS+Bg>+*yy%z#rhrYZq8$3L
zGLI~`;OKVkv*LM9bW`<$%4+Ik6GAEmPh9V-(t(m~snP*5P|>?FwCSa&`EOzZxpmE7
zR(n;>Zy*e=fnMn}GL-R*Yw1&^-W{J`k$c~54meQU#ZpdAT>EK4tl%@bWzx`<FFntQ
zghcNNdeIPFV7s97>^vUvSV724lT_+kwfLnE1=+JZWP3^9BF9>44rECIo29F*Z304%
zM3|ZxWVB|<ff8hv{}~UJiT>8@?g{$n`aBgxWj#-oV-wP<YC?M7vG3h6H|3ZfwS_im
zX3I%Yj2em<z4vzI#BFdOu#J;chXS646Zh3!e*Zc`+TQq`0JRUsc$_)b7Pn<<$Rum?
zOCNdX-$>R|K!kDks9<6#H?w%(Ja_Rkf3^XiE=@aj2O1s$f_OkstvpgkobTnDdK0~Q
zoC78PrLuSgD$w8r6OI0Ozi5?|N~(&fC+OY51zv33H-2mJm(NjuakC5gkM{Kc0u5k<
zs29GZcwGDz^TMuX{N*&dOn7h9qg=KMJl`RIC_*pbFy)l>CwzC1x7|I3r>k*L_etM}
z_ui6Ga8M;2<(>rmiSIGcnqp`;Kb7~}!d!g$vpVGXP?&3Dn>gBWsIF9T+GiLmvS<~{
zV{-I9+A7_KKYNob38G>nK8{<{i6i}jdlC^Sd_NS|1=&OW98RglS)Fq!tpkSV-?}^t
zcX at _0+I`xT_ZFZzwM)Dy#in`4e&5lyI{E5`ri0<EBefe5tZ4BI?3(S&@(<GBwU>=B
zNPvMT8y6{CY31W&Yj-hrY^JoT0Tpz at 0Idu|?m(8gk~DtFZ+G at +Xxl*C4QLC4Zn{+0
zESD^@q4KqBi$dWRgu+)%Y1$ndyh(ns6^F5drAB&*lz9O<n$^o`1UFqPa8iYDq1n8A
zm&{diif^MOY36*x32W=wB`TBER_~k3In|c+ejlYXzItVnPY>&4pN>=3e2&h~X-4g?
zXq)48Wx3nc8wtKoAkFhr<CyYyZ96=ebDet0;+Iy}u0d9=qJ-y(h%W?QCU{^AVgN;X
zHX^p@%T);4YTo9F_AT|o4rgX4KS^Y at 74WqAZ8av<HYnREG|}k%Be_wfE2`d*Mxp<L
zHG6YGaT+ at a*)3yruvSV+aB4%tMksFn-7J(}?AIiCpgLHxc97mBcX-tv7^U>}1Qg^u
z_`=A7n%<rLCOF}!Tr9||0+?bWkse=X_Dmc1<oJLbN_!;fRW$WZNJYRNX6k3%pdmx0
zw;HZPZ~$A)EE_WVd|JYfX^2{imRc56Eh-p40*3UVBtu#JCFZ->oRT7Ua~2L)xjxp&
zxvZq!N%kK&>xRCf{>KyNMQ3<D0xlAvVjpe?siQ6yg7 at imc9aI}Tk#p!TNTogWz|K9
zYmV8~E(man2_~|ezm_DeY+uafF!)RckLLGHn$^R-j`L}_23ga`vvx+81-?0+!hquL
z<uM(>xq5+HVI#pQIFnbxblDqNLzHfB7vFd({<Q<J!2>2iT<#TpeY=!#%9GFJ=To2W
zw5^W+=F0iEt!G4ThG>0luIT4SrZLZnl>F+&CkBpMBRRHW7mx~M9XGc#D%7*a=OqAM
zNIT|rOApO;)mlJP3_~%d?T~==yGy(`6&v6}*$IDwL_GnTAsgot25G*4{ifYHPX|me
zIDl5KA1ui}8G2TlvqL5bpyjk-DADn;K%D9tcs9!sXjz^-9 at xtcRIfD!=7I*hshao0
zS?|<j_Ki+m8QL-L at sih2P`L1BvFU*a9-^&H_#A1eJL<rj(opw<-?#NDps)|wyT9=B
zs~|tOHRIVDEGhWd#3|M<3+jd)Vz;4<F{$VG863>sQFUDSnmUk<A4v-=t+O30m6~4G
zj(<1)LDoSE<J7rGswYebgQCbzB*(Us_yjXFVcBqr+kMiwGEPoDe=RtW-bD}lGBSq~
z;reN?=A;M<dA at ZkL5;_M>49p-*!mvO2xRmKb!Y at BDUxD0_E*y(TrRmh{AeyUM~lNO
ze_SNK&q|wWP2*=}HZ?^oASUecj2qNNJL=PXWC|C3B~OuLy1&<Ro at 5b?+uTbtjr|@C
zNOo*u%=m^?)b!YQ`sdktMmD%w(qZ{dJLIGhL%5!vay}&`F*Iz;73`V=*TgrPik>A#
zw~CwW+YumF4;`Vw*>rUK$+OT$n1otX;6)7G at sa2S%yoVl6ajo1Zzv?@Wq%IYa6<{`
zAF~v#NEMb&jgJYO?&OJCyrvkdWBc7F1V279+O!@iwoV>Z>9rj6fEJKZkmq<p3KUC*
zVjN>RsfUz|wi<I#*boh3;Y7`rY!Bj;DA<IUfE*i~IdX9v3Z0|oz736)U)e+VFr*5#
zX_RM2<t4`N!?X7OYPFnZ+VzVE+MbdsvFuz8wOeBvN{46k at unIFxA0*R;|+BRDz&OG
z5d=ic+p?7LijTa-Rjg<(_#jaH0K=Srn`hC+o9fHlpp8adM9U+$&<%r)o);Jx&h^cx
z)d!OsU%^Uul8veMbwp)1D5l^ZkBR^Di>b;wS at R*5(qhsqVHy!>!3hxUR-kby!L2*d
zv**_d at j>eW;<Y!P8Ut<*-}w=ZI6zmtx|%O1Rt^aYb1s}5cg1~f4q0m;Fb2 at OYEY6@
z473;p1-3K4fU-PpccZ)9r4Ruen7?vQ<LfV~-qIpYOzYE{i{>VU?hXkFo^mLuYtiZx
z>WY)DeMPlIe}%rtRrEAy(FWo4*!O#?gu-~&T0Fe7_GwMo=D8f>3xLHn;GcauDUw4F
zUuTk06wk`ED=*VFslEfmeD)-N!2+Py!!Z}>HU=2#>%T=W!i!Bw?H}H<9-5PH6_0v#
zlKM;$Za$0v;o^%%^2m`(hS;lok(K~BwF4 at p&e`1-XH|bZS||$rpYj;4K<6;wY@}F$
zU-F-8o^UpZi@%0Z?gvq;+)tYN%$$pXg=HI_bW{_TYM3ltSP|rH7>u`aM|#EU$1qdn
zGxC|YXO-c^=q(6-<Nk+;E;nNt6CU22V*L)CO)6>|U`;SKU{Y*4YByXR_w5^w^Ep(`
z#WKox%$N)_y!)A<Jj?hil8C%-Ad{%k%Afrw&BcdOxlR2Of5BW#<9dMiRou#1a)1`C
zQm@^9Ik0KL!bWxW*pA7kKu$xt`|?1_>Yv6|afMxNZ9 at qt^o($U`yB3tPr_p*0A_gX
zPkiv<b~(_C$={)|YerfTQeB?u at WVNu#j67=2z?gr$cFM)l-&MU-g(pa43TdJZLnl(
zqC>Z&_4OeyAfQbH$0W*wz9n9os}R{-Ahh}bl}d3wHH~<1BDB_(Vam*L(*yR82FK>8
z{lyP{peI$I=x=v%3D%^MNBV}(^->V9J%9ui=TA2~*(30~Ds98J_4 at DdpUMu49CPqW
z2Nn*eOj#boO-uTqvkH2sysXt5_cx at A*B@|zF?5$sA2BQkc at VM<>|p3Jag#ZIubZ&t
zRhrdC`#Zq#sWPTxfn<^w<0Jz)IDnn5e=&ct?U2g(pAzk*zr-#pJBYT8UB&{!k`_(L
z3N1egJ-Ow4i0t3#17F#r!ylt!_8^GX&B%yi$<BD}6Lr{;(E4-{ot{=-wxQetAg1*l
z2w58j0Ss}&<=6BG_T9N^oH9zAy#|eM at mFS2ZGH`cBaskhjtX#_%n&m&$eW9q>9oOR
z0D1}N@<;0pqNLFk{F>rsbIQXn!+XYYfxQnwV}v at 347IV-Rp8QBehyg6zesCZ5J3L<
zEA!cc5aJ`r-(~`rhs51Ib7t7+zaJs(haC>^Qi98=OMP$b@~B==(xy^@=({2qIt?@M
z at +~UR>FYiJCr%Ah_?zlEYuyNI?Y}%C0PT>B5C-^f<5!i9XZo$T$Y$}C&R9ZwVW9j;
zF0~Pe0&ZA2bD4x79X at j8rZrLwu0>V~(#nC<bfyc>N8gyBy(D!h%vrIw%|5`N1y#rY
ze#Tu~ZZ;%dE at eJrd+l29T~=Q{RW~hv;CX6i|6DZibmP8N*k3#|t(@tL;&$3lwy>l{
zL!lAWguaV))7xM!cPeLv6KXvA8RNqJj5RU^TPoudxXt%{)}GwKbR`*_OnmcEE=47!
zObS?ji!YhWJ4kLiL<xD-$AidXAf6UPKvJ|XS}n at gPIB#M6b}1D at VD7Jp&S>}iW^Yg
zXSASk=OiV+KBIz=R9Pr?U#()PKpqbGru*&V<MU>27ki5q#y%|e3F_bV1O`qAp^>{q
zaQ;*Vf8TaQjUcKmjxQae8}d7sFH1&{7?s6UT06v=O$p0FQToREMi9Amf{o7Ga(^vf
zu${tq&L27sn76eH?Q7{iaW&1{U>&v0ALl+Gm53f5Pt>B3XC!>+3*1(Kpj!wjfJ$D7
zo*7y4uqEz#hFealMuW$S_E7u_<_NZWC^#hvU$>Hmnr-qea!`u1`OI=7O)(wg^RLT|
zJuWj1jNOY5AG{AtI&F at 7w)}H(xa!R!=U9}?lIU>c1Tl^X+$t~_GEVgxR8#WP;1na&
z3-J3mfW?46gj at i$a}-g;$pbAX_yZ9SU7Aq6MgA4=^*`F;2rFKA3Em_y&p6Z$3tSb9
z;fbs(EN(<#eN0EYzJQx7(z|3xEk1#UHuF3$g!~RBmKaS3ifR?T_caJH0K=kx(r<+1
z$w0Vh8DaFj1M at EDVBEj5jYR1#G#_^fYS^PShHrO0=-mSb8O2lr>&tZTt at uWoLr=FK
z*QVT|K7#~`P9%Jph?&Tc8CHsXG at 3}JoDZe(A2z8VZRnfHEKjv^FiAbtM5zT655vm^
z7tW*sq+rhrXwJIcF(@x8UP~026Q}3*FzdNO)|W%WwdO|`bo4_y;f?#-;<o62Q|tTM
zbDIMmbI&-r+U!JlYFLXCX&{!B?GM$^MI6kUtoi+#-=2JD1J}{~|Gv)pNL<$A-=qHF
zV^FSmags!0a=mQwBwjK?k6(|zxVe5Mt?%dAE7(g@(S*xRLGmtx+ETW<z;1I)^sOp_
zTi*p)kKMX&&_B&v at xBN%mzGMJ_PeDh1wc);{S^hz8eQk+5<-719<{I)MT>5T)<<&b
z at d-On+*R#y<5V8BRw&}zCLjF66nQkNv-cg^d~tB#)P?x+8%xYUynyDkjucni8WD{F
z<1_`u$BLjzp<~Nc!H*MB<2DU7)++Q+wHsP0E+vE+y(`DHMQpFnRb<Q1QjH5q<UTP!
z0r%BK|1`+zt$LF;`Ua-jrgZ~Ad=(u6NfmQ+yQ`KN at 2Pv*XIBqKCrf}u`{nO71G9r!
zsbF_7KO~_4%je2|zJ8zigH?XJwZ}dw&qtCmVgW&4C2PZT6POC_Q-<%O`i_Oi;{AT*
z(Qn_N9rJ`@KMWbDKIwr=OK%7nl{=xG8hMC_#SBOfm!`>H+LgX#Py9#F&tryZAy3u=
zwi1XpVUqW?O)extlV_Y&jEqO{=^3W_*#2_O?ds<vi6Acd%bB4nU8wZK5U-;h@^!`g
z=UaWc6%!SMR&}PzWW%Ly*&U0|VehW+k{+S(Y*EZ?qt_sHx?rby_i}1LO))|&fW5I@
z=hxxq<0WMguaUI_?^{(ZA*SlJA{GYO>mp*ES^LoT;fx7qF8Pq)86v9#Wv}q)8QQjl
zg~0!WF~iCJ%_iC57%Oy6X4Og>GdIVEVBQ!?Xg;9LL3OWE`GUq=8<glLL{<jYZ1R??
z3_8&`U$UO>!z{Xrs_ at 1=T<<&^4X`_*aRk}6r$p8%s#Le>>OS2)HL=gOmlNF&?of$o
zKrQHH)ka+WHMkuzU!23YY51Fxy&rWA9R&v2WuOe8H!Sce!~rmU<>#<L$lAcQO#j?}
z3YjESX!~L~C{+woML*<m#Dw{?I(+{lmPXI$2G*)9LKW|3Y5j<6f_zNnzToxFzO~u-
zn?M2nK|61%<g`*(Y1`e{1ls@^BD|*mWm~H2rGJR(N#%aE6D!9Ox-dS2;#zSXxB1F^
zj?i+dZe_gT-!T at Fbx>~G_#$q8=Km!~?I*T6d@~177#O2!J~cm}amj at HT0pA3Fi#%I
zmCS!DbR~TY{gnS5OP?mEo<1MIkgQVc7Z_Wg0;m$0_CQLmdR>Is(o_QBE2806DdrK6
zTUGb=zyUf##n;8-{W?Fd`H~N^l`Mim`=rnU5oSV|#X3YpglM*Uc`$y0kCXvkTmACT
zbEOQJS4a{M%W>Wb`k58MGNVMnKYV^f)CkGsXIFH2GQ26|gR1q0_5;OokYhN52e25V
zerE3he`*s?2O+v?@FL*!0Q}0b&QhBz6iYX3L1gTKu4Bk9hKVD$WgDLot at xbgB<p$R
z{m+Yo$AGFpX;lVyI<+;XmlgpB3&@WCec1u%iQSq$?Ld)!AeG9?8ZdJ|duei`)e<ey
zxX$2WX<y%FrK;bOxi8Qkl@@Y6%;@_k-unxRr%JyVeI5QhnvM3XtKRr6*3bBT_Z0d>
z+D;kK<uyy%$LwcM*2iRf9cG!Mxn}-jc~3h|rFC=xnO0r3R4C$-C;h%{aW6}4SseOk
zk9+bU902z+NP|-b0{8i7!bFtrX!!2E+=rwIsR!AoC*_*;;)ndEqf)u%-;>umTnSVW
zl?!J)uW_c81M(!{uXiHNoAw at dp6IxcLf`!(BN1y_%9F>o*j4ut<)4`qy$ipZ)jD;K
zy?ue=0}2$ZP_IKE6VE$#hgoBQmY<9O5rvdHt<HZjlDt4(Ts;MA!ijmQJ8O<`U9OD)
zqcoF^btnncit at t`V(20sx9$g>8?G`;hRC&2RJcpVe{uyxb#WM#Q(CzLl?&JTQwyo7
z!9qhCE;X30R~7&JEpnv&C)exYh<%U)h;-g(5TVop<tOnJlYmP{mFXw;vN+8$`)-UO
zVi5^yXl~r^?(@Jy!BH;9!kq+iD-wR`X83Z$`#wGFYu1+GwIH=Myj^mmSQR=XNg{s0
z6A;Eah4<454)5@%j`#jFDe7}YKqwn1K~9RrEU+iiNC;x9;0RU(uUi&;4P$V%PM?<O
z&+QCGy0XAW@^65_O}<B<bylM4-ar^YZ24cgvnUv5iQEn34C?v0dYW5FFyb at k8O9QE
zy0XJIBkW)_wp=U}wzq{C&Rmd2cHS#}wL<0b;1G;Lf!q*7Z!aT9FFvvJn1}jMQ2=Xh
z87^Wmy55+k24`Kn8LMSL%z-4Gy#08!dJ(}<>(PY^IlIp?dz!Lty3TX>0<E=-T8&n}
zVN4ey`o%%Ie5h1%kA%-SD)>-s_{XaY#|hs}Y0fb{OywsO`%s=bm~|C*drGU2NkVTK
zY<bvR^-E}!@6f=`ZhBHQm6~)Ux|VqGQN>2y at wDica*ae)j8L`l2p7??ukWlhG0l-C
zkGKWa=#Hc~Ut;RChpx3^rPGhQs9CW#K at 8GE<1jCSU{w)^CR}leknUxqHtsrRrJl(U
zP${O5pe?kv5mhn!SymzpTopR|=5R~}&jHv)_<me-q6l2k%KtP#`2hL|!3(p~vkI%$
ze^|v4_4=e`oK?dql_N`xMkcZaF76ud_4v&6X8ui#^7bT#&w{p_JfJBkuTQz0#II>!
zr$Y;r9IM>JfI<CpKcopAZk%_owe%RTbo1+4<p7YCCc}K<XQn3}D&nPL6gA33Njr9k
z6)M}H*LlHm_e4zNxCSj5Q6Yh?p@())7HNu4B0Y-R*rGC}T)Z7MBlRU%-5t^3Fq>D#
z6OWC5qe>${iy)WkZx}p%^RQT4i|EYE<qU=m6a`00Y7!aBJ4qsTU73lHa7nKGB8_gH
zt~HAYxyk#4fBY~i#dL6 at DCM6GIeEcV)=`aJ6Zaq-@~uhk4_oW?XpE$&2jISNTTjd@
z=GT{3UzOK%`3QMaF097N{O384vaF}kJyzhYsxXLTLY6Y_en`yIM?+h7%FLu1oZ8nu
z3pu6%MW~FAL!bMEpFB?;bBA)5pgalR-*^s?MdYHm at foJ%RmQjz(^a<lUt9l2XeI;P
z?fkhV3D(Z1V3&Z at q&d<85%Ax=Z*%24JG(QAGNCp|5%?`+HvsG-t89dQ&Syf2xy*=g
zXxsFon46h{K&bvg>>>lF34|Nqn<O+iy1ooJ&CE<wGBI|R>(NAdyKwrGJqKt6EJ9^<
zihq<>co at n@=o(mQOL+)AxhS1Y>iE|XPRN_l(k1D+HY>mvT>r-xAe#hy1W|)+d=d(C
zz4b_h(ZPIsBN<|!D8dDHw2{gg<jgvQb4D+Rkgx|Y00}#8&hIKu!Tz0vjMDqs$1lU(
z;7agf1e7<nbFPB26D7MjwE<)uJ|mNWnNG>j^42$T^FOR1BXq94xi-gT)6n0)cP7Tr
zQS<A7rU~9>J}_KmLp9K#Suf^0k8LG7oP6tlZes0-Lc6#q{0pY*FW#venY%P%n{B+y
zJmhTN6gkq5+xkF>EN8cbUwbrW9uJ#{Wpq1z5h7ZNzd?c0$5dIRU2OL22gRYqYhtPj
z%v$b!xM3+bBZB{m1AdgziMk7`bEdQ}4S!u2&Wv(~pwrwZPmf*e{7|PV!TX6?8C~cy
z(RZM=xbPXa95f(1M^!QzTrM4B8IG(B68D2g$9d}ac*ASEJ+?FJh4NU$+l+&^ff at E)
z*VIB>TM!OjxplH=<HlrBjCG0S%HvyZ<GU`p{9)emg5>C2KBc#GWziZV=uE^XSfR0C
zBBDVjCgnV*y=EcWSnWWNX%4;pZZm+Q^K5R~Z#Fp3kuVCgc*72?Ql11rz~vb(a at JsQ
zc+g9S3$~S_=xgv;*sa?B`ZW#`$wV9uO&<G=mm=Zs|9Jt&`4(?VYymQ-j(t^okz52(
zJXyIz28x7?C&r#pfN;S_v_U%v0mpNxEBuWKdO79Qnw1qhv7N)5HNI4gGBn{6k<5L#
z?Q&2}l!Vc!ftc+nd>QC!-}wRO&rF<B3i$*}h|=5oA4T&;ysdxf233FY!zHZDr4msM
zg>|y|$R&=;X$l1V)r^x*QKGY`Gx9Rj;?S5sL?F%JaG&^i8?p1__if at hSa&c+YD;d_
z5&djCY2Q$SS*{JUy!f2l>)@Dtyl*6HisB*cv|<c!PKFJy!nTeG8ftXWT$%w$F*{1*
zf~x!M`rw7+WMWvEit0=oJ6a|y|K^E^=#PeZ<Y;BAH8HKhKP0=UuI%tfO;3;}jru`K
zF0ZU%C{v@;9nBXLmz+fDWSspLxrd`W=^fMblI^08sOCs(bor<7w%)~cnQiu#1-8o<
zrmN#4$i<IOtbGxO^#z at duc|C9%gCi^=p4?%DTCb-s)6?{^3;^_zANdLkE|UUUEeGu
z(zh4rZH1Tv7CM<F;q%91^Iw|!-YTC+oX2xdvo&b1NpO>~n?{zKau{&BxWY`vYad2b
zTXLz8Cq--A#FeK<ju at q0z|Q${r#;{~z1D#eJ-)raXtc4mr^KGi5VT`2GviGtR-g)k
zWS$ByD3n+4!0jY0wFfM}z2d^nLIoYPlm^a4bHk(b>YED$-S~$!8OMe at fT#eewtn5L
zBaoRdOU7VcO#UbMQLG84)X4*nkuR%PSRXe-m$P3rve^{an=SOITNWJuzx~bPT>g1H
z-t+M{!KfRBRd1P at f@kR!gq%zZ%W1`PRoA+8?^H`S8lpMmDF{2)iM!njvClAlNC at EV
zs{+^3mI8!~2c$M68bQTsZdC-hD6+ScY}mYoe)Xe=GUU&S986{3P%Ja;J7#Ie;IXF<
zw#V*U1!634)9?FKDS*HK{t0$K%z{;tMI2^Y at L9`Vg}_<#Z6JsS!Oi<}FgJl;S(s#_
zZdtmJ%_#TJ%+poWsVnP2-6EV@*J+kGQ8VtWpqRWh9c0c24CVehX5Ywni;*#b?6fYm
zQ~_NX at G><xk6jOor0fvv$JjBs-Yskks#-WiF19U1aR(t^ig#|M0$dDplL8ICRjR5A
z*xS6YS5L3?y@=gmxrl1#Bui-u8BmmL$Ce7`M+`@UD$RXBvJv-FqCN at AYQXGb5&XaJ
zqNyFtm~!sCn9`V<FkRd>`RrbIF4gtsn at w$6x!~?$P3^z27>UO$c8Q5(Nz{4}F*)$?
zur3G*80^USDux2W5*hW<)$ObII9PQ at QP$42g=K?PfpC<J6hzueD%@1c_qrvmNcSh@
z-3d#;-AHTG@!ZzHvN9o7<0 at mY*B(5F>&+c1SyrN_+NWoNR;r?^ttNKS)gg!JGHdU$
z=CIwZ1H7tQZ$wWE9*-owDA^gPhzt&G&Uj&1*|B&K(HT150Iv=hoL~e?lR#L3Yr??k
zd??-!5?#w23Jdh9FAtLU**d6#74kW}XlW!jE!sNG>99r;r4zjIFp3YlIB7dk&?W|t
zp;8sU0qc7I8 at fFI?u}#- at oJ5Fcky>d=)|S8ncDh>4G^v7BPQ23R`KHxdgn32%MAYz
zHCg31Pz9Yt`4IuLiqQN6+-fbzQLwk{nfK6=X8)pt>?s#-xUEu$QVG?f62AqKc>C()
zE;y*FU>a4bN_Dh#hn@*$dc`3*p6g(i=sqDq$lbEJ5Rz4|pUs}U1ic#Jo#^N~uz4i>
z&Ta~@Cd4}7MIxyFSkBP`Sy9SR>FE%OA>ti1(KA)a*u-9QvvcB!Sh<o_ZptmuB;>T{
z^>p9)ZdBACkYIprN3EF(W#6YPfM^b$=H^bBcuKg?5BIa5wiuqW?d66=94xg}V5fQ#
zv2IQVDoGhXwZWFM;vS}FLiz=pW5Ab69Z;{MCa9gG*<p^0ISl0m0A<6tC;N)0DxJJe
zrGXwd20g=BCK0Ns&cm|ZF#}q6of}Gj at 9`K8%Bvdu?0v~W{V_G(BhlS7V{C{#pTm~L
zR&6DS|Gr?(U1ydW?#cgynxP*Ftkbp7k_yJl^Zfr)EKK$nZv at l_R*|xkRLp6ZomaTi
z+Y3V?_Rv^+E_v-+A*B~#kx}awaCla8Ro0kGKDGHV3yyKnSIxyeee~wYuVs^U=pjIN
zQ+JUb{(T>bm~Qy|O!l78sLTNy+8-=vMOZf+sf)&q6kAg!+_rNL0WbkV-WaEmuTxWb
zE|ah`jZQM at sxhsGpf066;v4vyAB3n2??3F!2xuOUAIY5(7$NpL`|2~So&@AoEjTmd
zaw*Y&M%higWn-WXu^h2xWCueJI^XLs=48KlZrQ6u?!-S<0vX|U;BVFV)f&A&nXRYn
zJxM{Vkq2t^-WHymKA-WbzQ9#XlmoC^=w9dPiapxNthC>rMNOX$ShWc^{!mhLrhLL+
z(}A at ui6Y7eP_7-A1NlOICPrCOJRS;RlZp7Rp(|}Q6}+76d}2qWGp^mbwCv};whgb2
zC7KS8e5yToEns}^ZC2}n2}(q~6(z2A7;%)#l1EkruZV&<mY)$7SH&|(nmM&A<HI7u
z2ZR+ae(7u*L+V_c7q8QtS@}y>#14km%@w<}3WmmSR=F at paq=t~dv!OTTvP6_Je!1(
z`HsYD%P01|pW2IjRRcL_Ld<?NkO}&E%)a0AyPRYmr|jAvm3BY#pvIcG^84*V9?2!r
z+oQ%)lbS~l#$Ctk|D53(#;q!@Nno_;+Ze|P9huS$IwiVeTd(YJ>4FuOf+Ex)W6>e>
zOHK66LV&S7E>Z4pI^Qt4VtK9Ei$e=x8x);G6Dl(?IE>OjElIe+SNG__$GfB!CDof5
zgX{El%Qg-+J<v<N%sp}R;gfClUkqL>ernnm_B4LaJX)W1f#Up{g^<1;Xp77Id42b)
z^l(N6G}e3HP|F*d&QGk&_v2d#GBo|r%`1E>7c9%~a at K9yJ#htN%^0*NwN?z8b#F>o
z0JI!!t`W)beZKHOfzFNf$bk(|LX)<*fLm3T%|6;3J>rm{vqbW`)~g1aPiJ2KGj-hy
z?~ak!ceeHBv_k^Y8xZS=(k5_sbWAvd6r!xl6x8k_EO>=^<bfNajd$6r+E*L0pm{ZV
z?I#SAGI0T at xcz-Ntz9=P(&9R!rksgokIqn9cMQy369CsEhfU`(9iq|mX*(K*MF7R3
zjST>oGnFmqFHGuLQ|-^ZP>vl)0IxeTT)Qr|j7QgcfdVM5j0rSe&le9uZKTy_C??fF
zWOQ+GWa;cf&hN;K?5ordCOgDT_m{`T*clcopKhz^vH2b*jJQa6s#$kh6T&tq`%MM2
z&0h1XT9JK at Hgd3Joyqn=@^?fJ1h2bhHlO&Hd;R(tpv3^7wGf>sP8f)J6=8t{7*#x^
zPOX3o@%YZ4;fqb!2^UrSH{`ZXFlwuE6L?lOyCl!$7N<d6c>^4C<)TYeYJG72MkpGA
zIdWl$vp*0~XMe!UtA60{gy`0Rl=%Pt$X9_rXK)F#pZI@&;ntYTRAO at SnYx8rlNZc^
PpFO+xIhXA`eDePQBKVH1

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded b/clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded
new file mode 100644
index 000000000000000..9d07a4101bf253c
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded
@@ -0,0 +1,2775 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "template <class T>\nT identity(T x)\n{\n  struct S {\n    T m_t;\n\n    S(T t)\n      : m_t(t)\n    {}\n  };\n\n  S s(x);\n  return s.m_t;\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 820,
+        "y": 20
+      },
+      "name": "Source code part 1",
+      "size": {
+        "h": 230,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 14",
+      "size": {
+        "h": 60,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 200,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 87",
+      "size": {
+        "h": 70,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 110
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 17",
+      "size": {
+        "h": 60,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 475,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 42",
+      "size": {
+        "h": 75,
+        "w": 230
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 15,
+        "y": 190
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 20",
+      "size": {
+        "h": 45,
+        "w": 120
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 15,
+        "y": 235
+      },
+      "name": "20",
+      "objectGraphNodeID": "CompoundStmt 20",
+      "size": {
+        "h": 565,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 175,
+        "y": 215
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclStmt 21",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 80,
+        "y": 605
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclStmt 32",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 80,
+        "y": 705
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ReturnStmt 38",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 50,
+        "y": 250
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 75,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 95,
+        "y": 335
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 24",
+      "size": {
+        "h": 75,
+        "w": 195
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 95,
+        "y": 430
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 25",
+      "size": {
+        "h": 60,
+        "w": 180
+      }
+    },
+    {
+      "loc": {
+        "x": 50,
+        "y": 325
+      },
+      "name": "22",
+      "objectGraphNodeID": "CXXRecordDecl 22",
+      "size": {
+        "h": 265,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 50,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 33",
+      "size": {
+        "h": 45,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 190,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 34",
+      "size": {
+        "h": 45,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 315,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 35",
+      "size": {
+        "h": 45,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 95,
+        "y": 545
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 31",
+      "size": {
+        "h": 45,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 165,
+        "y": 510
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParenListExpr 29",
+      "size": {
+        "h": 20,
+        "w": 110
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 330,
+        "y": 510
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 30",
+      "size": {
+        "h": 20,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 330,
+        "y": 405
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 28",
+      "size": {
+        "h": 85,
+        "w": 125
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 50,
+        "y": 740
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXDependentScopeMemberExpr 39",
+      "size": {
+        "h": 60,
+        "w": 240
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n$(graphNodeShowFieldsAttrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 325,
+        "y": 740
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 40",
+      "size": {
+        "h": 60,
+        "w": 135
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 475,
+        "y": 125
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 41",
+      "size": {
+        "h": 60,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 475,
+        "y": 205
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 47",
+      "size": {
+        "h": 50,
+        "w": 120
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 475,
+        "y": 255
+      },
+      "name": "47",
+      "objectGraphNodeID": "CompoundStmt 47",
+      "size": {
+        "h": 530,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 635,
+        "y": 235
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclStmt 48",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 510,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 49",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "loc": {
+        "x": 510,
+        "y": 335
+      },
+      "name": "49",
+      "objectGraphNodeID": "CXXRecordDecl 49",
+      "size": {
+        "h": 255,
+        "w": 20
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 550,
+        "y": 345
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FieldDecl 51",
+      "size": {
+        "h": 75,
+        "w": 235
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 550,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXConstructorDecl 53",
+      "size": {
+        "h": 45,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 735,
+        "y": 275
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 94",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 735,
+        "y": 440
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberSpecializationInfo 95",
+      "size": {
+        "h": 60,
+        "w": 175
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Whitespace",
+      "loc": {
+        "x": 755,
+        "y": 505
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 54",
+      "size": {
+        "h": 85,
+        "w": 155
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 560,
+        "y": 505
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ImplicitCastExpr 56",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 560,
+        "y": 540
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 57",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 540,
+        "y": 605
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclStmt 66",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 540,
+        "y": 730
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ReturnStmt 71",
+      "size": {
+        "h": 20,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 510,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "VarDecl 67",
+      "size": {
+        "h": 45,
+        "w": 80
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Type",
+      "loc": {
+        "x": 650,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ElaboratedType 61",
+      "size": {
+        "h": 45,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "CanonicalType",
+      "loc": {
+        "x": 775,
+        "y": 640
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "RecordType 62",
+      "size": {
+        "h": 45,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 510,
+        "y": 765
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ImplicitCastExpr 72",
+      "size": {
+        "h": 20,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 650,
+        "y": 765
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "MemberExpr 73",
+      "size": {
+        "h": 20,
+        "w": 95
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 780,
+        "y": 765
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 74",
+      "size": {
+        "h": 20,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 15,
+        "y": 815
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 75",
+      "size": {
+        "h": 45,
+        "w": 105
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 160,
+        "y": 815
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 82",
+      "size": {
+        "h": 45,
+        "w": 100
+      }
+    },
+    {
+      "attributes": "int caller(int y)\n  { return identity(y); }\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 510,
+        "y": 800
+      },
+      "name": "Source code part 2",
+      "size": {
+        "h": 60,
+        "w": 130
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 27": {"syntax": "\"void\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 45": {"syntax": "\"int\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "BuiltinType 92": {"syntax": "\"<dependent type>\""},
+    "CXXConstructExpr 68": {
+      "Arg[0]": {"ptr": "ImplicitCastExpr 69"},
+      "CXXConstructExprBits": "CK_Complete HadMultipleCandidates",
+      "Constructor": {"ptr": "CXXConstructorDecl 53"},
+      "Dependent": "None",
+      "Loc": "in/src/ft-cont-oc-inst.cc:15:5",
+      "NumArgs": 1,
+      "ObjectKind": "OK_Ordinary",
+      "ParenOrBraceRange": "<in/src/ft-cont-oc-inst.cc:15:6, col:8>",
+      "TR": {
+        "preview": "S",
+        "ptr": "ElaboratedType 61"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CXXConstructorDecl 25": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 31"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "1",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (T)",
+        "ptr": "FunctionProtoType 26"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:12:6",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 28"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "Init[0].Flags": "IsWritten",
+      "Init[0].Init": {"ptr": "ParenListExpr 29"},
+      "Init[0].Initializee": {"ptr": "FieldDecl 24"},
+      "Init[0].LParenLoc": "in/src/ft-cont-oc-inst.cc:11:12",
+      "Init[0].MemberOrEllipsisLocation": "in/src/ft-cont-oc-inst.cc:11:9",
+      "Init[0].RParenLoc": "in/src/ft-cont-oc-inst.cc:11:14",
+      "Init[0].SourceOrder": 0,
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:10:5",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "LastDecl": {"ptr": "ParmVarDecl 28"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:10:5",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 28"},
+      "RD::First": {"ptr": "CXXConstructorDecl 25"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 25"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"void (T)\", <in/src/ft-cont-oc-inst.cc:10:6, col:10>, Builtin(\"void\", <<invalid sloc>>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 53": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 31"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "1",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (int)",
+        "ptr": "FunctionProtoType 55"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:12:6",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "Init[0].Flags": "IsWritten",
+      "Init[0].Init": {"ptr": "ImplicitCastExpr 56"},
+      "Init[0].Initializee": {"ptr": "FieldDecl 51"},
+      "Init[0].LParenLoc": "in/src/ft-cont-oc-inst.cc:11:12",
+      "Init[0].MemberOrEllipsisLocation": "in/src/ft-cont-oc-inst.cc:11:9",
+      "Init[0].RParenLoc": "in/src/ft-cont-oc-inst.cc:11:14",
+      "Init[0].SourceOrder": 0,
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:10:5",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:10:5",
+      "LookupPtr": "null",
+      "MSI": {"ptr": "MemberSpecializationInfo 95"},
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 58"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 54"},
+      "RD::First": {"ptr": "CXXConstructorDecl 53"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 53"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"void (int)\", <in/src/ft-cont-oc-inst.cc:10:6, col:10>, Builtin(\"void\", <<invalid sloc>>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "CXXConstructorDecl 25"},
+      "getMemberSpecializationInfo()": {"ptr": "MemberSpecializationInfo 95"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "CXXConstructorDecl 25"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "CXXConstructorDecl 25"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_MemberSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 58": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (const S &)",
+        "ptr": "FunctionProtoType 97"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 63"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 59"},
+      "RD::First": {"ptr": "CXXConstructorDecl 58"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 58"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXConstructorDecl 63": {
+      "Access": "AS_public",
+      "Body": {"ptr": "null"},
+      "CXXConstructorDeclBits flags": "",
+      "CXXConstructorDeclBits.NumCtorInitializers": "0",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "DNLoc": "(none)",
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXConstructorDecl",
+      "DeclType": {
+        "preview": "void (S &&)",
+        "ptr": "FunctionProtoType 99"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "IsInline IsInlineSpecified HasWrittenPrototype IsTrivial IsTrivialForCall IsDefaulted Constexpr",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InheritedConstructor": "TODO",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 64"},
+      "RD::First": {"ptr": "CXXConstructorDecl 63"},
+      "RD::Prev": {"ptr": "CXXConstructorDecl 63"},
+      "SClass": "SC_None",
+      "TInfo": "NullTSI",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getExplicitSpecifierInternal()": "TODO",
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXDependentScopeMemberExpr 39": {
+      "ASTTemplateKWAndArgsInfo": "TODO",
+      "Base": {"ptr": "DeclRefExpr 40"},
+      "BaseType": {
+        "preview": "S",
+        "ptr": "ElaboratedType 34"
+      },
+      "Dependent": "Instantiation|Type|Value",
+      "FirstQualifierFoundInScope": "TODO",
+      "MemberNameInfo.LocInfo": "(none)",
+      "MemberNameInfo.Name": "\"m_t\" (Identifier)",
+      "MemberNameInfo.NameLoc": "in/src/ft-cont-oc-inst.cc:16:12",
+      "ObjectKind": "OK_Ordinary",
+      "QualifierLoc": "AbsentNNSLoc",
+      "TR": {
+        "preview": "<dependent type>",
+        "ptr": "BuiltinType 92"
+      },
+      "TemplateArgumentLocs": "TODO",
+      "ValueKind": "VK_LValue"
+    },
+    "CXXRecordDecl 22": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ft-cont-oc-inst.cc:7:12, line:13:3>",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 90"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 23"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 25"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LocStart": "in/src/ft-cont-oc-inst.cc:7:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "VarDecl 33"},
+      "ODRHash": "41785280",
+      "RD::First": {"ptr": "CXXRecordDecl 22"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 22"},
+      "RecordDeclBits": "APK_CannotPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 35"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned",
+      "needsImplicitDestructor()": true
+    },
+    "CXXRecordDecl 23": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LocStart": "in/src/ft-cont-oc-inst.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 24"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 23"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 23"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 35"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 49": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/ft-cont-oc-inst.cc:7:12, line:13:3>",
+      "DC": {"ptr": "FunctionDecl 41"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 93"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 50"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "FunctionDecl 41"},
+      "LastDecl": {"ptr": "CXXConstructorDecl 63"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LocStart": "in/src/ft-cont-oc-inst.cc:7:3",
+      "LookupPtr": "StoredDeclsMap with 3 entries",
+      "MSI": {"ptr": "MemberSpecializationInfo 94"},
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "VarDecl 67"},
+      "ODRHash": "67011964",
+      "RD::First": {"ptr": "CXXRecordDecl 49"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 49"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsCompleteDefinitionRequired",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "CXXRecordDecl 22"},
+      "getTemplateInstantiationPattern()": {"ptr": "CXXRecordDecl 22"},
+      "moduleOwnershipKind": "Unowned",
+      "needsImplicitDestructor()": true
+    },
+    "CXXRecordDecl 50": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LocStart": "in/src/ft-cont-oc-inst.cc:7:3",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FieldDecl 51"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 50"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 50"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getDestructor()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 85": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 86": {"skipping reserved": "\"__va_list_tag\""},
+    "CallExpr 80": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CompoundStmt 20": {
+      "LBraceLoc": "in/src/ft-cont-oc-inst.cc:6:1",
+      "NumStmts": 3,
+      "RBraceLoc": "in/src/ft-cont-oc-inst.cc:17:1",
+      "Stmt[0]": {"ptr": "DeclStmt 21"},
+      "Stmt[1]": {"ptr": "DeclStmt 32"},
+      "Stmt[2]": {"ptr": "ReturnStmt 38"}
+    },
+    "CompoundStmt 31": {
+      "LBraceLoc": "in/src/ft-cont-oc-inst.cc:12:5",
+      "NumStmts": 0,
+      "RBraceLoc": "in/src/ft-cont-oc-inst.cc:12:6"
+    },
+    "CompoundStmt 47": {
+      "LBraceLoc": "in/src/ft-cont-oc-inst.cc:6:1",
+      "NumStmts": 3,
+      "RBraceLoc": "in/src/ft-cont-oc-inst.cc:17:1",
+      "Stmt[0]": {"ptr": "DeclStmt 48"},
+      "Stmt[1]": {"ptr": "DeclStmt 66"},
+      "Stmt[2]": {"ptr": "ReturnStmt 71"}
+    },
+    "CompoundStmt 78": {
+      "LBraceLoc": "in/src/ft-cont-oc-inst.cc:20:1",
+      "NumStmts": 1,
+      "RBraceLoc": "in/src/ft-cont-oc-inst.cc:22:1",
+      "Stmt[0]": {"ptr": "ReturnStmt 79"}
+    },
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 30": {
+      "D": {"ptr": "ParmVarDecl 28"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ft-cont-oc-inst.cc:11:13",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 37": {
+      "D": {"ptr": "ParmVarDecl 19"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ft-cont-oc-inst.cc:15:7",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 40": {
+      "D": {"ptr": "VarDecl 33"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ft-cont-oc-inst.cc:16:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S",
+        "ptr": "ElaboratedType 34"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 57": {
+      "D": {"ptr": "ParmVarDecl 54"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-cont-oc-inst.cc:11:13",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 70": {
+      "D": {"ptr": "ParmVarDecl 46"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-cont-oc-inst.cc:15:7",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 74": {
+      "D": {"ptr": "VarDecl 67"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-cont-oc-inst.cc:16:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "S",
+        "ptr": "ElaboratedType 61"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 82": {
+      "D": {"ptr": "FunctionDecl 41"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "HasFoundDecl",
+      "Dependent": "None",
+      "FoundDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Loc": "in/src/ft-cont-oc-inst.cc:21:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 43"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 84": {
+      "D": {"ptr": "ParmVarDecl 77"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-cont-oc-inst.cc:21:19",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclStmt 21": {
+      "DG": {"ptr": "CXXRecordDecl 22"},
+      "EndLoc": "in/src/ft-cont-oc-inst.cc:13:4",
+      "StartLoc": "in/src/ft-cont-oc-inst.cc:7:3"
+    },
+    "DeclStmt 32": {
+      "DG": {"ptr": "VarDecl 33"},
+      "EndLoc": "in/src/ft-cont-oc-inst.cc:15:9",
+      "StartLoc": "in/src/ft-cont-oc-inst.cc:15:3"
+    },
+    "DeclStmt 48": {
+      "DG": {"ptr": "CXXRecordDecl 49"},
+      "EndLoc": "in/src/ft-cont-oc-inst.cc:13:4",
+      "StartLoc": "in/src/ft-cont-oc-inst.cc:7:3"
+    },
+    "DeclStmt 66": {
+      "DG": {"ptr": "VarDecl 67"},
+      "EndLoc": "in/src/ft-cont-oc-inst.cc:15:9",
+      "StartLoc": "in/src/ft-cont-oc-inst.cc:15:3"
+    },
+    "DefinitionData 90": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 22"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "UserDeclaredConstructor",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "HasNonLiteralTypeFieldsOrBases",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "DefinitionData 93": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_CopyConstructor|SMF_MoveConstructor",
+      "Definition": {"ptr": "CXXRecordDecl 49"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "UserDeclaredConstructor",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasPublicFields",
+        "HasUninitializedFields",
+        "HasIrrelevantDestructor",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam",
+        "HasDeclaredCopyConstructorWithConstParam"
+      ]
+    },
+    "ElaboratedType 34": {
+      "Canon": {
+        "preview": "struct S",
+        "ptr": "RecordType 35"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S",
+        "ptr": "RecordType 35"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S",
+        "ptr": "RecordType 35"
+      },
+      "syntax": "\"S\""
+    },
+    "ElaboratedType 61": {
+      "Canon": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "Keyword": "ETK_None",
+      "NNS": "null",
+      "NamedType": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "syntax": "\"S\""
+    },
+    "FieldDecl 24": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 22"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:8:5",
+      "LDC": {"ptr": "CXXRecordDecl 22"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:8:7",
+      "Name": "\"m_t\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 25"},
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-cont-oc-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FieldDecl 51": {
+      "Access": "AS_public",
+      "CachedFieldIndex": "0",
+      "DC": {"ptr": "CXXRecordDecl 49"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "ExtInfo": "absent",
+      "FieldDecl flags": "",
+      "IdentifierNamespace": "IDNS_Member",
+      "InitStorageKind": "ICIS_NoInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:8:5",
+      "LDC": {"ptr": "CXXRecordDecl 49"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:8:7",
+      "Name": "\"m_t\"",
+      "NextInContext": {"ptr": "CXXConstructorDecl 53"},
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ft-cont-oc-inst.cc:8:5>, NullTypeLoc)",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 17": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 20"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 18"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:17:1",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 14"},
+      "FirstDecl": {"ptr": "ParmVarDecl 19"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "VarDecl 33"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-cont-oc-inst.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 19"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 17"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ft-cont-oc-inst.cc:5:1, col:15>, TemplateTypeParm(\"T\", <in/src/ft-cont-oc-inst.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 41": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 47"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 43"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:17:1",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 42"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 49"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "VarDecl 67"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-cont-oc-inst.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 46"},
+      "RD::First": {"ptr": "FunctionDecl 41"},
+      "RD::Prev": {"ptr": "FunctionDecl 41"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-cont-oc-inst.cc:5:1, col:15>, SubstTemplateTypeParm(\"int\", <in/src/ft-cont-oc-inst.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 17"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "FunctionDecl 17"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 42"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 75": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 78"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 76"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-cont-oc-inst.cc:22:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 77"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:19:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 77"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-cont-oc-inst.cc:19:5",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "Param[0]": {"ptr": "ParmVarDecl 77"},
+      "RD::First": {"ptr": "FunctionDecl 75"},
+      "RD::Prev": {"ptr": "FunctionDecl 75"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-cont-oc-inst.cc:19:1, col:17>, Builtin(\"int\", <in/src/ft-cont-oc-inst.cc:19:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 102": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "const struct S &",
+        "ptr": "LValueReferenceType 98"
+      },
+      "syntax": "\"void (const struct S &)\""
+    },
+    "FunctionProtoType 103": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "struct S &&",
+        "ptr": "RValueReferenceType 100"
+      },
+      "syntax": "\"void (struct S &&)\""
+    },
+    "FunctionProtoType 18": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 89"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 26": {
+      "Canon": {
+        "preview": "void (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 91"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"void (T)\""
+    },
+    "FunctionProtoType 43": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 76"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 55": {
+      "Canon": {
+        "preview": "void (int)",
+        "ptr": "FunctionProtoType 96"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "syntax": "\"void (int)\""
+    },
+    "FunctionProtoType 76": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 89": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionProtoType 91": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "syntax": "\"void (type-parameter-0-0)\""
+    },
+    "FunctionProtoType 96": {
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"void (int)\""
+    },
+    "FunctionProtoType 97": {
+      "Canon": {
+        "preview": "void (const struct S &)",
+        "ptr": "FunctionProtoType 102"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "const S &",
+        "ptr": "LValueReferenceType 60"
+      },
+      "syntax": "\"void (const S &)\""
+    },
+    "FunctionProtoType 99": {
+      "Canon": {
+        "preview": "void (struct S &&)",
+        "ptr": "FunctionProtoType 103"
+      },
+      "ResultType": {
+        "preview": "void",
+        "ptr": "BuiltinType 27"
+      },
+      "paramType[0]": {
+        "preview": "S &&",
+        "ptr": "RValueReferenceType 65"
+      },
+      "syntax": "\"void (S &&)\""
+    },
+    "FunctionTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 87"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-cont-oc-inst.cc:5:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "FunctionDecl 75"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ft-cont-oc-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ft-cont-oc-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ft-cont-oc-inst.cc:4:1",
+      "TdD": {"ptr": "FunctionDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 87": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 42"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 42": {
+      "Function": {"ptr": "FunctionDecl 41"},
+      "PointOfInstantiation": "in/src/ft-cont-oc-inst.cc:21:10",
+      "Template": {"ptr": "FunctionTemplateDecl 14"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "ImplicitCastExpr 56": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 57"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 69": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 70"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 72": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "MemberExpr 73"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 81": {
+      "BasePathSize": 0,
+      "CastExprBits": "FunctionToPointerDecay",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 82"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 101"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "ImplicitCastExpr 83": {
+      "BasePathSize": 0,
+      "CastExprBits": "LValueToRValue",
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "Op": {"ptr": "DeclRefExpr 84"},
+      "PartOfExplicitCast": false,
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "ValueKind": "VK_PRValue",
+      "getConversionFunction()": {"ptr": "null"},
+      "getStoredFPFeatures())": "TODO"
+    },
+    "LValueReferenceType 60": {
+      "Canon": {
+        "preview": "const struct S &",
+        "ptr": "LValueReferenceType 98"
+      },
+      "PointeeType": {
+        "preview": "const S",
+        "ptr": "ElaboratedType 61"
+      },
+      "syntax": "\"const S &\""
+    },
+    "LValueReferenceType 98": {
+      "PointeeType": {
+        "preview": "const struct S",
+        "ptr": "RecordType 62"
+      },
+      "syntax": "\"const struct S &\""
+    },
+    "MemberExpr 73": {
+      "Base": {"ptr": "DeclRefExpr 74"},
+      "Dependent": "None",
+      "MemberDNLoc": "(none)",
+      "MemberDecl": {"ptr": "FieldDecl 51"},
+      "MemberExprBits": "NOUR_None",
+      "MemberExprNameQualifier": "TODO",
+      "MemberLoc": "in/src/ft-cont-oc-inst.cc:16:12",
+      "ObjectKind": "OK_Ordinary",
+      "OperatorLoc": "in/src/ft-cont-oc-inst.cc:16:11",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "MemberSpecializationInfo 94": {
+      "Member": {"ptr": "CXXRecordDecl 22"},
+      "PointOfInstantiation": "in/src/ft-cont-oc-inst.cc:7:10",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "MemberSpecializationInfo 95": {
+      "Member": {"ptr": "CXXConstructorDecl 25"},
+      "PointOfInstantiation": "in/src/ft-cont-oc-inst.cc:7:10",
+      "TemplateSpecializationKind": "TSK_ImplicitInstantiation"
+    },
+    "ParenListExpr 29": {
+      "Dependent": "Instantiation|Type|Value",
+      "Expr[0]": {"ptr": "DeclRefExpr 30"},
+      "LParenLoc": "in/src/ft-cont-oc-inst.cc:11:12",
+      "NumExprs": 1,
+      "ObjectKind": "OK_Ordinary",
+      "RParenLoc": "in/src/ft-cont-oc-inst.cc:11:14",
+      "TR": null,
+      "ValueKind": "VK_PRValue"
+    },
+    "ParenListExpr 36": {
+      "Dependent": "Instantiation|Type|Value",
+      "Expr[0]": {"ptr": "DeclRefExpr 37"},
+      "LParenLoc": "in/src/ft-cont-oc-inst.cc:15:6",
+      "NumExprs": 1,
+      "ObjectKind": "OK_Ordinary",
+      "RParenLoc": "in/src/ft-cont-oc-inst.cc:15:8",
+      "TR": null,
+      "ValueKind": "VK_PRValue"
+    },
+    "ParmVarDecl 19": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:5:14",
+      "Name": "\"x\"",
+      "NextInContext": {"ptr": "CXXRecordDecl 22"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-cont-oc-inst.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 28": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 25"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:10:7",
+      "LDC": {"ptr": "CXXConstructorDecl 25"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:10:9",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-cont-oc-inst.cc:10:7>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 46": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 41"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 44"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 41"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:5:14",
+      "Name": "\"x\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ft-cont-oc-inst.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 54": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 53"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 52"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:10:7",
+      "LDC": {"ptr": "CXXConstructorDecl 53"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:10:9",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ft-cont-oc-inst.cc:10:7>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 59": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 58"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "const S &",
+        "ptr": "LValueReferenceType 60"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LDC": {"ptr": "CXXConstructorDecl 58"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 64": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXConstructorDecl 63"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "S &&",
+        "ptr": "RValueReferenceType 65"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:7:10",
+      "LDC": {"ptr": "CXXConstructorDecl 63"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:7:10",
+      "Name": "\"\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "NullTSI",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 77": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 75"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:19:12",
+      "LDC": {"ptr": "FunctionDecl 75"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:19:16",
+      "Name": "\"y\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ft-cont-oc-inst.cc:19:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 101": {
+      "Canon": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 104"
+      },
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 43"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 104": {
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 76"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RValueReferenceType 100": {
+      "PointeeType": {
+        "preview": "struct S",
+        "ptr": "RecordType 62"
+      },
+      "syntax": "\"struct S &&\""
+    },
+    "RValueReferenceType 65": {
+      "Canon": {
+        "preview": "struct S &&",
+        "ptr": "RValueReferenceType 100"
+      },
+      "PointeeType": {
+        "preview": "S",
+        "ptr": "ElaboratedType 61"
+      },
+      "syntax": "\"S &&\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 86"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 35": {
+      "decl": {"ptr": "CXXRecordDecl 22"},
+      "syntax": "\"struct S\""
+    },
+    "RecordType 62": {
+      "decl": {"ptr": "CXXRecordDecl 49"},
+      "syntax": "\"struct S\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 85"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 38": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "CXXDependentScopeMemberExpr 39"},
+      "RetLoc": "in/src/ft-cont-oc-inst.cc:16:3"
+    },
+    "ReturnStmt 71": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "ImplicitCastExpr 72"},
+      "RetLoc": "in/src/ft-cont-oc-inst.cc:16:3"
+    },
+    "ReturnStmt 79": {
+      "NRVOCandidate": {"ptr": "null"},
+      "RetExpr": {"ptr": "CallExpr 80"},
+      "RetLoc": "in/src/ft-cont-oc-inst.cc:21:3"
+    },
+    "SubstTemplateTypeParmType 44": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"int\""
+    },
+    "SubstTemplateTypeParmType 52": {
+      "AssociatedDecl": {"ptr": "FunctionDecl 41"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 45"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:4:17",
+      "LocStart": "in/src/ft-cont-oc-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 88"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 88": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 75"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""},
+    "VarDecl 33": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "S",
+        "ptr": "ElaboratedType 34"
+      },
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "ParenListExpr 36"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:15:3",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "NoLinkage",
+      "Loc": "in/src/ft-cont-oc-inst.cc:15:5",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"S\", <in/src/ft-cont-oc-inst.cc:15:3>, Record(\"struct S\", <in/src/ft-cont-oc-inst.cc:15:3>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "VarDecl 67": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 41"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "S",
+        "ptr": "ElaboratedType 61"
+      },
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "CXXConstructExpr 68"},
+      "InitStyle": "CallInit",
+      "InnerLocStart": "in/src/ft-cont-oc-inst.cc:15:3",
+      "LDC": {"ptr": "FunctionDecl 41"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-cont-oc-inst.cc:15:5",
+      "Name": "\"s\"",
+      "NextInContext": {"ptr": "null"},
+      "SClass": "SC_None",
+      "TInfo": "Elaborated(\"S\", <in/src/ft-cont-oc-inst.cc:15:3>, Record(\"struct S\", <in/src/ft-cont-oc-inst.cc:15:3>, NullTypeLoc))",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    }
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "TP",
+      "syntax",
+      "Depth",
+      "Index",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InjectedArgs",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TemplateOrInstantiation",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "Body",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "redecls_size()",
+      "NumStmts",
+      "Stmt[0]",
+      "Stmt[1]",
+      "Stmt[2]",
+      "DG",
+      "Expr[0]",
+      "D",
+      "TR",
+      "MemberNameInfo.Name"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ft-cont-oc-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "Cmn",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "TdD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "FTD",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 485,
+        "y": 120
+      }],
+      "end": {"entityRef": 4},
+      "label": "Specializations[0]",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Body",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Stmt[0]",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Stmt[1]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Stmt[2]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "DG",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 11}
+    },
+    {
+      "end": {"entityRef": 13},
+      "label": "DC",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 14},
+      "label": "DG",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 15},
+      "label": "DeclType",
+      "start": {"entityRef": 14}
+    },
+    {
+      "controlPts": [{
+        "x": 295,
+        "y": 620
+      }],
+      "end": {"entityRef": 16},
+      "label": "NamedType",
+      "start": {"entityRef": 15}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 460,
+          "y": 650
+        },
+        {
+          "x": 255,
+          "y": 315
+        }
+      ],
+      "end": {"entityRef": 10},
+      "label": "decl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 16}
+    },
+    {
+      "controlPts": [{
+        "x": 105,
+        "y": 510
+      }],
+      "end": {"entityRef": 17},
+      "label": "Body",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 19},
+      "label": "Expr[0]",
+      "start": {"entityRef": 18}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "D",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 19}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Init[0].Initializee",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 18},
+      "label": "Init[0].Init",
+      "start": {"entityRef": 12}
+    },
+    {
+      "end": {"entityRef": 21},
+      "label": "RetExpr",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 22},
+      "label": "Base",
+      "start": {"entityRef": 21}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 365,
+          "y": 700
+        },
+        {
+          "x": 115,
+          "y": 695
+        }
+      ],
+      "end": {"entityRef": 14},
+      "label": "D",
+      "start": {"entityRef": 22}
+    },
+    {
+      "controlPts": [{
+        "x": 150,
+        "y": 10
+      }],
+      "end": {"entityRef": 1},
+      "label": "Template",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 23},
+      "label": "Function",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 24},
+      "label": "Body",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 26},
+      "label": "Stmt[0]",
+      "start": {"entityRef": 24}
+    },
+    {
+      "end": {"entityRef": 27},
+      "label": "DG",
+      "start": {"entityRef": 26}
+    },
+    {
+      "end": {"entityRef": 28},
+      "label": "DC",
+      "start": {"entityRef": 29}
+    },
+    {
+      "end": {"entityRef": 28},
+      "label": "DC",
+      "start": {"entityRef": 30}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "FTSI",
+      "start": {"entityRef": 23}
+    },
+    {
+      "end": {"entityRef": 31},
+      "label": "MSI",
+      "start": {"entityRef": 27}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 780,
+          "y": 190
+        },
+        {
+          "x": 315,
+          "y": 260
+        }
+      ],
+      "end": {"entityRef": 10},
+      "label": "Member",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 31}
+    },
+    {
+      "end": {"entityRef": 32},
+      "label": "MSI",
+      "start": {"entityRef": 30}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 555,
+          "y": 505
+        },
+        {
+          "x": 555,
+          "y": 555
+        }
+      ],
+      "end": {"entityRef": 17},
+      "label": "Body",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 30}
+    },
+    {
+      "end": {"entityRef": 29},
+      "label": "Init[0].Initializee",
+      "start": {"entityRef": 30}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 830,
+          "y": 420
+        },
+        {
+          "x": 830,
+          "y": 340
+        },
+        {
+          "x": 310,
+          "y": 435
+        }
+      ],
+      "end": {"entityRef": 12},
+      "label": "Member",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 32}
+    },
+    {
+      "end": {"entityRef": 34},
+      "label": "Init[0].Init",
+      "start": {"entityRef": 30}
+    },
+    {
+      "end": {"entityRef": 35},
+      "label": "Op",
+      "start": {"entityRef": 34}
+    },
+    {
+      "end": {"entityRef": 33},
+      "label": "D",
+      "start": {"entityRef": 35}
+    },
+    {
+      "end": {"entityRef": 36},
+      "label": "Stmt[1]",
+      "start": {"entityRef": 25}
+    },
+    {
+      "end": {"entityRef": 37},
+      "label": "Stmt[2]",
+      "start": {"entityRef": 25}
+    },
+    {
+      "end": {"entityRef": 38},
+      "label": "DG",
+      "start": {"entityRef": 36}
+    },
+    {
+      "end": {"entityRef": 39},
+      "label": "DeclType",
+      "start": {"entityRef": 38}
+    },
+    {
+      "controlPts": [{
+        "x": 755,
+        "y": 620
+      }],
+      "end": {"entityRef": 40},
+      "label": "NamedType",
+      "start": {"entityRef": 39}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 920,
+          "y": 450
+        },
+        {
+          "x": 675,
+          "y": 265
+        }
+      ],
+      "end": {"entityRef": 27},
+      "label": "decl",
+      "start": {"entityRef": 40}
+    },
+    {
+      "end": {"entityRef": 41},
+      "label": "RetExpr",
+      "start": {"entityRef": 37}
+    },
+    {
+      "end": {"entityRef": 42},
+      "label": "Op",
+      "start": {"entityRef": 41}
+    },
+    {
+      "end": {"entityRef": 43},
+      "label": "Base",
+      "start": {"entityRef": 42}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 670,
+          "y": 800
+        },
+        {
+          "x": 930,
+          "y": 665
+        }
+      ],
+      "end": {"entityRef": 29},
+      "label": "MemberDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 42}
+    },
+    {
+      "controlPts": [{
+        "x": 795,
+        "y": 715
+      }],
+      "end": {"entityRef": 38},
+      "label": "D",
+      "start": {"entityRef": 43}
+    },
+    {
+      "end": {"entityRef": 20},
+      "label": "Param[0]",
+      "start": {"entityRef": 12}
+    },
+    {
+      "controlPts": [{
+        "x": 690,
+        "y": 530
+      }],
+      "end": {"entityRef": 33},
+      "label": "Param[0]",
+      "labelSegmentNumber": 1,
+      "start": {"entityRef": 30}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 470,
+          "y": 850
+        },
+        {
+          "x": 465,
+          "y": 160
+        },
+        {
+          "x": 460,
+          "y": 150
+        }
+      ],
+      "end": {"entityRef": 23},
+      "label": "D",
+      "start": {"entityRef": 45}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 45},
+      "label": "Body",
+      "start": {"entityRef": 44}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 465,
+          "y": 825
+        },
+        {
+          "x": 465,
+          "y": 175
+        },
+        {
+          "x": 270,
+          "y": 135
+        },
+        {
+          "x": 155,
+          "y": 105
+        }
+      ],
+      "end": {"entityRef": 1},
+      "label": "FoundDecl",
+      "start": {"entityRef": 45}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 875,
+    "w": 948
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ft-cont-oc-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d905ad396a1cd057646dc8cff6284c626b6cf65
GIT binary patch
literal 43342
zcmY(o2T)Vr^FB;M?}GF$U79rMV5F*mfCxxvA}y5Ad+3USQUs)lga8UkRT6p=3m`Rg
z2~DM!fb<f|d*kQ#{m;CaVTRnCyJvUL?z7L?O*Fl0Ku^O(LqbAAfBTm1JrWX94Djbk
zMFBhst{%NlLc$vve*ZzBjt?B};vGmr68Z*jN9!}Kl7223=lkI2i at SCEmWK>rmAe|A
z-#$fdBK!D6Np&`};CPHk_1n9DejK$sY+p%Czm>R=ouB*5`{SqAsb!D0%O8EZ6*ac(
z{`XiM`lPhO?tSWRASc6~>_D*wjY8yUua#!^u3{5(X~jg7ach(PCZETRKDL`#?ju(G
z^B>sy{gR)xemHQsa5~+0s&MC2yxv=z`1E2J^C37S_hQ${==?QgD5BuhW~6hazV**m
zb?Qnqzx!lj7Cv(FLhQtiYpGXpye9jth<FL(-a71)iV at pwn$a_dh6ln0zvl&WSLdrw
z*dsUczQ&%TQu}|;LsI2ZPlT;Y(587JyQa;I!?p^jJ8WlsMQZh?<8f*Q`=1<DQd1v4
zB|CT95~bhtF)7?xPy!9bzX%H^5vhsPl|5Vz*zru3{n`;|O=o8`Gp|fARckykQR$7Y
z(9$j}cG2i97Df)Ig<c+Dd+j)(>U)(mMS^sAA at A$&r4{~E#*F4>;qi#-foBFsvdO>e
zj!<78a+L4fT-fqk^ieAdlr;55a1Wz?M5?@q)7wMDwDEOKB)aA$`}tDc81FoGEZq`r
z?`?dnaL<KlbXCi`GhnpHm0`W_=M&Da!hPMQ521JUK;9;eR$cGpr$14B$jW(IEUxqR
z=aURk4d%szklqB7zn#2Qea~F9gtRnVv}8W+3%xl~|MOOGs?c at R4Eg-x{7_HDa9EY%
zP6neC>RlfBQCVR@;ZMcWbpEdH+qu(}3Zo7ElKx1kB2L*47ZKbYZuc>wkD17A4TDx>
zgPug^4PL-rASpzqER|Sf1E1YC;%O8X*;9`&cwA<0=pdCrem6jbSFZl)8)<(#8w-7Y
zupme8AFf<{T<_lRwyMI1SFIN2 at q!I^?){}$dT-WW)41W)A>?|jO7}-N#kHg8dyXFc
zCp9PCPgLd%1s{G}=6YC at sPXgKu<Co9$Gd2Jr>Z at p&Gs+efD}-=a}?-WpC9x_mgNdn
z-Bx&|d9nZVQ^oJ+8v-m1RMm0{<1YvMe82YQR6c0bCabG?1{Mmp`c*jTYj*l&b at pT7
z7LW1sHKaT&=4SZi*=M>r=mo6^{#m>DtDMtMOV~U$ZGwFV)j1>^W;cEXm$$4|h>KV*
z;;&dqJgu#z(*1OP-N+>*$*yUNB3fl;25i!i{6S;g!?MGhOz=(NDYRa=!|~Q<`mzv1
zA(*=TMiZM`V^!TPOh_%}5vS at M*IpwXk at deWSiS7hip$rZ;g*CfKdpF#Jh1uw3%8aZ
z!&X at WHgVj2^Qf_CBg4W_y%Z$u(&zQUusO~f!Ad(}JEeLmk`#U^tk+2;Hr;WW<7Rcv
zNl!q0PVn7Jfx=W}l3fzWdwgrJuVg)Yh`%uY=B at Fp%6xpsBme20Bbz+InW##2+qB&I
zX2eVLSNs%#Gm8zU?|M?CLw*cF at 4lbcWOUuAbsCe2eh|!4F2k|?O6Qr;N8Hrd!Of{u
zYt1*y;kGsn^S;Pt{|7Zp0|5oX4}=+(!)7VIgjM};^XU5BqCKe*0+&5FQorAvvdZdF
zI>2;UbX!X1THf5siu3nfE0_3MNn}4i`(h|E{83zWi;v9<@6eemTS)AtuO9P*$>SpH
zo-{j_Wv<WP1&t1|H~4+Eu at iz@rG4_ at KQBr}Gf&NpjH7>Mo{b26OtJ;Vwll<(Ovxti
z2z0hBUu#bfUTUyP7r0(bW_x-R?xPZOq4TIPztx@$Js0>*+@^;km-K|+oXz<NEAc#Q
zXzxaec(DJJi!lOn;naiFRjzOB^qKaje7Z`fk+pzUOz=@jw!zB23VD$Jp)b!xlN}~Y
ziL{xQp_{K0ewh0xse%HLF~^6Qc;S*q_4PUhg^EbYqTKhv?A5b4F$Ts4op@`tf#L>D
zff76;$sUg-1N-lmnHwzH#g3zQ#__gjhLy{Aviv8xrsE>Qw=oMI-?91^a(cP4%)_>>
zu7YDxtx0TQEKVctbVJ!2R|ZIPL{AJNgSp at G2d$J^_U&<f*Af|OvFr1A)ztE2(laNj
z`7K`YxpqhJ2iHQEH+sr`Dih!6Q~UJu`Iq!g?RyJ9OWuo54u2TvA9;UEp!L}0Nb+PN
z61hW%R{t{=#k)vV%P?nG^l(M6PY3VNaeBu5KCT at ixiq8!>87wKe_%L9e}jUQHxt2V
zx}unvwiOr$q5rm at DwTgWuNEz5_~%ql9>H|;EE~<4^Fl7}WMq+7mh?U+=^0(>MYA}v
z*!pa9M=IaI at 1+(*uH`T|tL?61ZbWP;;lV{A+AoA8p^<}7jXKx^@4kFmQ1n;fp4pMU
zibr$)=l*9TCGsNkUz>Y(X-^BUVkJ6A=)38#Y(EYj`iHf*#C62T*o*B_>W3!xn|cSp
zo?zDXVuXv<i<qz7^mz97(2r+PWr<19c_MA_bm^m#?Y<Pb;=NMmhX*7eZAI4GYC<C-
zCnS+ezq8-0(VpEB85T`EPmwDUbyFl at T34g4ZhjdpD7}q*$+^ya*2n;%ojWs1c${`d
z=GA}wV-oCiwlhFurB%%(Wk`Ncn&z{un5kkz&&zuZd&T1Y{zjfx^E;RLO*_;CU+vFt
zsMzbuy%w7sd}y)z5{t|r{~}lScfu^E$jh1eTkIX5yJ8hPe3xG&dC4k#*jt^<Q#kc}
z_0>5lO!wKZhLwb4`ZJ&8ofG{%r&eLJ#E)gBhRcpL1uwHs-g?A5<b0Gc7?IUxCsjm{
z>OpCxH11!Qe}rpzxjE_T!DK=u%ni2E+0$e&hdHM|wi%rnzEs?Qdu~sK`ebZ at jLtuX
ziAvP0%Ehtm+T)N{al*&&u;`S$lx$kXkXwT4IWa#B6vyuRoxU9S{G7p-Bm4#;0MtZ9
zagU$bmTuFd1ZBMSJ#U+1JzDG~Y06N|vTU at -^ScaY+M3!UUk#rho2%hHMk2PH5=r^@
zW5?rhU%|D>zsqCw`xosUzZZH_({XB3hzHQzyQu;mo--&meM?nv{ZB_G#z&jumluUr
zgo=+S+ZMilk$%zfwd4BpJl%{lj!x0!$K(<YMo!`(bP;4Rl-+N5-u>Xs71tAs>(m?a
zytxf95z_msg$+lIMO4WYQg$&Lt?Lid;w49Q45XXNZwHv&&k at SgetX1l)oh!0AuPKu
z`^Dc4g}%QVN=>Dm%cUx@*8*atgDZT#u}uk4+nkzH at CjGk`N{&%>Z^Br-Jy<`A4u7~
z-`R-G^!YBlTX%J#vc at T*zQ^wJJ9sAT*-wmg)D6`twN>1Mh*z~!8aX=_^o>rv-2OF!
z8S)En-`89*c>gKV{9KBz7E4IOOlwMDcpuN|VV=ilySr&-3|<~AtDDQloRJ%ID;<3u
zqmOdb_{FXWmNr10M$+<qrpp``#mzOH#-!EXyz!az*3b9+rl-X@`vFKdl6NKUd(;#a
zClhArd=#{Mu{9JHpZ2sr{^AZ0aZbLH**lQzIJ8wpYd&BbDD6V3d{5T5ttECBLC2${
z_Hehon&$#1X<!w+cr+9Kah!BRzy3Ezq%zMOeHVq$>#8r>-I)$ljghp4Tfu*--Nl+1
zEUrA3%Vnc)BOD7Liz|)F<N~qwl$@7$+<743!tM1#77aJuC;Rc^uLUk3@#g|lnJjD<
zA=H1gC4!!SkzI1GZ;MhtJ`n{%R-`ZNPPDrVmq<@zWJqrGXl*OaI$1p8v78LGbI`_l
zmd49E2HDL5<Xvn5er9IrZur&S&U1p(^<2m4tPoQWSD(bB;z6v*Px!Bs0kf|m3Dltv
z5z%j05%`Cag3kMLmZs*?&4u(2JQ)<7D>|QEud}~C9ltaqlWHsmxt?VE=~=V{RrKWr
zP<j7G2>c1_Yo{07f4)4Jauh7>=;vSH7cN2!e|4X#q9$ec<Wjrp<aOQa57{j$x%ElH
zFM9&dV*TrPphNd33epQnA^~3QuJZ7&ySyU?d)t+dJYQsZUYdH>!+2khVPMXVk3ud1
z&y%#^7r`_uu;%zNN86lalDg60Md{(+ZE<>?myhTI2qmt at o+_4{=5I+2M%gR-cm6b0
z`3Fx7_TNY^+x^S+gWckWp&>`u?VVH=*J9oAj9;4`d;-_DHnhl2jqk-4UNzPX<_oV7
zWhuFHRs6H^--cBSI=Rw2^<&&CejEenNByRy?2eY)XKI#rd5 at miJz*nJiu;oPLh$uq
z5r*R4?A?qn9sZS9?4MT9g!rq{aPQ1p#VLzqx929@`<*k7nDu=U at R8tWwDGgvklNRX
z=35)-D4O&=+xgGp<;BQJ{V4*jXwc>MvF(7blNS4Llb&V4^0noafZN`?xSgq%KGh1Y
zs>WHYtbUdBW6y(I6cexyLB7TdZ)$JYKe at 2ezgm|i3Cj08{}G$whGK=JT1AfVy;g`2
zWK4cqS%2wWl)d+4*4Ogpz}{P;!yew8a`KUX^$ax)>o-hNEt>;+Bm6~|>Q~PBEKi_Z
zu8t>H->fe*^skZ;Xt39k#80DgDU}yv+3Q&A%QH<n76p6!OXL&s-~9givP(5{n914e
zDU(o3t?m<9YkQY>-(E(cG^za|R0JwsF?}wp4Q+NY4l_bYySo0>x23)6_b>0w#oZRN
z82amLe7~|TIgSi!n at YG9tsL5J<9giu<J7)=VE at yPJeTfW*PQQ@{5{jAuT@{^;x=#x
z$j1-h?KTxvQ(~5buoq*yi(v}S=$GiMmy9w7c?_o$m<^WjH(ygQF2ML0q7}p@#lMU%
zi6uNSG7F~sCWwC3K4LH+<9pcR9yzZ1633W!+pBgI@(8L;#?DKZ{g`1)OWT;k{+TSD
zANce5lix|LrRniA_mjf+5cU4PiTou33CJ1st4u0(YmnjCvF`#1Me|6$Zcf9lS4(s2
zUnr(#WG;Hj+MiYnJe*_eBVl&<$+ylu8ocQU)oN~=e3;FCZ+)4QO*%BY*_Na3s5;6!
zXe^>&;gbWjq)<va&{%iw6Zcd)yREs&Pxn7?E2~R~#be92=W`<YyW-cM|2+Go9<!r_
zJX~wMUiaxMspR^3e1nD17x_Hh(f$mhLk6u7p)t)@m4`lr8Et{z3DUG3L3-K(RJGTy
zD4H{%qF?EJeG89yaYD`Z!Sv~I!Y$fi-;{eXx0w0qkJ2;c2TsDH at 4t=Q&n%&iIlVJO
zZ^cw6!`c~}Rjf#}?TpeOX$cy-8^Dw+e#*bH>*#-hJw4DmX4&cCbzb>H^NQM>%`>7*
zkcpRU>^mCK^pO1i%D0!N$FXP4NZ%uKwi0=r!@@#W{vxR+=o4Fbv01-^M>5(SNqVO8
z)&0^<wHwrY=`JZZVkJ2A*VQi}QiSRjc0_g-OI0My6P7m^yWF{CzL@;l9CyCwT4w2B
z_N)F5G`{Tf>g`w0t~PQ!RSeH!ZlfII>^k|(OR?P!R`XH`yR6UOd#93SufN=aUIA-m
zfsI~_iQTV^iG8wW=tzF^Wb45;uVio%t1v at 58A_$CBw>4+1iWjNh#o&3G>e-0oPKbJ
zcZsJ>%<y{oyxq}X&NkHkrQ53dEC7h^;Y#{i^7p3Z_Kb5bST3?R^-&$xvjUr@)Lb=I
zu%yJF#<#qxTBFRfL6h2(&*^Lf9?J_P*SeVYnli)l_$bgeYH3*GL5ICIQVp*vsL<87
z(xe|$xDHv2ZmNywbuozDl*#8=FyOr0Vf^VtO-lp$`QvYOhWjZ+N9pw&6__h)^Y4u`
zFKn$;vu^pvyb$6w{=FGFTB=!!i*4<^8D#g!siLmANiOq|@<hD#EPU}E^=M?VntuI!
zfqqwaCQW>bpGb>=57YG1vg<YT<hg!-nthF0)CYTlUsL$ieU1(A74jdhk*#|BYPa*A
zr2bbV?E+mvC%KZp0sZ8{{MGYUm-82%&>>`A3vsKy(Mepla}`n#;pv-A96hSrwO(_q
z@`#IV`0H5v$M8ZiAbi*2d2 at hrWDNEaui`R~lzVB7FU{3yq<m%rDZPHeY+l^b1&tC7
z*MoWaOosmRs8ipW`DezzC4`!0cKA=2W)76%SJn>GZi8A*Q at R--$bQ-^M6j*s8SY#G
zrIolIo%h~EDT!cOu%U2((z^OK=Hy+J<dusx<a{^<O1ae64K at dV{)&#I%S#d$x5?Ht
znc2x?-CP*uV7Z$}?jrf;co1$U;H1=IY%gORurPWpTXgEL$<y;rnDmiPKuroY$)gkR
zo1$CpUN~?lGKu^zS++m`4ZH)4N-GlmTyFRJC*#TcwW=ze^ER5Fiz32r61pylp=_UU
zqPQ+xMf0<ro&H?)O)a55Y0i;w`Oeu!^O5ScXS5{ul|+?y%O;zHf4R2<4%9lzk|Vh+
zmSr8`@rh;Y&(CQY&N_X&U1C05E16;UN)jN8j&-NKnQ2ewKv&y(P%rahapY at c#D`mW
zx&#*?i~KaIWUIgN51YVOE~%D%(v)xdX>ZMWpR;Q7!}6||4H&tY&%~4}!TI*lQw!*a
z8y at By;#%`5BdR|&-=wOkI)nvU)X761Pk*mm4!&s~!cff9h!2-2{+-&i;yKu|Y5j{Z
z6IeaY_cc{m;&}rvr;QwoCtBp2>J_1UkJ>bM><6o}=QnoLO2c{^Lg2l0{gp;1)_x9t
zr6GTIk`dO{Qn6;GWDmAb8DXB1eTU)KWup63XN?rfzNAv|%*r*owUo_oJNk!Ye|ueh
z$<@1)biuMEo%Uz#e8!!QTLWJ{wlcu~P#4zOdeE at FebbN~>ezEtLsM+UFnTB|r;xl{
zDKh>z7ug;fbe|q{vb!MAX1(|HrkDQ$$U?<#)>y9o`(v?{`FJnMD6?2wxwKj<)0K%h
zxkL&xM8FVdy1Z+bLu;_K;=62EQ6fm1uWKbqS4GTchV_MymNcB^ZrmLI+Kam-X`PJM
z`!g6c<6MOmjGifFYw}(mHZ&}Mr<wB2m+Z?H+le?$a3^l?@<(g8iT=muXI=h1E_I`U
z?zZH)zbAJ|1C7Oub`Kx#nC1A37tsY_UsC>(JI(Ou58T<T>9(&>*i-qXC8!|E*}r@<
zO1;CRjlrzSv{P&O7Tqt!M)4HIvV6pi=IVtJmDpQYI%kJzlNaIRT`Dy-Lkcm=B6wMy
za;ZsV4s+w;^2(_=-HwPr_iR*{jf~0b%@yi*tMv7P{R8WibrQyd)1MUAO at b~O?~f=u
zKd~;dio3$(_JWd;+uUsKes)>i;o;fIPC>f<*{`a@`}LA$>(pY+KGlT<t;>S-S8j9&
zK5u7(UNJSo#0898w at c47_8q*0-qK<>RH=Exv`1yPxA*=P_pEcyo*kud863RlV>e}-
z`2sV9lYdvRj(jkmUQ&iA>nnA;VP`vz)4Nf$XcQKkrd2gZXpL=deBqhm{Q8T`$r7qj
zO<+1Go_}wAuRKh3wa321Dnx!gzqbKl=ks_waY+obh1?k@{WgE%V#qrIM{!jW0&-{_
zv2QHHFD|hazV{wKjBCJ6J-ubf6dG)Yzn>kq=xs!UjAP+BeZTZH{#R0D80W_iwc^hM
z{X&uPy<ze{Mugi64F&FcxwjJ5t)_X38wEZl6mPVsLey(kd9^-w{=mQN?}U_cZ>p%$
zEMz|;FAI7fG2U at SZ5Ba#e#ecMr)bTkW!-Sl?3t1?o1 at RcH=1Ime)cq#tCx?i)8r@~
z<E?4J5eZTjetZ7OkJWB@<L57r{J3J5SsZOAGhY#UWZ){)=BGMVRwnagdyB?omVW;=
zP5bW&9 at Gn_@`HS_2%0Knb(v5i+<XikqVRs8nLV$-tZjDbNV(*1E0qtoy7m!o`3aPI
zz=k}eYgV{HeY|deR<8YKYc^T9Te9RrfdaO=>TIeL;TCkw{)nV}p(7--^~}d;hTKPS
z=X>pV<nMP)H-zAB_9oLg$R=(*_w2{R+M1b0UylOHRw(%PkILV_Uxs%E9jL5-wXjV%
z82F-GQnd0)r at nrp5-s~=+|E+-UCNcsTQ at 8iAA8N}cyFu+32TS=P~-9mH+M>7^ElBM
zs~Y8zjT%p#TUuc at O}%D^45RRu{$lTjjBIp8YTGjo^h!CJ!tdc0AEk4D*K8^>^8Nmp
zT|0fT9?YpNSw+`!*=o?yqxEXXV%{!N_iUg78El-UVFPb;b+B3Z++bv5f33Oy6*k>&
zTZm`Bln?cL<OQSKvz4KNFzNiV&!1^e<ANfq%hng2 at 9912!g`p_bC#Qa?X|Pce=>9j
z>}W5VwvJQ0HIct9vta)!7m<vA<X6VcU#~v>q{%(+%<|NjH#<+ZovJXyI)QoKv~|hY
zYo=e)cD2MmA#TOrZCY15%IMPOH4$aA;hhJ*v6E|4VRos$g~lTTx_^`LPbZzej))XY
z)!dfQSrxzQ!lPGXK${agckPk#FHb>NTfMz}!qd#r0h4M2v9jL!t at 8Zr4tr^r?0ou>
z)v(B>poMM&>s6=X+qyOn2e0m2uM>Fe)!Un9MrY|$0QWN$Y at oc{IX%K!!N<-k>5%n#
z)pXhZcFZ?9#_GiCxS>S#EvQ_K1a<3V(Vw33ux;(R$N7AOTj7V(YZF0F!$?z~t(bk1
zj7y1ExMff)+MI$TDR{c-;9oXrH<tA$JpUT%x?MwXki*l7=86HCfT1aK*TB7&Vsyt}
zUCGQ+&N7liV@>GIE%kIItJ1_TdRz=)+Lf|5bCamo8qh`QfBD*I>(xJ#ylLfvIcI+A
zs=Di3Rx9)2fuu}_t;zlZVN}y|f?h(3J4fUh_vy^ahT7E7ToBv3lx*fNmRA0eUwkt<
zQM at w(ZS#M3-Q^h>{bP2 at T~h9TOWRXFAx+~xel;Unu&TE??|?OHA6C5 at QT1iWF@@i3
zXm>!(@$eOLu{`QpqySlR`1*V6uX--7dSklVY?q_lIZi%P{*ve_pMU=P<{9?QUySX9
zWT)5ezLe#g$G6coH*-DYe?TklZ3j8`4NsvPO8=-(e(iqWS6Xit%p66NCh+;<=H{Ra
z+gVDMPoH|q*w>^nLi(6tI_VybN#;G8=rxrP^etI^r<Bl$M9PbarUT=27d6^c!6c4r
z4(FujH>{W5B>t6eXac`M92d~hUZZFKuKLZPZS820dhf<cgVe9LT1ti7Ir&$@CqTS{
z6j9U%qjxxE*+XlkOO(`xKUhvZ^eFa39M?+Qa{J|qzSw;u3vO%0tCOCApmNVr+Zj~)
zr;K*rptA+IUka$$P|`X_$uP*w at xM7=f2gLZ(t7&$;E{wt7mMt?Y^xdl<$#f@%}?L5
z?tJs?V8Z-TwvpA9Zir*k?`Ja_V at tX+LN*?34>!4=XCWr*1%@-1W!MG{k#N<~;oIIT
zsh`ue_}~6WE&)$TxYI0{sbpJ{z2-u3Q#l2;)Sxq*te{J7+QqQ?GfwR^WimGZ^5c)g
zdvdlQv(A?<e{l%TYBq9;@;$U{mt<M0yTav)F8L)%>nJRk7O%T-8Ju`6wO7pXiIBAO
zBs-=Q_wom`C0YM5JRwxU+FWPu*>7;g73`&65w1V<w6)ji)Ex8$Yiqf`e#c{3KD^ag
zN;DO+UbmWIsZYQ2Q}DwllqK?umDks-Jk^qJmE0;!kbJyusQh1#=Ta|Ldt;if-q-rD
zHg0N~&-#n$hn5*L>U&ua!Y|SUm54OC?sxxvo1Vp7pkB`pL5tPc>bH4W*fWK9KZ_p0
z(Tk?&c{<)6%j54%{je0)2gz559^@5g%0B3R>y!2g-T!Fg`L!&&WKn6S#Ggva%C7~J
z>b<TzU3rE2exmJmShObi_M;Rvwocdk<JcF8LVhorDOlLNw#kF(r$FN{i)u^Ck`{4#
zyO+J=>BzhZPU_a)amM&9Y=8G#oXtr_l@%%jQs6lrbCO}3A*$;f_Us#TrLvc~z6qS^
zWD<Z!6~(&lc3(|F<@P|BJ`1O9;k3RqPbm7SvW#$lu_TiTM&NyU{rj*&osKoTFh;9V
zlOCqI1ghRoWH>ug<`VW(cjj4C0&X>(XI6>DY(}QDYBVgbsr0E$WTE90(<NAsK)&%M
zS3c+Z at 17}FOdaWr&R=EG>HaLzgLORfQ8ONB`Sap-qjJTc7dHzjvi!~l<Ov7O2`(_<
zE<ePXG0XJlpYA@(X2`c(XP3){35r;8`n^Fj4HK;lf==67J><q0)SzssS4`Ih<!D75
zzf8rZDG5mo$!*=6_d{_TGsZQ0Dm9hMT%+!@vF^fLCfCOr(55EA%ck<z at 8O>7FmJ|?
zlKpUdC*6CdCwpX~Vh{E`UB99G--mIu{S8>~-zS_Ld%o^)aT47c;l}125NI<rcj&#G
zvTO2h<=z9-8LgQQCC-9C14~RGend&}b6JxxN&J|<+uYgi*4&n>H<~=jjj-1|yApgJ
z6%u%wh9`mk6J8{MMc%Y0qq1q&jO)mpN+N+f7YGu#?0h_DVzT~8gE3)&;T9`ai7~>r
zps3)`n-a^+MEuZ$@z(4Mxe)FdR~8MMb&rk(i;2~ZPlr6*|9)l)B7w6&C1dLzwf2*4
z#r!~KO+C*h`Oi8<CYWT?_^j$vrJZ~^%>P*o!sS}0Sa}DK!3GZ`(|;VTHP^eTYW2SE
z at 9R5tzRWb#2{F7+O<ep4*Z>4&-UF=trX(n+Mhcxt2=w{i_aXzZbQ%h9j&L1unZFbD
ziLP!z3Mgb>?YVccn*;F`h#}FqZ=?`IUEP?h`wtTmR&uvd*ION&!&_JOVhnb_7-(Id
zN=P7){_yz{Q(7qY$$-O0jS~VaSMmrB7pr;mQ(u=1cANYuAms5C>;`D891jK at 3Na)D
z&fq;QY%pEVf)pO8p0;4|h<m7QkuEx<>7IxJ2v`GUz@#m at 1&gHAtv!e94vM>-S6}Qq
zocfYN!GLjlw@`TZ!s}17fW1-VnETL|eJk1!UEM8G++4#DZM~*-%3zdauN)J~1!72Z
zSr#y${^pKNy`gRl8y5Ue1Q`q at J=7I*P=EJ?TzoocDs2lS4X3UJ90wR}Ns1p at _IZZm
zja53)24R^|B7%azzA;Lm5Vwy(`&-fH=Vu#qIC;nfI;FjUA0Og56&;;7d9bxrGzG%!
ziNF7EeIO;){w9<KI at s1L#SQ<yF_VovYf>|?SO#I!|IhbBBv|`cIJs^eq>>$GwduCC
z?HpAvjnyylaIE^9PcE!*WA}KbvgUhVk7yGkOwv)7HYQD`5gk+KHf1%F<v@)A=GE=F
zr6=B~Ao`qw<I_#cN&g$Nl6f#`Y+btc%#ijJ+IB2zb_`4hv&MojeMkpLFHsgX3 at x4E
zz@<YA%LPfJm)WuM=$b^)AXV?6M*I)H>1JfTv#K|o7AsE*bsfBha&dLJY|Nq4dr^y@
zZkYn%CrM5x<41<(TGyNAIphgQYwvM6%=q<_vrWjlR!Bkp!TgWR)?%k_q+4dE3Rc48
z;Ht at HXci)+ at Xu?D%JRcgOSl-K@|AH+76?uS+j<|P>E0?Sd4f(^_0mlH%uKJ*Oj=1e
zZ9Y8iiEP-#CB530NLEEzAY0lsCRe8|`A3r2Y15i?O8V|8fuIx^7YM at Q=ydmx^Dj at w
z at RplZC5^#UYh1Y$h8M5n+ME`d8a0l)5P#x2!8>y>6+0ezo=j+|7YSR4IKbT3-F$4c
zX!_1i8c=fcnu-2ENN`@-;y}u~<%s*X7u}k<jSQ_plrEQ1i_3BQ<uM0kpHtX2il=%a
zg6js*51BMOk at LyHLThJ{B`=s!K?Uu2t<=q_?z2m(1y;RD)0C6;Y!b-?lFFU8RT_yT
z2t8GcNV*V*i?#JJ^APMJ2UZ at Hul7`lP at -z%Ucn$E6dR`hJtF)0IgA$0NT%UV2RH$7
z7{-dVyqK}^+h}#T&$Zq~R8+MyO{PkrCzlTE`e!G_bk;oUFy;5Vkjzh~4DD6D+nce+
z6 at TP}9_ZFxwyxUmyuM2qTCa!)49_C)V9OLYhZi4&-7`lfweggTyVWd9;Km4v5F2aJ
zt9ck~4I30<gW)f4;!SSDzX4%PdeUiNGt2+-X7NXU<wpg_zqcV%gd)f!8H^Jv1HxH$
zC?ce~?d(c7d2AYr2%}adc)x<?!E(tC;1s<h4 at oO`7G`&xyW}vMgS#0`JXV>vdqg3<
zF?Dn>M8<2~C4-HAww%cF>5SNqf;LW~0S`-T#(Jc>96->+W5VXH(bL~+aA%1p#pX7c
zl$-DTGyw;UXNsj&bd;lc>Z=f<y?&A)tF8U&6~S5c+6Te24}sHifp9ZmTLvQ at n`l|3
zk&%R0Xir8CNF?{9`(%n$mDVJZNRvXzKLjYV1Qr#1c+xaz{f-F``wCv+1;)_9$YCA6
zd8o^clNZ)YTQzR$jUK;)@~4+8hN)ngVm(SOmo+cLtYW<b)g?O+2X$2?vp{0$K at emW
z?J)@QmQ6p`Onpdig_j_N7B=Ap<Pb{JT69Ml<znehh5?c<oDs`c%Ym#FJO`?d%V3r&
zL8cjBX4yX*d2%Lma=ads6&Alm26e4MM77&aJ_1s2W<nc59ueJvKipDicyT(@Y)fk|
zSw9wF#Dv0wf}}AO at s_mGXv<5|m_DKfv?v*x2v!JUEDkr~!8LhEmvpe9j&iY1;Vu9{
z|0xG(0YPMbgRx=t>qqXCjK+2Jg;-5NhZa?8WFWl-v}!}%KVq_oUIB1{8k>SC8rYbf
zqJ7+2`Ek;65-HOKh2<(!tNk<8g&Kg4Kvkuu;~Y>|NbklmIZ=zEcaXdv{yfLcV#R+a
zeYX1iBgoeadi^U*7fLDf%lDhRaxJ(3<f%zSQe#Z=C-%!{DPYyZ#RZZ4(xK<)7l&Ju
z@%D at Ul85fjXI2w(h{|9}9Gd0at?T0sa>cG|rETlp at 6bO{=sWW%5Cj|AE%SPAs6VS4
zl+Y?+dGMwjJ(sj;739UK$>(wz1dW2z!WF6ZwV6>f0X8NSIERljAR0- at +_4D?Y|Wkd
zfY`d4q^h{JZuE_&*5*H(1CVB?8J$UDt!U$e+4zK_Wlx)DEky)s at LrOE>;1vO1ySuU
zq8MNoH{K_c;8$AB!yL{Io_5>jp_dmnlv_2W1ed9>VB9qjT+&;w_l41Pg0{1dwF30o
zdvFKZiK~)UxAy?8X1LYJ_u;};dd_ at sRg)433kf0|3@=_ip*VcsyE`VIdnahnf9Q_!
z_qy<utKt2YbuZ^uyIZZow(i at l)2ZmEI4#&eKj#BBss`a#6ef1<f*O^$OrUZu3nHt}
zn;?30e3P!2bM#uM{uUF_4G;nq3eTydPJ_w(Xhx5*@^L{xjf-Q<hQ7nde`>vp58l_z
zYF(DN&>X%42C5^fKQ*XY!chL&+U5#4;y}Jid3+iaFedxJn)2sw4if1~Fs{7w`RuW+
zWRv9KfZmi^NuO<XOt3aBoE2*?lJ{OFNodMF79k07Yx5Kt&6!yY75%xX^;Buf1J at KH
zvANr=c at NakI^PTIM2`6+)1}ax&Kq0T#1pE9J)m>@5dIryQvk+boM`bY7!`Eqoa=Z#
z`L>w0G|Fx-*iU~Efr(e*k_xx+Y#-HD#~FVt8aDSUIBZ!Q1j7e8LV?r+!Qs`#L+pj>
zB>1worY7XLv9H#y=M>oCDhNW!&C^+HVqBxPQq{e>P63Ru>LtZJBf&qHlj;O`B<sym
zH$L2?T}pWu){>`-3TC;X3 at F)&9S<=;%GpQjc_;T|&GL3)tGMLJVVTA;N^>GdWiNaK
zCpYGXs(!R~)k==GQNRqKO6XkPa``cRG*wlfKhFo>z8?S65|n~dg|&(6 at Q_rOX4g>0
zVuPE;!@zdH4QG$C=dG<%5N_ZVY0skDh59|2J#4r&sjl1rHfc{G&IH7P7<6z|l`<v^
zNr6#lv!TWqpy*-hO{SV3hTrXc(6)_CMd<(BEg$}Ao)tR#Dga1B&DaAeCUX(2zKuDs
z1M4?3UdYs>aSk!HH~phsN^ApWtpOyLw1E{n*`t3!$uUhlq)@iNo|4RP9hafjZi(a=
z09+*Vx;b#FfJ0*I#w2KA4pbPal?GxCXNmw=a-xJyaaHw>-DZ__LvxZsA-!=ah&R^n
z%&flvDrA%5Gi>GDD#Kv3;JsV=Us&xDC6;!}-;iEw9*i3xNE8Yk>RV(DH8(F?Bt?&m
z;dTkas7k&I)%i*MWVZ4m14pG(MGM6mEr3}B`y6tNG6=t+3Jal8YBgt}GL5NQvwtx_
zYi(y;1)aFN81MW*B01!hNck4p+VAhGoTmtOpvkgF3MdMZ{C$>jD+9|Oy==IR=?{}x
zqZ?BjE2loK0TnJw at t$yl7#u$=b at Q2|Y~J<u-$Q4wK)AH!k0Dik<F<)b%O5 at N-i4G8
zACaN*_apRsVprVE-h1?CAoJ&%>r-Clsz+f`((o<{@&&CYaR6kVv$vD1 at sne6f3zVU
z&%o;Yk!Q)l<o!lvGAkRDm?1*-j at FNJ*SFv|VGM}Fvo)7{wBHcDako@|huwFdCWl#R
z7HBRSZMBy>dHe7d%DcKflTX^rkiY#8m1OvIrWEXhM92o-bCBYENZ}=V&PxjBAdCg;
z?+w3wWb^aqrORgTwy#2Ljw7nTxV7bQ*U9^;Z;OH=(GxU3CGx}>Fb26#II+Q22h~j~
z`()*7w?~D10)=LbwnBF$S1KrR<pdu}R5HYCuZ_<=J~_DGe%lKS&Fm}%;ro`+VtfWY
zt(I1E77%qVv_Z$G{VD5fB*Z8xkh6c~K!O?bad30a#`izfxHohu2RRAkXOo{8)^h*#
z`*2rR;A&K+sMQ!BJico^^e7kqskSM;E~MGwM-c`qkw=Byp)JAZPL`<__inFn+d&BZ
zGF_Fr;*wq1DlhU68$0#k>M at q@w)^c;wn*lNra2{d87m?Z?afj^*8e~bA%xYhk#M!i
zD4Ka)lQ}Uf)s?ounk(}`s at HF??S*SUpLMjTg4>`1*J{~=+(i`x-1?p0b?iWdmcq75
zdQd$jtXM9D?2*BvgN+B8>AI<z#=uPh?~GbREbp-dj$3HkISf*iD{gXKD>#@A9k8C%
z&4kdp5>u<2oENfw{1B-9&0ZH8%Rv2?#sDRxtb$f8W?bP5z`O}L%ld~=mP*8HNpIXh
zuSDVh_&AujvIbSm+(RT8xkO)bVrj5+Fv;c}3u924ox|9kr9oTy)LZZ0`-h2l=Ivd6
zthsIe7 at X+|c&lF9L{8+veKEn?YGuow_SRSXq9_5aZJ at BNCT|nOreMJFozU++B|aeh
zjhAFzfVKcZig_}w@!rY at kKV0D_H*XW=sTZ}OR?DXH%A0TSh02(eGd<`N%Q2iKCGbe
zA8dIYbD%1X(cDGqS49tMo?(_{%#|$q-RNOs(y(Yi94(+QMe{G$hl2MS%O8Y{`CFs#
zs%>nL)cda#rpnsx3Q0Q-?b5*JK$zBv$|Ab3uL0TQ+ekO at a5zcj|EZtqS;+fgBdMy{
zEmDZJq1?}dwelHSVq9VHN1qJRf<OVg*nMB~_D}A5t53oCbfuaJ6xe*l4x&z)Bs5bf
zG*i@$4LVUmx!C_M1;a}o1&xa|u-~;=Z!Qx~y}#)Sg1?pL)htOHM|B at _-L?!ETV%qn
z`D?7Z7z94}ez~BT6}Y*@WRbvw^9>53H5<pIA%>BRZ=9k-%6o22d|As%eQr4eg#RtW
zAiYHg+R8igRM>$P{}wPTBy<ycEzVMF4miT$a|mJT&+*i~@PiA5ZVeCjR*%U34F#Zf
z*l2o%)T^i+5Sn<l7%-VmFgF0jb}g=VRxvwER<olb?^+KN`jYqRLQewNK{)Gw+91g>
z?bxt`!^se<cF)L(kz@{_+T&w3JxvJ<P6d;TD(ST<8D5JLLT-vS{w`VbMp?rWs7jor
zPu*B<=0sm41*~97dun7+Ww+%(<C;m>Ce)7L=B%1R$4`Qe$vU9G@!jgz_N=P~#6nG%
zf0kNl=Mq7CXIeEkH`92I0;iDBLJLE5j)9?&DYB~QyD&*JGqQ1s%U90MPN`81PDNsw
zrU0RIp+>nJl16gF6lPN0NGjg~pnQ5|#ZG3&nq^IpuuY3;?E=FrwEvZhn5<0WJv~%%
zN at 43s{|W~bh at 5%~Tzi2V^ilQren{jHe2Wfk5({M&_$L@(h_e9u9bY_>D)(C_pp!bS
z=ADXn0fiw5Nvvz#7&Mw9rXT|OPdZ3i0l4~#Vzub^fX0Avz3?U##>BIbNJxj at OF0rV
zj~qiRXQ-JK7fOXxu?A919~}%JxIt+Y#1sTWPrA`Sdm@(;_!oFmr_k%iiq-GLZrVa<
z`4*6Z!0j0b5@}Lge~i*dYZYa1bq&vr51s|TZf;%$6J at y@pjx at qoQ$MUXQ!mD5u8T?
zhb)a&H^~%G?;>M^MSKCh2@>zg`E~aXN7t4sO0&CGqAaQ;??v(EPn9o<U-)O_ic}Q4
zk>H1HF+-6#lRLD4dS%${uM%L^d0fHCJ-0DAyV!vBxrOfq>pHqV<hXWI1X;t-KB*0a
z0Lu}&_rZn~V=z~s`OIo?#bVt#xUqcuZ)MO~RMt$?`Vk5K%rDNCUl7L)Gx){w4NwL!
z_S)h68fSA4+bnGWYcFs;-_P4nBdO%LS;hFzU0LTg5MeN8_fQD;8n<f~ctajw_UT%e
zdk|5KFi-}d#6QOgKo+!+ANeQQ`q18OLuUyULNt#jgOY<e#}`8xAApU|mZih*+Sr{H
zPb{Z+)=OOFAquaigeLmswCA3#{<vLeS at -22Zn?WjKPE7+z at h?#- at Jwi?@6S>hO6Es
zgCXR3A5R&_jN7{Q&E=JDtwNfoIB+Xr_G7>`dJ}|31xsW3A|2B9HFu_6n1}lB&=`=x
zwjQg<0v!%cti85&$vtJE-fgq*XyxARq4Ps$>$VfSrJp2~S at mLIIPHdfK`I#Em+dqJ
zX9D5EWz`h`q5&M|vjZIw at 7ZI2ZxDVhz(P(}a7VC|95b}t(25PO<sZ{w06I`Wi{xMM
z0N0BJTMOY-PY~Rd5R*j((D_JKDW0$crPT8(ji;OhuCu89V=_$4fn?=Fi{3Os041tl
zG?f%+EM<YDLrA7B*M(7JDjZ%XE#EXF9t;RC1DWFLQbW*HB9e*wK$=-(qT6qH*lChB
z3#|~&HehE4>&>`v)<FF$nA({hHd_in7#sFHzW2EtCM^;s@=Tp at Xi?L!;WO<?EGb}I
zWz0bZ!I$g_x;^pS+c~<%t_Y|G7FUEIhUn^N?wSA0+2n~<BPBDq5~_r?1eGH$W0^tF
z*YveOGmjJNQOLXDf69W=Bn<&F*R38Yd!rv{=K=Q}VkRql7gomI1O7=&*o=b$Ju^C3
zhc@^pR5}mcg>`)xq&Kl at q%8p`37Aau4?yOO3Inn-Rlvz^^Zp1lk6ZKQxy;3%k<@?$
zS8ZvaH3`%;I^YYRmAfdAeKA=;ziMb%!ltk9j~KCx0_nJtmMQH*qwu1D=tc!n=>L)w
zkWPG+g!l~7%TEDyJ)eER56T5LCL(f0d{%BP(X>sef+F*-{v7Y>M>YzFH`K19R<{87
zINLJapGb3owjVDm{GumD5wNz6zNxG}Oi7vWJhJt5`Ro}Dtepm9CHvZXX$@ieFVuiV
z3?Q5Gpnba8l+T-oXmL7wxFk+Hocwhq-oDZSz#ejpsw^Iao6E8R9QB`AJ_;Oq^DEP(
zfpgK5=CrdPfr<Yjs;-&GEk=1no7UrhhV^fkD%|u{3bfo>?>^wfM$yBnKNDdKh(N%l
z^{f9K&7l<bAUMnwLeN9?Cq<KEt^tDp+U{Z*B~2e?NqIs2iJ3LFZ~t6_id4oPym>qx
zIyK&4d&q%06U5eac7buJAbbkBGaCcI_uYUVH%OWZwJ3*z*Ln@`>Ey+ZvD%f^{&(Ua
z_{Vsqd*b!-VEs8o%UZ0ZtE@(E0>_V6R6wu*zThixyUs- at -fja(GXAcHLa!WPe at vYZ
zAC3uiJ!p_NR_Qg<M==f;nm^_Bm1CTAh}jLG=lI_dj+4N at k7_AIGs4(O;rk7*I4`Lb
z_g(@{9q8i{;{cF!?KTbTDsqH0HqBct6T;mu|6mf@`@ciSk-`j6EPZWsuyUL0<>*VP
z&YV2%nHH;##N+}TKimd{MSh)|Yxz==Ojn4D?*0Gw6Eh$?4+Iw$dRQ(}uUz~v7}><h
zNoVt!&K0n#wHav0N=1QjD~dPUFDNlDVzZWwZ+-^0#Q^;hHfT6M7HN#%WqnVMd6)&P
zpRp}uz6R_Ekg`;$Suw$1aRNWLe|E+IxKNg;ZC0=(8*xD!C2Vl~f;Qipq!s*ooOmU4
zafKKv(!-)VEL)s`^PFYFrCAaajTkm?TFixp<R1}Yc+<l8vlfpg#%2PlYq~TmAKFCH
zjqM&=ZbmQEH`@}r&-fct5vf<xZ-1(_0|YWun3eY_ppU2li21r)m`~1RQYAk9X=`k%
zqD6FaZYJm)`k5pDOWEPHUbM2>oE%Ez`P`wVG-h(psw;7Y7F(8GEOgDje|g{^@<Y^F
zVG6rVuFE<7ao>H)ADGZiNi<YwrJx(5i<euMU)%P7o!Xt0ncxHB0S9!P5Q>^0m|MFo
zPdoxhXg2I at 8jA-DY>@eOz6*o`!wrIysTKKnAW)(wq7C(kO)8d3jg&qgd7r`JcKl4i
z*hE`Xuiv7k9QqwFW7!A6mF(+!3c7ncEgN&LW(%%YMyQ4#)Lh?TW&`l$UHxZ!vNs^S
zPHeCxEu4HbDGu)W#zN#M6 at YwZM9OalRAtkF5Wv&3R`MZJ+}8|x=OjN at M3~uZ56ctc
zf?Sh`$R4bO$_LH{n79bM=YpXjnYS0xjDINr_Y(%l6oL*N8+=ep38Y`0guP|fZv_Eg
z{T31c_- at nUqa&j>HawxQVvq!Bd~TJk!e!B9;b9UC!5%>j!SZ>Rx3oTtWR}jhRV%gT
z)IhX=q+6L_?HgS#sz}YJO84Y)&P1ET>EJ%!Q66-7o0#AwfG`o?1R5n40iCaWTCY_Y
zJR<fx4FN~qCC7D7{Q~AgLcLaAi0>?Fn)5}_uA#i{Vlb?jFrK#<+F6^;LW5<lB*B&G
zhD$c{%<b2(65YfJ;pSZL;U~e(EQhg at wO>}84aZv<zXQP%$4TJ}E>7zrZd<)QUOsti
z*~L~PEs660(NV(kRZ@<Eanh1!;NQxQL=-9-%3<HX>_F1~iO%^SfPrycVEipX(I_9i
zW#fsqdQW+j2y`x8ax=!-6^L0*to*KMtQABQ{4Y_6l<WT?b`vM8dK~mW;43$BWV8Bi
zA`SSJ82YW`u;P*F<iNq!JNEmS9oW9y{lR6M#*19{i{OTXR`W%@5^0|P>%hIq6AJln
zBL$Sm2_1HTOYEfXLvL{GN4u)q2O%N$gbkLv7P|~qVu=+w{MM&r|J#7;|3W%BBKW at h
zpf}=K-)3=_pVFbvUdy3vMtN8$LTl<b&J9vs8h_w*Lt(ktEfP2Z`F{yZ2Fu9Ar)`B7
zmRM}_<B{Ctf6P$4nm`N}wfCOZg+yCA5CDK~xx}eDSDwNR_$}%Z;D}~=SR#@XgNDM~
zEH)J$j&M;zsn3fcQ*rN*P7MH(RYxv~7#xUnch|P=BH3>oQsAOdYt^w!y|D-DtSo|q
zq)foEDo~YC;G|4lnCbPhTi5=m;TA(FQFzU#lMtIoJo+ys%$*$wmU6JkLYTl#1PdwL
zVmQz1Pkx#AcMBj3>eygz_5{n|MJ5$83~@q+vWOMi(YOSs!6-BjA3*y1wx6Iou?H!7
zm0UUmHdJNHL92BNNZNw5vg%umC3$>;2BU5~gnRY5IzXJAkDtS<bF`PGXyIff11ZJI
zy?$dV!`*HBuBu2seED)AFF9`Q)7RowmT!ZESj!qQNO|1OuC;J114IB~C~U9chqOX-
zMu-)kO;kndF{67XNr{}H6<`<^Lsp-MMv#=Q=T;I*8lU_bVeQmt!2du!>>!o}_JUdo
z&5MZhLqc)TC8i;?)7Q(A2Qde81 at TSSYza)_mB_h#0IN|m%s~CzJM;l63Q!S_&n_7w
zNTdPSmXN-1Pc2La!<W>FlRqFR-2o;eg|cuzHnF3{kA=`^0dvg%?gGGesUTeYh2>x3
zBozP*MMk0$7Vey6xbn at O|NlyJ3F)*|?i%Zq>bl!R5(HGSF%oHjYgR|e)&wwCy%z_@
z!vBIO5<)Q1<b!~5gF4bVB7#M90Bb3qn_&b36oilaa?8;`cTWa&cA|RaAI(w*=oX+7
zz`XwBRl0ydK-K=o;DgCWfnhYz04CN=P$h{mu=9b?^4qfdj8G#YUj!Z+1=ajz(!Bap
zPC;Rpuoe$IWSG&oSiU%DKZ>Wo?8RFO0qu;#{EWH5Dv5#U8yAGLA+>}Rgd7Wz1^~2-
z%t;V};0A`7t6Ot1S-0qbB2P>Qk&YZHtc<3Z)eL(vB=0!oAHO7ONnEeK_~t%jea!zK
zvAhc~B4v!v<IgLfTvN|Hj>~r^5mgp+w`2iuXa;8W(TGms*ao)>K~UKGkm1HZS%UDa
z;;9hKa}af>ZcMN;s&%bugHw!1I)Mg2;H2dXSF)cqm6=T9UX==@743wflgN at xRw63_
zW7Lru<17Nepg2E3kZ1%zjO)m=41B}tj3_pXrjjAcoEvqY75u$~mKm|>4>ypa5cPGQ
zY0c<&%Rr9`tW9jD_n$@{hDd+p)vQBqPXFhEW-brSDcwinK#~!BQI#r4OZFusn+?P;
z4j4v9%45T;62D>XQD at TS`T`Zp>J*qMQn={VQ7Wt}gdNz%hzw>0u-?Q%bufNtr`6Q<
z6J5J_uOB%!<;&)nnm#}v0LKB%qO62(Sj||a;n#>d<VMKpP8dumH^C<Qu<r+#ac5xW
z(N%RuxNx(dWXGr(`4<f$H6+2$m>TLnS^=8h<R7g5A`T9_Lrx(myX%ZnsRf3D#A6B{
zPgv={T?l=MIGC|6_p%8252BerIFBenxN~t&3p at qo_8KAF#+!j-Ycxc7ASa5pXT&^u
z5qewr=_b(J!CDV3=76MWvBW*4Ut|MYGNY1{3gMNEK%}stfHMR^*{%UzU`F*1=uEBo
zzX3sgo3CJZlsn04+t#I7q9-PBT1+SrVpQFt1295 at q*sO%R*T)C2Q^tZa+BlG`$=&M
zX at qA;I!vYeCX&xdeq`EWc?1TZYrzA7K!J_3hV*iS at N-+|bx2^Cw6aya2m-bRV<t=w
zN^%g_=MW17CR8$sBuWH~v6xJYl|U^TH<{W69c!*@^MI^~#|6S^<#^P>>~H>_a~X({
zABKiwlE>8)KA$x6SI*T#AEZXzIQava)PA&59}AT28(v1Ho^<drAou|bakkl$3cebT
zKTC=y)ny%2?9#omx%67KZanP&ZhNS+(DWCamxz~pW>h5z*EbguJprB?a$2{eAkw7z
zK<=m>ITGls;MLJPsLaGBnHROh=m;UfJ)ciZy7AvV4~*+2vEvjESAYz3KmVzaMU5RG
zhhF11QUC#RwSaaEFhht at O8>!uWsW3;U09zhlWuQCpxX=dmWnh_q6anV)6V(_>S<va
z5OsB(`L&9KR at N8wBJm#mOx)xX#f#DPBN9gcj(JZXg---#ugWydR_h$cGjyo at Ts<h!
zdWF~n8iv6(Pw9!1kS&Z>yJ;lFPm=;Q7|>)Ns;_OG$&{!OOu^K(F~LH_1^$!8ic0R&
z;a)8qJyCDoG?FhV|7J1?M6h2(Ae0YcxYx>t^FZ}`6+e=h;zNyTH(!F;Skt+=>TN`>
z6UJq_09>Kz)LoAa9 at F?(p#dD=MdYn75~%(_RSJwUaAP>ihgp8<+16#9cPC#t(hRJv
zELMdVvwrIi{m|pRB-t5Yu>9aYi1feu2D}~#v^BA6U`*>wItVX_!mny;3~NJk1$46K
zHEG_L%hi at Qy>jXD9OM|}T^%C<q8<QJ0KiD_r!rl+ehsWn03OrE23s&E4tZsO19`FM
zad1X#9n{L8>wQ1RpeE^0;KuqdMu3oWA#J;Jpos4EV<|)5{wN&3Muxkk|2;n at SkXoh
zl~0R_ZoUF=(?u2*h0cJ~FHJNY|K$M{wnnOp9O%1*=HS^hgd`sYOD%9O7e>Ze0YEpS
z5YF$sslzG at F+_l++b4+d)5=XYc>1=g%LXKkm_L2XhEur32kNqJ1?xX#$Cd at Avq8tT
z0Uk+gGK2T}A>6GO;ZPU?svW{NSP7;8q6dI(B9H>rq7{U7-D<xz{1#{_#8}FTW@<nr
z?U|E13wsbBPTGis$vOsU8e`e7qyBm^^dNMzZ<_=tHN;CJ-p2mT%(b!kPawSC(nAUi
z7(>!(_j?igA%>WYE#_h2nX(c#3}*~z)sw@?gVkfmR8wly)-$vVG;s~O9u-bYEXFa~
zF%+1pYea>3#7%4tzlvk)e(8lBCha^TGmXBof4Ei7E-)EH3b04IP?E}ZVp7>>SrrG|
zIlTK_sitx$5;3nBlIFi8ZXQhwt$s+3jRM+V_TkQLq=53Ae at UPd>_8S8_uJXgV{*R*
z0fe5Vq+oPWW%v)5yUU0+VPHpaS6c{&dkv3=S8 at ZcarsONvvUA!R03v?ul+QeBFbwO
z(?4&*1~zARj*<b0trIc@!`dk^x%>Aq{~uT19?$e2{lAULH6bLoa_QodP$ai?Bi(dE
z2$k59k^5!Q)Tg`4hms_$bj2te${JlhMQ)qqHlf_ZsIbLce&;=XKHu;6_eYOvd%s_o
z^E$6{eV((o<%)zYh7 at 9_)r_a@%Jn};g|HW#stBiI_=THSXuxRmwA~}kJo4Aa%oTUh
z&&fRXz8yPCzdB0=DvtQw18eR4UeuMNju`s85NDTKymeW5@@REn;JrGXi*6Eh&+gF!
zw(2hfnEb<mx4dyRWopA1hlS_Y{>#kR=VfZPA_SSz1GX_C3#wUOS1-50yfk`+_y?g>
z*>mtoL$jB|J<d4W_lB*9&xeG4&oP81N3`J)h*;fP+Ih%E`^{|>G0**n6Xp>k&a8d*
zw-k=CO+{=$55TRIe at NMI$NFzXL0ONp6LkpJYPV&0MCjK9t)iKHMbirkmu&_qv=&d+
z0>$y*hZz05af1#J^Tx{-tw!qIu&~6FnOQ%JRtkb2MoaUYjIIoheV=ONtrtG6fpY61
zV7(9S1Lk5#Mv_J=oJ%K=Yk#f~#S!0N- at FCkILbpu5krc6yn_WAuH`O@^_>g!Mbd?C
zE;-b!1IK1(V;-oUJsG=@u7F_g;o}{an(7qA_>VDIcs|iMUy@)-;aJu+wzZB_Z5mqx
zDFR>-&|K37pMCWU?T5jjK^a!a60*NSxWR)TzxJt#fO-)zb+Gga2MRa+veJGDAnBWI
zC5~mcOYd9_{kF!IU|Dwk9X&m%XF{V0o|JeZw2XeGRkC?ohjT5G-3|Nyd<T#@#O9fS
z^f1U47ZjIpojSc13<@d2_ptp!L!xgriWnGUxVb-k1DM$woSor4JI}90g5uzH!C8$u
zwA?@vX+uV%wv&xUu;6#uVs7TBbKl?S3U8(?B`oIs{`+ZYZpHj;V86X9c}YCn`GrH;
zg;<UvZt{OVAv;U!!rbX-Dx!c?*hQ@?FCpQPT0|J&^u5SO#m&1O8?;<pwhMOfXhmP)
zxe80c-thE1?w7DH`n)ke5101#??=&YKsu_V*;=oU8)1KdB2(GvGv_gx!H5fQp4&mL
zD7LliFgkzv*q$zwo5u==sa*wNGj%Kn*Y%ksf#k05POY&wd~Qvx%@G)LQW*Mdzl(CP
zMvU9R@|4rCv{Ed`bW^QC<8*#$anWQ)TaimwU1#Ovw<AXEA?G#A6c9E#tJ?yWjtz!j
z|0aK<U9qybeHpi2lv5i;lB}J>y7lxfm{*-Vwe8+_T325JRXk6)#~i9wC0a8 at 2>QIA
zPuG*e7aw`F3$emFr`0B6?T}DrtiLo-af0d(K277}H~C5s!Gh!3&3ZF7FbdAOD8XEW
zlUbz3S`L}p@)FDylKehv2?C2EL@)}^M4Vk7tifRvsc9OvgY^d4955X_`njonuwVqU
z*sY03z;*!5L=mnY?nN6$Ee^)%&jDHzC-wL59f)xc2`FW<^QW!8S2w{`fO)|PBM1h*
z4$^YY%G2jJuHy8?0#*skN0i}#sSviQtYIW(P49o7HGCGtK49F7dWV*L>4hTVzg5jl
z8jFE>e${sy_ga?%MVDWrALo2s^YlGkA&e8TUJy<Y4k)?HWiAV42yYsKv;BX+-^m6i
z!s7|Ehc8O_IEz70hv1OhZ`UgvJw at I+stnWuw_c7SGiFM2MUNVq-|m``#&Awh>SD{~
zPbTtu_#dv$TtZ&re72cq&3~L(QvtchxZibQ&NxdnA*sAwj^HkUfEF^YFsx)E!jUau
zXBCHQ6vsneLB%QwMOAXUDDpqwLsH9s%1SUgwpnY%ow(10>n8eYR}f+&w+O;@OF<T>
zOzmAtun$;{&3YSm1;x#X<5lRYO<`}FK66+XQk>cT)&I at hj^;3W?Y at Db>p08l7}k;(
zxnVvegMwCm@})=V!_@^j1F!4~?E9 at SoV_VqeQp@<n9rJAazW^g at jzFI9ZWyxGTR?O
z$t*rco!suJ;~!RWR-8b4d3>}0KYF{+m#>Us?(bxb=B>Oz=3#NFT$3-29Ko%(WFa|H
z4KM4*@p5+*4KU8l#e9};Z>+W|({veLL}xAHBwMYwe>W7}ocU4YM%|7^&gI%*7ny at d
zI;c5BT}#l+2?(qi9voRq4yT<W6}TNA8v${*KtffK!a)-%s{j?y%b at ubmS-@NAO(zb
zZ(5`9QKa!u1 at ruC@hklP`zjvx;a5&zrA|hla}HiaiLqeYb>`9~6S7LTS|-{aLwGP8
zPf=HqTCS3_S at JK}suA@?N1rF9uVXP1a<KH%(JIb5)(It#oc-}Sn)_I{`_%7Q1sj?e
zEk$uJ;gH~{IOH4>Li-X*vH)kNC}?fOND%<&OAx6cXxw(LIdQtfTH>Z&iRm5L$4x()
zNc$o%oUEsa)#|fgB-;?AiH=eO9fowKAX2Q736voLB<R-rtiQHJ(BCG${R+Wf2Ab%&
zRTz(l-2+RjLX2YLr4syEB6f-WmdM^2G$#xa&9`ztuzlmg&6ka+kfwDgTn{9K3n5x0
zSK~X*?o93b?SJiVRuloSi5Zu9fVIi!DAlV8+8|r2?wUyJD9#xkstZ0U^FH~O6C$qR
zRk)&4-*D~I+%f(<7rQNJ$L#em=gEn{CRa2u=o@=T+r}i at 9}4G-lwBNKzcdb%4-gx6
z4o$9Be1*szj9dQ{j>Hpmjk&Qlz`8*M1enSa- at h}%T-T2~_1Ig*dbFcn6_Fe;PX{hf
zsH#AyCYi+USaqd*h-Jh1)n++xg!TJ;Ena(k+B3oaipIO9v7CYRciwaTr0vFzC<*sx
zI3DAX$SRY~4g)*8mdrbVv%G^PK5+Lx8BmZHH`o+%ax%20plXA8u*dy at XZ%P#+Ja~z
zr1P;H{byLjnB;nYU?=Wd<{?4P+cLS1;t{ksceMx-I^|u()y!;nv3hL3B;&j9Q4lGC
zv0`ZMDnmL1DGNn8rZ2`^3!3h$wAHJ|ncdhRh4}CQb{sBJD<wN0T;pp<FT`-Ju_6NQ
zaoYwOyyx7csDPM96zbSUBC81^>86y8m(0ZXH?5BtSjM>~@gQ50p8m7=4+)uZyzFxs
zm*LLagi8~_U<p+2b2k5+Y+RlLk($KWA$~&-6~?X$z8m8jRFc^_i&_}Ha1lqnMuz+k
z%%rDQ%bk3Q2nj^;BKi_>kA?gTlIWq&h0XfHI6Zs}ve6O%*x5$d^b51U1AEj&DvskA
zMgE&Ih8}F3Ffet0TOEDU*DLFcbdJF3WkJ?m%RCG8zl>J8h?6rG4)Kpz2)r;95N|{0
zcyFSNwssBopkv{eq#^GihZBf*E)>G51PSZYDqJkfG*Sbh896+HGHbagK$c8T at v=)H
z@>VTLh*iq`_DwH+h#=q8+4~^*uP69ypVI8TRv8ZBsty5?1Wi$T;Ba|E<HejJ%lFmm
zRGK<A`FeIG&mz7o55U0F|4V{aC=<GR8<gtvR94iZBAS*aHKg0>JwBd)B;W%*#kyr>
znODvs5{9#=gl)qV*aa#lc9407J?G)pF(HfaN8D~%G;!))Oo$YB&5_AH$2Vc<4Qtoq
zNAP3DCx at F%DX%8Aj)kha5xgYnfrI5ili`m`Nn6L}oI*d|Zb-;^++H)NYJ;#W9I^Gs
z+xO3T>4xMkJ6%H#ccG|1rFj<rswd}Hg-5$*=Il>9<uPJ?$w0qWjMFK4fXsV`6FeAI
zRROy>{Mmh}_lsepp(Hf2P5nP|*HW?&4to>=qC@#KHyQmQo7DAY(TnZe)A663NL!Fd
zQe{Nflh`Yy4|26 at teh3)tyTI^hH^0~gru@@XAz>&UvO at Me~P}1ZXV7|SkIJMl1H&}
zll7FKI|0zp7DadbUT&;PAeHTNQ8dvn3xX093_XgH0C at c3USFCHf0YC#2FTv`A^v!9
zas}zq#~qhbcigz$ncVkc<IVK|Cv3W4%E&(OWR%*tTXOQb66bMP*KO?Cyv{q+v%^?K
zo_dM^Z*+(dBC^j-?iIWxJE!%i9;Dz`A1 at HCG7=%Oet&6riynb1hR9#U6vPScjH)I_
z5%8fFi6>Xo>$Gy7t5)tzOYoyGcj;^q-ZMn at +(L5~#Wjn3WGF9oSvx1p2`^|;Bt+=0
zwAe-AnF1nQkwK9REF>%q)NW5%#G0}-Gy;!Z%j!H89$w?A*5T~?vcdb~TsUv0BBw=(
z-Q46_Sp9U*qi<Q!M4#DGym(9e%41HIPEl6K4F_A~e!H7DoHp~&RPA5yAHJqHJdf9a
z>K_?)eICv3Tj+-5et(Jw_HV%N6J<^!@2GAA{?L at 6pBu=SC2sUD*2=2eVafRwH6dtL
zd(pu4QpXR|lA~e@`==BB2*Y4&w-9;$U2mMFEFll~!(fY_)GbqoBiar)mi%?!{xT-V
zIb5S7Z}w_H4qpvil$uvf?duROj1c2w6;QP+i0B469j`aXSmp8Sls#6J1!}kGMlU8M
zJ?78Q3v4Oe?2kP|<~fGfD%OXKrO_T;%fIVpN}Fw}ywSD at ktU_z%OM+s;wpdw+7kLe
zHN*&2k7;6%!{1vxc~L^<c~TPg)Eq(6^^X-S7o!aXO+ at -?iU5skla?jnKm}JSaZ)`J
zT`*jgFMNX*zlM1KfdpKJ!yPQ4vhtX-?xE<-Y`ZdBFWsggNFq%mWi>m6va1tCSIi#!
z0(B&;oXVMEB{y$EcKXtxr#MTgRW9M63J^;P47U!@vf-N1{IPmtI`cJO3=+?USo$#J
zsUAjLHm2(%Sdj(62%Fee$u22U<A)yz2-~Kv(gSgW-$Sj1v6|MMLrNS#?6svS;@iJ>
z$l}~Hmg;SmB`%GR{`PD$0R82h9MgJsigjnro}w0-LoPXHCELWd0W4Gqj2Zo|shqoZ
zdJ#cW at XJ&CL+SG4DDEmyu);{V2!fJ!nnjRKIKkf#MS{{Mp`?Z!dDB)T4GAG~gkA`H
z2zm3*_y0=rKg0aF6T)!%zqbQ{J0PkU(C-LqBh^AedlvZw`3@#R*!{on81}DD#@_Eb
zd~1Ehl!_=_6XPZ;HeT at xr-j6fg{4CPR`6JML|IAk1law$!pVf|KvuZ0kOk|ec^s+D
za)$Uwt=>PPg!j9VYz6F~e9?)-8NOgJTC2;0nAd$otFmpJglnJohw#4X?vnrxG^AvT
z8S5YW<@d5p at Ix@wW`p9Kvo2quYe;v46_b^OK`x`?Kg8$iZ(T<beJ#^ts?=^kama46
z^D7;gr5 at Rmkr+px{A$`#ir&E8e%#{IW`JEoeC%fm&|@<TS;#SIqAr_92QL?JW-k|A
zK~u>)gv5TTxe0l|hJMj3#VQv=Af+7ksTk%KLHUINhVFGGEv0$=?gC*F3bG at k!AINP
zZkBR$&t}z at Ej;45$nDS_;|y at E;Yg(j3HSE;S`=t(b2py+o3iGZ at GPYXO|p0K at THH%
z;^HgLz83ZVhxRXhCeFT=c0yYyfrQwJEeBpB2L_47Tur#T|4};d&H>8mn%Gro at AGGt
zXfyA9IYf4zMIqC{IXeK+$vmHTB)#SvbuPvt1Z~_{EQ&s~2sR}&>@bKu_RHyLf8MgT
zeSzhYAC=M6X*7H$yfHxE({^#cRIqlwGFJ-Rf9=5K#X at kAo3M~oqDD#(ToUe4MLE|j
zy7c=m1R4%xVHO65kPyV~grge;-b>I)%0+Rqbev$?+y#;f at e^<m-2KCZFe#$rucytw
z0lo&bK(007ts%_nO}Jdiwv*rE^af$~|5-LroN7?n;hLD^a3{A&&Hm9qkR#e{QUnGN
zniS~e$o9mL at F|s2hk)l0V$xb=5T1%z%O2(U^gkgT at QHY$GK^oa908ypd|z3Fo9G~e
z0GZ?|h%f-_7gl`<^5YIFz-1>jUhTTSq^)qUM9V=9MHL>RqS1R4a*5z^pnOTWfRQL3
z%0rzBb=Ou|<|;f(kSys@=R^#F at y)E!QLG084Pld66<IOJjYC!kwJPrekTJN6$R$lD
zNS}$DOjV*w+KmwpSxCp)6XtA$11^)zI6jd}!Ffg?C_;{qr^Gmr3tr*Uzej<86lUT3
z|1k?``tSN>qP8HUbatPSI#F1pQwTt5<v&mT(Q}ZRkKBp(4O5_lRR|}qZ)S461K|_S
zT6A>yonJ<x+`P~+3<jxgB%76;1DwUJ<4uBwJ7WMm5T0s@>f2oE{*znegbuec#k$5A
z4JPISL%{|Sucf2>Vo56hUaIE()UlO<Pg8zO?U%X*zr5EY<R4IBFW&}i3(^-#uO>UX
z!s7Q_O>>BhEHN}iJzF?EkL45>yhT>i#wqjHLt=FZpV$zkiAy)^JynTZC19V-$he|$
zwsTUA+$IqFXwKtR7t8#fTSq&n&N8}np-}L-D&cAxIeb`&<Gh>b`?5NUKpMCWNpv%_
zCnsj)q^@BQ$>NTtH>`V?^IC%7I)ZSLrUX4TI|0M3T6SL&Y_EbQ%egDq9q8*QZbbA3
zACgg>C}QpNdA^6iJ|c&ku;*d{9s%(4yo=$!KB!hnWLQpM|J^5}%+G!w>wFzNvGfy~
zwua%XD)SuSy{d^bGuih9L(o2?Gm&U}ZJquL5jSK4b6 at QKW>Z`JaMoS9?a1Zk$QHBh
zy0q}%s`t-iH0_nF!U!KM?I+G}O%Hs8j@>;{aFz!Q3F2=NNAAgp$~M)HD=bJe$*&g+
zWtX6`M#b68#Fqb1I^+YH_a3JzF=|Rvv%gi?Y6dnr_+Y%#upKu at Y5Coom8En58pg+>
zllnR(CK)+LsB2A6xTlLdt--O!az~bVA@{`jRu2F>@L_xBxKR&OH_!|!MG1SC&i^Q7
zGaVj7!VT>PAy=!*+Ecm{b|=ha|F@*!d<zP7X|HfAh}Pg#&&Ve~xZXxIUEn{EWCm*_
zkBAZi#W=a+P8JV6CZ$oyQLXwVL@^Y|H-tr5C~js?%>DK&1`(A(Uzk)&y;asKG}faa
zKlR2ox+9WWG$-@;<9o1pEW6(CUZ%xE^=A;Z7Lq;Boe&Y1(=h86rWTQqUX~;OY3RJU
ziBZtW=+(l at 57h~@v`bC6j7&|NaTC)rga6)KO)lB!yGEX(?VVV!w<MW0x~z0*$G+Y#
zJL>xu_Y~Q!&|s&aWC+>KTiuNZqUrv5L(Tx`6P^mJIy|0lF{F1#MPaE-FHJt^aDsdF
zj2UU2i>4P(L*?m;gfEa=1a9VH7tXI8!^tgLUM1A~$d=LUe2pYJ1PLh{8nOOMzm937
zg*CmkJlKFi#2#0Yl5n#PPBiJ2TCINu5*<dQ3o+R002ZmI%l$ildFkgH`F=nSjkG4q
zOG?6}LJiz2!BOt(o3KbEpsKv6)yd;3X+`k+7Y_|)>O?tCJw at OsP-2Fx=$7vcgia(x
zH#rFmwXyY=!auxtxEc)wN}xW(*`vQ^Y-FJ708Dd4gm&KU+w?2K at m3G5i+9qZ{PdTD
zp#e>j6sk at 6P!xzx2{xHG{4ZJ|<_No!sM%!`@clY6A1G^i_8(~kmQge%M)2ZcVPXxk
z)Au#$f|f=RpOb^{8zQ@%8o4J26j^r}ij_h966bx_KXU*;TK~wswo{}bs^?E$EWzDm
z9k}NdMI&Wy*UqH0+ at qMhnlabPQu$w_tvvN0GX*~Fr8(;V at TW3{X!g at fKVnN@!KLP3
z$-Mx-H#Et1(#gDQta)bQi;tU;i at KN5c0AdvD7#^11soj}j$SBAfBx#9y}q at UaA`g(
zs<N<zB&udvXR|+O4w|hp>Y863jX7)G at y*_?(Nu6s8ukjx3$!B$+3?2JWyCtQ^j}oT
zo4L4R{OFWQWrN7WhM)PSj~g?B&gz%ByX^H42mK+*7V2x*koollr~RMWJxZ{|CaCA%
zC#7ZYw$HSE*ul9NL&!@kES0jNI3WTGEJzW~x5=NS(uA(;rMdT0srUN=9~6gw2+r}|
zl;@UAs<d{gm-UJ{+cYeEdcmNu&V#0OXf7#^=Qq<g1l6*F=*ndrr5{ca>76nJ{SSZG
zOc>V^raHJ;mw9?W4?+R#Bh}yyHGyU!fLA=TVVFDkIXKld(Y+#pexHXSPX6?%-}YXu
zI{hDKA?2tk0B1p%mer2$zua|d&ZCl__(y%OL7=fdkl%~$%o3+t8<qubYC*8bu%(pq
z*EPaA^eZPO!?oM*nV5ylyL-&pF?d2lv4vZyTJWtsNftSI%J-GBjrmGA4Bc_C%uIxU
z=bqcqeX}|Ssjm<o8v0HN*>!*3iWqq)Qh#_<ck4&r!`u$vG2{4E7ydkim`R8ob at 1;1
z2-L*itZ=m<_3s{O^X=Oprx<b^$;yDaCcJoou{%lYrpLPM=jS}e6kDA}-c^m^-x)k{
z`g;^ZPd9#I+J7^j<GYdWJCOZ(t5By4U(*z$TOVtij%czOIs7-uE&8AoF|@PxnuU^f
z$O&f at F*GJe;t1j({INbdqzUs=g8Yk<Pp~D+3HJPZO}oxERiAAtI_vB((~;D4=$|DN
zsEE8aTINcj?kuCryTLX8?`1WDHnq^yoq!+R_Mj$+Rc4~N`{3UIR>J$r)hB+eJCCHe
z;8cX-OV<A$6Y`V1m1UzlcPwFlN+a{ud_17jb_l!7u2e-u<Y;=|i{iZw_ZD!?Let0)
ziem%Ht#Q%C1<nyCuxaNHV>8g)aUeIpbQ%pOBygi}xxsg_pQ^$Ro>{vS1P6!z&u;nQ
zD^~glnK_1WW^Qqx`yjQ2NR;{c;kDmaA{I26myFA(TW=+ at Ge^L#t~#39cjV0uA at j{@
z)dJ!Ok$YTkkx<`r6}%PtFP1)l?-0}V>Q3eo<aF}B-iLhL?r;pDvfIZI`*`ESFHVJ7
zu7dTy1WtYOa!-}v8NrK;Rd-fMuv3O(1E=1)fgtUo9nCa4(G<%{oF(51zy3Ux|1~~x
zAGkT-%?T%0$8aj56zh*o7$|R3WG9ZkYv9W*DXdcd*}T?i(88EEq_U9SU;6?9L&aFL
z6Hl at sK<Fy?yRO?P$Cjx=a5sw8;*-oQ2Ag)T!O$@qkbE at Ip9rAM4rmi5+Yn|yDu>(c
z82?<GJT3Lqg=rk^r5EK44552$TY=>Qdz!_DeBSz5<blhuU)XA;;X!bUf92!L$MeC7
zu>5(#w8BCk5##!vkN_qDlsj(2or&bZ#AWU0Tbpa{Gz=IN1+XMxs2fHl)!G#*s8LCc
zJhGW!s(Sb*L(~48{soxM16(W8?lkXc1-5U^Uk%Pj5RwCDt&8#<^=CpP)xHZcC_S6s
zoHTp)LwZHR=(dt#y$~zK at nQM8E6)`>&YO-qCcQ2I-Hb at Gms7PPZ1t!xDF`>)&)b~u
zQi?2z)x>hTx{xT(KX(;q1FvSc_9YWGvOSr9e|$}ZoU(9@<XaY#wIe3w;j1ac7`{|y
zTNmD)D7=BYMd{)&b`pl;^`a^fT^q0Piqo7QkZPGfF5c}t(%2N{5o6eS_ko_^F1^5Y
ztSg7V<_MPVxQIhIuLItBmLlxP3qw!-8Ivp-!ZM-hH!#rL{MqZ}`v-|HNl^Zqi{JR^
z;_smyjuT_o(iDJSZPW=4x|vlps8Z%ulFckT3zna!8D696SmIM>XvP=Xj1wAITJ1H7
z599syL)6DG9MdPWCTu$|s|h+!c=`W(eE{(1I{kj>RVDYmB}n?S%$~)hvgnc$^P&z7
z%GDC_SlybRP+=Bqgh-tCyAL|7{)L>b6k(CxGwZL=X+_&R($uiZx<{3?G6&=4J`mnp
z#thToSOPf9L^IR*aqi??E?)$Qo0qb$*L5XMA7`sUh#=fcK)q=Mlk}EJ#!|n_%`ZzA
ziLVfc?UdoqRqBMy?CVlF1R1bem`cDgrklE3Ww&m%l%%FZY7~-N5Of{3>1AYv7+;K<
zNe7Y1D|Uri<znZA2(AadFG_<OEJJXzL4q9%F$t)>UCr92+L1&^>v1+8tlFTL?qA)Y
zv&Us1AF>mtGa^=BMEL*xZkDQu8-Eil7X+oIYZZ5s=XXL^!L9N9vTTIwQbYKgOhLjc
z5 at rriGM&y$TAjuV*wg$b+HzvLrpmfAsdwKnk<!Ch>*Ue9)MNddU2aC`leD<fbVZu#
zm!PB$W1nN;FB at iavsTCQ{ISXS)n%SQ69l`l`bT8*!D!L@={_!S{?%`4!%QhL3hdFF
z`rTZJj=##t)ISkHA#Rxq;J4NrpKeh`(eQbLd;gY%ehs)9)QTewfm`sbqKb1+W0-E-
z-uAq)ZP)KW{XpM6r2+`-qX`i;{hCpa+*v(s(FOg_6K`1}Op at WzIZ5}dyW-xER+N0i
zM2e8p@?)s{JJUD$l%{>p0q9~x_{G{YJl|$&@oU8XM0o#8p=L7a+H{F0xjCoCcit0C
zPi>=;$R%3WBf^x|z+Eg5;}G7HcxQ*TRc1)0Jl36+$HJqOxo_Rt`hM#<7kkouyN`&?
zMWZLzSoF7z>5nEETq!J1!+)t%WPKv2B*(OE_++gHS1RqI_PFZm_Czat{O}djFI5D@
z&fSTd(Q3tTA}~awo6d;K)VaF8)YDj*6sX*5NiHe6SRx4l%Jn2`yrV}e2`b|A-NH2V
zZw;%r_)Ak!)Qh)@*-Bv at Lvi)1QCwHtQ!$P|R%`r{nZnX+&k`g-0Qh6=4&Cg<bf>-!
z4;)ER`F{FOkV=^64Iwt4if%Kr@=6+ag>H!U;%7Bxl1qL~p+S6tloK4MP$kz<xlT at z
zNNI>SL7<oLhi~1|v)XDNU;t_xuFEd)b5)Ca1hroOCEfz3#0Y`nY-^EPwBh)2$}HFJ
zOYVm4x9V{IkMbsV-s)-dCb;9=)t4kdAs?jB)wgZ-eswxb_w0_Sh}CSn6SX_nT^XTU
z(Z=!=`IU*@1p6^YM_kD?tjk<<upz(_@?I*9nunEdoA%$!go at vyvrZol0BV_=h*SOO
z%xN!bg at oBE?b91b#M53yDlVq3iDP<WcB-p=MYz`<>~ACCMgPe?@tJUI47!rEjdCEm
z0D-1U-6Lo2H4H3b2P~n`I#wYOzL-xmzfQQYJ`|s<2HG0a4UgmrUD4$o5nWG*(Hsf%
zv&T-}ysOG|6?OrZv(x2yUO<&&{+c!3h?N1r?~0(DU}^X#T)o{XOHS%B at _19DZ&!SJ
zua$Bl3(c)(3pP-wwbLI#02aM?cv%CUWVjxD(z)wvTYIS!^sL~&shYtjkDSdv at ywE~
zQD;85nUP(AqFd at 5n0N)T4shqfpEY#{YLOYhs}eX-E82xOv_t1mZWp2V3NO(0D?Hz|
zn9jT!pR2EzWgffj%O?cNNnxrJTwW>@a=r^#MbDk;9j88=vWzr%H>heouEzb;q<^R6
z++<L`4c<$Xll3wlFVir!HR>(tcl~h#$m02;h%4DyPGq;#91k~0 at VHuJcMu*be2qH&
z_+ohBbEuvsRR-m2oJSJ`NCCw)?U`FjZtsp9L25L$KECh3wcm(eYnsf9SCYjRZ>?X(
znalr&`A)o`|Mzuimn*TiuyyI<>b$#*s`Xb2q3$lS`kM0V6XF$$1R3w+K*>NfCwJZ9
zCY+^7RJd;F9YG2dR*Zj{kk($t%}nOLHx5?IdAB0^(y^nNHH8>rN$I`^=ARdP%%n$X
z>h&x~tg;$lrGN0`5+}J=G>A9%LGyuJrJT-Nb&~tJ>fQUXbnX4isnUsAX)t^L48-Pw
zc1szOd{JB}H-dZIX4=sb%WfxShV$-#lIxyh?)zk!TStk|Wg+LCxXFIywtd5G8mBDk
z{0mpRDpI(N>;xE~2I-?BI6<M#?1}rJCq^z=Z7QfO_{VxlTgFpnsiK9{adNmc!QJ~Q
zL=Bt^er1rGt&u{U04X|D(I#zKc&7-eQ at jb<S4Z?1d%)O}X;9%ZL+z*1zDvmM-S+{Y
z0kzh1x1M&44l!FokThdv#;W$=Q(;BUKs2;r-ZB*D8&u9$kc!l at XG>Ps1nI1Ifeh4a
z3En0U;>aT|i)&6<YdWGp&>gn^nh~TgNEtnaV}!(}X5uGr8$VoySV%}dwcoXasF{6t
z{bDu`O>COV9jxxOoOSBmvCjyCABv at RalEyM7(S!(S;rSME0=ul3*}`rKj+`vrr0*?
zK7fFGgfVqukkkeW)JyR`RLN1Ox94(m8QI&fc021rfXc7bc`Pee^s;I2j>GkOpF-5{
z3pQ?6Lp<kGI6;Z=QfAMZcxJ2AF0D7p at L5CeKA@Ey^!3=cd!zR*%VSam7ZIY*s+n9X
zsdS}p=^sT*eeB2RXPORuc8V)OnjyI*PjxT5cJ1xkRw<wjm^>V3<?1S_hCQc0#4G1k
z%i*A*iem<cxOB*bdOfEPN6+K?Q at DGV0HBN*z5IOJI6L;Z^m`{|DQ~0c51tcu3v<^V
z724Sh5w>&biI^a13rdWg6gS`b-L>c~y738F7l!=j@}Sly8pXXF*Szf7OOGS*%qOZO
z<DRo<4irgxId!|gTdI?drbGE})$eBvq-6&PfV3XV;d9Kebf?J|BiHGQIQOu4*z59b
z&m&_#cz&)3%V?U!vUy1lYi!yZMxIcg1|L3wVB|7W`!+Q;t^btL-nb24d2|VMO6VPP
zI>gv9aNM)0aoxei+ew__<w-??HU++^!%H176+Y~jj=%Q=<>qaK;<~sI>>r7P5fZ+L
zl4&h#IPOB`<)#0avSvvG6BKG}J79e24bV>DOHn^ncfbKf54 at 5#>WyTMK)5vZMP4^v
zYF&A3<b4dT-PA^z-HhQ9N>`+c0<pnc6v{&=5PzI-?@GM33GYN*>-FRyC31L7nzxWu
z!CyrJ at eR0P>g`>OYiP=(KVl<+e+VxlO!#MvbT2fWy0-m3v%@Y$!MXBX7T2X-+at^)
zH*pcdWys0eNP_C)TdM-mz=7}7x$hLRj)mbkp<Y7c0wo4uVGRj1m|?*|KJtZgLhps#
z604fJPv`sg%%$zLNv5gkrk~Y!X|L`Ne#yxmG>c~a8}N^IMvP_N-HM_XR#Tvz`_gmA
zN2J%0eESCXo^^X(*UWR#boA8(Re%KOn`uL_0A?039G9$6N7UxYD>drtU1Tn_jUO?V
z>8<tt6J&5>=|LrWPhZ;PWY4+wm##AOrjIwXpmp9T%f+EMI?k-f<`0b~^O4{drS9dF
z6}w=U<m6#WCiVtkD;6w0G!>tUP>WbEL&;=+V!T_%Q3UWRcwEj7i2thsQFL<sPZ7??
zLvJSON1RL9&UlLe-TOn|gVjFbzR+x`lb{n31#=x$XYlfash;KtY=DF&`dH9ODoRY2
zTgB|GV6dxVxXwl)JqAVZigFnA`Chsl_~$Z)ZcgjeQg}I^6|)!si6yptuSJ|SUp%R#
zr38G|X`JPvqxC}HSdrqi-RaWRfS3GocFJO~GF^weoumSlM#Eq6=QJwY=H|1m`%$=%
zFwOfD3IycZ+x1XA%LOM|vf9lfFk76S+}x55kZ%F%4~M`rK=xS!wr5BC0ZQH5jsl$O
zMSeOiqhpa!_P`zF?f$sF+*zgm at bb=-&lmb%54qfkM03VaMC>u at Uq(U_3kfOp6(Z)c
z1d^VF<F27C<9aWFlQ5jQU-EzC7<N!q|3IL_rJuULe>2VST};ELi<+E!_Y^}^kvK2x
zg at 9xX6e*f&RcJ0#F{N<TBn3ip+aAio2~a~g(GHE{Cn75GzIL^&a#78zTd2z7h?vE2
z=9g^~^q*Yj1>K;^kFSO$y|3w@^wk4wUiP|5YGY>gmW9o{g9Yrm1mIYRhQU)6Vh*&+
zQYemfq2YKv0JJBx$-J=&CxDg#yNJTqbjyT{Oc{D|7}uuXv(0Ye%K&VKW3nFZJ7o7%
zpB*)YQL;%ahyMP~6%bhC(Z<>3x+-Fnm~#hZ?|8L^F at -#hAOxwX+4Q$=<lBejl0RQK
zJdL78exKte==KWV15p3sb{u!;ba6<^4V89+lURlGmWiW4*5RqJ07xfFvI~v!v6lwW
z+#4y;`K_0)1-;jc0g#7<tYOWg+=4d-pq-nx?v}#Htf+ePwrjpL<u=-_PaM%2&Y6cg
z!D%YT-)XY~4EnV-Xigl-;?7 at s<LVTrM4?B8+<5TOw07;-KWueWWX?(7U&#$k4Hkuy
zLnIY)c at +-?tEXj(;D+Z!ASny<sWuY=4KbXS;_jd03fTBii*f~mM;Ct8L%5(N)35L?
z?bCH*Ob=#~eU`*M5DOzBlo$=RhR1wcd(GL{fjKYk>600ZSI<z04bA*s-p%ZMl%#Vp
z_fm&{-0)`G!agw|wkyv4r at -{JhfIfly<=}H1a_d2#FaV}#4~J*3iUk~qc|VhKa50>
zosY|Cbjs54h5-m{X)dO at NSNpa3e1i36(?pr`X%4qrzTYlTXHTF@&?)>@HM`u at xd8-
zB3=}d5wQvcmYdf66u)iWbhyF~o8V95FVkwT#t=_;p}0DfI;A<`6gay{)Af0;!!m(M
zVr<wNZ#ZoxE|a$jv#X{v{PTR at n-#<=&#vRdOiMyR1*8Tff5oo+F;;PIz8<=(WKetj
zs7BKrt{}b{2ZYt|WTlfRgvjA7fKfQJ8PMY$S7~7L8#ZVQ)GwaI2{Zsqu!S4<#^5zC
zfF|!|id$|SfP=CSQ>+ff=?MSuL1*2vC(DfJ?!OX~zoEe>$?~tJ{$xgUBvAz?H=L?z
z94$4+aGm%~re8twpg3~N>i+oz{qX<^){#=9UiVNV{q5)}LwbYKM}Sd;tJDY3nsQZL
zyPzs-i#mHBhEvrl36bMOXb{n>nWymA7v`9 at ViIFzPFYIBp`ffNTf3qMvEO4!s%$%)
z=c}1jY`g3P6^}$xbs{5cd<}c_VCkLI7iS_U)WL!bET at y`T>94c!$4Nt__~(grXXyN
z!r=8{oT?*P{#%oh;}b1)$DW+MF=t1yj=s=29;|Ij+%c at 7_HwK%w1O!?urB~TyNIs8
zV$&}xmfE)VGEM#FDc~Nzwbq!1+9Gne2AhZSUUl#Ar13;(dh=GsGJ-v01#q`JmQH=`
z_IzZ}eaiAiM7*@@Z+Z3{^=>?d80cdpLf0O44XW^An1eDTxkwSiZuR7a`Fe)#XlYqq
zZ8F{M_xK)G5voz^vwT=Zzt1TWl8R9FWvz+GnKoD)&jTo4^8&k}*uEd;eH3mwg)=!8
zQTC1{)mhKe1ApwIaMibEpgEZ- at 6XB+Xg<(LD}yjxF#4OZ%9C{PSE-6OA!kbQ{<CQ;
zrH?N-gj0RGA`0q^@pQJ`J%f-g=R{qOVU#_qb+;ki8wyrfcAg)$m;6jUY0Q9*Z>>8K
zDNKY$fBItdQD$=y=zXaAZr&hD4p*j7m)9J^(iyAAQ1o#C+<PV^ud7rvvdp?`;ESgu
zOkjlSv;bU%paP-20A at qD6eY8*FS4Z<y1do1f at f|T(*t)Y(e$Cw*+(%tgjTc7yO0FG
zP%*{mLdUzt!MgR9pDu=$_Nr^Y6X}$uGx;Y&Yq=h-iKgC!uA2sMm4VCCeG=s at ip$ip
z4Kw0e^U|LFna>F8)|p58(mr;8-)qXyvcZD<o(o}(O}Y>7q*2IIS6PU_`5K3&k`VdJ
z!f;!<wGekb9{`;gw;!nWDB(9C(>ZrD-1+8>*v-Lr{|qjC?GqC!HMrXMsHMACP+~fR
zJQIqsM}@1$%1RSDZj5dO3Tk4B+E at QVaYN#GPbQVl7{i?8 at bRq~T{qUew*KhIYyn~3
zG23Z5JsK$1X`WSS1cjNWrCtb8H3$*~RDwJ-k~3zWIa`2M7V1PHG=}4Xp at vL(o~ej_
zM9VG|&FPxmG_CsNf4&DPf3$ol!JReXI*gcnNJL0WYd=!MaWL{@{OU#YvGUdTSraPD
zG-d_jvF=~nrel^8&Ov7gp`sE(Vz}4uK~jPlBh6KBIbK=@su<t`7wbpHXjEu53ePRT
za%?el`<l#5Mq&LS#?Z?OlBWCL%dmA-f%kFkjWP>1<G;f-ziiK0T+$eou<9I=<Q_6p
zn`LPA{K*n7z=g=oFGc8U5uq`9iVMVo5 at fh;@>`Y&!9-(!xeY94C!)9q`g{C9I|)O#
zGFzZ57g4^sAYbClQu;P+rtaIYJD6^OE=KGH*f at rsjpht~Hk$$0jg)oD7wF-5S@=1*
zgm?FsXQw(LJEiY7qLdJP6TJ1SGA^87wrs&#t`C;>y^5flU_p at P1TvrIXb6!(LSq=z
ze5e!ppA?rRa*)*mD0Pkr^Ou_w at v-7%-?x2jCBEFtFYe_1_VO{E3+tnuE0IyT4%C}H
zLguY%&NvB+>+WOXRHyO*vs2pW#u`~>?(G^>Tp_0e#q0f~%$ETm%MlP2z+53tx^jd+
zp66Ue8!N)K`(cS&dYa6jB-7tEkK%q53f?M?xm(K;$JA)ati*m=T|kELK!wmV3`Z2o
zVkbu!N(PDftEU-*5iTAOwz0tpSW(N-9Pu-D<-<@68s=LX<79_Efd~LYsaFWvi)gR>
zwKlR*nr+wI#F(>W5bP_ZLi}I(L7z9jdv&ob?#^fg>kU=JPFFQY&%YUb&eLIEx!ZWn
zcpLIMml4O)Gd{>_ZE>C%Cf<vYVt*=w3c5`Y*He06$Jb9mNwosy8FK6baWw{tSYqki
z_u|Q#LEkZtEzn)&TH4s at dv&j at s8@oVJQDR2W!a-5bSl2=@kKL^-W><Y$%uUaz+vJJ
zSL{jHEE5fNcW2xkGzxBg-y0fK0!5}Y^yFYf@;X<V*Ydkg^gZ9VA*onAG*TGu&jh{b
za8Iw<f<uyICyEd!((A*~S;m)2uykv0LYx5{xseEG=V@;#E&a}ZUcTw(QG9P}kw=kT
zT(ep+!YN>%YHuTrRtMjOR-kvF`Q+`z6lUSfRY-Z|bMwLH at 6#`-gXhYZLG!s4b#v=X
z=N=EV`j)ai69QLiL3DFeg6_5J*qXL(Qq7~)um6rZEj+Po$bI#=O3-U-ty<viPo{BZ
zmLJlDUnOBVwZHF!- at fn6y^FVYN>P<Kq=H2dI-x`FnN^v{!P(yIdjaY8<E0xfZW$Yc
z=9YLURtBIMQe9ZV5yJCgA%}+4rX83#siX1H`Rsp1&Ktfr)*@MMgqejI at fw&P<L2?V
zhI%B{2U&4FLt`e>xRE}Z9^kX1V8~`Bqi at rl)F`L4!I9tywaOu)Ffkl`18U&`+jieD
zE?h_9r#QRQq9DBaCv|gT>cA2td4fO$VUDYV2XLgx*{*Z;12?&u-X+B|4dvT;+`+Eo
zn1oucWzWoH?IJbn2zxM;AuEDdHbMZR9EFL=75_VPi%;(uIF0AuG{g*h6m)Nj=I0HR
zx(FZsKQmxURG#^5anTibj`Le8jYo6EZ$i`}@w^E|ks`}a*DYLuY)!slAI at FE;{dLF
z8XA)4#+j96Ds4}s-}NnNxsfjk3+TiCt+dY&Spt9q%LM5f-16n>QkI+|i%)Kr-Y;t-
zdui*KiqtA*PZs#MG6dI)i3mDOYkDahc*Rj`sDbbrTeb}l5<}}6g at paHp9V<Bo5*sV
zx*zU=#&hPqgj-$BUDinB_4XTmn=r2x7c$WD0JA|5V~E($m9t(<=o;*(XDuEdyK@<V
zEh2y<L{1@`d22*UD6!xuK|BI<Hp=~on!_k^A$yRtSe3>6a56Drw7o4>2#SXBkoHhy
z-f<jh!eer(eA-_Z3gtH}2p$+0LHK19Lr((FUdG at rYV)V&=|nddQz}*HjYK+Z=i4+^
zSo7Uf$T^Llw)4jfOpR|N?YVMrf(Uh&;p?G+iTOqXb7VY((w-2X$Ub#4%L$P*T>CgP
zk;^$ai?Z_S(dvH(6rhM^?t$U^S_h9l1)am)c4Mm#V+sGfukJrX!GG8bk0w5H4+^X~
zEfp>l;O#P{rfxpkeDQzhnPr7a9nC8P${{yHjBan3<sxx=6e9I}Z=_xX;ZbH>Nra{F
zIB=>%&6b}Ge?tLUcn2W&(rf=)&2ZLt*Jnsc6lHeBf;@(8Ak8NcNeK!T+%>?GtWwwp
zh&?KF07O29Z(#~xb!cVrf1d*f>3^N1kn;aY`9Do35PRd#*#R~UxarS-p~gih34~((
zS{g8;uo;p*GZ)nzaU062Zjha)>?aC}u0}ncUI%no;1)UNDo;cm3dt{2s0;1+h2G!-
z3>N8 at p-4e&3>bFdp1~)=0T6_*ID+bh+kFQxxKucB;m(jxkU<%S>^a-)`N=AW-;A at N
zG4?fba>*#BHv3vSGLkul(~Qq~GxY?sejI*SL5`9+g*j5IgS=<K&cc2M4-<37mvr7#
zPR?46 at O}@nX7Dn)D4fj_6>;YB`B=P`R<zW=qd_l_73vbNkjJ6abm8#~3^5F+boc6&
zK`Kt)7cnS0Py|znb)%B?6)L(G at IH=Vv-Y#P at u6A;BLq&**&A0fq;|FrvjOVh0 at 2jg
z)yR3yE at jWr67no2O|BaFp7dWz!4hCC(Dr!L_|U7R$cwS^gfW{2B!R9KEy*5LGkw1s
zAiBbf2SXu=egtF;f59*8O|J-9oG5R3IE$7?^f1iu;J1aFbV;y*BH2>(oPS5ea8!+|
zUH?uL9o+L{Smr*Jdl);I_d1)pR2+E{hCc`(Vc;KSvB54}hXTbt at On;QP!9SxpI<R=
zJ8e1M{9?cojs;F-sz1^~UK6Af0?Uae&t*&nZNTx%-&;%lO6JbWe4>(L6esM at 7em_;
zVEwbFUs+9i^jae8=U#~8J at r(f<P0YknEvADuRDPd#_i`X>d#*h9e7H<y#mll8FDAe
zK0MU{8pW3LFk&OycU0of%*~O23X&7z6;bNei>w3hl0JMrnQ{~)=faI%i}0Vk5t?g<
z-b`Ao<q at p^K@?#gkOwxV$ahG at qvZO*jfI_r<_}e`qLcj-8vasoX|IY;6EbmMOZP)4
z*F?^ay6#Am#cu%I!%N+|&=~^+8$=XwjrvmC%FSTeKr(sR_q%~=5IVl2adg>cTOlb^
zZtm@!fhdJOPKvFAviS4iKOzH{A*2GlAc3ow1-*ovDSTLIv4}4F;+X#)5#i@>v=1X4
zy5q*Tk#AZ3RWL5rGM~-ubbT2-W@!uLoY?bs<oC{qSm1 at pC7-qxgwRjCI`qDSS?CWw
zQM2h5c=@US3Yhw_RP|uHt;embu*`FX4Gk4Z1$_-;?)-Wu-Fv0ovGmzyUN{K~9u#09
znclFKrA7#JD&sK4>hqWcn>v<=InmFzA6_oQc4<FT2=sM^M;zeK!iER;qj$1i);B<J
ziM at _wji*2AIyEei1uix6!2djGwFFc<T=Y}p!)GVOrk at NSm>8=XBZ-7Q5V*k4=e>jI
z2|@sQga}Bm4Lwai_82cVxJUVk|3hN0%o$&+Lyu4)g_{?K{GWLVvXd7I$7 at j@#;cw{
zTM7vPCQ~EVdZxgiYiacsl-X7pw&j~L)NJ{pil$(8v}xw4sKJk%WfISd%nI~Xp=rvh
ze-LI5O}df>QZrz7MdIOHtA9cxcAT?2{>1+W1h80t0sVD>$-wq9!0~JI9<y^&FM?f;
z8<St3*NjFKGjjGoWLc{#+a2|ui4uH7U_aIh+q)kYy_sE1u>MP9>%nCyMc)Q~Cygdo
z-7ejEUJ*B(zCzw8RYsJ69qe9|yz}@@FC*20qU*kon1h)YmcqiW{IlCf1caa4${oFM
z#Jdt-0%555^Ht2TnI({2!`V0TY3N_0X at Q-L`lj(hA1OB$xbW6e-46v9-|y~QLWvP&
z&k4Hb`xl?vh?`HE?>YD5U8W3so-toCTL{)arr#ybc|-vr`oULc1HoDY5u-$Lg+@#L
zxYN=IA+Mzwz#rIp5pXJfUPF=MW1)n+kn-oGlt5acIp;8;TfiCsZu{8%aQ>g&IK~EC
zwqc9v*Ca7N7qR-Pa8nRLE$C_gAG2L!IdR at Q&Mcqma4L#RMVA!UHAk3YCK at c-R+2Nh
z?L#qE?fq3YaGip~UX8SA!pgpE^eo}+c=bi!vjjRmki(<M1#T{5<#V(ArU*=^0nSDA
z{c6#{CP6!=zb&={O9!l}I6GpjQSKk-5#(aIRMuq0$QeOEwcBTD!TTC!PoJ_UN`%wB
z?r<_HV$zO3IG;>B>3-N=U!94L_Kp5g;oUX5XNRXEg at ySz=H4-w(Ogl%a5I~3lUrsd
z5~@$;sd+iR?gUIwSD9yVfClze4vQv;;x(6b6QQCdBCY3fWzDrskPJ<WsI1v((4j)8
zSZ-v`^7eU^zsATeWFLz29$nUiiEh%mL)=(*HbSYD*0lpOL01jvE^}ElSf$!n-Q_`D
zO*`sD9&Jm at 3pniJ!3>vTGXp)`yD|+)iu-BkX+PEUugkw9pq3g&PoLLqjhHEYWWx6~
zN=wJ2>0XIxhHFM+RKSQKx|Dv&0vnMXjh7<!KFX_JvwUiVa3^7;1fL`^BypPxKYBCR
z(K)C(AW5myXkYAoKAO>y7;2k)w&!Tu?9*Rd<ZeQ%JJDR)z&5zgK+dX{9bwYkw4Of2
zrAZV1(L?zta>*u~Jp-p6MjVo1H%wY%3Hk$PM<m$z;aaubVamC#=*>k5dmi3jjVo=I
z>qsN~N>ESPx`W}k1Jmq*-t7K- at YHdrm011zG)^!PslqjZU+4e^3*O+#8%>Lh3ItAI
znX}p#1L$_}+JoJ&7ng%ihEUeS3F95;=ntxG{wr$BC0Jr_*PL`dS>o?=<I77aC!?=*
z;%t1+^<4SQF%}=+6Vg|Cjw%{Oh$52u>}D`HNID1ZLOn}(W7MQC+B-b{z}RgHxQ_XK
z_c!B8c}8Vkjw%X=<tU&tiZP*0w<#mRff@=+)oV=UDS4nrAc4Sj at 9}ZG<+H$~u|#QZ
zdv~87g{pT0#r=SuUUQ?nO?7C{D!d7h-_R>*{DVbwh;Pc#qmu$n?&1R*R}Ds_=gjj@
z65|8BeVae*{Hj(L{A%2a9^pf at l6uni+}x!m$=70T=v6eCm-#ao3rp_q8;P8HZ&2x&
zm_{2QW;aMe&sG`sm+ayo-ffCAIcwvpEBwsMfj;EecjqkYWyBX$IU=Qh2FJeI08nO0
z_SJx$v?4RRTiMCQ$@7(G%#Wd?Szm!s7VbOT;i=5XwGfS;4JF5(@Oh4BV$RI#a4{3(
z=MjS(zDL9Y{1xRAg$OT4vBANaSj<GJz8q$Pq^Bel`tNru8O<W$#0o8(i}bFRi_lvF
zBn9YQcomdqw=N|{njKux^<?ljYVHGb_~=^DhWIVOUmc8Uagbe;AKFw0?8OFiqysx!
zqkBed1Me2Ii~gNk0 at 1P4#^~w55_9xEGA|o(eT3Qw&O#LOAn;QK%7(9 at kG}$xs=$26
zs%;EC%OAP}J5!iJybrFhB19?uE6sjwgg#=DB^bK#7U*+h2oWq8YN-)2s!(@zEu|!t
zD|{6t%mW_#77!Hq7PKEDj9edEZnDOXuT9HGsgrg(V+UQ^r|`^*;fm$_P at XEf%!XZi
zH1OoCDes$KW(D7a75isw;UGf6djUN?Xo;SlMVEzDyfVaT5{Cy#Xg6|!RY4AGK3431
z9V4<mY~WpJBRtJNu-<lh*7db*p7cq+evvF@;uR`pvZO at ucdTtv>@As*1{60T!~o~T
zTua1ecCm7 at eJ%{SQce at cM&?~ARV*$w%nD`ppYwbQp-3g{U^8^Gl9Onq9_y6k<aJ$<
zVz+=bOwq2mE;{AUPB^?SUZQL<8y`ngT==Xx at P1%i;oNB3<J#CvY at ql5x6~cz%?c>(
zimPISSpiNdM at Qr+w7|PGG|%74(dp~-R!YHQcAI&<bzHv5Gar5RRDq}ZlmB5v#C*f4
zibqomc2{^nC2;m^dBmr1badCc!`2;n_Z`;cUKnb>FaZb=?JWhVsQcY}x%n|;>iEwg
zd;V~t at Q~p6xYF!~b^EOY3+-<l6K4;D6#u~!8|>_}JO3P|F2$yPZBp%xPE(B$yfVS@
z;}yWd`;X1R0VCqcHqm+R>J<I5{Ss_`#634fN**Q;W!-tv&xu?h?MM4yw&Q|1C5BJ8
z{@*WZniO^h@*g*6eD`m*_jr=kaZyh})LmlzTx at s=wNv`Kiw9kFuv|wb8TDB*y25p7
zVRO1n0JXps-|puVR~yPN8(Q`MAH4|r4tB6}-C-{^Z*Na#*m&<0l3IjG5ycBupdtl3
z=mQ<u<~+$tcM)LSzw6NzepR`M at Ma1)>kPvCf35}ScSP-bHC?<`(Q>i+90CUey2%;M
zt_J!87Ya=R&Hrx7Jb3qrEsKFV{y&D>|1t-_dieh at BXXN)D6TD7#=!AlIn0AKg-nSh
z{2!qJc{wj==ge0Y*>G;SGpyj|Hprx}@GSHC!YFtdEY1#4rF^%oUkRR$VkP1mVmSED
zC0;S4J&4O<EDVtHu&Jn2G-BW<BCaKLg2W)s;Gb{9eROd?WW?F at 7CM{MYbeB-42l=l
zih8(8>{nTVSoh0>0baq&jPr=!xyepgqv<Rs{O+OfzqbyH3f}=w)yIYsb_j_VFDy!u
zjZ9hX at n;3PipXk&6{ZZ7n>qHs`M5+JX``kGPiMwsE+WRIJ#rV>NjQU^xzK$@Bkn5>
z`U4&~Q$GIaSU*1lMXi>RlUqBkDM`2g!Ha0qCs at 1L1P5b}XdV2v8nT+JV50Vpz87Kg
zvBx)JUTCK(XlW_NV(6oR2x;!2I+ky<{1qYF3%Knc3Y4&Oh*P{5JE(W1E>vIX*wvjE
zvr$w*25gH<f3UxaTCCFQ^O1Pv at NW;<KZ6T)QmC63dC{&(B}>{;oWjd0u0kKf77W+6
z{Yov;agGMRvcUkF`)t>nfh^a;6dgQKB+UKbts}X47HM56j5-|rwuoN6k8duQyi5|{
z_|`>r&B5nbZw|Ed)&69i|3I7l7%&b^B)!X_m*CSM5K2MzC%+BN#r!5Z9jre#x{gBR
zI>Ij%#RU&r0s#Q+fQ+tl3B%ce6G)Y~Qmp-`GqVPmEB5m&`s*y>_(-G)wH{g$Uep8!
z111L7G67(7CB2<W4f>I<+zKYgw9h1v2jtZ7ZlPfos}6pPuwEdDjTGH6EEF09vF%#g
z&ev7(NM&oFYW=@Sw`W6hAjfb=DXvpQPu{I26)2E<4xM{ERC3-zXH!Xf?Tn2A%%-2A
z?U88DScOl^#L`o?%2DGG&PdJNKH)@I2_ at Ht@QX|#>%FCkC*ut$y3zQ!EVKvmbBV%Q
zr at h%D*9<DDCmmr7ckgKJwuBssM>-ebWDC?GU?N`%(1nq$hgq5eMg6ZxY``g8UQReH
zRv0FdhlhmaPYdBX at L%Bgkvb;Vhw)FOuN{^~QHyTCdr;gXe4;&7yB`3X)%&zChP_Zl
z?tXZC+xGVDfM??+Mn*Y(@EyzSvS>+~i=oT#*T`LUhqhPft=j?akpW1D7?nR=9^nh*
z<p-#hzm6(Um|s{G)W=8wK|q+Q3h&6-{$LNZian(7#_Wh?=~<R7QFyxSg$5t8QbiVS
zmo#T%N at l8lDkKM|h_gR^zUB<&DaqI3hM(gPK51UY0d(7nv at 17n0DT}?c;Nc*PCm3o
zR4*34Yq$+rXSji<^A`U{?$1d#uiTUnC44udaHDdvsoQr{Xlp5o;4D|KJsftL*sGD+
z)|HQXa2I|g;qbwR>OI3t9G0b|m#-{~)jDX5qK}EVg*?mC7B1r8sU5?)jG(-Y8;fFq
zrB9#;{PfFaH)g*3O=V35psAbX*RF=Z<wcZ9J8`XKDx?q4hRJ|9igA85q7Ho;o06}5
zsSqVRmG;w4ErePy_^AzTYWeo8AeIEkDqzkpTEGWbdfF1z?*+}Ygq^p%g=-L?iDUb3
z<b<4AYHLzyE47@(Tg|AW^=Vhe at KhQ`C-(+jM^Q6oZ*8^nxeFmPN~YX7=#3<mYf3ID
zwspd_b3Q2c%3D7lQ2-`E_<#kjp$=O^#`q(OEBAFaHoPfino-*|k9Rx9Dv1iWYH%LN
zb3PiT6YXbEO<pHQd3fgGR-d~&zd4e5(6ZL@^MleI6OtP45Z9cy!L$%|4>fe93rovy
zeX)mM8a;c}ss(zf#pLFAI{@^!tX`?rt^_h-&exx9hPdRx$5SiVHWsf<&vh^q3u+q#
zhoy)kQ&ZN9<XT^y|CYXRd4LIZairn$_2UtbbN1gl({F>N6Dii47il}(2285&Ii%DM
zVP7aCGNGjQy at 309GJXU)dW$f~<Sdj{k(vS!vKEI%DoCu at c3D(tOz^+24^83`%FtS6
zd+j!)JW5zMB}mt~mSuR=RD!+)&A|#%K9=47?tAm&=!@My@;xi}Ra%*pe at _gFN^J|}
zMQv{1*JJ~UaJ*+_b<wIj&%-Ba(e at U?A6|oIJ<!bz3M7=DC{{$NvPZ*fsiVgj7;YvX
z_efupqHc70G<LKo#IGQFpZ=INYy!!C=;8#+Dcq;MP8eeN3|lcWVXokWS8Q6+J`>yF
z+iu>^v{DC~dG0Nw-qvW^iIS3RrVTlKba&!ljPlDsyANx9v$|aQoldS0l>*XX=*YDb
zp=zh^@_ckr=f=0^5&O!A_9VB(d_3HX&%Um7*0=Or>V^l?(LMuvMjVb7<)%uroA=q9
zSl$@PB_SpGP}l2L1<9?|;RCfLgpLF09bAU=3a2-t;3d9&T@^tMig*1z5|w<&dew4v
zv$cDhF+H6`>SLOxJca%$9zow?;V0{Y15upHV!#h;Xj7xDD>9h%oyO5LzNLxcHeYM~
zdZN?mA*4N2rYsc6c#DeB_`DHPAwE|Tw_ESa_ADbLqDV8QJCV(E9 at 0uL4lJhB9iArX
zjW-$6wH5i6rLu&9Qa11C_1uAgK4y!b3?vhrFJ at GY?--TA3CISOrj-fKN%uS~ZUw%7
zdAkAHr`!0-kH^0)d$50)re^CS&5b8HB0%MP2RD9#-)1Z-TXJKdW_BMr{CoMx23cV?
z?ZMtQgNg%x4`;SaB!(EL9N^_+BSSS=qnQnRX#Mv*Wa-*IuSXziZ%n6+Lf1qLN1a?!
z`fKw4Rdwz0P^Eo*WaX9`gcXt|)f!TH>7r3)WZrJNFf$oOZD9^$*eI20Xzj4I6{#rq
zj;WL}ERInPseNnR8b*bj2`z;%Cbtn{-e<I*&-?E4$C)|j{LXXzeZRlwTz<bt9|6?|
zkAHXCj_-?lzSXR;xv||<5hnR*|5-N;;cm)!8GqxzWSL;_RQVOahv>QkfCoXX1=srh
zH<K+i<qVBx!bh;!h#e)Rsd0sqjL4Y)FHpak0?MwF>$3R2f_NB%?7=bWrHeCvj_E>_
z0y<&m#vK;EG{rRFATUX5c)3Iq%}Gn427!g#z at l4rdN&;2Oa54M+g3_cmt|D{btCvR
z2fpG1mfO*!hn8oE>a*ASP}LEl)Pp|)zB=z^KCUQVCF43Ss4LQD-t*N!6g;%HTnJt%
z?bf3-53nlbVudg8>jJCtI8_%mj6jzXOL at S90L?LDF&$fCDh%r)-)Yv57uBnbiv*lx
z0BrEVr)oo@`jx^g^%8iJ6DTIKo^j2jjk|BDJvM>U%ev(xPRlEsh7D?GPxfu+b(6q}
zXDmn^cM~9f$|f}`NLLe85akwjF;#U1?`R5+hIjh<Z{GFa+#}JOw1VjEraNYaO;KF`
zY_&|xU$yI$<@vnKj2Dv8&VbIY=YG%6o$}acaI`M%Sz;7!DFaLZSD(1{<Oe at Xg3HP}
zo+&R)s%K;ReO6|q{S$k{jv7}ys=OeL$)0?q`E)4$;xYN88_X?{iqON{MNSn_Z981c
za<@kmGLnQXMZU8(k7sMUD9Fftc6C!oQ*2D`*at*dTmE5y^l at m!b$X~Jmd}1D5b_lb
zts_SCBbb?McO9>rrC1kN#9y5LIi1Z@{s_y at 4u!x33!mauNY&`*hZ3PZa?t#NDJm9K
z6#)JoD6N_F$Ss;K4cCSlf6?8c7vaC4kZ3==P0QG1?<$0+3?g!r5>?7o|Ji-`hNyD6
z)6|17)`uxt&B-*wQ0}hJ<0V0;Ne2zjq1qs1S$!py*7s?xzDuN6v<aGPJr}VQ4cq>S
z>zEXPFPc6&emaG9Sg9^Xwy=CyvXAb+Y21J)ZokoE=uTJ`$S~;5i+>dp5O~$)Rcoz?
zU-QQ3jY+b@^?l(6rTBZ{$vMftMbVn$I7j+Y^FWaNy**7xSzhjC<%{MgZYvRfn*$NA
zBW%l*4ros=gt-Y)s=*sOrG-@`b&(xe6 at K@);4pLgj<j)@X2KQsz3sXR3j<{4>2j$!
zG1^l#z*PlyiL1=%MAv|*ywL1eMO1KQO`am(we=~Jx!6aK9bNFLXku6N)*7+N-mEE9
z)G08TegA3h>L&$H*|QU-8(COcCIvdJ)NHzN?g;lGIj+&Inhxb|7H!gF at 2}2iITCG(
z);lB3OYZdFE<d(o3%cKv#~+}-y>6i3s<0^2_D+T4%d}zFG;E;Tex|=MpC~@gy_VfL
zvRKPlL67lv?mav~=yD=mk{Y3Yr99lu*qqwcG-fiH7u{P at MIgysuRJQK9$Jf(xgq$4
zGTe)2!!JjhZiQUqGMom- at H3zM5~7iCkNvh2{V{WpJYF#A9c)dTT|c_)a<G%a6s^5^
z&b4h#`$x;_zZyD+vX^cwXOzwyo+acy>NG@?_2pLH|6+QTagN1|0|(Wax6x*(d3$-W
z*Ouk!RA+DKG at ayUgP5=&Tp3~SmPUOxrQ<^V;47;m?}N54Ddlb+3&`2>@l2rkpN$i{
zs9S6BUR#R%lcL&2#REa-_K#~5_dpFiQJ)O{Ei?nyE}`0Xq(szl*0~Y73JIsePV2CX
zzf!4S;j)zlM_#ui04F;a at mimjnBRvuq2rHD9^57f>Q9`!db|FF8;O&jMQwas7d!0H
z`g+2j$*ddd(3<Exlp9zcl_iw??)U7uxl`lHzV*0!`0-zJ*jO}KSBQ0`2xq!a-2bpP
zxOi8_l=)7m%@9rbIV8Aa#;P=G^0sIbNgTz!mftk8&O1rqggEJ&C%w6FwqX0X(i>Dg
z;Z}x?;8youNLP6O(`la4g6LZIYVI;>PSFa_ at h6En+-s?gBeYg&(%$0Y+MkNP<R~PG
z#&jZ{XD=tp*C5A&t8qwFg7V_DK^be|<-I`)tMve~DRZM~)2jqoJ;gp-I)e=49kcF<
zY0_mpy^#gxHpsEISUZy6k&l}X{jjMlQCwa{O$$W2Ln7eYt_tt1G1e$!;Cf+X5^iv^
z3+&_<STb9sZq3#@4zRP1Nxaku;4osirxV}wWZ`LsYjtc+?$+4cE7O{=Edo0yQCQaG
zHU^d2A+e8)>;6K10uMSwJel56nCDQ|wj>D&sVHC3(pH`_Q|D>tH`%GZA4>-vad8pc
zvILaS(XSb!timaZ{_s7u=jxiyTPCakaF{Vm68Fu$N@@E&f5)X22(QVFb^(LYKflYv
z-6u_IWKI-V&u0^1hz?C(Yt4XLZ*LL1-0RLs;wLPN(U#*TBjpT5b5yZp$i=VX0o396
z`#_};>h?^Cr32)$juz}UGVh~pmu>=uS=FEO)Sfv_4ZZxXM?i+i1&5NpGMapva at y_|
zJU;ef%K*EfQ0b{B{31<aSa?1k8 at 62#FV$0X$XH$k7TuX3iZKXT<!bJ$qS_)Rz5~9t
zqke-BvzGL6gYfHH#*7eK=ok#)Z!Y>ia0rK_Za`~ZxONw@^3EuxT9yD_n<)ixC*AKJ
zEXl}*g^h=pdv4Q&&V^rA!ucI#Ih#0{d at g^oQmND0#uMdL`!zhwl`i-^huHx|<VJ48
zlf;ju!3(=g((e_7Q7DPZ;XX;&o|7HD{by5QNtKe)(x~eIYw0*(K&R(>ow71SUv7Qr
znh at Q)4Bef6CdNSCzojTAa$8R&o#g5^c6$wfAEfK>`JP7DAi;Yo$IfEM{;Y)q%NBsE
zt$)y?oV7-&E#3GB_l?lju4L+euK4r{1FXMzr1l6 at lOkJOT8jK-L1b9{$QLd|zUihz
z)E`=j&=e(<1Z5*z6PUT*v=!-tvBw()&Pcp;0m!DTus>I&`a0Xvh3GwGuw7&JJ*<B(
zQfh(W#jn0#37-nk6#@k?y_M2#Y51n=+Vo7HllyRcv=8JbyX3Y|Ev9FiB;8ufqk{kX
zg?31Ku3)(!joOA)pX2 at X%TH}a?$FN?p3BM-+KXFuJeN}WWe|O%Z`p!2O(F|x_Z`q<
zP#0?~S}VeDL}>EiI;m%|aghxuma5|pG4^~1Yq=~%3r{KoAwfQ_Y1`uS02DUg!KWMy
zd8TJBO6P98GJIqu+-6y|L}*uo`5$aFG!J8nwEvgOw_!-Yeyb~%j^XIDg9_i6+C1l$
zpf4yFUQTb;j6N at 2@YV;?z<mC(vh94wP2=u5w}EmqqR){_;Bt($F{=7H<~Z`#Ra>pk
z1x?2sH82=;c9<0i2BU5<5CVG`pw}imQ}6>$M<0OV%*MXNe-S<enAibns0BX%025+5
zWp|@@!ocGq$Hj<_0rHr00T4g^KLV9%Y6^sC+jzBkC{W=NJ2!W~L&#N~3lHw9&NY)f
z{aYA|KEKfu*8BU!;ob;x*{$Z9jq=AaR|*1ttzWbe)&d1#o-!{HCxU+ at uR7%cDZ-eF
zk-&VT<k$@w>ayI{I+90j?2v?A(r|<&UZf{`K+v5?rY^hbN%1`g+C{>*Ed2i683AXv
zcxna^Gad9MJQ76}#GiJ$(&{kA^Hn~u`Yf~k)qIWZ8>Yu59bkft#*zt@@lvWT+r??>
zt~1adbx&+tjTnXyI734b{J1u8SO4)9NQz!1q2(7&#aNnMjgULxC0>oFCEu$&-iJy;
zQ at 17UW+ouZJ{!?Xx~f>Z07ZW59~!e>B*m{7znT3ZNE;@&HmPTCM14%I8CpFzy~lo;
zSV!Kanj_m|7j9OVpgBE&N`VRkz-j?a1H#Ma-r<BPiv|lrq$`ka#w!C1IB2A1#kz*S
zx-L`kZh}MSRzDPm^b}aCxgXRAoC7enMKA$22oZyU**fxet&^gsR<qkmt9-#@vDOy1
zGP#Xfk9o at b+|nBx)#YgtXFNP3mC6F8VMpVIJH~*>H9$^U>V93LBUjWUKbPC<x7P>c
zuvHL;HuJbX&r at Ut7GY=o%MM9>o$Q&rXSJ at w4q&W6^*`IegoeGI9-C*f`o}!c*Voxq
zMt%Kbitl-b0C#_DUZodQ{9Rb0PSWnrAi}lbTqpbTqCbLtSfJgeYB&MKdrO4K`IZVm
z3p=yG+|PXS^(tggUx+<cNw@!|vT~6*+Ru{Wkap*C91G$T at gzJ+|GgE_!lWbAX6{i{
zGh20buJHKThMO8ilNcQ~m>F-(ENhbn2Tlw>c<q!RT1k at CcY01^(^nxFm>U4TfqiTT
zrntk5CL7QYB0TF*deAV8vUpe+nU(Fetqe>F*rPA=4&Z#>^2^J?Xe{7Gvtfc!!}i=w
z+v8L-r>iSYD8IBHrx9f_jqOq7WZT!CV8k6w=p*O0l>k#~L_aTmLV|FmZ}C5y8%jhG
z%92X=P=*2^jX0wRUs>u>N8Qr6xF4WWOGlnT%#<7mUR6wl1VI_n1sK at GLRW65xfP6!
z264s!;L$eJ1Hv@{@1v9-!0iD>M|dVh8myEVp?r;fcb`(^`KSDn#o-m#&t6s!_&Qj4
zEAm~YyPUCvL)nl%pQED*IyByMLFySxvjOppL)c8wOHY~6S)m3NHGh4QS*X at UQ_OB2
zwa`kiD5t2kJ2*kPx3$!_zEHZH-8ZQyO6m)>-mW6Bn8=m(wrlDxxwFDMBDIHlw;Kxj
za1fRR#sff99)N;~K at jK3m-|aWM8+Ubh%7SZ28@^FguJ+Csc<0UV-F at w>dGy`cShB?
zbcnP;V^$z4Z<{GESk5428Uoghspz^6OZH~}xjgcNKhP%EBT!dHHqds^T^)y at +^=Wv
z96jU%HHp#<(f*S?R2OIZ^G}OmN#Q5wr|o-^vK&Fj_0{!e27!T7YgwX*pZhKymiu~V
zWJkX9TWV+bhY3;U{lFaDX;CY;`)^kh<sL{oLD_elPf0rMOOn~?QA+lKWA5LS9TaSf
zT<0nKOMaV?x=}uEE=!C?>Q9K)`ZSG)W9e8_Fz`ZP!XBtvGTg7^SIm71*>jSE>w7+-
zsm3N-IeA(yfZ`e(&OgmbmHRTF;^pG8CqluWdd0tJEQYmU?lH!|Iu;Ax+7cXis<-4(
zETC@<z{i)RvEGm$_X1F;4<BkDtwaO>=v9Gn%q303?wr(-ZPS~sC$Qy;fjLpLl9`0(
z#Q6g~T%s>exo<VA`gd${PTcBR=4ckXEtPkq{KSWc^9{LBNq+ZhnzYCsAzW*n7PqR(
zyyMBrj+v<562oWeZkCgPVh{DXtc;gsZm<gJsXf6BF#vr}E&$q+QvQHK%xourRC3U`
zU#0cZ1y4!DOhZYby{NRhiYRlEoJoYfamx%M4c7nOO0xFwK?ujTG(npe4ZRGhnFlEm
z;(K#BJmt_-Dp+aw&)TT at s$pOT10p*iExxbJ&4Kt>%hq>Panl?%(G=r?MVmiWQX;>X
zETbXdW=2gjsG~01M~A7$jxYs-je)BQ&-ptb6mztl^*2MpT!B<%r;~dzxLle<-4cFr
zBy~Mgt9(t*UP$A;26zOa86Ff_*1~h at HWNl#N?g=g1Nz3IsR`7}U1ct#uAoOZ=?f3z
zbcD5fLTuh at 9fx!)->9rdYXEow8LCx-m}vT?Q9CXlV<=lTRZZWN$#9i%y!_|!K2OzJ
zpUq(tg>eKJ*Kg#me}3Lbs3{Pz at cc%7WS-pr!SMfYD@*}3%)@_$n%V!}kgR_ at CV%_m
zQQL7dOp*AHiRGAZGhoj_QX6}az!e~=tuILGX#q%Tiw_d4rQU)WhWh895}?)U^bd)D
dWO#n-oc<=2;{050hnHG%*G?~wBI42b{{rpj!Ic02

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ft-defn.ded b/clang/docs/ASTsForTemplatesImages/ft-defn.ded
new file mode 100644
index 000000000000000..80bae5ac90af786
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ft-defn.ded
@@ -0,0 +1,560 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 115,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 14",
+      "size": {
+        "h": 85,
+        "w": 255
+      }
+    },
+    {
+      "loc": {
+        "x": 20,
+        "y": 35
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 450,
+        "w": 30
+      }
+    },
+    {
+      "attributes": "template <class T>\nT identity(T t)\n{\n  return t;\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 565,
+        "y": 285
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 105,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFields)",
+      "loc": {
+        "x": 115,
+        "y": 35
+      },
+      "name": "$(graphNodeID) (__int128)",
+      "objectGraphNodeID": "TypedefDecl 2",
+      "size": {
+        "h": 20,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 430,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 25",
+      "size": {
+        "h": 65,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 315,
+        "y": 195
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 15",
+      "size": {
+        "h": 75,
+        "w": 280
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 115,
+        "y": 300
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 17",
+      "size": {
+        "h": 75,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 305,
+        "y": 410
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 19",
+      "size": {
+        "h": 75,
+        "w": 275
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 115,
+        "y": 410
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 20",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    },
+    {
+      "loc": {
+        "x": 115,
+        "y": 450
+      },
+      "name": "(rest of body AST)",
+      "shape": "ES_NO_SHAPE",
+      "size": {
+        "h": 20,
+        "w": 125
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 23": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 24": {"skipping reserved": "\"__va_list_tag\""},
+    "CompoundStmt 20": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 22": {
+      "D": {"ptr": "ParmVarDecl 19"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ft-defn.cc:7:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "FunctionDecl 17": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 20"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 18"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-defn.cc:8:1",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 14"},
+      "FirstDecl": {"ptr": "ParmVarDecl 19"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-defn.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 19"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-defn.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 19"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 17"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ft-defn.cc:5:1, col:15>, TemplateTypeParm(\"T\", <in/src/ft-defn.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 18": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 27"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 27": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 26"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 26"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 25"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-defn.cc:5:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ft-defn.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ft-defn.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ft-defn.cc:4:1",
+      "TdD": {"ptr": "FunctionDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 25": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "ParmVarDecl 19": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-defn.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-defn.cc:5:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-defn.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 24"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 23"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 21": {},
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-defn.cc:4:17",
+      "LocStart": "in/src/ft-defn.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 26"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 26": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "Name",
+      "NumParams",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "NextInContext",
+      "TemplateParameterList",
+      "TP->NumTParams",
+      "TP",
+      "InstantiatedFromMember"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ft-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 0},
+      "label": "LastDecl",
+      "start": {"entityRef": 1}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 0},
+      "label": "NextInContext",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "FirstDecl",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Param[0]",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 300,
+        "y": 270
+      }],
+      "end": {"entityRef": 0},
+      "label": "FTD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 135,
+        "y": 190
+      }],
+      "end": {"entityRef": 6},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [{
+        "x": 465,
+        "y": 340
+      }],
+      "end": {"entityRef": 7},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 315,
+        "y": 390
+      }],
+      "end": {"entityRef": 6},
+      "label": "DC",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 60,
+        "y": 140
+      }],
+      "end": {"entityRef": 1},
+      "label": "DC",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Body",
+      "start": {"entityRef": 6}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 9},
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "FirstDecl",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 435,
+        "y": 365
+      }],
+      "end": {"entityRef": 7},
+      "label": "LastDecl",
+      "start": {"entityRef": 6}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 506,
+    "w": 700
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ft-defn.ded.png b/clang/docs/ASTsForTemplatesImages/ft-defn.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..cff8bafffaa3cb20468d57ce2e476bddb4b597ad
GIT binary patch
literal 14838
zcma)i2{@G9|2OqimKGF3_K-bW%3iimNyTJ@%1%u7VJs~}c1^ZQC=$h(vd4`YimZ{P
zv5ZD!H$#{ryyqVEJkRg<{{QdwUUQY1`#$$M-}7BR-_N<D&z>>f#m3LZ#Kg4A<fOql
zCZ;VA6BF|a%XV;O?0go1iHY at R@P&(h`Y2CNCoexHCiJ5+BnCBL#I+&wmv?y6j`yNV
ze%&HB<TdeE`g%=FyKZ~3sJ^~e{v=h)htI})ZAi1k%(Nvhe>A4o at Lk4(jGt}3X(63M
zAH!BoYWp}4qIE{EoZ6Xj_{=d0oDPKP^laB(+3)-7`9?w6&e_ZUU#lIf7H;CuUVd!*
zIy<#xZ4b1l4SnS8{%%w|en(_HhuVOPOn&+0XM#>hXV%gar=^{tIeW~536bqsqp8%i
zabvwX-F1@#>(g_h&9M*apLaMr3ZjoljW^7z7O;17uAMo%!j{XwlB9Eu9!wy-k1h5b
z*jF8pZ0nLG6YwzNNbF_y&og^-E_o#n<qfF3GZH*Mlf-;iip`xW*pVRSxlGAyQ=MXK
zQpZ1d&s>;>dFCcc at orLGZ_&ocf1%rt1g)RnUTtT8wa at Bp`il1ihv&hYR(_?YShtJV
zT`2Cx8RuqBT?jVyXd6%VE(kq0R!Wi-QLtuV8L(dJcOH4c#S$*LJ#f39=C=*S?#Oyv
zo!#mw4|;LHB4(phFr$I9w_1Of$u2$hxY_IS`o~<}h$wv-6;`<{VDjwe?aaF|dz!ha
zYVp*1oO<qv?ey7qoU<JPhnB(+MRdI>yyRLkAxPTqjt3Kk|A&&V#nav+W=S3H<I|%7
zb(zKXvIjZ)enl)#R13`dY1C`yqzHZ)dFL1AtC_VPpi!Go{`&T#v<>dAPx`U!X|0o!
zMK3Rvi%KzHS(vtNQT-x3C}}}yEy*BgOuaZ~P3<>Y$osfucls7-gJ|3@>8JKq$w^|K
z)gA}K*=E&jiz=-Ypik;=&Nw`N5yI~2Xe|b9y>+uT at 5Q5it6H;<_h^*HAJ=sd6fKN0
z$lGzq&*$6eI<Ha{MFp8FOY-$o4<9$_i3&Gf`I7QhiD~-o#U6)K)}5lWbJ5KBS9v3c
zMZLVkMNXhD at -^eyLW~3l>Vqx6Om2;J;}1>ANq%|B9*4}exDqgLE^2AS8+S>f`fzE-
z)hX}h>mF^&^CqQN1|vs1ss1ibcjy{3NutxE`CaAKPiMvsIq-B!h!>?g at vY4_VvmMR
zG`Gu)h36jEBXPZtiNX#u`M>UI^BXN;;Yu`rqE|fjXrSes^pJ-1 at XTvt@uI`yQ!O+@
ztz^xN$h(qUPXgMrS+<|O<G~jl*n4|lOw6gKk&$C8W#wPA8aMvZlIy*2u<rHy=G+Pq
zFBXln6y2Ny0yok7IU>LE{(_QMER=@UBKX&rNbh$l`ANqVS6ECywlwv_6)znc`F3Bv
zcWcasa~mRARICE=ec)qm>u&Xzs_85e`U~;*q~c7`l9ui2msw4O{dor at M|AAl2)X<(
z?^1(AR=RIyNB2HDGwv$Wq<i}ubX$_Tv%$I4Mj^|!fa$<)-prc8TjP3xS08Ela$7W-
zT|ktbwlX;9%-o60b~)*JF4cR&*Ivv=ETitFL!x~sPNODoCVkcdaeHo&`M%<P&9^bg
zvAiVF-IKf>zwXJ0Jbo!GzIcpD<NU4ssr@(Kd^*haxjW*KJ8DZ4DqwM&hJaL;Si(1f
zmE8S5c$2Z{xtJ{jZ at YYg!c;8v$L}d|-7-AybqDG$%sf0 at h0`R=u5G`hKUAKU?W^m{
zr95Dkbs<j=^_jC^z3=FL_SbUDABPrBvRY>dq2`pdfJQ~5A7&`r+M!yhoyFvM*37?E
z_TxvpoR+!PI~p}o<MmHyXFJo}o*lg45LJ!Lo at CkM{CTg at cYz0IN)Eazzamwo;V=Y&
z{?&6G`}zHnp7g9<cKvz5_?x at Y<x1wGclYb*5=Sp`(QHTG>@*t;NiI*|H#{8mnfvHn
zu9fNG4=XsVbfS!u|Bk~Z*=~9V*!bwS20UBN9oN}C$xo~}bu2>0wmo at J>C_~LA3kE%
zaCFBH+H!U#{uQ_M?bwu^Zi}QItvw1qoMx+E8GB`kSmbc;x>rSy{z+ at FG&}Ju^KHV_
zM;~}j6z)Q8i9>Js1}P2SM;81jEV at wcbU%qj#>wP~XID^z-4D&S%KFbKcA1XG$5=c&
zt6r$eBW>#fF^N;UlIE{+pLi7ae)D|^ArgBFbwYbuBHrUQho7gbJ&KHX95{Gc`3utE
zM<;oireC9XVdK;op{gVw#VqmeWfgZaN5^|*mYBdm*M at 7qzSTDhcK!Iik}O}-Z2eT$
z#poau-KTOzLfPg+{Rf at 7q~yE56rYJ^-v8c2ad$r%FOvK<wN=+tvv7vre_O4$Wnql(
zUG#_RPbKHv4&6QN9OGjf!+&XDSe<m0z#^@1ga5!@rok!A6P4ebjdCAOh;-aE7JRX2
zq69VlupHmly79sF0Pgb=rF5*sNqH>!!ZtNdGw5C$>S*`fyN7qY#2+Y5-$!+PzrA5^
zVn&wT+nxK0JP9FaFOB!-6n1~!ruZQxUaFn`BWLpCKs#>%SKMy-^CSLm%g at Ze-^Nz3
zA#p%7D^SH_%3o`%t0}j_1NpoJVLjDtA^rkHX`jWc{gGJ)=QIL^j%b(reidhXm~gMM
zVI#d!j<}Pl?)7P-`>)L3uAluYChF?X8~bv0DjqGrnOe>E;mC!j-RttJxsdZ+zma0G
z^x%ltsKTekvbS#yzO{RmA at iz7{ovmDNTbXb@<Hz`da``*x>3SU9DiMS*!MKEvNGRu
zRyRZbqvm#>*BYm9zCWkp-g_|Tv8bKajw4T#(j|}cJvBW;`JNb7sZA2HT3Fs5&W-xS
zS^MF!beFCY0)McCbQE)$z!&aXDsSWf?Mmb7_P(^;Gld_W-g_aw+ZsccBjOHOXdqKN
z8r=t<2?&R9S{6UC3(iXlmHLTHadFnk3Gg+xyV^E-HqG}ZyTVeKQ}f#0s4DI?uO0n+
z$7Jz at o0+1urNikCs}6R|Z;PiC!i1gT%{@>fLpvkY1{b=5?TA*Gfdh!|OM6~VD->s`
zzVa7*{;k&8j`_`Y_9_GEI4z3it at C3w;v=Z1?8S1;#+}RBIXY0%w(}Q=qmF0QmV|O_
zVn1CgKPa>Hiq7GHcbC)O_g%J}cNIIMmr_F4=h^b}19RB9EtP`8brIof_hsWLpTk11
zw}O7TjDBVBxr?6MA4bpK8~2X)=eFkU{Fyopi1^I4lOnkRq;2;<)Fz3RHLRNUC0L#B
ztoh2}S6LFbeEXI0b)oyplY*i(hw^foNS4VOyJD5AVs=6thsKY{R$|!b%dH{zqiV&r
zOd*f?5^j;)iG$%O)V{~2Kgsva0%Q9o7WCtm--HZJOF?+uQ(CpF$-~AMq7d?p_16Wx
z4CjYN3)0V2ocJX|O<z2+s+ZhFIQa0s#pLbd5sS5cH!YnE#CISfdZUSQcBgu*$*Mua
zHK}IDo}ayXUGJXN&&TQ5b9uu9)M at S97m7L<4%BU?bMA_w%BAdSCtUjOWxe^iOGEV?
z-(Fp-;9EMgx~Bt&&n~vs{)oDIdCOw>)}0B<Z?+N<%S=p)l_mzqFQEHphir>SMFI>d
z{K-4UDN9VjJYl|z2WIko99y>RzJB-aB0fscU-o?X)01wt3b%AOwgMOl-PhIG0{(`W
zqBnm1{2o5pf3|T!d_Z^z at je(_Mn}`u*(frUw!3GD>`Y8IyeMm)r1<iMbp_u`%hv=N
z`@%Nb$OuPmc!rbc#1s2DKdL;JW1VaYmZfh47l{Hq<lZVZR=lT*uRTtgnThGkZKBQ8
z$VaZWreJHLrcWFgBmymQYa*?3TAWI0Mt!hUlwIu9Q+54zl%6}h;HMk0`syh5!Fq*}
z8~F7mnFdRYh3}xVX{nN#Xb<p}rbK~PWKjhF>7l_&Ot8dE9CqNp8~;4PcuWM~Xt2uv
zI{x=VIu(z@*B^bOui-p<%d>)Jz%wFHnwf*y{gP!9cnKD2scPnjX>0bm`3;wr-ensP
zW`!DK#vN1 at Eft9p*R3!JUWV1fK|ViUxb!N%*@ckod{Q1>TLcoN#MjzSdmWaA#P_su
z0!eSgV=GkoiBp9 at Z9XdaH`YW<pNpc{>ZNHWCSF#m?)rS9SqTztyh<ytGIFF-YQC26
z;%bWg!DclFfnvL8nx^_sC7j0&?ZP6kVAncwP}b20o8MU!DcqbuDcCfcmqMBSK61al
z7DA~0Ory<!RmZw>qIA_d$tTy}qcMD$j0hu%LqLzZ;!v5+8~fLjRA at Lg%1JQ%G!LfX
zM?wcdqO`N)yGNH9n)wDT><qf&{leM{nvp?%-aFb4J2zn$`S>z__r?KCh>Co{gM0gb
z7P>U+p;;AyJ&3C)aYGKWkH<)yUfDWUXlT8#VTp~*jjzth@*mxA6n0z`V!F}CM))NP
z#YXt-pk$=Hlf|kRV2r6jlE85C5E2$k``m at qTv3Obe40_BXvtE53q^1?>lDyEmYz$*
zjJwo*s&^=>E$5TZ7oUzVrL~)S8V!>*BLWv6!PcdOKB3LgNV<mTz^Qso at zEOP)39_m
zXgcT6fh#kC0z!q7XAyB-A3xb%={dAZdlf7y?&K<1cc&M)9=%2C(<zUv<i}D8ZiR9{
z{d(x3zgVcm=>1OzSJp-?jsq{eLF2L;Ixt$6mH0dY2$e>QVF5-bnxR<<Q9uF_2pfo@
zaN`1Z{M%c>?VCe&&=l~Pe;gGI<^4=+DIjnC at 1eW?3>A5M%;#5i7`5E0bziEr5ZIpt
z^rjw5pIN=0Mk_kX1FS9ry}2`5zSuusQ?emER#{r}wb*6)Q8Z{-tlih-J*)j at a>kfp
z^RR23z2&jM7pl18>-ajqH1QgyTnqRYkZcDVHD4q%+Bx!C0vmNk$)I^FybWITjluF!
z!s7VGy`4Iz(Jp_kzWl3iWvINjW9H0D<iD=c)<fmR?seYz5?sC4Ktk0FjcNHk&HX{6
z)LFisFNfN+iI_pe^jf}FM_kwSavg>);TQtKfj_V)-Bf-!fEW?U&=gScmcVdpbIFUY
z at i)L_7DXEWBnUDrFFcB|EsJ0fvXpIbhJZ(#Cj&pwL*MK(1s6o1ti2+fKkY6}8#MUG
z)4~egQL{Go;r5Ib5HU-kMh2O){+lM0fW%G!Pk|%J3~h)7MkdON{keq=T>lo<|2nkn
z?4w_gf_@<$RZr*yr`lLX_Le&jOF`HQx{z;b&#KnyvF|?!KMv%qPFQ<c@&%XsFO8!O
zhia#MB_S}CWb@~}%R&CuRxH#P$|>c0anl81H$|XfF0$sF2kKA at 8^zZ0nP38?-8bo{
z84s{DmOheNSJF$m$C2@&d%mn>Hp`PxM&Nv|sTrBMW|W}4f}H-5bFaU8cA^$YUURNr
zY~-xFgr>)F%~~suP|X1p-mqvn*drak(A!IuMvbDy#vhNXB$|>>nk}}DlkUxQ2ESY(
zumRDy$mtOk2V*%c=4|tNxWyKbZs`)NiK*UCq0TwMoN2nBpeT^WglNMR?aFS`p}}dw
zuf2W`Yus}5963KKzGxUTD1J`sdr)ucgXcT6>kdQjra at K;4G|`jdB}EeoA17rqu7e(
zSF=#Bv7?;rJ%EleD=N+`Ru{e)(bdEu*}wdGDYl)&^q)aRFLo3l%fWsmAOU~3&$ei@
z6It?5=bAyPN0}+TP#2R4?hU;%tDghXtZ*-Ilgu4oTd})ztk`ptXLNeu-PjQ|*FN?M
z+HxB`Rn>PlZvQSQZVxA at _dMhoFP@T?rDcjBH$-4Xb+{adjXrb{Z6hC3uu3EM<Wkyo
zAcUWik{lmp$ol`fJo$4cLo_V?-jg!-J$~_Vl804H>rZ-kIi};YjE&q5;RjYOA?05n
z61qTMq}u9x#A{vJ$G5}ZF*y>~JJ at u@MmI68>nt)bAmlU2f<M^kWE0sqaWtX#w(GFp
z9y}*-yZ6#O#8pm8${P5h!nlG(z&V~M%h;PJ1RRyXVFxS%l24OV1bt(vP4bWX;wo6E
zq~(C>_gr?cC+jLeVhc5e$wOVrbuB`DtG3 at _cw9NXZN)*}Gc;gFy`W{X&RX2?I8hjZ
zFeu&hdK-3BM+X*R0M^`$3OKR-i3)g9k^+TW6yl8oJNy$V1fe^OOeg`_u%W2ahz_=8
z%z-k8=A-1U+Ux-xO=nIOylptXU}#TRNsF9AT}zt~;#+xZza*9(L9AXd4-ZU?CvlNW
z=mGo4J)gd{H|v7^RugEMHMOyNPC||8xp!%7l+YWrqJH~GTBb=qX`^HGXg`+?GW=Nt
zJrE<_h#6caEt?Yhkhg$x$n5J^Q$!#aY8o=!L%u$j-o8GJocrPHnelbHu`ifDEMwmh
zT2YqO at 8Vb9agx*|0(Qzea?vA0Ti|4k>O`<-7A`byIXs<{+>3GHB9(+0rQODTjSp~$
z^0L9w?4+PF4=1w*F{<Iy!tt8UvEuR`WL}^^r at fr%s`Q8HrdJGoC1C at X-^NAJjOd(0
z%O{1&xb<R$=}5joB4mt?py}wNJNOS|%iq<`KGJ1=WW~+{)7d+ at lae{RLreB6U!5Kc
zkjccB-`VNNd3TkFik=Zn?`e at 0U$-?&qQEh-HASNO1e(rC9<IxG()waKjXW#^;XDlt
zivn$Ohyw$;qAS);Y>Fh1MFK6-BF`bP))ai%#X)I^gwH1B9BPgGcKFi^GxQiMarIrC
zR%w8f?A*1Mu^5G279TQ$US8|*22o^&R-EYiIM5?n&8=>OHeP8U59MB21m5RLSv$jy
zGC&7T*K78hFTYSOoa*{$vmHFZN_`)Sw&4mj7A9v}@FV5l*5pXW?G!koVyZvN4E2BX
zbVRUFzpv2BjkGI+lOuccw`u37mI`g3)@~>3bd=;+7_{qCz2UuQ at P6!VV#j;!?({}e
z_vaq>X`BIGx0=v(Ij)Z$Up5VaSn+tKMl=gBv<;;$$^F#Pf0QW&wex{zL1f&s1un-)
z26*GUA&}}$L<MQj118v$8F{_-wY>l{2Z$ktpNB3bwP-u|IiK0zsVUYFqhyRoHcn#`
zg*rINq*e3xYaWip*f<4#?XTSSo${i-!>C`|8lUomRd%yb>*8fPrO$Qt1xGBhMOSBQ
z1)dhs8^zLe?9m7+{fwLYX(mQtvHkHbNgJ!~a5bu_&^>3&Eq>VMA+a*BysBT32?_k6
zh?_idzq-uZ3DfvpK0bY*I<X1;rl#uxGS9LW_dH76fsH=r;rMG*Rub<TFa1c3v;*uD
ziAK3n at FtfcX+qUftwO6!wJHg|e*DfLRj3=Ijh&fdn at yLOjZ&w%$+(5Gzc5CZG0Q2T
zna;?UIa#u>p6Em!s8c%9c>NLiVa7E_{t+RQ)<YfnQO;5FZ~)du1UhRBr+iv0x-WE8
zx#iNgMHsriOa35R<#p*;h6<R%$ZcYO?vn~Nb(sYGWH^C`Ox`gZ{8zBSH-9${Vs#pA
z`4?+d_t at nNb~XbA(bI8*crG$-G6_*yZmdHfKhGB*0Y0Nhu|+>2)TSMRO5`C;HmWNk
zmSi<VPW2U&!Up1LcAYOOi!Fb+5j8(`X(PSlVe{5nM=ElVK~(iGbcU6f^O8H~05oQy
z`rGmc at RD0~paN{*(s)Xz`4JmGl at 4BbuYu<&ZTs)2e?3l!Q`l9uV>Y{GIlztf at gWB}
zv|81`$aW%#rQpazJ-^aBt#D#iZ{i{shQ=p!y*wv}nPPYqT at 1zttInG!fdTknZ=%N&
zS6}bwXSo5pEr1bqqEH#7nuU=z;oGl>HtF|o!a$L6TUZ_{a|^7KfpS3#llP*Y^1#je
zr;)#?3y?jQYLVlw=$BZ3k30k|NO at i?wulykFmtiLK?#DL>QbdzxR2bm2>iuWJW0pE
z#W!}Qx`JC%ITF>OR3<q$;rU7elnIcXr|Qknd$ECjkuQ7YoLo+%D{UQU^6BIoQ(jI{
zk{yVXW8YjUzKdo;5uB{ol!dIj_G?E9fn at O}p|lF143DWRu#LcO$a`3+btWQ|8b^1^
zIr>dpZ@&;FelAa9S>Adkh)_<Dty1N%2RQ&N8+H<nu=mRuk}8^Tew9vZFC`Yu=p2 at b
z&B0gJ;H$*PaT9+4R?*(phCZ?!BrXrF0BPYG7XyN{`Uy?QzHZ?&086J at TpbN=_jZVj
zizWBg_$Eg_Y$XWg0xZ612GBDkR!1lCF at PJRX2ESym<8H!bZoC1ND at Gx(U#5rh=J8P
z$o|CY?}v5)OMxbbi#%7XbL9Xzj#T6Pe#kRE;I72fgE3MW=8nBP+-XtPmOm6m&BiF9
zT_gi8il)Q07y#F>i)isA#nNZv__FqdgeRIBWKYMqp$7|v`}!u1)-ncxU8Em^9+ccR
zbTNr7FSS$KYO{QyL0hGQ6Vz^iP+3v8XzizJG&LOh*(h!IP0`Pmf-Zz0lFb^H_5hqq
z!8cu)?AVat3wcOuPj>lsyxKL(4FonXe6Qvr8YBEL_#8WxTlskeEE24<Xj=J7Qt!%|
z5%%@?%|h!dbJ~%vLCS`KrTz~=^<;D at AfN)0BXjOAv7nw}^gNOy^A9;EyY%>dDD&d^
zBlUnN?8UHd7|D{cAj5P2e=Y&}Kzj*>FVw(j-5D9j?B4~tA=om!Z`79NrR5*iYQo!B
zq-=|HqO*2QS8s)ZJC_~Y&Vyk?)MrDhA6u!@LZ!!_&CJ=|=|;i*2>l6h0Hd$VrYH?}
z_+Y!MXv!KlE|tc$wY6!ky{o`(E8HF_a+6CGc4B$$_kHN1JMdcTu7+g_Ce0Z$1c2iE
zSQJ at M8y*N@`&rDiCL3dqX6WPS^AQ!jUBSy4Q`V`pEpYb(K6ERJXK1)lYW(7JDQI&8
zx78O<3fqnEvfoS2)PZpJ`)yj5*Fkp*#4%IYLhV5&$JNIY*inu(CDfA!j~R_IbW!2)
zncCy%k`)pc+#rfTXQklH!zvh at czniA9tux8HqFyL1#n at xv5%Q;{G}c62F(<h{1?0%
zNxmUPTQ`@#p#k^_SY{t)sQOH1{E6c4`3E~4l(X63?&-s}$7dp+!un at bd<`C8^jAL2
zT2D}NB!=-nfHfIC>pk`_&;9Ss0PmK7Mz^3tGZu%KH)psWlo7X6P*O~p3l;!<(-TXd
z@<@t;bmvmA2q(ZDz(L1OEGXs#=7PhCVo73AWB|civ|F?j83!TUw39SqM$_Z9X0!K_
zOSw-t-ZP^n+&DuN>|92G5&`z0$oWw)f}Y@$e2^BsD(jgiSyHQi0B*W`m^sLOEGU!U
z_4N(<QonL8-F-E>wpTXNrSa0<>ZW<)7QbcEQb=mf>Wq9#hL1V0oaGTBI|q3H$<fj9
zeP+DG$^8T`XIK7T?a2;{l}5dSKjm!3@#ARmfw{@9FPaU<SqRNWXlCN7DW#2zl-~f#
z5uaPU>2To}7k1E`5P0l&!{r*NkLrP~IOtCz3JjT>DZ3!;Fw5!-hljWUxdrOaZJ-@?
zSPv0_FS(E86cD2vd+n&)WH}QkCn9k4l5^?$UONuElz7?}Ed4yFNfY%0T;v%AJ_IW@
z4suxpdjEUB=5bvdKZ8Jj&{ZX#qiWC~k8!+h^}tA{<zyD6z{oA?5n~~S!ubaRzk3OY
z{dv?bD2|p;$`X5>gJFF=^cW{m^ZT1rmK|_&aES?k8!V7CC7$sWcs{)Mo3Q}uI~r~V
zU at 0voisz4@Fce}8d2$AH53soyu1biy&cOl3aM*EjGL!?4iu$ugA}`rCFKexOV>sOG
zn2nvmQ5JAp5x}D8(K+IP#u1|I31B4nQ{AvIv*F?sQXXb<(#+>H+VJ;kH*F#+mdLLL
zj#F21 at O2>bz=NNhiHxW)HV~gShzNXEeH-95_>-SxOB`^Y*Pc%0SbJTn1GgazpW5cd
zOLk4e;(D)cE(iO>B^k&?T-_0v6m&wH9{a_L5)Zf^ch)(<F;I`;8DR at KBlp51z{md{
z at aY}Qz^k_bKc|R*v;=!~4A8)D4TIWNb#yP|u~jxI3CqE^SHH9fVZCY-G#D7N9Wkhz
zy&5G~VYU|ZH7F+GX_rQ3iG`)Rlgw$YdbnbN6ex>C6RHC6sa=J$y7S*Fk?6pmP{4}e
zm6YqoQgLpqsKt_l4E)OeMTIEv;Cgm|zK~#GMVZ(1vjc)#k77c;$Rer1&cxW{0##eT
z(K6d9bL#z$&R0*VhwRHoVW$Hh@&|#HrdIcwM$RD at zwi>3CPOFfl6S?6e2><otHuZ8
zQtJ?zR()BS{utesf|foTW9RC>yx}cUe78|f-+gzF#lQxzexmxdD$jJ=-D_GNH6KHM
zlf?!au6 at X74@_0`SV3)SjHoGMS92A4?;eSV%t;YEmfGZPB+NfGWWIP`1*=|_Wfc_o
zT(?u%i5+G2Q#njpjNw!w(AH2BW3LGnvDd{B>cMiFWdI>87hRl-Uve=(Ba#z=&R<-^
z@=lF96EUEZu;y&iXxCh&8HJIb?4c%2b+A!tviE=#3O*4U4 at 97xJ#B>ta-Y!6>q~M}
z3x%fr7gb!>w3JQt-G*=$`~lB(aaNx#C~XS%%SSg;J1;iy`z!OYV-D}bUayC&ty1hv
z7>Pv74sDEF1n?nu{YMxuI-KXeP(X+JL?Nh-R$KG0s}k~%*guiT2p5puwgqsLEkik6
z8U-^#w}d(c1+0}+!9W6bqg%9qH~|bG?t(`$XfX_zI*y*72atIlne%C+J&sdT;|$7i
zCutK#e0~iVWcbtl!2ke+pB|3eU*H~;TD2WM^6Bc3iZyXc`i9|A7*&cuKMDbskk`}@
z{|sXZnZQjfaXMO-cwCPWP_jc?vd{m}u>h2v%J;{%r5&mO;Kv%XQ%Mo!-F^7+6R`XH
z<kFUPRF|IekYyduu>+DJq&z}hrUHb)76dD*K-UdFj54^75o&tK{f+Dpl`3`K&)6mp
zW+UKFe$rl|rlx7VMQboty-WMCnyLPUeJaf*?hpHs>g+Idfj?8Dqh%%r42BI9IDnst
zjKKI)S>SfycR2y at gB>ItQ3#ErCA1C|0bArJF&eh=eVeKE?~KI^<8WR^g#yJDM&6sB
z|1o3jv*W~ZGXu3 at d4F8`r}X`<ja6=285o9 at kbb1wq>&X=?CYN*H71WT3U8&G{y$GV
zKC?2%;ABSuWcUqg{w}=go?i@!11g$H){iy|@y)g=6O(Vq^WMv6I)D06+Cp}LN_`yt
z%3Axw-RcTf>b(E(F&OBi(MGlsH5W7(C<orgCU(6=yIPuQutI^gvWb_Vs!aIi;5>V!
zmI?zwagftk2p0S|eo at Kc8`HX at 6b4B&vP4|{X2Bm<545>?;WlwK#T!N~;Ah`y0rY8j
zPb|QUFy<h#f3YB9etC57eX8^oO+5rRieCL^r39sJ#75AsRco4|zRd$EV0Z$M-H&`)
zFY<!NG^p6rj>bMyd at +t^V8VriWIp)=QQ at -};L=|wyq7A`Zv+g$aC8MtNaCf$1DA6)
z!2}ml)MukHt>UcAui^mVsdWJfhXubB5N-Aj^HJj2Mg at tQzOY6Z;1Hcpb2hz7pcx4n
z*vLZ&Ex at C&Qa#nZZqR at k0Q=Xge>o7G2rR3&AGHewZUi`C0(G|@I&Y=Hxp|(u5oRZH
zashE%tNA7^LS4CNwkdx{&cLLgn%Fct9<W(3fC5t~^4KZu1~~MklZip?UWTs8=AoU0
z^%=uaa^*TRLmr01iNIXk=JCrPLJmNp^13}SE_*??Pq`eb(J~d9x%S99lDm;VbYrR`
ziM9nWZ|pF&rY!1b{@KMu10m#**!rTNC>&rb;`A+Zv^o#@>#7UBL}FeuiTKsSWk7ep
z&eL8^I^NXXqwazHn~{|r at M;P_u=L~La43_5bByetJ>7P|9F at jSoc`zT%}_MP28}WF
zwz`L4N2Pvzk at L?Y_FcIYX+WW3K-LG*v$?0$Dju?&n*>x8{>F=lNntUj`{v#!kP)7)
zN({;D#UOlYXAhXxaXF at lPkT>m^t7-ZI!h6fT{cA9(pagI`q&gB%czr1&+Tawhj!Hr
zanJGR9$)iY+d9WVF5ziBCp$X4A)F>Je?FKHIBbp2&S~@uQC!iW_`j8c#K6w3eFnxS
z+P~6VzjUvzsUxSQZ1jk)y|_~h3pJ`~uN`j)P&^Rt1f}iX`w68*78HJ4z|$TzpBe39
z4WAio-?l7JuBU}x>Y>f{AVAsi)5YJZK^A}h4pfNnbBnqbORM^_*N)SBZ7Y`z+69S0
z$f=9{=}T?-OaHzr^f~vqFziRvHhVvCguql9QQ?vt+4S!|R3P^z%^e^GdFYKkmj3)}
z|3kO<zbAmp{U*P}z*>KQj{x5MAKrsAw%rKepMT;qjC0UdI4_ffQy?osWt?Y<o#g~3
zcPnY|pbAcv`Dl;vZUM%+qq9oxBWR%-zvc^`e?OnP%ssSBQi|2GM!Ph8-%Sy;o;&3e
zcu1uPMad9c_ORR-CQV{6&1-*6!W76wbO(9B0-aO*P!tj$kc1Z0K%*a*8ST_jEPp({
zw5uE(fU;6sPhH8KcNhOkE`Q&zt$-Nlh at +L4n}ZwENOU4KYi;9HLXP~a+$9$zI=n*N
z2Ws>LCliaoc!~S8W?pQC1Wvp~D12 at xfS?MZKfRNyU$cbNy3 at Jy!(nH`Owe(gv!SMI
zRHA3Bb#q$YHq9GVD;ZSCFO2CxYSD2Dn3N`<pLA(RmJD)28cl(V-1#5O={l?Y`6<)G
z#d4H)HrR^A#}}W`j0{s?rP^>-B6)9en#kenOwr<vfXr}2)XG8DYgbtn$z-BHN{b!f
zMZlbr?5KbO*X2WODmlkmOQ*QtJP05`DK~r+(xULgzUuB$oZib~OFzT3$j+}Ym-4+z
z^;gj+xJ5g19^J7_sy+a$3*fnHwD0MBjIl#h^0bM55+^x<eSP=V=TtceXR+shq(56r
zmuIFaF;4T>D53q=9Aw{bJt9Xk!v^L(xE;W0_d&1(uoqka!f86f!eq|?;Q-THC#|Dx
zdjy1<NOeh<yE}!K1)QV0IRb#7hlWGBMHG;MWsHst_}yADE%oW<(PXVWfWe|Hl+Z$2
zW;C at gBG9St&e!C6bE>nqF<)_`O1sv2Q&sh&)st(9-CsME<Nb~`?_WQIC|bR}7Lf*6
zny<7l0Lhll+rFM9EDpDkUA`Tgw587J{L)UkYw%7*W=)*n#Hu(~Gj|In=-aXugTo5y
zrYkmPywS#upJ%xf9SZtSvJY7<Jg`mZ`rO#r5jy&)`@N`8kY}1N+`cgmU~I2jqz8Gb
z1LX4hno+Qk^Y!VBk5?~TDv~qq(9r&*<<g3*m`ckiB&|AEsXF#XclN=_9VRGqVU}o>
z7??sUa;MlHbMn3rVzZ{860UTgo1AKpkWAT4Y15#q0Ll=w^EH4g1`kR=q9)BeWZd%`
zIe5RCJ^S$!T`zCb5>l^}(Ta5FU|`?Rk08##$kQJ01cUTm^qTvR<!`G2lc*!m1Pyoy
zFK{B*OU1Nv0Nve{)RXwVSqI7qy;8D5t2IO;mcc5FQVs^Kg4Y3lxuL<?J#I{8IrJUJ
zm0SyMF)?eIMvx%+hyvQ>ofiC7k1&kWA9i?Usv&P#UR>A9)uR>8QLF87mr>gEPM^XR
ziCvoulS_TH{SN>#9`I1-16ZkLeRVS)otEdTs0ztgIv>%){R)`Ie%UZQn}dUlYMvWt
zUvurd1CEAXtZ~{o!gvkbHynMNogwO6)=L71B2MBRM-AxS<-37i86g6nA8ATBt9_VR
zJJ!#pwIW1$XG^R`KKq~n?k8ofy;x5wad_6Qqg_|5RlWXvP*KeX#ESKUwqzve3>fMI
zZ+pZ at jT#$X>-n?-pe*Xl?{f(G+1s=c1<G3WFKTd|f9Ybsw{D}8*+#Dsj&@cM%x)qN
ziGOV<e{Y13H`Y`M at bdUYYWnd~Wz1T-NaZUC*4I^L`Y6Pm8LLag*d8KAvOo<NFW0vc
zUJyZ_9)Z=TOv%V#mDAWtYWi!7_&~dy`8PSQ2aU4DzQVvMrt4!fkmwSS%!Loa5#~tA
zcyOe=N9KXr>@1s-uyjYvWGo=zo*JXYhj`kJ>|FhQqY~;plDBIeM<+7ilg?SRnS3pN
z@=n$vNM-Cn&_{)Smxr{N>0!;HYBY+S8r2P~K7Fh1^?!kBVl36)ZDMlADZr+(uSXCE
zrp%GkbOFw9nLCP|BVN<@XODf at H`Lh+SiYigEN>qh%CiC6U+-#7wBg@&3-}xFuj3%8
z=TZ(iYZC<~g+B7<ips?BjajQLUBjn?c<9q5#x4=7OK5=g1nYN#S4 at DP-U4SKjOuOJ
zumpEjY at 4-K`O}?C>kN1aR7Qw$rSx=}f-jq{!GPzhG8AnA?@e?L+Hw#Op|<Rba2@%5
z)(8Hw!QS%wtPpNjz)w)cjX_vP{3(RuP^A^x<nLk#M!@GCTx6G!PQwN)JD3Eh3w9Vl
zhGpi5w-dgb!}skfJ1MsQj+P$zzo!FND3=9DwxTst!i?w#?P}y!;B2u2*uHKen1>j@
zJ1c4E+N9+Mi{dg5BdL4&i9l0X(>MN^)3Z2T`rk9$M)d9dtrrRCdj0R_9|*KLIo!8^
znRo5 at JL)StnL&#1Ut=7^D(YO%X$cXtUlTLnTcQTO#yK1-Lfu#U9Re(<{&<r$F^F$T
z(N|ZNZi2QIW}xg?URD&|e}=yF&@~@}bv4lGnCiA>_j+EGTCRJparj&wt75_uGE)#p
zffIqs(nHL&24`4M<+R=@`={&e-SZRh3Hdgm&^;m$x`5UjX486)**}q^t+&oK11Sxm
z@;`wdhVo7-Lfve8unkEMZCs`Li1m9REkR2apk`1sSQT{?pt=nNm8DaLBDm%xtM3j^
z2`u=o5evA`XJpQ7Kz8-t3AC($<zNQ?UcI7~XZ|?Am;3hgT$L|>=+z3B*HSE~Szi3G
z2A_0=1wY^%iLt!wg!Dnp at aPA)(<=DayN_<bEaUYY-`fN0kJ^7tX3(nsx#lYlO<{p`
z_P~vdx(0{cQiuPWpF4mQ5dyp6))!_ae;WekJu4|k^P~x!c74o!!tigcx%a(n<iLcS
zmLi_LOVoir=5b+|y|o#fxsgIFSpTy;Ol5%=M&RAONZ)-ug7zZ3XluJJtcJnsa2EzM
zxUn<fR_?!U3CSy;HSg9P?_)?b1f}TLa^};;MuOSEfsepO_}X~gsJI1{TKz4msd^+B
zgb#d7&o}^q!<FGVn;fYHBd|7mRKprGbYcd5STeG+csaGEJY at EJ>yN at 73=xxe;6O=m
zxHe%p=oj9zr`hM7i?kM)h}^-3GHD_og7C%8tf<pZT_n=MMZr-KGaV`y*|JerthBMO
z+YR_!K{h}(ei>G=t_BmqHk#sHpZlE?KME!0l!ckg$^$b1-um8`wYBic;mld%+~RTq
zPT62tZI$%gMQaNdVF->DY(|14vvQq+M-{7vqmok{D<z)cirYfMKoHbgpgpz(CN}^8
zA3ld8l0(azd;0AbwZV=74cnc at 0^S=4tn1?%CKbo~@q$!IpAAJDJHA3(H>N+3FXIbE
z_iPHuMPAe?RvB~i$L)8U2l;~@Ee~1T6ySzAJTNOVLVTcw1JL3i<Pe4uPz%{c0 at 4-(
zX_GpDRnO7XBhV7&RH|XH2D)Qze|?G|-|Nc;Y%Wff<?#=efRR(iSy0riE;V}~r!)ZK
z8Jh6|%(ORJTwJ;|Oo%V($jZx$vu{hu;7X24sn8A0Ro{GXumGZ3wHxVDf~^S5!s(PC
z;=3*%*nHgXAcQ#cOT-x|4j+zy{a*NO-b5yfr3D;1pbrp&qXf=foSZ at oVDpbRknars
z7_+$<tSDBL2RsobUTG{~G;llycLaQveGkm5g82YVZ)kx23)qW^af%50=B|hxFr8}*
z4oQ9_)0S()#+Ihg2V8Xb2EnTqWN&c=bR-50VLXR^O1nWbYA9aZP&wum?dGwTPZR0`
z4HiSA+wMw2czVLQ{^~GP!6sM2&8=5KTaI#d%*dxD`1x`$7}M<Ri{pCWFyGqazZqAV
z8v_yQ{SsH6mfhc^QMtL#`xkO^ko&hf7hn<W1jfODg?IGgE!uKiy#SxY6N%Sl7DCy5
zhr1Yju;m2~yKBB}oSW;69GPVBt(==-DkcVdy`7dt at NtG7SQPDKwL}2h27DAiuPksb
zYa)vL#FMu0RA9~4DQZr<cu;Vx5 at R3OUDiaGU#N*rey(c0b5oH5Uui{ElXXvWgLs1;
zY8MqWdn2?fr*&+&`X}y&sNKZZ7%`0b#!xQk0J&2s0Au*&bF*64)quch+m0E3T*oWb
zcfO-#n(c;uy0{L71?#!9ea;87KplON&*a5Ho;c;f$;pSii{l%#I^(KzKC(pDke=-8
z*jp{wVc1bslQq^eHjNiose3%M#>>U<3h+|r=jIfN?vlQq*52yY$+VoTd5~(w at tr(f
zJKxq-7sa0<oo0m8Yy)M^Gh>%hs{f^uf#-O8{ymk;XCs5F at 6b}Q5;kb@@b)au=M(z+
z;$tx(MgU3<nHNBaj9A>A$s!JNkH2RrgCw=Iu$QRL8IZ-7+@`JD(ys}S2$WhL^2Dyn
zJYk1P^H0`8JVjoV47XX^SA$KjJ2ZG}d at 9eO2`@Z=wn5Yzp*u#4dS$FVdajj48dcc4
zugxASFHtsnSAsz25b<+%vXF|{%M&MxS1ie-JL(JHcZZ at 8k7A`*soXFN!$OEz$?qLf
z;q(09ZFUG#!L6N{=>THAsTilgR$%jzmHK)Ab6I1z`#~S`T!sS^|9u!T=&z9N(BjO3
z3iw&v2*Lr7{Zj$NbkXMzhyu1!Uu!ri at loI~)CwIaJiIKc(lBe)UXc~6*rx_UBG!$9
z*S^;C{V^$lDB$*BHuQ60-s-KDRWFL5Tf{-AJz`;=1!Rw<Z#?9t0PxPh at CLnf&L|O1
zt)v~9ECk;tA)7hT0zLc at yxsIqP-~~OPi(cR0cSPX!{9hN|JrgC#?g=MPvU=(pMH|y
zvpSfi02QpLv?pBASXEtZUYJ>t3a;yh!`sp#y6<*N;T(A7gWJ3?G3N7&ym3|nBk+HU
zRSTmivx2K?8t>*>(IuTqHZ}taf~&4URxuuaAQizRD#CEv-9r#xNmP8RvzoGO-wRT+
zGqMmPX?IaO<0WGnnl%8m&jS1cUU3uCm1gH+9t<Eys@;Qa;atIfgJxB=%^*)WEc-tX
zmf?x7zxprG3RJ}XM)LoKRW~I%ED8bc{lL3I7&mW40_7Mg<!BW=gYf<(Fii$$Os4cp
zzJU2<gwF58#?AfbL@^t1sA5EMJuvPDt?Ekb|B?uS^uJ5$pUf#E1GC7RQoziy at nwBV
zjW|=SEF)v2vHh=aj{ocRamFjB|MQ#UjCWK2`*rjG9uI)Z at 7L3BxXjm`=04UNdS!b$
QxW;5+c*daU#N}K62dap5KL7v#

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ft-espec.ded b/clang/docs/ASTsForTemplatesImages/ft-espec.ded
new file mode 100644
index 000000000000000..2fdf36c6d1deb60
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ft-espec.ded
@@ -0,0 +1,829 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 20,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 455,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 17",
+      "size": {
+        "h": 75,
+        "w": 265
+      }
+    },
+    {
+      "attributes": "template <class T>\nT identity(T t);\n\ntemplate <>\nint identity(int t)\n{\n  return t;\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 330,
+        "y": 395
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 145,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 20,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 20",
+      "size": {
+        "h": 105,
+        "w": 285
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 120,
+        "y": 145
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 31",
+      "size": {
+        "h": 45,
+        "w": 215
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 20,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 21",
+      "size": {
+        "h": 75,
+        "w": 285
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 455,
+        "y": 220
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 35",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 455,
+        "y": 325
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 34",
+      "size": {
+        "h": 100,
+        "w": 260
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "attributesWrapTextIndentSpaces": 4,
+      "attributesWrapTextPolicy": "Sentence",
+      "loc": {
+        "x": 455,
+        "y": 455
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 37",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 20,
+        "y": 455
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 25",
+      "size": {
+        "h": 20,
+        "w": 105
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 135,
+        "y": 455
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 24",
+      "size": {
+        "h": 60,
+        "w": 190
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 23": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 29": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 30": {"skipping reserved": "\"__va_list_tag\""},
+    "CompoundStmt 25": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 28": {
+      "D": {"ptr": "ParmVarDecl 24"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-espec.cc:10:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "FunctionDecl 17": {
+      "Access": "AS_none",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 19"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-espec.cc:5:15",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 14"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-espec.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-espec.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 18"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 17"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ft-espec.cc:5:1, col:15>, TemplateTypeParm(\"T\", <in/src/ft-espec.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 20": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 25"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 22"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-espec.cc:11:1",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 21"},
+      "FirstDecl": {"ptr": "ParmVarDecl 24"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-espec.cc:8:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 24"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-espec.cc:8:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "NumTemplParamLists": "1",
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 24"},
+      "QualifierLoc": "AbsentNNSLoc",
+      "RD::First": {"ptr": "FunctionDecl 34"},
+      "RD::Prev": {"ptr": "FunctionDecl 34"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-espec.cc:8:1, col:19>, Builtin(\"int\", <in/src/ft-espec.cc:8:1>, NullTypeLoc))",
+      "TPL[0]": "\"template <>\"",
+      "TPL[0]->Flags": "",
+      "TPL[0]->LAngleLoc": "in/src/ft-espec.cc:7:10",
+      "TPL[0]->NumTParams": "0",
+      "TPL[0]->RAngleLoc": "in/src/ft-espec.cc:7:11",
+      "TPL[0]->Requires": {"ptr": "null"},
+      "TPL[0]->TemplateLoc": "in/src/ft-espec.cc:7:1",
+      "TrailingRequiresClause": {"ptr": "null"},
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 17"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 21"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionDecl 34": {
+      "Access": "AS_none",
+      "Body": {"ptr": "null"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 36"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-espec.cc:5:15",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 35"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-espec.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-espec.cc:8:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 37"},
+      "RD::First": {"ptr": "FunctionDecl 34"},
+      "RD::Prev": {"ptr": "FunctionDecl 20"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-espec.cc:5:1, col:15>, SubstTemplateTypeParm(\"int\", <in/src/ft-espec.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 17"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 35"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned",
+      "redecls_size()": 2
+    },
+    "FunctionProtoType 19": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 33"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 22": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 33": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 32"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 32"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionProtoType 36": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 22"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 38"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 38"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 31"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-espec.cc:5:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "FunctionDecl 20"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ft-espec.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ft-espec.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ft-espec.cc:4:1",
+      "TdD": {"ptr": "FunctionDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 31": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 35"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 21": {
+      "Function": {"ptr": "FunctionDecl 20"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 14"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "FunctionTemplateSpecializationInfo 35": {
+      "Function": {"ptr": "FunctionDecl 34"},
+      "PointOfInstantiation": "<invalid loc>",
+      "Template": {"ptr": "FunctionTemplateDecl 14"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ExplicitSpecialization"
+    },
+    "ImplicitCastExpr 27": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ParmVarDecl 18": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-espec.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-espec.cc:5:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-espec.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 24": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 20"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-espec.cc:8:14",
+      "LDC": {"ptr": "FunctionDecl 20"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-espec.cc:8:18",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ft-espec.cc:8:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 37": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 34"},
+      "Decl::flags": "",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 38"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-espec.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 34"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-espec.cc:5:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ft-espec.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 30"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 29"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 26": {},
+    "SubstTemplateTypeParmType 38": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 23"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-espec.cc:4:17",
+      "LocStart": "in/src/ft-espec.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 32"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 32": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 20"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "syntax",
+      "Depth",
+      "Index",
+      "isMemberSpecialization",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumTParams",
+      "TemplateParameterList",
+      "Specializations",
+      "TemplParamLists[0]",
+      "TypeForDecl",
+      "DeclType",
+      "TemplatedDecl",
+      "Keyword",
+      "NNS",
+      "Bits.NumArgs",
+      "TTPDecl",
+      "TemplateOrSpecialization",
+      "InstantiatedFromMember",
+      "Bits.IsCompleteDefinition",
+      "TPL[0]->NumTParams",
+      "TPL[0]",
+      "redecls_size()",
+      "TemplateOrInstantiation",
+      "Body",
+      "ExplicitInfo",
+      "TemplateArgs",
+      "SpecializationKind",
+      "TemplateSpecializationKind",
+      "TP->NumTParams",
+      "TP"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ft-espec.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [{
+        "x": 285,
+        "y": 80
+      }],
+      "end": {"entityRef": 0},
+      "label": "FTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "Function",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 75,
+        "y": 195
+      }],
+      "end": {"entityRef": 0},
+      "label": "Template",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 130,
+        "y": 300
+      }],
+      "end": {"entityRef": 5},
+      "label": "FTSI",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "RD::Prev",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 450,
+        "y": 355
+      }],
+      "end": {"entityRef": 7},
+      "label": "RD::Prev",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 7}
+    },
+    {
+      "controlPts": [{
+        "x": 540,
+        "y": 300
+      }],
+      "end": {"entityRef": 6},
+      "label": "FTSI",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Function",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 525,
+          "y": 200
+        },
+        {
+          "x": 110,
+          "y": 180
+        }
+      ],
+      "end": {"entityRef": 0},
+      "label": "Template",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Body",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 450,
+        "y": 335
+      }],
+      "end": {"entityRef": 7},
+      "label": "RD::First",
+      "start": {"entityRef": 3}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 552,
+    "w": 729
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ft-espec.ded.png b/clang/docs/ASTsForTemplatesImages/ft-espec.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1b184b70e9fa1e28e2d01d34fa585c85f96652b
GIT binary patch
literal 17826
zcmbum2{e at b`#-LfR!JqYW(+DJ3E5NjH5IZ~hEcYVu}qdyk!{R~NT`%#&DdfX^$0W8
zrb0I{m7QU-&BTP?`&Q5A`}>~HIluEi=l`7ZH0HkF_jO<I>$=|8^}3e1f7a57cf0U*
zE-o%!6Jz~zTwEI=@c*H$Jm5-QG#kOiwexe>g^M at N`1$y_``+N<3VA#&;uV-_JXd=5
zbNKZVW5g+AqC)Bsqa?Nyt5w6qgmuL7)v*MW>edRaD{?w(?5XSn&o}Vg`Tb?U+o#EL
z;{y1Pg!P!Yphonw)XLd8Ep5#)d9cSqTJMLn`2FtHG0kpE0)=F{_vVE)|JSjM?!{v_
zsKXj}ZoLm4l8TCTb>ew=YhgY%+(xCFPpmTX<zPX0?u%Dmm3~z-Dk at Ku<MXX>u3R at l
z7Uld2IaP`q#*w^_-|vV%Y+rIyQ?lj#tUx{Qhcb57!8xx=dgX~lp3&Du9IQ{y<`Xgv
zKK8iW9NIwYrvdzjte>0Z{6y(VZtlyh<LO7T%?v7a(vMK%BcE=ny3X}&Gj;zai9Hu7
z1MW`_ at tb@+baszWpjEFb`)1_s<;$A_S04U~2uX2#eKp{gm_xsS)juZ!Vvk2PjR-!g
zhD>j)+?PIhE_9E^)uNryuzSbxqL$cZPXXJ{KZp}5&Uka58<wI!$F?ny=@NI^+=UM1
zWy_`o(!XSKI3lkvYxUfgmHQD=#SE{WoxXaEPvFeMegn5b-AmdT2D)vx%?tne;Mg_u
zL>$fILGt7&9(#H-etd6~1=S}&_{q?tBJVBuYWIV=AJ~soG!Rk9TW6jhjf!NW-cgd$
zB&K8ipR^h&^Th7DN;tYVBavan^=0vhIk%wF5ktMuoiZDL8h5?Ws$JUmSb2Nxr|&l;
zHja@!3k01~C}xbPR`$H0D&8!Ex`!`jKIr!+Qgj+m<aJxi4oy0ST<|7>-&FU+iB-9`
z8}Co;IfUFIye4o;*BQI*aHFtK;@bAtV}n05tcNKbNqHh^Jpv}=SjHtuJ>QL2qN?=?
zp_>%`!Dya}ej21%)6Ku<f%*o-XTFYq=44!ZTQzm%_dX52Vc}ODm0ZH5W15?)=w at Ws
zXv}jV{;kW|{js!}tF}8LHoaByZ=2`dZF;6lZx`d>POTQ!%PE_TogZYmzgioKN^XAe
z$*kC>K%iK4b^DXkdAA<P9nvXakv`AwRebwOp#HAkkD%l)my9M~Ogi<`UTmKqe!H`r
zi>Jo^K*81%nH$o57h02THyr1^;>W++j>>o7_gq{0$;-pXIa<$i$zg at 5f=3TZC73Mm
zq8jsrEqN~Qjt-UC`&04Vm9#HA4(u<ti5bb%p07X2&m*YixRyjlDT^6gGEcx6UN%tL
zCu8|+_*g_w!?EYal=OBwy#&!T{+;6X+bdPy{o$Q&je$3UCO3Er>M89QqK9r<wq6b}
z at Z5U4MUv|uIo0+ZE-m=^u<Sad(w$|yByO@$1lPCQ*P1f~zbz|vdI;jDHe)L8S$$HH
zK8&Di1)M3nRCEcs{{px1Z_nt|04<3wkFkXVy8EWKybT?W+G6kwCsQ89zpQYh*KyaT
zSIkdAd{xZ6ZwXg&JPt{0RJ=TXB;ymaD;!&PIe}Y}Z{v&)BA{(ny&iG at _YRe|uX8V3
z-z_xV+W;k7?~{={A9Y6NOHI}?6_PdlB%=6>=YDG8sr;}V(ey1dLgCk5I2DnT-py-!
z?493ziBXt-wmHXqv%sq(NAPr)edlK$K!;0Glz-4whh<zg)@*e)x!u<D`Mkre4(&ac
z6UE#NxnI9*X}q6*@TJ}<#6>EyEcbbUdj8$S;SgUtTKKM{K9_^r-U{y7T$NM*igvxw
z?_<~Z-Ww`?&put~Q9UKtJk at S?Ax6^T+nclpCT~uPa~HnF7I>;$ddk|fd7);}z_&V#
z&nOYc2|t1(4j&Kvc2?>`xx*7GSG;G!#^?iTGl%W)j}^q7j$71UP#H;dLOj~IVbcPm
zI1jZPEu1hsH2w&G?8?@idY<1nJ5I!G-te?(7xKn?`D-KZ;thp&9J0*NT>KV|-E+4s
zhdLLh4+-&G$?O(-AJy7qw)xkgxwI#5j{n${&zMg`3?F at 7^dxvoU_Xw^-Fz8W5OHzH
z2F2~P;Jh{0vdhC@^tMyl)6C`JA3WwK$Sm8hpTf7E4jD at OO{85Lei&c&(`xitnd=>k
zTn#lJA*=6sL0KAADHFpL4oxHB8*AbfT7J{%_H6NyqBgmZ<o=n(V%Z!0jW<kQ=!vn^
zQI{!(P9x;i$Hn8ihhz7ucTjYnm4%*s{B6kB&#y`(1j|zqQ%ye<o=Ttb(OQ-K<(FL}
z_H!pWAohK?mC at J(-Gkg^=t5te`kPo{<v62z$@=xrLity1b02mJZ#I0vA4o$<G;7kv
z5hs at 97ZFE4#S7#0P=*dM{QQPhV`nmwB{$VPSHg#l8eTpdwHEE>5`Jn>Zl~$T)Ul-4
z#BiTa$r(nkm7}g*(|5Y)tJN66k5GwI5;(eKR2=kZ)4B5buZx}8W!)943X$1zNi!k}
z9Tu18$D_8sn%KML{mpGBOiF*~pWD)Xr=`W_bYx5vU4GNChd*QPL^-)_^~}rqUiZ+z
zZ$98|m41|@qNAc?tKO1xF<)MBwbK1}o6R(AGw}wC9yhGFSdRTO)}F=|Q8=L$+OL;-
z{N0mj+7Z(!$M|k!53Vh^P&wz|%dQhs<8o#%veojet=Nq}w at qEm*GMg#zL1Za-(GwF
z(2J5({tsRXUz{&u;%mm~!&jk82R at SwXBSQn-6>AbQE8JG&fCeyjGsx}Z2UvXVne|9
zhC`Bud6iOp$#=3RZ=TwyB_=RQ>#&!yjoxqiF>AzAQ_g6|i~LU4nL}qThbTrD9o7?h
zkmF+;QA@~+)M;)FjIDj2>+kj2bZNuT)hLePd+oSGfuX*KUm6f-ee~WXPq~AKZ&D81
z52f>&?$&s)tEoe}TcuXt*N!|Ea{9Kxyz{m*!`(9N_zgY%mRl7juVkCWAuB)SW%N^a
z{gO*Is@)Wy^va&A^^W7|S&p^sFYg1)rjvS?7r(iFZ*VfoODTu2oi9#TeNHgT>y9!j
zI{K?HVB!Xqyz|MR8>iuh)dgZG#|c}WJL?fx_1gXJEq^VcCS*{f$)3CKZkJl_QE1vK
zJ!}54`8{{wg+Ub8tDgp<5?OizLh?SYgPNWWZ=-MiG&i8?mMMDWh)=wYX&xb4?;PCI
z<K4*8+bv^i?pbToi?|xkuX**{YaCH)H{Xi^-zk=P-<P$sn<k7Wr|$19c^hI&T{PHK
zaPsXaJ5R1nojkVs)cQ~+|0mSj;;n0HX55>MXf+n9W!vSKWofRX&*zsplJ`y>mkHeS
z{i$|!iNCE|jBcDbJH6RvO396u9ro3&hL&><mpKzxk#qi5$IPcg$KrE%#eV9f_TZj1
zXs*15R^ykx$EYaf42rpR at -%HJ*f||mCiuJv6ViHi^6;YV(>x>Nk({C@=$F5QM18&t
z2Xa2DH)zQ~_v`iy&L~tgUl!<_<c at U<3%;B6X#DlwJC#-Ud at r4UE2>uPI=u4uQOJW{
zlQAz=yV%Zs58XDVoZJ+6S+u2)dT;#l at 0f3DWcOWdv7hdW@droh6Ww0gOy4{0hfa0T
ztE%^_eH6c-V!2ax&DDoFIy>P?vQl*J#@4C!uMYmoyV}^ue>UpN!5eCUvd8nb4{oF9
z+ at TptvCW2pYjFi-7X4!ukMcj`=SJd|b+eM@?%96on){LHXjD!;a_XsoLN6_0r|pc2
zl+ at myPW3j%H+^GL%-sI`{F==0iSXcb>AeLX!|hQqW~1$e=OU4n6}GgzD(B~jX6=;E
zR}}TW%4Z=jzrX4CyS)CKZ{4uN#GzBJcdE^U`+9tx1^1Vp5516O+;C;}SiFN%f%;%~
zg2&4VG~x1e?d7YBZ!8DiT-kY)kEvomb$tIrY!2xi*WUK}%~!TjcwPKY?wQ#uxmL;G
z4vb;g)Ya%dXX&CbDK*jUJhXOHe_=s|`k{%<Wje{4^{gL(bBVvMxW$st_JVO at 7lt}U
z<=-~{m>qVgQGTT7%U6B5^aS(8-HOQg-jSS6$}-PK;l~jtZ#B>!yKa!Kctu(?=)WcC
zPQFlaQ=Rxp2$!(DY5qaYmcb}q!edsSsG^)tVce%N(yiZzc+<qqPo5CzR640pme_WB
z at OisVl4->&*Et7@@17x*8)paXN?jVQ(q*okjc|8$)_Wbc=w)t_7 at HGRt4n{iY2}?5
zsfv8>#+m7<D0+42DfDv1G~c7fAK|;=2EGTroz{P<Ybr!^4EyxJC2FejC)w%%*6eMP
z+P2{@L2>n3wektgK17Ya)?CehJWT>!lZu>gweJ%oEaFEF6>WD3I#9T9#!IdA&fad0
z`BU`6E=Pg6*8y|sk8QuHiCn*2?kZzMD?V7}<G-hPyXuY1E^7l1t5bN*6BQD#Y_VI^
zG&|lv#Rtp#onC6#AccP)S53}W68Nyxu_Pl?bEZQ>;Eu%hLvQ518fk at j=`N*{E>OMm
zO}&-h1nhaMXZ2&T+pWum%f1!c8-3IKJMP$=$gs_gGh2D5dFn7B%8<*~%A?VPU#Ep*
z*zC0}mn);S{T{f{xwuZ=H__L-5Yjh2&|fyBk?ir^?ShEfXzGUPraFrXK5Z*>o`c at T
z`}!N}!sUM8`YNm6XX+2{*>rpDw;D*1qRy at QZ-qab2rFH>Yrh+`BE|@upZCJIaB;o0
zKyv(QkRYGpdixx;HV`c~-QlY}GtORHZD2p9HDndDJy-D4((r;qc!q0D0>yi{ra{+8
zTy3tpC-8V%WZT&T;9lKDVtE&Jr}HZZ9V$r6-kziCi0FJ2arh{#5Ku+#sXc<!ti4I#
z1x&mkhzayjhKTjua$&^WE^hF!LW;K=aRay)h0?u@!S@^!D31r1zXecT$j9g4ypLe9
ze!l{hGmtPk1(tGsgo$xQq2T9{BH*8cFpFHqs^Fhf at M5n2Zwr#W;m7_j3RH2YZ at O!-
zlr7wK1t&FL8lZ at y@_2 at B<Z3J><}`8Ekc#n*r<iw0L5S1D4VC8l##OP&-chLdt<?Se
zyt_^j4ep at 4(wDce4;A)?E(DISm?6{8ri4Pj7KD$>d$E{Ek%N${zysOd51KvMa+B&*
z8R%i$kG(xLSXWzPRzbLiqvdmcj)RmDQI9xcrm|2{IToL#h2*&LzGu>LI(j)-hm2%t
zOlDGAWJTRz?Qz+8nrcFk8gZINU#!yYJDI4US?f#SP4*5&^VYjfOMXE*a{FJO!<{&q
z+cgnxuzzU)I^HE*Jg(!xQd_QcWi3g$9wvAbcnR|KqNl+{+Q>{)14auPfBBQPxA63-
zLL~O?KDq%>uDR(z3QRSax84z^+W+$B788~|_eFV#wx}=OJC!IDy2_X`CvG6fGmD=F
z7r>Of4vK$Gab8*MXABv(G`WjBZ=d?zEmvovYFw4f at VdqaHlO2jFf7N#4kt^x_J)$`
zMhw2W=;<U%<)NlAdw__<nf8R0jENWr!Ob2e`q?$dH9mQX*?Ta at +8GFR*R<F}m##9H
z;FGjhPi<5dk}6xUX{dOf3&yH{HE{>E0}$KKFA1F{-bHa=%K+K}U%0>}Lh<E2{P4~Z
z*9Kjv`|- at pA(^Q7*!Is_+7RNItjO6m{rA`T|6MGP5Eez=lYXpCUUbTL2g(PE9 at 2jz
zg;Ni!>pd;MmmknUifqtZB|WT_h4dZ&y&|TrBP at QJXadZHu~w!h)j$t at 5>cI7X(7;$
zttuHO;;QWLpc-6>izrt`=vsz at On@0xXSrWYB+oPV9POBU8sHL`zX>adP at MM4{n_XM
zQI^AI8m;MGd;cuwV^_BB{KOh_#J!3g3>md)a>5HAo at zt_;ioXX!ie3+E6qRG8JS?1
zenzq!%DfzTW1F|%f>-4@(ZIM$39>#M<B*qj|E8xo#-sg9XNr3N7x&dX at Ww>rt_6sJ
z7^RYZ&8y%gkAmBFNJzQbyIYQykCk3aNAzp<AG`YC4vL#y_tRSbe4Bm;_72J}@=6K$
zO4w-YbcWS$VHrv2Z6MNd{U+%GQF-W}lGQkQQoXPY?HgCuf$UtcAw=n8SyE6_zyiwG
zSu!gl&2u!4LAk3~{Oaim)6>LTL4<JCG-sHCxD<3wlke45D$gX6<2ky2tja;=G*QJA
zNc~VUqXF&j?_21OKsx3k1C}^8!#;n%>Mx+U!(e5B6UvhSt6f_fsxKWXXvh<(KT<bW
zI4i&zlG6d4I#81^LdD*6N0s6GmBVr2`PqJT0UW8W`Zh0#&^4pM7AU-R=UAUQpp7Lu
zZpky93sZbMsrI8JsML2KH8<J2&Y5WB1+}tPsFgzsSt{LAMK>)BbAr2P<25cYMXBPX
zB0D at Iksy{qFK1U%WPfC+o$*qjl{*d^ii at m#cq;2?ta?lllJfaIF8U>xINy&AaW`ts
z=WCy7fxZq)Ro+-ox!=PWXU@#^r7&=2nBhcqDagpLC&Q<!h;&7>yc)Ra)4**65}f_F
zG##L|el-bLkWsU@@2imz2vR%Og|42S>?J!8<>-4!_ck=R5X;?gVL4iM+0Sh_DXH}B
z88YDcTT at 7^jTPpuXGbfhbiZwc(5r%_VwVY8_?y$jLKn`s$~GkDsWz0W=*g6OHbBr0
z^KXo;KwG*r0ugg_kl5#mu8SSx`NwQO(<i?pf|D5xouV{Gcj?M at tAmhQ3Iob!XqvLx
zUv^{+PSO0fQgSbxIJrsGl}Qz!xFGCIH)me&HVBYwfz8(iOIY!zb~+vX5LVt`Lqs=!
z#T#W at z3%WScY_~+k=l6h_%j<7h2XJt2II@<q~tTJhairau%yq=EDR>w?Gn82l-Q4D
zj9=#$)M+i?c^MSV_l=hzw$v9s!a(3#?2520H^T55S{mn#F&KP-$wowfT9z}a$;(yS
zN|j1JOEeg+Ck)hDsQl!ik~vzRul)?}`&vzA(N^9BM1u3|6u`}muO7aSc*YZX{<VoJ
zuq|yUDw}b4&-w*AtB)RTEC;TF;Pxj_q&sgq2*-^^-t&I#j+moP!*Roki3c3&OESvh
zi=p%HwV=1>k)!|yYj1y}++^`q>aK|8(rg|aO4rR9=@=b7TeaXlZZXAODycaoO)3Bi
zM<6*$gmBD`{+_yYe5iWv{58WK=WY&uAg|{uR7_9tmV`Lcikvs&%-4p*TpwnfNE51W
zxIm;JHb0c_0fUjX9n0HfEp^^smeNY{acADP34KYy_gd!`zI&%Fo$1NMGw at Z_lO@qm
z5 at GU@3~)aeh;|A7h5I`^ht5et#V*OvtMDVEU)sG%p4U$i={ho`N!CEQk7ub^3E8J6
z_7VF at Hsc6Y$7^Syv}SGgV9b5mJ*DMT_hH+q?nVPj70;GRSZCNUB6>unPf1|<wItXR
ziSaDKx$#s%!(1E77RPewGT&rXqH^*>iUqNyf27sRZUGga%qS*gO;A;3`qRNCfx{~m
zPjQxpAU`Se)D!UDv()T~4M_=^Q!9@%s6&hzyH16VUf;mKz>z!2K`y!4Zp8BPc*bO`
z at PrMs<My*%v5$h4sS%Smp8yr*AfZuegoph3V0~j)vmj0sj{=ziEy#jHg6%oJXm|$|
zX$pImXb?5lqe_&63~)f;fxp2=|IfWgM)0ctiao#wg2kV;)&mC!HpBMdFZzz3 at ar;O
zg&rBYl<VbK*9pTDtX}Co9}u;`pQN+bO4A%&KcxWRa*7D7P6k|#Lggw}+EI(+J7EBH
z5SGTD`}`041_HdctH5B$Sak_;+XW3jrbqn#W#c-m`uj<aebNhXT(Wnvcd0UX4WN46
z8=xqvjH~{Ksh#T&6XogQSsfO;;4f6e?`7J{^}S$8vNs`dxGYhW87VQ(c8knmv)$_M
z{UJpV3mL at gubBp${qu)b)m>DMmdspvFF%aW;IQ_GT at e_70YVl;zi at Bt+&bC=EEtRS
z_h><X at A0<mhu6#*Y!Y*X_dpfoU(f*X577C0>)%hXq#lSZ3MdAf1zrr;z2~;$e+hv4
z&}SBY7-qh?jIkMBo#MSO4zL679R`!|1wyzh4Zv9-(Es6(Dc1+<ArsYD1|CCZ-kkoD
zMp?LlI4%y}z-p1^bmizG&ItjD!+O|vA4ZsfB+?O>0L+REuy3$iuvgsk?}rKvM#je&
z#F8&Dc%Ph5d5qr_4Wnfr>&Qul)c%klIgv|tlQoY9zeJVxz0~w>OfBtTZXq$YZ2fy*
zpBzS<tFF)w+Y=cXT=6 at 1WU;5a?;+(lmeU`$N?A3mlARMy5S`CIgbw?PPC{ET%9+ur
z65_ at f@<5+D?+;^5`|eIV1-XEuxFnw`f0)IHbW{%YoPMWK&R+g<1}o=&<P8aBj)<5>
zO8DwH2CaW{G^9#gd0yuvA*j({rrTp+<fN@{OG)@O>P_YvOknURRIKzy;GAG;Go#ky
zFNOq%)=s?3hRLlBbzRe4TjAJuc@=J{>yFo4ep5d9okEO=RI6PbT*U)8ox<Q_p>*|#
zT{`+jyUCO=1TH>7R(zsc8bWd=F;k2$V%xm*g^lj0&%Y^fU(8mn-3en}*nXfCXYD)g
zEdN|^x)CcX)K0RiF)IQp**$^B1n3iU>wgLmT;*3_9FFAZ5eBBzowa2+1>X^NNz_55
zo9JO7g0}@aNOS+hgto{tejiz>w%F~H<3x`btdPP+ at Q#&p)J~TtJ(-dSO_H(UBSaem
zI2h+)Mos<Do(y`Z2L_MN&@SjzLi9lFTcJcIJ;J5iF)Q_ZhI at zc977e`uo2jf>mewh
zA at qHdm_&mN6fBY=h9BrA_?QF7v3{aY6KOs;5A>J($Iio^`#}sv81?653_M?~!-q=&
z at CwW+69C(LZnZx{)T_9twwsKrwo-e at w^7^x02u;or)tbnX^{(P|7t6C5Q=+y8sOVy
z_|z-{UzPpe7MVlv=2tqp6Uf97223HI9b2fFfAHSG at 15${0yGMHK=?puevd<9ZOL-O
zD@=F&hYy{Z%-W=Y?g4~c?@BYDO$K`#l?Qe&S=W)+#<0?Tm1*zocIW_pfmIk+?VXV!
ztT4OK|FAin+(CM|`1f-6HJ#P*Q01u==dsxQEbW)ok?1ywR0b4e;L=7R+ED|%R<z6h
z^SCuZ4F4$q*98UAq<=0U3u?&z++{pZsV#7QnUTFb?ho?R&o`63Wxsl1iAK-!q&2(e
zPRM!Sl^~i+cLtxN0HJ;^y-0Nb`AQ#f1VLVa`KSIg(TF^#E7FM<7#*B*AZkfHC`4)^
zdT8N~CW at 0pODVh;4c#+Q+-K+Yz_!#D4>8AAA|9c-7RJ$RM*tK4?shG_<2s&Xh8am`
z*bwTMLu?YTC23Qwz40jSgTR|uzUf^+ReQW0 at 7RAlK+@G~f5P}t>D2Q0g!WczX~<@(
zwNrt3&ckRBjTDJ`#7CIEgMGe^SO1C<b{*?vP7>rn)|tNqe}VH)*k1#q2kM61;Pf4k
zmHwdsXEjKXv-2CkT at zp$|0)Hh1aBqlI$w%6|0_N&6^Vn8L>e%NC!M!}av%TZ;>s at v
z44>@Z$OTvd<U!>4Y!77mI7NbsD`-Emf7{sb7A{~FKz_hCP96o;!Mgpw2(0r52rY3@
zS3x=!8_P(7Ny&<W<xj$!ut-j;)mvH+s;X(*7T_gW0&mQTr8iRufQ{If;Z101PEjz2
zz6M-Gk6Y(zkAu}hu;oeEfBzJs`re<VKjU!bX>Jau2OX`3{lT46d8`AfCO|)avXIT(
zR|iGFSe<nbV5}MVV at 67NCCaFG@5I&XAPg0tI$oOqVb$vsrEsq5JCS{y={ww9MJ3Vq
zEC}Ao4EaQ}VRYgSu5ZNzXB)c1l+6|sRhL6hWc-}@nUtkR3`PxEhMSA=z`Icf&STZc
zdv|f2JqqDlMAkWg1DXj{)tlf2#}6*9?bl*1r?9bEVH;c&A)W4xT%V<auD|pI$8=~T
z*IC?WJ-|w_H8+Shbi0ZTgkt{<T&Kj4K)u3(K<@82alj?0C;(YTvjqH78I*k|5eS<N
zw%gKTDdt)B2q<#(H$T6<I3Y2WFfF>CgbM4P`jdOYxd6Z&Ug>{fh{hS>+S)ty*2y68
z6{ngN&7{B^Vp9Eccf#{SIttQKwaF0s3u77HRNr&eR~B+!p9IEusR|)`zlLX#*e_}&
zHN(C-4=SeiTi093ZEuAFBSgMCZ;n9?#S at Cb`fKM)R41qru_z-KiZbmaA(>9E)VU>A
ztoA8a$lk**(y>bdqElE4F7fyw?b=StP$x?|Q0s`x8U-6L929b`OcMG<KoweCOX<@m
zf?T**Eo4DI-MN>->`V*A1Q at WD${ULJs?P<T^H`B%eV^=YSY8y?wuAl3I=^<G^C;K(
z3E|~R5LAkMmh-&8syX9cQ9$MqVdCKZ^0`XNOrxh>otvAM!w0ZQmM(bFb5&=j%$c*f
z#;hNu!!v`)St_69EK4Y1hC1#^5szkyb?26oL<`65o?7`*JT^TB{_ih;CM+)zqFBx)
zbVFyH_gbg;Ey(avlU;z_36yf9 at qbv-ymtO>ehMRAggE%}L-$a2$+GE89FJf3$;Qd>
zbRRfS@=$FvKg(3!M at 60^Vg+4Lr97Q3?=mM2P at Gbo{5P{H-S25~&w^dw4PXb1O1{lF
zQ&PfL<jAKxl6FV~8(H7MbcqEtWJ(;FpO4ioYXOxH<Eng%XPwF3wB-BEd}rGLc at yI*
zPpuQEb%XHP^FMWu$(_KjCrUg?yHAOhcGO4NMcDwq at k|!PfMZ;sR3fB+0AA+5tjIur
zXv?1x2!Oil^)KEO0Du7mwni&FU>HXSsRp%9Myt)UTZ0l6yn2;{q5ZPYL4Iuiryh}E
z#6r2wHv49s?Ur at yCMKl?+T{Kuxg at 3}d*7^=T`w18)l|rG#-B^9AXnMI4=fcasdMgV
z^c|~A3#<Z_laQ*U9)DqHtI?FYdnU%J<gY2~wUN%RrbH=Sv~b>dK$mcZ_nCRpDm_Q8
z%0Ev}OnbjnY2y0YBkNU`$@XGtl3J3_!lyOQXglawqH3K at f5Xtpr3FQR_5Sd%^z%C2
zyK&#u1P5NULE}Dq7A2zSA`T{Eyj~K~2y~;m%nI};-Md<GIe)O3(uA;?q8$SvkZRlZ
z`M5P&M^%QzrdIy&lOta#TwV5Ihn+Bo<+)y!$#}>sIN==2Z%;Qq^T64XImQrxXf+0Q
zPI$2cW-qPx5O^C6KEvgkj1Gc)ZwLGEvsrHVJE&ybGl3He%?7b8l8~?rZwm15)cs)P
zfqzp8u;!0KBq23U+*Qo8<?#x0^nn_J#(a>yUwt`8lPHESgo5j=j#P!VDD8!v5U9mm
zJ3x&<HD0K+kZQZHdb~UkTcWkiHs^V;y1!g?^u-jQ;YxE*ius%|O$cw&N~bkHsZO%t
zJ>M<cLL<4Z%zPU6Pw4a#*2ZX#p6O`c(H~}6h(?d5U;S*XIwKEDJufZ%Wt#SC60SS=
z#$?vcj79cLtANiT2S2ho_sRb8M8?|q)SjBFjY;fx?L!4=-PokkQDfC?$-mDQrfJV5
z;Zpr- at m6s*e#-?)ep3C~nm~sNmoprBjI8Das<}E at vF#B87oqeNfb7TC_4LY}S?XRY
zq_AfxE_ZVH&6&m%fph5I;D`4Pb0$JY!#^yy9-V)LQ-}xt`lj2PSit2gcO>WI4vF9h
zV&QMp(r~=Nk%lmb*;ip>vcDO#7ncM?0H6sOyo+1k5}whOL at m)#3RW|RT<*}~4KN9A
z at eIyDb6H1(yg9&g3G3ESnSg3w#W4n(glL5!XtGXRXQ{dd&oPap={PxJmvAP-hALM=
znW-<4vO`JuM2 at E8!3NNLg4V#2z_YFzPIu0Jo$7GYT+bu{liR4PjQF}`%ZqTCEoz<X
z)5NBik+ZAr(FdVt;67aS49Nwi06hQSGdssaby49doGZ)}sE!Puvh&KVZg*ZhX>it9
z6=Mn;^(%L9GO)zph74O3b1PkSjH-E|iySXFnoiy8hwNI0#=H<Usa+k)j8{@_7^X0v
z$+keMxK1D8tWP&?kUM);OI8<ji54(hA&*dn?y!{LlbM_Hw%T&WCOEitRX5P?HG^!F
zEipjHXYO0b^L#WQ!;4Gy)-qW?8}jGT;vkaqS`MGTYSZ`tYUt*;3~((9KacA*<(5W@
z_~Btg{N$U$FcZ!zk2kh`{20He?|0@=O{Hg0<38x+xc at 8f<bwEE9#dd?3V+P!m2&kA
zHCx@<PD?>!7jsw6YWY-gZS4D(k&@7d|Lp7;$OBGXf>KHYbZu3`Y<MqVGEW$TvVY}w
z1lWcQ63Y>Q at HxtMD4dJr<E!Zof>?dUP4^>w(rdQLhB1!hDGNg~{DeeVlYeFTf)HLE
zdOSz9^d&fuPN2dY?H~i(F8T7A=a=_L!ah6$0QX}8mfN0N|L1#zej^g`|BB=PFAoeH
zvgdEEKLw|C$G}fmVe2m<5QW at D0OjKyO;ocT&ywpRxS}vF&Zj4^6v?+ at VVhMv00e}c
zcpdROiMZi&`i3ZAHhRRTv!Bv8fKYXc$nW*5<Qmt1)_MLu;Q?pg$=>fp$a2D`5)W|Y
zE5mtmsrOE>h-<p8b`$U`yj*9|-ipSmCuF3i8h%VQH9Rc6wV8`htZ)l8lu9Vx$`z%N
z3;sScR9&XTS>e!Lu9Umn%N38M)5YZ1JVWb)HgJ(8p~*eQEN)9id1)@f?rJr;Swj;V
zJOrU#%M66y(Z+sh at I`3^GS>-7-8`- at 5=FVsdY}a5YV%07T*_0z21ssr(s}b~XTI4%
z=#by<><^8vC%x3yIi4ic>Jya)eyyySfQCgo*QqS)ho7Yhi8;-MYT9RqQERQ~jKN>!
z-EMTSUEpD1#vAHlB$p5Wnjoz7$0nXQRy=zHDtrU>{5iwVtP1RU<wrBqLQn^Qy#qnp
zkRrmme`RwJ^7H<^y0RiN3IJ-pGT4-=4(;2ub}lYg&#`W4So;5p!|fy4$InaS at W0=O
z9(sQO=s5wFDd27AAzcZ>)ok@%kIu-k!?1SzhnlU<@I20m*5)rEKix`g?v-|Q-UwrK
zW6ZCwV)X(GG-lE&^X6u7LDl!`ud9?OVQSKEQG3It<F{U#!fYqnsYD1LKe=Vi9utkj
zyEiO0BhI2fOKZ6hrOtngjlD2Zyzv}p_cY`z<{MRybx4Hi>u1$C5!X1nYv=V*p&;q!
zUmB2xa&g$UsoAkE3I3%J7#%S9OflUI1nv8u+8CTlu4qta!tdG#eRsR at hLULj+AeVW
z47MfUvWRE2c46yn+dAKMrE*?hadey#TgrrGGtt&+ZCg4&KGqt3v8=dw(IZ<C>8NTv
ze7+}Crbe!Mk<BjV+ch|b6k&=!J40k|WuEU1t*9#qdMrQ2W~2MRX`2y8c>WQ=Q}Kge
z|C(2EP-5&)&#u4)ZByW>2LbAwo!;bD`m+i(N6+a(&E>yjvxAM=bRAs0oTU(2#9}Gp
zV4n+9nINzBkfB_Yz*<Psl3lLLn5OPTPncA))v3)SBxl_6;ie%M(79NULX72h-PiH+
zz#7JsS3J)GF{b9aIi~4#?BK;wF@#fnG4%AvI?E3jk at WL-+`G~lv}}g8dX~U^H$l4}
z6f;JhjH|qb6z29(bvVcHsf_jzpBlOW86hAk1O|BE%UDGlQw-(}s5D7J=gZSC#Gat`
zr0{BkVm=zA!5+I0h(%8~N>bBA%rK=}LKf2*{I^`R8Fv9M$)I4)l!WTVzjeD2jW&fX
zzJADPdU%>R@@!(E(}VkdECV{p1l5P!GkUfi3VRN;`DTNJusohp```CF6|R7rAQ=UH
zF>AuWvdFvL>pd~fi^lzk$Q=7WNRc1kYl at i)u5ai%3Sbu8J>5zbe=ssm1huQ4+*JX4
zSvau;G*TEJy3mn++B(Z>Fsi}AMOH?uT{B3%QMjX-Ag&<JokxQ at aBMasa}i}{#u~4c
zI=9O59{}B+KYhD<@efQf!?WuZS=hXMF!+C578Khp*IxikZZ!(UZr+;Y^h?M-*y|_)
zUbD_W$j<(726qk#Vh<QJx}W?<-F{kMUfi^{qumY2sQ)Oa0xw<G(58y7tXT5 at 8c6C<
zwee;`wa?mg`aJjvSq~Vw4FlH1+}lo)P=-55wh4)k!n%crB5beYRxw7 at r0oHBQRp-a
z(3KQqqt;ee#@CEai%<LOU{}qpSoF3wZzhw7OABUkY;kJT{eUrR(CrB(i}E+-u1RbQ
zt!P<dEGcV4k&24t^$l%04ucTWQF{>SXw2fF&a6xuI~irWDm|7euct{OXzpOQ&BD}G
ztoY9&6nhneERpIe73#!8gX6pLa4(Q`TM5dT?b2*IAvcrJfcM6$Q}^4a7Wh-_?q9Y2
zsvIc=tjX`jcQ at 2814Hw!>;?d|`!(gDO^*6jsx#dwViS<g9 at cml|M$`d3<|5$RQ26{
zLikgZ9edTbYgI{k2i2UZLftP3z3Bx8UiQI`;@PzO0Tiypaxi9XCS)BLy195A&tQQ7
zMMz|~D}2oKA67VXw4fOnsU*Y)XnKp)i!*7E&hhh%j&_ATHL>L?9g^<=#f!2~aYKi>
zWACGIsUvyC|Fwcpf0p<HW9b7t%SE|wn{p$>{a`h3gR3Ic{kP=@8<3fo;^7|tUhs1H
ze-j>{F*rPfuYOWcvF0 at cU&N<O+%khlskp_4m!AJP6FVxTJ<)k{7+@#zAxNOjNqQ|c
zFc7EU#mdt}gb_98-Em)c%P6ZY7VXa2_GA0icF|nfL`B&?I0K-oHLC}n5j(%K4M53`
zP@<9Vsl8AsPz`xoEbEt1Rp4{GN1(vh?1&_(DBfTis?cg)8I2WpvP6yi%5{hxscIhp
zdx```+DR}r!2E!NT&CJ<<*EV~s#w4TR0oj|q=}fRYr8V4klbDEAu*tHTONtUqq-8P
zB{S3+pEILXGg4O`sT)FkhXtxjdsF0*BCb=^k_RLFl3CO8;`PoqF|KH)<>AvrK^6)q
zHNS}E`;zQPG*ZkK#k1PCY;80c?j%^eEi)r_-Lp&BNu_}Ch3^RYtK!fo;|-AH$|Y*{
zG?ko-LdTR{;M*(-1yrKeaD2G8quGp%Y<fmR2kV-VG!{kL$q(xzrWwV~<4ahbrV_L@
zZrnk&?V{?4p4<Et^@fttj6$=rfH)#vql{usSKPbBNS7u3xbiOUJEAyVB^M_q27FW4
z88CQ<%IQ?%JDTQQ9^dZ#>x=MhpuR2A*p|m11#kj*^uVz3bB#@ID_WpT2DkdNy~n8$
zcXm51KD`A~e~QBGd~r|)(Tw5-r52Jg*-aA3*$jK1eg<OQ6b$s+Q`SpsSQnzB+xsIk
zzd}v~xv)kL<CjWH#a+qs(dJ(F_V5SaEb`NJJmcbV at 4b-ac{LKHpsX{p>-5~cc%{-W
zF_Zq^Q~M>dKK`8S)lr`6fH-fKoAuGkizsmk=N`G2KjTe(7dt#baR8j47hftPdO4hS
zBL72%O`vwE6RW#CQ7b4bwbaC;ps5f?ALorfj?ltN<v}6}c*YKCj<@fOEe?yyd={LV
zP=p;3{S14AdTGrgZ8Y~BXY)RX9ufEOh0Zv+(YHyfGsZ}dFhuY+zr~2(tG+jqm>EkA
zj{Qn=BvL&~xt>;^Db^v1Yo9Y_8B#kfS9%>s@%naOw;i8<Lz7f}Zeh%tm)4w{hv<$t
z+-f4K_iKm0Va2oHfc9O*v2lGxsIHk7N}%CPguTCPmyN`0j~>DL%hoI&V`!*8u)$Rh
zQg$QCVTovIl4*8s|1sr=ffHcDCPz&Mn<tA!K}akPRXRy^krtIA4v5$}EnP<05_5wa
zM4=ctBx$))V(FBUrnj3R5lndM`a3RanqY?aGX)4@&Q??0riR&6Fk^xREr-8>p~ruq
zoDeSK0ix=WP$|Jr1`_?k*{`qsX8KY)XBw|jU6%UncF2L#_$sJ<;aX|P*95H;FG+|l
zoT9DV`3SXkc&fP53Dqltt{qZHpxMh9W3o`C5z}_t;Ai^p#S5i?(k$~BiQ=ueoQalw
zRV(Dvl+MWZEEdhFy=IQVcn5Z;GpdbQ3@<C9?hy$8bZ>ozYC%|(lv at i{7wsXaj-6?R
z4D^AnkR-L<Mao?qKB#*1^J)Rgh>USnCm9dV3QP?uWeq|MKK at YcejEtPV6y{N;8V_p
zGZ_jCGVJIwqgp+OJmiK+OE!BEB?>Ts);S_mhp$r8CSpwCjw^OrPT_NqW6*k~0I4ax
z6UoWE4Qj+JA|mrZj5%CN{;5wbA<JdgojK9)vyWNZFY_lZ&VK)nKoE@>@FdHhfu}*u
z_g7MX+sUgbKW-`lC(T5aWr|_tiTf>uMUK?<!)Hu!pkW+i+p$3bL`x+qx$&emT*2lW
zi%IId8ouy&eEwPB*)Eo9wXZ)pY}J<_kL2X|{3Fez>;f64a^0k%QZ7+T+3y5=6r`w~
zgS2Dwbqt?Qv~PwE$r+lK`f{4sYsOkzDqTyCLC2tQTd#FHZz&IUdt9#xqB*DqW;0Cf
z#rZ!%gFnV2I%cN!j;(@-F(*y+O{9|NSY1*?=kWdjP&8Dgir3hLjfRq9;wzqqqB6^e
zU`bHZ0Kn*K^;-DRCQ$tfo{o^{Nzwi^uQ^{0xlHGyaNZ9k5dhVarJ;tQ=W_2)S%IJu
z(UHz*C#QJh{mfW?xZ%C}l~=H(UwSoh)Di*%v?9vgT1<dxW|~$(2BQi$y?OP3C+|vT
z<c<v5SIAYfse}QM0(=G-MA&!Bo|@Eo8y;LD4Gk&l>+w}?rOqsfR%dh8i(>3xbbS{-
zdtzKEwrI?oW5*t~GiG&$<^%N9aGIDoUjRqb`jB4+`rbJGWrm*=E|GF$fm;uyE!EGK
zrpkN)tXr{8Q-hD{lS99|RaJ)>J}xCNGN!`|*JI&27V;Bj*O?Ke1eHtD7-E7^I+x$X
z0{yQ;ve~<LKu at nLNuu=2pdt>ok}PuZa@@MF3+R3`DK^xYb3y^k(Bz&Mc3J5|d(^9A
zCG6<w<KB7M?L$Tn4PfPs3yqmd(#z^$$c4GGz2TbP&Bo1l?7Xpy8gi~F?HA(hBpPTU
z`#V~_STYvMYEB3UJDSzm-h+4U9QT&B>G#6GBU(*_`fIzuY)q2=l|0#ihd*tZElj52
z*stu2HBzORR0FBsOE-{B8|+B(NHX#WMfQtH49r at C)7B_W`r(_T{7j%e#SP<WaN)Cu
zG!~<4n5`VZZi~|lEm at 9IDJQ4aw<@<_*%2 at n0e0?s5Go8K25&V&dHXVF at N&4z-CJ at P
zIsoX|l&%Ogs)B}RFE$%Q6d;lCGE~le`$`nfbdb_?gVs`YPqs*CjpRry=e%|x+SRkV
z;nP>Op7 at x7A&5;L3qObjl9D#s5Rzm|v}<6=ZGxNm>n}F*5VY5pA;~%vw!AD6O34!I
zcT$nz$P=_VU?PZZR#hhjq^P55#R8rLfh)bpPJ&^2WGrP0ia?<SUnMiftK89o_OpFP
zbh>h2Fk10+vG92-&=j14d7Vze<z(48*0JQqcpK(t;gLCDN_3}_#w at kXFcTn5ug|gF
z1qfzszWmwJ-QI}a0oA|kONfJVvEuU2Q@~!=^SQqS){&Gfq27#~I|VIWzO-2D at aZRL
zErKn<E`p8%qb)GprgTVi^3jV$)r+9 at qr+k-p(90{gKe08n9PW^{VUpk+>n9373Tb-
zNcTDRnDY08-;cwctn%f0Q=yl!D721Nf+?I(z;X|ymh9;sS4}X+6uwmdL=uHq{Cb_<
zoFWwWpkjIi-}?Jiz~sy=7q~g}iFE0;Y`#>aSFu;ibv%V=ym!5_O=$%2DXbEdjHL3R
z!AaWSRQq)><g?y>L)?qM6QL@@(E;N<Ou?_`K#6T8LeDf6g#++(NnJUm1qv*E?EHLj
z!;fuXo^??1O%_U%%Ef%4M#lI(3hon=*x&<lqLiJ3peS*g__PDGBMBP@&45T!ygkdo
zhz2s6y+`38Q2hrFQ0)beN&^QelH*lgTKg-kDo?*^k*$R0ge(HPys{}ovEGU3sGNOa
zKwU}sGg8wI<Co*WS$x1J*{OHInC0BZ8V^&(Y3}h_OhE0G3Q at cqkFvWDAer4@?M+le
z&cVJ;Jw`IamhUINJxQxdwh2EtKB!>==AeEf3zustBHdW39ge*=>2FJPtUkc(P#efJ
zBB`M<UfRlp0Y at Ebv!FCdwj`rvbycgDVQno7y6dbQl!+>);UUI^CD;&F^nfw$EG{>*
zHKRsuh!GQ`$@cd0D<io*@7`r7K{Cq*?}|tes<eDdd3nz73iHJv{KBq>41q{eJh0DZ
zyFNyCEY4UHgj-7 at wKP5n)t~tVdwAYuu6u}s<S?!@no^Tmm8kbrvF5}=4H4kJR~Jlr
zmTM1T388zjic6CK{qE|BEdo7RSjG%HmX62Zw_hI7;m99SA4}emt5IldAz-6fxsTD1
z^U15cOWYCikSGpZ at E5&{(ghtFS*eA%ae+`WstXJgr7Whs$8{q1K&1uhwV<f>!K2?5
zoDc~FMBDKhH1YxJ;#>{Zc2aU>?+vT0EQH5FP`alQ!iGGR%i}}l35 at bFn5oizjB8Z#
z)a=Kq+bFh|MfcDtqF*Q>bUsXRLO>GI+>EtN8n6}X12LDriVQr5RRon`U<ZAmS!tJj
zq5kAke>VGL7OP>>A4dKaz&aImXu!_=$Vtdl)R|0BRgpbV_Ygjo;0s|TVK47b7sMZv
z```9QX5Qxs0pwwe<3^Hx>T}mUti${v;sh|u;p at YFA@T;zoqPmv95D*96h`#{GbAT+
zt#pl$=}|%Xy)<t$tPG~H967QGeC at g?fU6R~X#$_{_b(t}5QNu#i>oBmz)hjc6w|`R
z2G~7Aj#J}4je_y*G=KYgGM?^Qvr_DC(8I0*V+AsRsN?SkRUzzIBs at o`JQ0zLVzVku
ziH<FAs*@DWSeEKewAZD5tK(JKKHMPs%lG~8>i?mJ2}@=qp^RP-d*}NdM(MbT#b>y<
zYknD0w>c!S`Z3(X?-a(Pdu83{KP(5MmZa+UqNiFJXHd?$Ew8J6fJCc2<9n-{Hf5st
zc&ksQK*~x!_pe<rRBrR;?Tw{eN70YO6ecs~>6OAHdh<`_+S;nt$Je-$@@m)m5rZ|=
zu;1jP5NTMmR$PL|xT at +`z0d5!doy^31wngmzB_V?%3_e+?+pNFE>fL#b)S*Q97Cf}
zgo&SSHPu+(b48QN8Ep(-&1|+bRGq?zTbbb1rMjfQlGW__)uqayl?oa4LR0?tkNSDs
zbY;nPR-3TsEj5dzh7mTq42 at Ig^pDqeRmA|G;xk*`cLf-zE|@VD)af*4#okO|IQdN{
z-P0y at PKpy~v*GCKtd%e;j9J3k{sDRpPW+Pt#!nmHQi-gnv_LvmGyy>X8-9uYN{JmW
zimFain%4r|#4gpx8HSZ%qTd(>Cjo$4=&En9F~eBp(GmTy&hAzH>Y&RI7 at Ox&Mjl)f
zE5JYCckFT$R7>hi5zDZ79?b8KQt$>Gg&RPVOZnHn81){QP%o)_7LLk7a&&j$dXG?(
zO2!!e_Ms8A-ta#5_Wz*F)m49;^>6FA^j=KDVCDmWWrg)W{FUd5K=<-9NZOE&!)1*I
z2|$MH$P_lY=<;~|h|YF}0G3lZFh&r7fDwX5gI)VwupERSaP8j^cZ8aTZSgvM921eu
z at B=}GQVhz9dR9r}WnW~W^$scM!2OR!8&^^K4*x!WM(<gmm)%Z1YUk4xO{_`Ns>|Zj
z^<W4p4WZUnn9-$fLY6aTq^c`c2aZx8mz?{aNlR$A30GYULisXii>o>%mD%{gpZJ=8
z9H+p1=X(Fu7_*#|Xnjkprp;}1hLC&CxxT?Jc6}%((Gfr>W^ne_hJOEr@*jsmLM4a9
zHqk*<pnX-xhFBSinA}Kh2EWHx&O}Hdv011!4^VfCNxEtA at 4b)N40?ma%3A)x#W+3Y
z5)CoWxoKcH_z@&N_i7hK3B at a5t{^ef49t)>+`Y80lncPM6 at lUHr$QyipuE=L0m<ft
z^!J`a5}}qA6cqWiKn;L4T?!u^{rs at c`qfAcc9uhS+A_c?z)3=y%dan!kot0~^71 at 1
zFK{5VPYbfD5&2QDR2!@i%)X23(}mSgW<$(%4fY7TyYB#)VZHMZeiKk^Vmzp?#&ISQ
zxw1yatVkyrQa5L9xWC}<-C}}RO|6bb(}jh}-{aJ$AGT7{2Il`|@;V;qe9i_)KIj&#
zKHx#iGfw;&4c~VFPd)s5{cjoQEDGLK&+7g48qr^8H8fHlf8pz)r$KjDX&TufFMhYP
z>^fdzW85GIGzyCd<j0A&^kCuWJ)HwLdt{)(Q8(urMxkYA+{&w3>n4Gg;~MDesIZCx
zH#<paQ~$n*zdLmz8jXgEWpS&{k(BYRtj9A11})R}aYwxf#3YHf8RHf`tymDoaP&wI
zn1BT;1sy3NYA4IZRv at E2>$C0G;inEntS)`zq6adpVjNxlDcu{Wt#IWY=oY7Ve+47E
zi^CW0e^2mcH(#(dV`bq+67H0SfifRhC1njJg>b;3))Xlm&;6khAZfi&R$S^4%tFx@
zFM24PLqc;XYQ!1f(UBs2<J9Z}DVkwQUpq_nl><W6s4n40jgt7NX=*G~L*>d|;QK`c
z+ZBjm=2uE77m}m~Rb(`42T0Ob)<v>CalkeU6<PLY)ecZQNF8b|oRV5cs-Z+|`P~Xs
zohh*pH!}WaA#R66uHbDOv#NC2zjkAa<Rs3YjdwEvAe3bVj~-wGLT;Z-3r=BlZ)9 at +
zqbc35E(af%>it3n&1Fb{K&A=Pk3kFtwVNDJUzb>8&##K_z_Lj6#oqv6(t8-P3hg(U
z>p${<*Q79{^n9s-!~XSa>@Z at 30&rjOYpN(a!ia^SR3-L)S&WcXA8PKwiA2lP{1{b9
zRV%5zqFdt9JCnK7-Geq^VUQ8Z_t at g931GuO=OEMo<bfSwNGcP;M}(L*oN6!K5{-Ly
zb*|;}?~F#VvM_5%&F+*e{;R;`l?i(@a&(m=G0a*1?{P&;M$ZCmx@%BBKY%<tUcVs%
zH(;#DELkah6a0?C8S&PPtj4W-AqE&!!21s%Ird;4Kl*w8MVmoAjNxF?drwS15m)#H
z$G~(9o|FqX8qB0quoaVrZc<D;w{;d}pyCW22f-7zCM<{{jpX#P{A{b_{OB%+{cPq$
zQ at d>l+ET67?}~n%Eel*Lz!D3Swo#j<q#cL7KsKRiCPN*Rg{&dr)amWkk7|msX2?Hd
z-euVnm&NT}M{l=_5u7U{LD1knwY0?&<T}A at fWowe>d&C6Vs7NwVVj1I2U8v|r9BA~
z4NpatercH8ApwS{Kxg8S35#_ZAw?Jv?jm8q?^7I0g;EAmK1_aB02+ssU^K<eMNRAN
zOc|(sa~%cdE+vsPNW~DH5ZnHqKg;I|%XR_G*ezs>O!#z~Vis3zx>B^|AQIUh0f9+K
zFncNCe`|K2dd#A9t)GoUaldT?KP<`H4P3-gYUjeuhVK`#kzj`FO}LdRO$M4Xr)Jkg
z%}%sHob?w2fB_B!*Lu`|tsWldSr0ZFzF871D%Q&+p!*pHJl?vi2gBZQH_RIhyscv&
zxg5a6|J+M6gEJSNs1Cw()g%*4<fWI0?b^UKj0MOEY?EjGH*oOp-2k!ylbC-#PfcG3
z4ODQ%0Z~8=to*+||9#@EDK*WHUc(C*1cS@}e|{YImbBDxxjr#Swpe=vkm52iu+%R(
Ied+f90U8%8ZvX%Q

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/ft-inst.ded b/clang/docs/ASTsForTemplatesImages/ft-inst.ded
new file mode 100644
index 000000000000000..ebd36e2893ccfad
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/ft-inst.ded
@@ -0,0 +1,851 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 20,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 14",
+      "size": {
+        "h": 75,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 450,
+        "y": 30
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 17",
+      "size": {
+        "h": 75,
+        "w": 255
+      }
+    },
+    {
+      "attributes": "template <class T>\nT identity(T t)\n{\n  return t;\n}\n\nint caller(int x)\n{\n  return identity(x);\n}\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 590,
+        "y": 190
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 170,
+        "w": 115
+      }
+    },
+    {
+      "attributes": "\"identity\" in \"identity(x)\"\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 345,
+        "y": 400
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DeclRefExpr 40",
+      "size": {
+        "h": 50,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 210,
+        "y": 125
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 45",
+      "size": {
+        "h": 50,
+        "w": 265
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 210,
+        "y": 200
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateSpecializationInfo 25",
+      "size": {
+        "h": 75,
+        "w": 265
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 210,
+        "y": 305
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 23",
+      "size": {
+        "h": 75,
+        "w": 265
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 20,
+        "y": 400
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionDecl 33",
+      "size": {
+        "h": 75,
+        "w": 260
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 50,
+        "y": 360
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 29",
+      "size": {
+        "h": 20,
+        "w": 115
+      }
+    },
+    {
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 590,
+        "y": 130
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 20",
+      "size": {
+        "h": 20,
+        "w": 115
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 28": {"syntax": "\"int\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXRecordDecl 43": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 44": {"skipping reserved": "\"__va_list_tag\""},
+    "CallExpr 38": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "CompoundStmt 20": {},
+    "CompoundStmt 29": {},
+    "CompoundStmt 36": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 22": {
+      "D": {"ptr": "ParmVarDecl 19"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/ft-inst.cc:7:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 32": {
+      "D": {"ptr": "ParmVarDecl 24"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-inst.cc:7:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 40": {
+      "D": {"ptr": "FunctionDecl 23"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "HasFoundDecl",
+      "Dependent": "None",
+      "FoundDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Loc": "in/src/ft-inst.cc:12:10",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 26"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DeclRefExpr 42": {
+      "D": {"ptr": "ParmVarDecl 35"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "None",
+      "Loc": "in/src/ft-inst.cc:12:19",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "FunctionDecl 17": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 20"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 18"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-inst.cc:8:1",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 14"},
+      "FirstDecl": {"ptr": "ParmVarDecl 19"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-inst.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 19"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-inst.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 19"},
+      "RD::First": {"ptr": "FunctionDecl 17"},
+      "RD::Prev": {"ptr": "FunctionDecl 17"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/ft-inst.cc:5:1, col:15>, TemplateTypeParm(\"T\", <in/src/ft-inst.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 23": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 29"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "Used Referenced",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 26"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-inst.cc:8:1",
+      "ExtInfo": "absent",
+      "FTSI": {"ptr": "FunctionTemplateSpecializationInfo 25"},
+      "FirstDecl": {"ptr": "null"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-inst.cc:5:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-inst.cc:5:3",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 24"},
+      "RD::First": {"ptr": "FunctionDecl 23"},
+      "RD::Prev": {"ptr": "FunctionDecl 23"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-inst.cc:5:1, col:15>, SubstTemplateTypeParm(\"int\", <in/src/ft-inst.cc:5:1>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "FunctionTemplateDecl 14"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "FunctionDecl 17"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "FunctionDecl 17"},
+      "getTemplateSpecializationInfo()": {"ptr": "FunctionTemplateSpecializationInfo 25"},
+      "getTemplatedKind()": "TK_FunctionTemplateSpecialization",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionDecl 33": {
+      "Access": "AS_none",
+      "Body": {"ptr": "CompoundStmt 36"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "FunctionDecl",
+      "DeclType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 34"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/ft-inst.cc:13:1",
+      "ExtInfo": "absent",
+      "FirstDecl": {"ptr": "ParmVarDecl 35"},
+      "FunctionDeclBits": "HasWrittenPrototype",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/ft-inst.cc:10:1",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "ParmVarDecl 35"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-inst.cc:10:5",
+      "LookupPtr": "null",
+      "Name": "\"caller\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "0",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 35"},
+      "RD::First": {"ptr": "FunctionDecl 33"},
+      "RD::Prev": {"ptr": "FunctionDecl 33"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"int (int)\", <in/src/ft-inst.cc:10:1, col:17>, Builtin(\"int\", <in/src/ft-inst.cc:10:1>, NullTypeLoc))",
+      "TemplateOrSpecialization": "null",
+      "getDescribedFunctionTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_NonTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionProtoType 18": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 47"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 26": {
+      "Canon": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 34"
+      },
+      "ResultType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 34": {
+      "ResultType": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "paramType[0]": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "syntax": "\"int (int)\""
+    },
+    "FunctionProtoType 47": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 46"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 46"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionTemplateDecl 14": {
+      "Access": "AS_none",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 45"},
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/ft-inst.cc:5:3",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "FunctionDecl 33"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 15"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 14"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 14"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/ft-inst.cc:4:10",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/ft-inst.cc:4:18",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/ft-inst.cc:4:1",
+      "TdD": {"ptr": "FunctionDecl 17"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 45": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations[0]": {"ptr": "FunctionTemplateSpecializationInfo 25"},
+      "associated decl": {"ptr": "FunctionTemplateDecl 14"},
+      "explicitMemberSpec": "0"
+    },
+    "FunctionTemplateSpecializationInfo 25": {
+      "Function": {"ptr": "FunctionDecl 23"},
+      "PointOfInstantiation": "in/src/ft-inst.cc:12:10",
+      "Template": {"ptr": "FunctionTemplateDecl 14"},
+      "TemplateArguments": "\"<int>\"",
+      "TemplateArgumentsAsWritten": "null",
+      "isFuncMemberSpec": "0",
+      "specKind": "TSK_ImplicitInstantiation"
+    },
+    "ImplicitCastExpr 31": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 39": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 48"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ImplicitCastExpr 41": {
+      "Dependent": "None",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "ValueKind": "VK_PRValue"
+    },
+    "ParmVarDecl 19": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-inst.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-inst.cc:5:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/ft-inst.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 24": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 23"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "SubstTemplateTypeParmType 27"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-inst.cc:5:12",
+      "LDC": {"ptr": "FunctionDecl 23"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-inst.cc:5:14",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "SubstTemplateTypeParm(\"int\", <in/src/ft-inst.cc:5:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "ParmVarDecl 35": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "FunctionDecl 33"},
+      "Decl::flags": "Used Referenced",
+      "DeclType": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/ft-inst.cc:10:12",
+      "LDC": {"ptr": "FunctionDecl 33"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-inst.cc:10:16",
+      "Name": "\"x\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "Builtin(\"int\", <in/src/ft-inst.cc:10:12>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 48": {
+      "Canon": {
+        "preview": "int (*)(int)",
+        "ptr": "PointerType 49"
+      },
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 26"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 49": {
+      "PointeeType": {
+        "preview": "int (int)",
+        "ptr": "FunctionProtoType 34"
+      },
+      "syntax": "\"int (*)(int)\""
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 44"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 43"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 21": {},
+    "ReturnStmt 30": {},
+    "ReturnStmt 37": {},
+    "SubstTemplateTypeParmType 27": {
+      "AssociatedDecl": {"ptr": "FunctionTemplateDecl 14"},
+      "Canon": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "Index": "0",
+      "PackIndex": "none",
+      "getReplacementType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "getUnqualifiedDesugaredType()": {
+        "preview": "int",
+        "ptr": "BuiltinType 28"
+      },
+      "syntax": "\"int\""
+    },
+    "TemplateTypeParmDecl 15": {
+      "Access": "AS_public",
+      "DC": {"ptr": "FunctionDecl 17"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "FunctionDecl 17"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/ft-inst.cc:4:17",
+      "LocStart": "in/src/ft-inst.cc:4:11",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 16"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 16": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 46"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 15"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 46": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "FunctionDecl 33"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 7 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "NextInContext",
+      "explicitMemberSpec",
+      "isFuncMemberSpec",
+      "specdThisLevel",
+      "TemplatedDecl",
+      "TP->NumTParams",
+      "TP",
+      "InstantiatedFromMember"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/ft-inst.cc.abbrev.json",
+  "relations": [
+    {
+      "controlPts": [{
+        "x": 435,
+        "y": 85
+      }],
+      "end": {"entityRef": 1},
+      "label": "TdD",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [{
+        "x": 285,
+        "y": 40
+      }],
+      "end": {"entityRef": 0},
+      "label": "FTD",
+      "start": {"entityRef": 1}
+    },
+    {
+      "dashStructure": [
+        5,
+        2
+      ],
+      "end": {"entityRef": 3},
+      "label": "Body, etc.",
+      "start": {"entityRef": 7}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "D",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "Cmn",
+      "start": {"entityRef": 0}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "Specializations[0]",
+      "start": {"entityRef": 4}
+    },
+    {
+      "controlPts": [{
+        "x": 115,
+        "y": 140
+      }],
+      "end": {"entityRef": 0},
+      "label": "Template",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "Function",
+      "start": {"entityRef": 5}
+    },
+    {
+      "controlPts": [{
+        "x": 335,
+        "y": 275
+      }],
+      "end": {"entityRef": 5},
+      "label": "FTSI",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 25,
+        "y": 145
+      }],
+      "end": {"entityRef": 7},
+      "label": "NextInContext",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [
+        {
+          "x": 570,
+          "y": 115
+        },
+        {
+          "x": 440,
+          "y": 100
+        }
+      ],
+      "end": {"entityRef": 0},
+      "label": "FoundDecl",
+      "routingAlg": "RA_MANHATTAN_VERT",
+      "start": {"entityRef": 3}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Body",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "Body",
+      "start": {"entityRef": 1}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 492,
+    "w": 721
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/ft-inst.ded.png b/clang/docs/ASTsForTemplatesImages/ft-inst.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..77a9ac47801ecfeeb4e661cc222d28263c2430d2
GIT binary patch
literal 16340
zcmZ{L2{=^k`~OI(l*&kDUuIAVg(z#~*h5rgZ^6)5l0nASri^{8sZb+rwixT!S}iH#
zkY%hDGPbdVv4sCKqxb!Nf6M>sy23fndM}^*bKlQ%2xm<7dAJ3+5eNj2p#fxpKx}{!
z2#)bBT;R#>Ptzj^#P(|ZxeGWQFAooAPaFbq<8iN at hflW(a#dEiDL76&qS30M-B&TQ
z-g}H7JBF5;FnJ6&qYsgvo=8$C=v7`@@#C=AU>HYodeMQ)ODDYjblJb)hF<}KK_1m@
zS}7NcD<DgbiW4ka&TlpO^HHWi?Z%q5Z#;U&t7T*8>$TBCC`_>G4o$_1ZBJ2KD{pMs
zJq;gC3VA%`b=8XJl$A)3rP#MyPkr0;eJ@^hq#Se}h=@{Xin*y)xfos65ZkRMu4eY?
z(Sk%;LYvw(<aNEC6R_Nqm=*0UiZy392UleGeb`qrKV;0z4)>y&C1y1C<`cW~KBqZx
z%W9Y1;;Z}oXXt2}Y;~RVXn~RyGH&|!(esJnXg4Tnu)kxr at o3d^EtB0HTQ?wmr!sa*
zQFtQnqxv|VD06o%?&i9*k#j9&<H;M2&3#%!U1Kk9FOd&N+mWJ9w300Gj#sXZP at r7w
zQL#0f^FgoOL+ at yGT-AMOU1-Ez_#pYKQ$bPiiw!R>8hJWu=b%2dL at 0K5rHi8Hyfu{)
zE@|IM*~yi8t(g1OW!iP?K;&-~{IXW#(X*dAyFWXhcftN#GX1{x<Koz+Djxn1$qIL>
z_`9CQ(DjF(KC1ovKplJD?5sNObLV at NFEx6Z-06%OZtm-ke6Rm at ZZ6y91C39}a+J-f
zoqly+n17&X|1I;6F)mxLU+5A_ij;JnlMJH2)~Z4gGmd?8hNn5j8m?GOUmJ1RU>X|K
z22-ZAg;n^5&wnoyJAY31S&Lb;=e$hw?WkCOi!D2P$IZl7hMLR_lG@);Xc;F0M-(QJ
zx=lUfz8txfVDrK3`lrTQefaiqR>?&?-V~|mQL|ZbUvEhM6A_7`t6N*SWFJV)xrm7+
zS)H`uKQ%dG-`jE`uKI+QVWzLRlD=4x&Smo$f>}1-<qI<Q*IaFjJ|x~~o4&OLqoZ&p
zMp)27>@wqzw>^L6W_#t_ZoWW+twS at 4r78F@mme7?4&D^T=Y3zKcja4X8w5q@$Wrdf
zO`}X6Z{CyCt1d&ay!3cOs<(yYox3C>=j8A`+r(R=6AotClTN#hD;$_kyqp5(*O(H7
z^h7xiME+i*=XYq?pAzItp!0p<5xc4(6sCM{DD?}%Y2-TbnDK$V*@Q+J4DW)sB<|kE
z2xo3-rFR0>d=Uih=2)GGlY<e~%xE)WUE8Bi=LZ+R5k!Bq21Nw7^DYkZoj?`|7Ul8X
zyF6m at c<>!>w4yhOU)4`+bI9<`evDmzmG$Z8IkyPsHsrn=HX3;K3?3hf?m7KoOWaNM
zTjmdA_RVkbB<=n(?XdP%PV%`K*H}Ppk(13+<mBUUO!<qbpdiADT)&HMyJpRwuE}b@
zGpH9V^{e_mvv|mSflumB!dTz=<FXkcV)_hbX~Q-#gIIh2W-)qK$k`+Pr|;r+%%(f-
zkXJn`-u2eK at YW>}mpfld)6M#2%F^vTjAdWho8IjjSxMl_$c+5Cx16UWLslnA^^W7H
z+;gG(4^F>JYlUmCEtVzhKYhyc&3wq^ql*N$P=4)`xn?{46D_v5wiH#?Y)aSJt0<Ki
zaLo3M{BU-2V2|LF?M|+@;Q8OeGqJ}m?w?9t+B$59eg5vd%C%%6zVbNvmb)5gQg4qq
zpM9dr at _R{dUdhC!N;k$FpVp^RQ$e&>$PdMp at 2zHU8mD&~m^q#r?)diTvfz1D9T`rM
zSE9%sUXCyyK0X!BVV{Ps_+x*{#XcE&2b?>3;hTTORLCuyiiBO}#<t1Vd)@g$#uBzf
zo|^9RK9W&(Oo$3)ls`#?p1_B^Nzm)$uiq%{N7GW8JU7WpSo<XJ-}WE^`nGi at 89!XQ
zS$bJ8<a7sLZOU^FQ`LNbexqHTM%R#v`LxgPmu_yf!kj%UfIf5Z{T2gy&b7~dSh0tL
z>FGRN?)R=<vzQz{$2V1>N1|;R)85jbsarBWoZ7lOi0t!KlW8+?P}>0WJo^Oq@#cvX
z`z+y2Z+wFF>4&*|#E<M-*|N7T{%y}Ed3P+qYQCk(Ty`hdp6<AvcBE at _O4hw``zKK|
z4KFy=yh&H>pWX{XF3MhWOue?@{AzjJ-P0Ebc9?dQ``&&a+`Q8``)jWamgqmVt07J=
zt;RYrdfV?p?kZ(*E9RRs1L~n^Kl*G1PeodBxPQ<<yfMqz_NKo!Zc*m}iucynVy4|f
zuU1H?=JpKxZwed%x~F%Hly45Yaw0u)W#XNxS&u*X&&U6*s!SJWwQ5W^_xmhbkW4oz
zbQ5~-Tl(7e?ypCj70 at XkyERW%rRtC=xx}X)i2aJ4>cS5;-{mAT{Tutczt^~Fa;}cK
zcpzL&n-=pX73y&IfhFUQvDda#-q|(3BWU=3iX&%ld1pm)ulpUwFP}{HCR47-;F}}v
zJNvfKJ9Tf<j|<u*HTz*ly>|YtnL8I8bRpT{rP|wz<IkRM@!x_}Xs0i2R1SDr)tqQr
zoV#_qT(yAIk&92C3Aa4I{JHjh|6)sbe#MzPP4jQAqxMw^qKfMNs2yb<NNmSe>`eJt
zU=+i1{ga6w9 at d+`I+2%F)E2T_kC}Tkm`%AtK6^nuX!LN%Z7sQu)8^gRDF at 7w^klmp
zzlvb0*<ehEpjY-r&5A8zm4 at 9|eQ84ap^JNO`vxqPC03A1oKR=Ps-!;t-pY&^O_KeF
z(F&NJ3Buz41RQ_X_(VmaXo1LyjA?Cq>_$kN%kidUGYw4*Ld;gS<clPJ*dFqg-|gbv
zph^n);a3-3(XL0NYhw%NhZo*X-~LJ4IDL<o?4F!j?@T<m=dreEB(L>Fi={JDZ`uRp
zr*1YoU*GT0eRluMn;k(NduK$G9~y0!6x&l<zf~xbJ7L$`h0&6 at hI;bE_yRT|u*hbI
zHQ$%hl-prnCnrv>raEmS{Rw_BX;X6cd)=`U4LfeWo1%WP{Y6%djN~u1GUweTv3B^j
z{T6MHwl(>>sq?UDhOTnf?_TpGVVB6;w-Lh*(~j6BoNHGSavx58B7S;AV<YDfPMKgh
z8b(HQk0}1;GF;e=O5T_oaqEqRy4K;qucL_X)KoQ$&X>;2B))nk)5Cu-<h|$Qx#q~w
zfbE?_5`W+lX>4L9<)dErjlQRsNFVQ(p9 at A~N?)ly)o>$ErVqNcY&zEQ!EZT at s+O#@
zTf&~`o`CTz<7&2+ at wehF8>DL=81GRuUEG7OIeRd(h+j{SY|f>%kgsdR8+xs;QsvPb
z3;PA at o?{i_ at K51EH`~O}2xFhX6(75$C$Cqm=G<FDM5!tn4dm=wzl5fpb83&OlLKxl
zp*qs(Uw4M0ygY561%+&uf3C-)`?U7iD6TP5V at SN*?qCDg(A=Gt at WUSy^ah=C+EFSy
z!#hH<WX(E^GR3oIM24yPZP(TOoX+)#pO^33bG*Sb)pB9pzwqc-XM6va^uoPo{_Np=
zUiV4*Y_`f=z}YKBy0bmw{I-r45|^=@+<UAFmyfKa{ZJeqc(IYod#h)|8^;oFuLjYj
znyi`+f*9;n)W?w)LU^e*isms*DKvd`x5U)zBH!<4_9r-J$wHr^r3z(aTH9}GPGh(8
zoyd&5q2+aFcmTJlLT&T&o<@laE*2bc!HPzd%4%7EjH?WyW6mQ`4}N~J at wVCXJo?J-
z#b;$-1Yh3^soWY?=Bl{kXTY5v9iJl$qLj3Ki%t{5<f}2Kx40239WZ-VRK#vf{>C-j
zd_6lW`1J?THa%WRIX+J*w~|ycL{Y5M<jb6)Ro)2EFn%A7^7=z2TQXJ#O-E$K9q;aZ
z=%1I{TP?popS<`oQ1AK&_;9Q{EoYB=NAn}?Th<1Yqt*6?W6N_7my!mYikA(A?5zr3
zGE&}?QTx8PJ4)^~Vock&oVl@;FhBWA?3nP(^Bccs%tb2ulea5<No<o5IN{<uPZ69s
z(uB`au{&jS>5j#`kejcS1$|K0)GK7TE at hB!>&9EZJ9cCxaQGq2ZI at QhC?5#*i>5L!
ziN?g%++TaI%)8-BfsYU8+rU4zUpx`I==#Qi at mG>L5r-e3|HxFkt1bqP@(E=`@y at PL
z|E%$R=iQL4)_iH<Z8?V~*Z3ihZv#(rPkic+v at 92rS;TrA_c!?-quM{z<6GP7^Rq(0
zc&24bVyKrt&jGWu-wAtDDBOlU1A^_rwUp1#WDdXLYs?wJZVjG3_NKw9t*@ln_IjKI
z#-**(v7>xtPK8h0?o3?trP9M~zh+4U-SelFd`@LL4utu=GjrK{^iQC#=L6fP_ktZS
zIy%fPmsRvq9nfPc$nP_Sg?n<pa_ at 40bl<$@@V(E`e);)_Pt*_7W*-)VjyY5YYNkz&
z5M{EYVAtxa%vQf%-+70J_BMBP2h@#Es16km>)fy`%xM12ch}m_&iSW07BN2+QW6~G
zktR4k=i86)T;t@;iZ2*jAt)mdim)Mc^4yKCiC){n!Gp=Vu<N;_@{jiN)H at 71(k4E9
z&4_w^#fU?w)4)Km)!q8>)cw94t==1JR#~}F^CyM-;0NMCBHghjWX18d*Po-q{V+2&
z597BCp5Kgv)^=0dkVYg91Y+t2VU at N)#4TEjkI at ns6I+_R_Pcxldv!9mYA0xGkV22&
zr!PgB?W^xcHG0TBf;bU~i-81&z3J>UJQwE*+Vn`nSqu@)4T0^78V6zGgak;-5M}2{
zkzT^PI*EHm=_*84vr0YE909EF?F%%;9~aZLhK-HZz~FX(SMKaC2m`Qj#2ZtRaYAmT
z1o-tWlGPq at g0)Trk_Y_9p6 at 1W4G6R#_z%Hu!0z{dw-RTq<$t%*eDl_^1{xgVa5&Gq
zbUN~7qaTspUlSTxZ>&R_)+5Z*_L!#-U3n$on|Nc$peQ`f^(GX#g|LSg$rHzV?06u`
zNTk&&|M&Rhmx-F6k99lX-<0#q%{J}hzqv(kLfI&0Hp)N8mhm#*P?=DDeq+X)rfjBj
z7?j`jqUE||Sm$2ua+`NLZ%&eG<fP0Thx2?Jtpwc+X75WaE&QRW4z_F_8rQ)Ejk_;m
z8nL<9!4E+tJep(C?t!xf?eqHEUi3NZcdY0VRQ`w<6jeTr=_&A(Xhz#`c+dQpJa7Tu
z-?~JQow?wansrK+5{p_ETA_K)u4rm+ji)=lm^n>4Niu9`9jg}^+k-SAId=DFGj07Q
zH_PfACZq9TvkXaCV5PmfU8V~<Bo5D%s9i6mgq=um?JpEV!&w^++mbTJ2$gwlUCqB&
zX}|yQ6ZQny8icW1K?$y#KHjk<kwdi}1>1Yo6vG?b1~o!oS+pa0<lq@!LN&=#0!A;9
zH$h|FBcrPh{=UOyWV2a*ZIRK^=Vr=aGo`G}cn8PRsoVR{R*ZNKn)auv$Liapp&H#+
zG!@nKN2+oMTCOhoZZ3w8Bapc<<5lmxUr;{H8Ip844%QO5*xCvs#<_0VInzkB*qhpA
z;!SCPSqj~Swh{IqSKLyCg6(IIupa=GO2g4iHNf$KQYBB3fU=}v$r%U29-{x|jydoL
zb53_JuWxFyD=&=9l at bIE;WQn{fYt7wP7ROY<Lp^^&8NQG5Ze9itE42+HlWc7lI~q7
zGW_;tan|7K+cNv=@- at QiCSH1+t({M9=eM7ysYJ%Po~X*|Lk7HpGBiuCT-q&Xpvav`
zbe4^}3vrIh%_Y~@*^pwX87pf!-y=eP%U6Z|5?Y}SMY~UW(=d&)nhwjq@(&}CJTFVX
z*-D}*i#@c>mBT9n+P2Z|Ub8RW&<k}9l%MojcoBl$n9Uk!=gDfn&D_*e at 57CffZwhL
zliF-Y<;+t&B;Z`H1&sDl-8C at 7`AfTLeYE!mC(&rZGOK@@$icM!+vLep>E%NBU$&L+
z4GfguynwR7yr)PC3Q>AXS9 at 2;o%H#GQP4Y14aa}Fp<rUgJ=^|2fs<;Y0-rIz<cI6O
zN*Dh~+zp)~-3mtAur}{Y8$!yJU-60fD+~#kBo6iz=Q@`RylxY5{|%t(KBNT9jRJ}S
z(j>{FSR&<^OAe>F+Y+>ddRE-kzR}+O3Y>hIZoQhcJb*ba0aKBM7DoB`RePC+v!4qq
zEgdxq`pT||71nh(^{mzh`X6T!$F#4D#4^rKXl5~8wr4HWC)2y$)yJ2$pL7hKwl8M1
zZIZaO8>#6iI$!x~d at hDrg{&$(^2;Q8ufKcXyqXf#aB`WU7GmyrHCRtCw)dqDk^Tvp
zcI0Kype^IerZYm0WMvcVU@@$~Z$k=$`cbg9ZK^HO<QX%bo<39Qzn$)odc0({m$tvf
zmPuvkySX#c at nq&>Xl$5%rQ&fQa^)l;#x6<;8SHnf$$hz=qEzC8du@%BL*t{N4Bvin
zn3_b75<p;}t4`7%`wZ>$oavue>R(<#`7*~#dV?9{3Lhs2J}cjb;4CP1e)HAfM|O+v
zzI0`nmw%0O2E#0A5!#U}as-DqWSWEpS+VyuQ?bU~sco{@a;Pu3Oov2nS~+d3Oz10;
zqTtN+wZ5ZzMGK`U%zL**4~Q+k9c_|8KZLGCL(IhC?2u36{O_YEDi!K=JCK@`o!L_O
zxpEm;A&E{)ri)17e+dnq9`o_qrVRvYLNc6P$iFXu6qz8ET`r2~OLj%3$--7?>@ACq
zJaMde+kX&NTKT>uGmgHz45{}80u_34qa>5s6y`r`!I{C4<O-~oJ;`bwxT2UFp{Xo$
ziNO#is at vJ-PfRrZs68bCGYw|V)1&#SN+JD_J&woK^atkz#;Pxul^djWtGCqB>B82k
zJ^CdcI9v?>a9?!T&J-57zvV;YncffDO8XD^^y3+s%LSv6Vr=ZMEbF7Zb~XiyF=2T&
z=a1?k^$uGl)!z+)n|_-NujVnb*nYn&=aJFMmo{6;QAMPjBwEnbV3ziBzgD;8XrY|c
zQqGjxqe2SPw7K5C+H1Vdr-NcMT)?#3O5kE7(lb!c>}X=Xey96s=6se6YF_WgZ<;f&
zBp7<1qM*rgdE`poZT&%y5dqYqJi+0p5huVj6H;VrUVCjsRMdF^5v*b%BWlmx^l1g#
zD+YOj7cwB(8#hafpxER!qU9i&`6X&X_|<Q{(O2}<oWvig-WhG0Gu8yrmFJ?Vw$(=w
zLBGZgP+>pmUrbY#MCNy>O at 4UwoujW=Moki?kv}&XTr6s;AT#!P6gA|9>N-fl*8Q$l
zd${18PWPbLKT*dDO)_&EQQh*~q8B$4V%lxVbI`LnWvtOCf1!4vwo*-=L%E~m^OYUD
z at lwaB$#gp2#&HjRTLRrIig^2Qh5F`H%PEAqA<nCce}b#iww)mlD=jPeC^;2PhXeSo
zHXvbaBCY(=_VG8v?Z3t=sKu<^scxN*f-r4L>Lrk)#7mZ^X`dij&6%~zJk$WMnZ`J?
zRJ-gk7m9_`w*XZ4uHKB(0iqtdGVm#q%+lz5R1@!Fpc6VOUHxgkU|ObSXO3u^&Tfsj
zLTJ1nE~fqKcolQk*Ka#D=YG|%<_KC8w|}||HD*gKxoz$YlRib7HUYNbE5HgIXhAm6
z8y0OLZ~-(vMbaJIv}xx%E|&4+9!3%`zB~J<egnG=zn&y_`UhM?)~iGgmW|k4LQCGi
zJ$(9!A&7#2Z-f!UcXNvpUqI`zqzK|nn<K815jx*G36Z>v+rg$Kd8;2~B_}5_Mx^O;
zthLZ4khzz8Yu?}d&9e}Nn4(F*3*FQa?&An8)J^IRLhYLqd~RXFhz#DhnETKj=)*Ag
zlmJJNpMi4wHf5q^efb`Q at 6PXJ9l#Ud>GFd-CpZ5y%JQV~J+F6U?(+KMYsUvJjs(|P
zZ{?6gER5fTD(KSz1g(TYa_Sa)+cVM|wA8i7!lLd`N`q7ki?}((66xtRe_y29Z!#>p
zeL9Q-$+Mr21GzG=mSs8GrI2B^(i88>&jn&@Emj*P`8gkprdWE-;`XB9!5C<u<ah7c
zX22vz^`J3gS4zT5sOD8QhzQ)3Q$hOM)Q~(Udc$8r9iokK^cQKe$lNDy?=<CS9O5|9
zyC6+iT?|EPdMhgK`2I!pA^)lPa&2zzU9Jdm*bD%^!ZS2wz$xc}wZ}P<)z=w4uyKx?
zP|Zn_?OanmUD!;^tP~)~!vz$d_T#ipG80n!puh2XkpiZ_L^4))UjO7R*OOd`Gpbr6
z4~TRpLVA_NLA7T_lW#6&Ha3;LGd>A6ia;-!)Q!Iyc8vtkh1wVuqw(ex2~#Rj2-fi!
z5dIUr56-`^>vf)L7{)vj+GcEj*ha@!(}aWpqjL-kArh0UB9%n}yLNW*%eo*3ydv|-
zjrr0WyhpBxvdPE at a^?5N`Eb8;?*m=hQ<J9pJm at 1zc~3e^rxsV1OT+6!b!n$b8HZYK
zghMHilG?*h<{tww7llM9S<L4j;1%;TY+fr4$k_mrr!JMncJEQV9f at 27%QI{vvs8V5
z1O;DvY>2CRuhlr}o4%4(zG5XjKv%;%lwK9XC;QHMS1xJvdgsQ`C)=Yv6Ma7 at fWF^9
zAy<-p9jX*$(fBs4i8nm{A%;OMtNS1I%fM?(b&fMrajwUj&=lLas~cv9CoQmj*2ewQ
z1vaujXn3sL{o*>?M)wIXs8(`Wh?bt7{H-tetLKr7<LPqVVpTh?j!6PCaEkQfSOQ%R
zO+oAME;546ph~^c8uUCIEKKWn?MQ~1OiyOGD^-}<g>}ih6An%G*t3KY1|_H?qwgEw
zOb#kOlRFreIrfl9=WnTqgz{YpO&aOhd3X90HZK7O*+#fGaGK;b(o|3ZrBtJHc2Vl_
zlKI%;kMoslSY&T^@Ez#NW`b5oUcdAcIC!F$*)@i(BQq}~uy(eTfYc<5(0Y~iAXS~j
z8fjS5QN=)+kxY*ttTHFrE<colj~*A}^=C`n%n%nFl|$zXw(^frUxpmvs^`P|w6fIe
z=tt0SnGH$b<~6lXjQFw7k`^9bl1xK2)J?cn)x0>G3VraFhD*1%s$A#1fV~?A!^idh
z2WO^?cmOy{Cmt#6fKg4E9Vfk1#Z>oP_9u8YjHfmyJG7z_;W<616x}IDiyrU(GR at X@
zQKhS}hxgZ8P%O^mg2ZPUwb%*o*RMzU%vPI?K~bD*9KFr}SG!t7xgS+ at n!V at 0k8{zK
z;oA2C1O^fNk4 at EnK;xZ0M)1Oq`Nz8yUHbG%4QaPGu!3e0#oK^{8i4fmnq2|Wcey@$
zue$5&ohsIoA=ln#H~cb7yn&``20J6e6K_u%&L$<Kg$r!^aSRJEPY&1tpdvt{?8q$p
zh|S~yY}{d4vNW&}06Bl>A%ZjozypGX%F$s+InM<tfFf-BAJw}F$?kuX0#QHv-g~@e
zr-uv39MjAjJLLZrdQi?#4RI4JH at ypG3!Nm{zvbo*Iz_U|XPWY68{$jeCb&w#>;110
zp|!;dG_J0WYU5=rN6B&)a}1rYPMs6&prI~jF^lH&i~cwe((SDV?evnXjP7B_ya-CH
zjADKIBuM|6)IpWh#wNUdJ`_9dXxxQ)R)(>s4ZA(h(!|?=y;-VmKnuqFzG6!Xe3m7x
zM7ypm>p;|kVM{nwK|lamHS-{6yd=KZ1IQ#>h=T=&D4>jCriFi`xrC=&zVrvB_hm*T
z)KB5w7pd*P>Ze~DUWby6?F|8#+ at tWa#>SwRBHF1*xgBN+^wd3z at Jc(7?NiT<1V0Yh
z{c-zYD_ at DuT(jAO1c%^C#U&9;qtCBJNf>R at y9MN4n?zfY_CQKUyY#5h*Ne^3q|6|v
zm?l{1wQe$m$;AT3l~mZ}lSTxZ at Z4yiEIceHWdlL9oWJ9<GpF^Hv-QMk^jCq(-=f7?
zIK+yQFToVR`B|*(jOuNu;wJxYc64n6P2?|b+Qbf}zNizVf1e}Rz6{8lPVbg~jFPqC
zu1z^lKv&7nF1{#(qHPxdXtSd7`ey!Pn6gQh`EB^8(OV4fRKQ(qBj}CzPTsPh0c`9f
z2Y7muiUPaB{IB2GL$iCW3lgz#XoFTP0w5)#j7h#R*ZB_i{S(wX?&mC at U7S8ZX^P4A
ze)!`Lh|=C%qJONTwB~0E2VMuiZorSNO$D$dhxz^v89X2KYN)9Fwmmj%BG~?wuWDh=
zz?G^ouL-fg+Eki)N4=bjeU}=i_w0>+xV}S5aZY<6KIJ4^qxS~32aS{Wc^nlDkf(@f
zB1JrOsc{SLudGzwFKz|`+g>?N?(DX(9X-X{8&j`H+R#;zLu2ft_?%!1QDEUareLl!
zDfeq;p*lH7U~77>i*qIwi2cVgPK9K8?-Hc%<W~%h@$mq;u~s~g at u}T)FGewVzK`yc
z3m<9HgZGJ~4Y)7s>ur8jm5=F9jK1KzN~KseDCw{VSva)xCr{lWCKoFe7_he7u~z?q
z{Q})}#LxXCz;Ym-^hMgE6<YJK|M&w;)s9g;V6H5uf9oR2a}!{=v_B{rf%?F#WWjQ(
zOt@?9d|yF6Fm$Ci<p!MMaHeEA*#P6Iz-~7sfQAtS2kH1M%l at vlwLif@Ip6TYZq_lP
zck1y*-8Gb>>8u%5_P8O?_-BC-WJiU{XYHt1RG~2cYCRrb63coYw1*>(E}xoCq`yq;
zlYo`FjsF3#vhqYIfAps}aCOf;c5<*)&qYJ<&I>mly0$7OIpb)ql0c6Vnq#;U(kE)t
z3aXYM*%QDwSrsT`l^rQ?c^`(G$<H2;ZT{l0{eXOIl;07`<39LQVMzyF7@!|`#S6sn
zDJl&70b-PVZ&49G4HJs-T;s1(pv0tm1iaUBdQ8r7ju!2Qu{pjIL|0!FKq3|Z+($3P
zSQe>{8<#*CRh}u1XvI=gV1{K->VYbm<!!)ZRpVX3;QYI9yn^)6q;K5*?Wg>Ma at r~W
zC4DxLjuX at EinhzPfuYn@y^<Hc^7t74Ni|fy>_lVzbp5e4BDQc?!;ThVN@|N{AveGb
zt%LB<@(82OaSC2kR*sDJV~6mEkRC-cDkt=lR!{IMnQBGF{D{dD23^)w`p5v6ebn1B
zkyLn;k|#iD>UqAMkk>Ff>T`s$v&ym7?~i2jvhxgs0e$|(G%R|skpKXG>K#M4!WcJV
z{GPiYGUvsMP2|$7lHygky)9K?11)#a%6Rs(RtNC at mr^z$`(-g8ZITrJ{21NcD!hK)
zk=CUl`$U%F(<1>_Ii3Kaiycx}w8@`o?9eMSpT`jPub+RdMW-$AN-_gN`ma4o!MTqZ
zdir=^@0Xsn1vq^qM8U`LdJ*9<e%^C*;oRSSN^1IJ(oOL140y%mS2~C4p4UQ#Aj}?X
z5=(TYc?nO*xJN!HIMZvuwt7}*3;UO&gaM({wn{A>ERV?>HljIJ<#iqQW!d<;;h2yV
zZ1(;GfCDZBEv$fCaq{Zo+H`SNM`HSzy}#wy1YJcWBT~zh#4nCs;;eIkoZ7y)-mo;r
znJ9*S{y9Ave at 1UrG}zwwfl|lOLNi{1=;C#jpRWhu8xJ51!4)TjM^oA at G+NYzY4f5S
zqBOsMkhWF_O~G;6l|cF(trUrTsVAD$wsv1#|Csth7A~-p<wvCuwa6&{MsN7dm=YCc
ziB>FbxcQ#}?lFXy0FIb2*uG${5~@!M)Ef@}qp6708>#Y-X)<5FeG#|gx;{xHuuxnQ
zz4QUO^36Nt>jeX_#!v?mwdBX}mCWu=yraj3{1z;}Wcjr<hknfY5lwP;Qh{UYG74zj
zfK>+s)Kv+YR&1i#NZ|H1X?N-HPbp&@f}bCh0bv at HPJn|9fL$)(=X(l<RF>?Fe>SCi
z<z7jGFbx>D44d11fq!i3{w(~V7s%(zQdV2WP|Hd)>Gi8y*=(digrHXnb%Zct{Wj5q
z<tcK+xekYp)_7~a9A0ZL53Gr6=5lYKmJ4-`zLejWLBrl<>zIXM_Mm8jhr8bkyHzzI
z=W<qCHM=#tWscj5lQ$JHk2Nu<qrog1ABnWDP(@>Z)e!T<Gq32D&c7;gG+T^k#Y^o<
zb^ToD{Mm$M*V1qiwA%8$$`{5s>Kt#mD8A%ru?E{-ugJk<o%-BSGfnkkKWd2f$!CTj
zN^ds6`C)(4qr?0SXV0td(K=7E+B%-pdz_tv3 at 9;@YR|?*HTDQ at TUwxW;a$*_;vghT
zS<fjxc5O0hXTRVptewCZk at Gu(N%=RlfiP~QL;9ElUmn2MoGjnb6gHzD_7GhUjWrcq
z1<7}Gpr-wHMXy7`GzLGYKW6&O3X@%dxzr1wx?64fKm~_|9rQ)doir-o5<GQ_{JqD+
zYef|Yj%@(|rKL+UR{ia4ggY0)Rw?k~(^@uU2{i`D+ryISFW=06Rs?HUpn4}SpZZk<
zfod!=_<RNn*KV1Wu(%@^AzdUbQ)=L-;iO0ys?gC)@K+4P$u9G##M57V?JB)oc~u82
z`Jxety!<<lUUFF7_<IV)XV%oLdepc24G|FJqzxbzDZe>yJlpn at Y(&bCziwqT``Skr
zJT#a!x|Pm<sWl|QRk+FVK!u&UzvC5w0h!pCi5_(i+~gH=qO6C{WM>0B{R&klPpQcU
zoUeoc05c8{PEa?1Na`*_*$o)uGi1z5p_R4z)3-90MFT=>x8JJzF#Xk&&rq73BpJ@$
z=gzbko6T5T3#y!d*y2+>2Z;qfgfOO`f|3Bs?B8+r5+=&ISE)FlC at Jk`ysL&WiK_Q@
z7Z8QHM#|CYl>>!!HB^VQe2jLG{dAiE$qMJ~YN*HCwE8el_gC4FP|LeD<x^)KuY}zP
zd4Prvsewgm!4cA-<9WHvS4hoPo5!%pm1lE!Xtz}<6q~0yc27r+#m!mebhMxj(w_2z
zeZEjWz*Vo#!q at Ih(t~m_*-e_p&-F_Q8h<yvlnFB6+!k2}|2A*yBcQA|Ndy?GAGwc6
z?~1+!KjO-?Kd0x}86{c~^>hqh0!S?@PeJCY>n}`}G6{ViUj|-8!-r0h3dj&2OV>w&
z<ZUy3pjA<Uw9MJQUcKQ3QexiKAN&$<Gt1R)G|ZhOh5Gwiv5U{F_1cM{&7qP+dWFlQ
z+!e|4tF~8b661kBfaif+W;XM4M|*U?bvFy6IThmR;dUuD5sY!}`0~|p=ZO|w$cjH8
z64Gb59cZ}r>S(!2xuugjR;~@6kOI=Ul~M}zw`EX{j`w*Yd(|&RKaviEO2_*9yqBox
z^7-nnF};rN*3Y1%`)K|Vu!D=2jA!f1J`#^S!;*isJ)ep(!eLMUs((<A>b_v3KXGg>
z5A*DND%6;;3}Fms55iv`e43YMmkn=iLTakn_I){hlXp=x=_h&XS))m at -dcf0YWj~j
zC^DHohE`Klmji8ig3gd^gGu_&H%}6OpC(jaj$pWA1LpBXAmCKjNU2e at z2fL?w;6yI
zaN&jxz>be~ptW^KsK%y;Hi0-zv`w`<oV({osurA0c>r_){A;h_Yy?Bt$^e)D(Z%b^
zVD0-HaGrQXt*-wCQaFj$zAQNaX?x>hlFL?u`l-SDHT~?UAWns1Gw+v86Cuvn$)+O*
z;atmaQNxzF;d;iX_Z;4!=t030ZRmF|GFbZU(c>|dd2?%)#<LyH4<Sx5dJ{}>Qz)z!
zbrZEW9h(FxGHC$H-<O7JQFwF$kO^4Ret#jFf)V+c3Pw+GE%zFC0U4sb)Y3k%TvlBU
z<cQ$6%^OpI)Bz8ZL)+X1;Pa6othw?U*zo$<Q>7^hi*o+vx$jFny at f6Y@M#?_N{I9{
zsd&(nT~6U5NH_m27qaN9><M<p!>Tn%1Lg^6o(XvRx2-hHi40b0xd+6yUim|-HG at M0
z){I<v-n>MM6YRDK*F@}R4K~$<5!Wo9x7qAV3IJn)p*Wt1H%k#Me{u9Dx=OP40!~tI
zLjFd|w^)9MxV<4*y5--l;3Sp3Ujo-nyIWcjMT$FFH5SkZm;7Jjvl`hGU0JXNs#}qO
zDyEL(j&S6O{WJx!fNScdQ6c&zto5Zzb!&{lZ0iumdVcPT5X(VlUKetE_cfXRuu`mM
z*SBgYQB>VFWWx9ZzueH@<yL}H0M$_rmMVy?_n!>JadNN#0!Z?V;k~<MR>?|B5YqrR
zTki0b5wPQ*krlGhDAjRYn>&-Ed|=B!J)lEpVZ3mF2*EPs4ohd?aU8v=juA(<tQl+z
zCMAI*6jlInMI3C<XB`#<ek^IH;&HegL#phMh8DbORCwTHb{&E1uaFPAu#^ChR}h?6
zp8#TEDGW%1_3YoDQ}Gdt?u9A!g9->X^6-3b<yX1|?1QC3aC9vWiy%dk#@x5Al~>Z7
z*8<ief at u?tn}Nim54vpN39=$h#y1=yhz58~2Kpi0*nQq|0iz~|e!i6vD<-BcpE(;e
zQvMJs?K_K~{8F7*lE&J_%Vg|EFgWHt?P~Ny(m;AmV2MJYqhvf=<@{upChbpYbl2QC
zM<Q>k{&u|@o3aDR<9^N{GMt@}#M1|k@)POxfh-*|6rQaun(-3XBGlp_su51lKZZV2
z$kg=*UD(wU^pYY0uw8r-R4R%B0$DG9&(4|zXJ+~o>2=ZtPF~St at iQRge_oEcOa*>W
zV at Yo4{>{gIFN<yPrmIao_xZbRY`v&H|HcAw*lSnZ{d_XIK(=&l;l at PdtueOORoPrO
zS!QXsDz#b9so=%Y`Gro}3^m!x)+&}hUm~oZUu79tjE!b#dnJoy<q7nAP>RjPOu1ss
zNkX-kOQ0U*(YN-=E~$0RgT2sWX9-R8l3gCD_6I1mZndt@<4fSJnm%x3FIM#kK?t$)
zk9lE$8)<z162jo-SV8d$(j=Yj^x$~xi4@*4F|cod)s1CNtU-4g<FYsT`)1HZPdfC<
zv7DK0B4D_uA+1$9<!wvWv7jQ-ef~-tU6@!s=y?eJZ)a9PqfD2ym2F(>Xi&U9Eb9%J
zV%uM^Ss#*}6|&5IATz8e+~B~vzdivKl_Jn<-AC6ohIjZ+SYfY~4M);&pz-Y0lU}~M
z4R#?TlOiPve^JX|R%NWIY(#OUE5}1>9hss{q?V{-v2x_PN4sKUMLK-i3j^o9%w#>W
z!QenTH at j#>bNRfQ198|uc}kJM2>#PzwDLxz*yD3&UkioQsMXCvRT%?ZE>@>#+sD*5
zdL6vh9bYK=YYub51TF_j7(<=d51Vr|#nFk*tg70L>&Cbeh?z66BlT-%zRlQ at I~JIy
zXbUnpXmxxI^IpW`2spHUF10i~qgTQ#8z&DXiRKrB at +;^{fyBs}kba4`B?$#M3%|HH
z{4|dTLro*NQJ0k{wo&e0McedoG;ns~<xXhw<Z*zJn%(iD6HE;<6-545;M`QZ+CoGB
zQ_$dX78gKM%uWIF=8FAoMDQ%uN^t$IgY3PUsx>CbyHYW`dLAi4>$3*n4hW_m!81C@
zJigogUkWLfG??T4(olH{38t$0Dyn(KWp`|9J4k%M^l`2YVrSJdu>b}{rD0TX)Fh+n
z2&IZ0WL&L}pf2f^0?*SpLqcWR7un<l>NoBaxb5kJi>Wt>FTRA>3cv-F-nSOH)v#jK
zA;GgCI<W!@fSp}H6zfL8`kfcKqDhc9*&+$_zaE<io<$I!8w(y;DHz*=L4XcKt6?P*
z+Y^6gX_zSI_1zzzE>SAgp6L^53ie1NP7tEfwD3{*`^Gs{Aue=XU-5NL!2wQ_C;f*C
zYg)wA0 at G55pD}~gg=>h at jW33jr*Gs4*4T-#Xi<Wz_(@V=tvy48Q*EX*b^n(lw1ZR;
zZP{G#kvhIdzsb<!@i?*0Po1fh+mL$%#>CXs&j3^sC9VgsYfmA}7sN4?1xiU`KH_{4
z_I(rtPSB}=_~#d?4_3U}_P+dLeK at e%efIN>$wa0VLlrpQM%K>01MGM$wZ#22d^S3F
zZtUxy!XvV<+({wYeRZ_jSWoO}FYWH!%X*}I$}iyFtmt{`6Ve`;?@ka+eXhPl4w)@3
zW^l?b^*hMHnagi%NLFdfyhN$L@{Q|5YWfVEoBV2PZLd;jLo&qWLHSxt&EbUg1P*=+
z3P0n|4 at +8PFW=9j^J#XK9?LeHwMBzGk{zJHoYL at HMMBJ<L)F)TZpW0`gFjvK$%6SL
zuiJFR0 at k94R-<?Tgv~j|tXk<*@;nq3lKOeH)fCK?|CbVqTa*07?$b_3iak6sd1Y8@
zK<|Rmo_IPqW at iPi8>vuik;CT-XBHa)`(vZnY#5o+pbpJ!8(w`)ll*7rd;N!Z5rv#Z
z(Kf7zz^;R?$JItO{(R`SRNjqv=`#VB*ILi_as-(p!C-5L%=&nd6C^)#FL_v2Pp|%g
z>G88WSVy9(5fEp7B0Y3vKq25p-+nlAU|(r1BR4ul16*ss1`XCPd{SB_TinCc2D1zH
zAV!2iUTB!CG^#5Txi9tTH78o?a>8+;%fIHqMUnL|yw_m%OJY-Qduz^tS620_;Dq*p
zP0*(h0_#0kO&H`T4re8g(7!d9#nV$)Qp*Lde^Lf_rP$k<4Mk62`u_W&O-Ei*+P3%B
z1V&ZCgdr%*ZF$WSnmG8kO^SjJ at Jgh&SGySEOq%pRu8i9RyssD0)S(r7mdVa##u(h7
zn)r~BeHA?LN<-o>Y>8VJ7MgNa&{nRL*Kph;DLUL0o2nTf)DzRb9B7lEB(-Gtq5o?P
zU#}84lbgq*)mn~{j;iUO(^8tpw9QhB<)!~w?9I1rcc)If8t0Gjex~D5BwOTo^0?l-
z$FGGsquJKlIOz-Q8%$tlJGNj;_G7d=;zww~V<QZ>JAS3p at N)faP%&pq1zbcCSZ*B^
zRSfhYftyY1+e70khAj<oRGtXOaXvZ8Q$Io0G at B{)-;Qhi??Xc1`V(Ni0BZIc;GV^L
zI&F+@??+vc*7u at k_iA*io8p|##k8A5U~)gzg2=_PH}sM-GI+>IrqHwY{g*sZfexAV
zkOuCdDHB5OLKu4tJD&yy#xj1H+_tRb at qy*0<dY;&sArMjMj13k`U3`ab3KXyGBLBL
z1)GD*D{Q#p%t&z!(9d%RfNW8*3Jt!#&I4xc+7xA*_bR9T7rD9xk+^n^2OOE8m+Jb_
zf)|*_+mPFUC?+=4K2P$&Zj4EXkK2*o`evBlyaUd%Z$53_bb|C$V>3AG(7Cnk;_0~F
zi<_O*z`4LaZd=4HY6Go`3oZEBH_mnMVZ;;j=R%D2`L-kW#kme?v(n9N`v4gP=g5G%
zfzygAFg1%D?$`kSzClWy4L{0yYyTE8Wq5!PQ}*-^0DaaKc^>bLh>cv=cy2>x;mU}c
zZxMMX*_2WIFzZ=9pBn;ki^J{?i%=m>T>LJ$k>DWH0=|UfEaPGihZxdky*<7+J3KtX
zICVcMhm*j_IUK?&DvQNN46QYOWceR&fLo$3z<KuB7_geZf at WI+%ZQ4ArNp at s8tbhs
z*>@a+FBIe!&&_MdfIgE4Wb2&d)v=nnkDBw;EQ=?uYqCll)cX3?4(s^Nq;5PYFMN9I
zYYguAC^<>ZTmUyi@?I1_maTFBR?_cl2qrVco!Jv;b0s!5O>WISpxAdV+|#Skd-fr=
z_(DZHuz`?tC}m^8x1TonJS!44*(WH+kAWRqSoCsJx2?O)GCo(sIJ(6)_oA$lVNIC%
z)!od?Kfxx2hh2yYNr9O4-XrD75cQDEQZ?NNEcy=A2!;OSpE)kumknyVvp!O4KBU`i
zNmjKp4WFx#nq4v!eUPjQ+ON{RS;9qwHo)I!oo_)k#w4;+5}=Wy98J5M>(wNOwTwxD
zS+w<?%tqRhFq=A~!@x}}8`(K(U8q)QNmTmvv9fCV6*PVl)R>Mn;fD8B6&ya;Z%$w=
zZumh#1292TG9735gGqrK1AI$&BUes?qV-g2bCVH{x}=w4rkp2~HgF)AWUIQTsmK!x
zyh0pqk+_isD@&4WMlqUdYWiMQ(Mg#;`(%~^f=QVcj}DZhzy(Eozc*<TTw-})Hakui
zu4VU=BuT01ChCWkO3$Hf{6<Rv)nOMY;@O^|q`H$;xM14=D<vYMZ8HA-n>YZ)Mm53l
z-IkF)hM!S@)hC-MgNuzoM|+65m_x!udRw;+`^jvxiJIih*C6{RNd(EyYH_Y|uw<dH
z at oX<C2k=ni^)7XO!(|o4;C2DayjZ at Af71wV$NXD2IZ*?s5Nj#G0&&K;T;KU<YTNSw
zHopZ2yO41a8?Mkx+$>)CIYJAo9wL7Q7m(VGIz?hm at U09_XHYxts_WDmk44BYyFbE|
zP7~@b;egqgfmP$?Uf8pPLX9<vnl8lK(l&FfaGW2x at Nr;Q at Wk{{wxO66Lt+`)%WJ9E
zGOB9OLsFL}d-EPHbd-3z)PVerjxoYbl*4;EGlE|mQ`?}4f9U2nJ#<l#h}W?lxmREt
zklh1?jUapRjA2Dd3(YP?4RW;7veYS3|A9_{-t9K=0s$VA{YtsyT#t|$?|s1_X*QU}
zWzb*t%yVDOP6|9n(x+U at i3<c&&4l1E-NTQp!XNh+xo<J%lY1TnF9Tczq+ekk1yYig
zRHSBMG?58h7TMeS8Q-2HaaI)LSyW*}nmo3H6+B83=(Ief^(jFQ5o)JAJ0xL>?z%J#
zobK<fuqEZI?V$K<A=Ks~gWJW9f!n))(l80qb^r%(E{@+zjb`QRBwC7D33MDi3n?P-
ziPUzvSDm}I-W{7eOv)V<=ms0Bk$}mW7DebH=@;ZHS{S3*n7UhleAZ^IL$tQ>_AM<v
z4_aa*0MLP}Qm07T;98FY<`+~)1m4L$!xAI9{!BqN#Gw9d(#gJS`<HeAyQL=5a|mZ_
z&PJrnC at +@b#R~8DHnMMW9%B-H_0olo?<H=%t(R;im?ljz1+fA^e403%EiGtWK3;)d
z8X5bdA%ptB*BAUpa)3mQV9+<7Bs;!lSu;pUHb?Pks<mGqEKoA1+cQN at J*pDR^3Kn!
z3m$x&Xk%~Nz32E|^~cM+(@`-5EgucNWc_uVbeD$(lr}Yme;XCpoGGay3zL`O-|6YE
znldNT(voIg`}F(7=-Z}ZVwg!Fab at 2PBZP!Q`Bw=J$J1_5sY}HnRjH0DiZ2c+6uZnb
zK8PUGf*FC%{?Bc}jlcZLU*`|8GJrdf<9=9b`g1bffiPBXEw|KVnLTvcKSl(Nf4+0t
zh~N;wu$7~(Lpm41VV#9ygOzeCtTT`0jDvzmz9utw^=BrERYn4yCx})vd8W4vl|omY
z*P73R+TQXW%p4&k5~8Lr!yTZQ&Td3G02ABG0MI}V83hd4dyizJ({~YDTSB5 at nuroG
z>>(tQcI8t!Ra6FV3F_assjGsSm%&|X*7zs?lF<HC-AU|U650gNVTN%N3Oz+4hq$CL
z>(Rg(z{P(0HjHnAfB4|urj_$#-FWc903pQ9xG3CChQYe_&t44TCKepRg?^*azU$R8
zdJEP at lGa%#E5`0MnvEdx>J53e?dM?$j1ysi!-K-;vD(~%K<t1NHEN<qQ0%y3$n=-L
z7av)NYG9f^aH$aUEz)$)5k>6x`a&h9jE~C4FB72l3qCpsz6DWFkMvyC{Q58+A2uF4
zPK|i=$!a_WoC~nljHY~3?0qQshXC&QXe+7e<UQbG=jMouXa5I*1m8bgAla_?U{_wE
zkbOR_Jvn!oo;tWt#i4*A{xnvWhPbH2$`c3n2Z96m5kXim4RtU>V3~Y%Y1n2jA1gyd
z+<XL}l=Zd4Up at aT7{t1K{^yVNTdJT=#j<bk{lx$E<82)X25fP$zP|XsKePCcuP6YC
m`Tw>0-=A6h`^m=lgg-(Eb%(FQ$|3cvSqybep}bQUZ~s5!cn=Q%

literal 0
HcmV?d00001

diff --git a/clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded b/clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded
new file mode 100644
index 000000000000000..e09d1c879ec4f9a
--- /dev/null
+++ b/clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded
@@ -0,0 +1,729 @@
+{
+  "drawFileName": true,
+  "entities": [
+    {
+      "loc": {
+        "x": 20,
+        "y": 35
+      },
+      "name": "TU",
+      "objectGraphNodeID": "TranslationUnitDecl 1",
+      "size": {
+        "h": 600,
+        "w": 30
+      }
+    },
+    {
+      "attributes": "struct S {\n  template <class T>\n  T identity(T t)\n  {\n    return t;\n  }\n};\n",
+      "fillColor": "Yellow",
+      "loc": {
+        "x": 845,
+        "y": 35
+      },
+      "name": "Source Code",
+      "size": {
+        "h": 130,
+        "w": 120
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 110,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 14",
+      "size": {
+        "h": 550,
+        "w": 245
+      }
+    },
+    {
+      "loc": {
+        "x": 110,
+        "y": 35
+      },
+      "name": "$(graphNodeID) (__int128_t)",
+      "objectGraphNodeID": "TypedefDecl 2",
+      "size": {
+        "h": 20,
+        "w": 245
+      }
+    },
+    {
+      "loc": {
+        "x": 440,
+        "y": 85
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "DefinitionData 28",
+      "size": {
+        "h": 35,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 440,
+        "y": 130
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXRecordDecl 15",
+      "size": {
+        "h": 100,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 440,
+        "y": 245
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl 16",
+      "size": {
+        "h": 90,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 755,
+        "y": 255
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "FunctionTemplateDecl::Common 29",
+      "size": {
+        "h": 60,
+        "w": 210
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 630,
+        "y": 355
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "TemplateTypeParmDecl 17",
+      "size": {
+        "h": 70,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Focus Node",
+      "loc": {
+        "x": 440,
+        "y": 450
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CXXMethodDecl 19",
+      "size": {
+        "h": 75,
+        "w": 250
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n$(graphNodeShowFieldsPtrs)\n",
+      "loc": {
+        "x": 630,
+        "y": 560
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "ParmVarDecl 21",
+      "size": {
+        "h": 75,
+        "w": 275
+      }
+    },
+    {
+      "attributes": "$(graphNodeShowFieldsAttrs)\n\n$(graphNodeShowFieldsPtrs)\n",
+      "fillColor": "Stmt",
+      "loc": {
+        "x": 440,
+        "y": 560
+      },
+      "name": "$(graphNodeID)",
+      "objectGraphNodeID": "CompoundStmt 22",
+      "size": {
+        "h": 20,
+        "w": 120
+      }
+    }
+  ],
+  "inheritances": [],
+  "namedColors": [
+    {
+      "color": "RGB(0,0,0)",
+      "name": "Black"
+    },
+    {
+      "color": "RGB(192,192,192)",
+      "name": "Gray"
+    },
+    {
+      "color": "RGB(255,255,255)",
+      "name": "White"
+    },
+    {
+      "color": "RGB(224,224,224)",
+      "name": "Light Gray"
+    },
+    {
+      "color": "RGB(236,125,70)",
+      "name": "Orange"
+    },
+    {
+      "color": "RGB(234,236,52)",
+      "name": "Yellow"
+    },
+    {
+      "color": "RGB(76,222,76)",
+      "name": "Green"
+    },
+    {
+      "color": "RGB(135,193,255)",
+      "name": "Sky Blue"
+    },
+    {
+      "color": "RGB(161,140,237)",
+      "name": "Purple"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Pink"
+    },
+    {
+      "color": "RGB(248,50,50)",
+      "name": "Red"
+    },
+    {
+      "color": "RGB(150,255,150)",
+      "name": "CanonicalType"
+    },
+    {
+      "color": "RGB(60,200,60)",
+      "name": "Type"
+    },
+    {
+      "color": "RGB(227,120,236)",
+      "name": "Stmt"
+    },
+    {
+      "color": "RGB(255,204,204)",
+      "name": "Focus Node"
+    }
+  ],
+  "objectGraph": {
+    "BuiltinType 10": {"syntax": "\"char\""},
+    "BuiltinType 3": {"syntax": "\"__int128\""},
+    "BuiltinType 5": {"syntax": "\"unsigned __int128\""},
+    "CXXMethodDecl 19": {
+      "Access": "AS_public",
+      "Body": {"ptr": "CompoundStmt 22"},
+      "DC": {"ptr": "CXXRecordDecl 14"},
+      "DNLoc": "(none)",
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXMethodDecl",
+      "DeclType": {
+        "preview": "T (T)",
+        "ptr": "FunctionProtoType 20"
+      },
+      "DefaultKWLoc": "<invalid loc>",
+      "EndRangeLoc": "in/src/oc-cont-ft-defn.cc:9:3",
+      "ExtInfo": "absent",
+      "FTD": {"ptr": "FunctionTemplateDecl 16"},
+      "FirstDecl": {"ptr": "ParmVarDecl 21"},
+      "FunctionDeclBits": "IsInline HasWrittenPrototype HasODRHash",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InnerLocStart": "in/src/oc-cont-ft-defn.cc:6:3",
+      "LDC": {"ptr": "CXXRecordDecl 14"},
+      "LastDecl": {"ptr": "ParmVarDecl 21"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/oc-cont-ft-defn.cc:6:5",
+      "LookupPtr": "null",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "4105815189",
+      "ParamInfo[0]": {"ptr": "ParmVarDecl 21"},
+      "RD::First": {"ptr": "CXXMethodDecl 19"},
+      "RD::Prev": {"ptr": "CXXMethodDecl 19"},
+      "SClass": "SC_None",
+      "TInfo": "FunctionProto(\"T (T)\", <in/src/oc-cont-ft-defn.cc:6:3, col:17>, TemplateTypeParm(\"T\", <in/src/oc-cont-ft-defn.cc:6:3>, NullTypeLoc))",
+      "getDescribedFunctionTemplate()": {"ptr": "FunctionTemplateDecl 16"},
+      "getInstantiatedFromMemberFunction()": {"ptr": "null"},
+      "getMemberSpecializationInfo()": {"ptr": "null"},
+      "getPrimaryTemplate()": {"ptr": "null"},
+      "getTemplateInstantiationPattern(false)": {"ptr": "null"},
+      "getTemplateInstantiationPattern(true)": {"ptr": "null"},
+      "getTemplateSpecializationInfo()": {"ptr": "null"},
+      "getTemplatedKind()": "TK_FunctionTemplate",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 14": {
+      "Access": "AS_none",
+      "Bits.IsCompleteDefinition": "true",
+      "BraceRange": "<in/src/oc-cont-ft-defn.cc:4:10, line:10:1>",
+      "DC": {"ptr": "TranslationUnitDecl 1"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "DefinitionData 28"},
+      "FirstDecl": {"ptr": "CXXRecordDecl 15"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "TranslationUnitDecl 1"},
+      "LastDecl": {"ptr": "FunctionTemplateDecl 16"},
+      "Linkage": "ExternalLinkage",
+      "Loc": "in/src/oc-cont-ft-defn.cc:4:8",
+      "LocStart": "in/src/oc-cont-ft-defn.cc:4:1",
+      "LookupPtr": "StoredDeclsMap with 2 entries",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "null"},
+      "ODRHash": "42003893",
+      "RD::First": {"ptr": "CXXRecordDecl 14"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 14"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct IsCompleteDefinition IsFreeStanding MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 27"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 15": {
+      "Access": "AS_public",
+      "Bits.IsCompleteDefinition": "false",
+      "BraceRange": "<<invalid sloc>>",
+      "DC": {"ptr": "CXXRecordDecl 14"},
+      "Decl::Implicit": "true",
+      "Decl::flags": "Implicit",
+      "DeclContextBits": "",
+      "DeclKind": "CXXRecordDecl",
+      "DefinitionData": {"ptr": "null"},
+      "FirstDecl": {"ptr": "null"},
+      "IdentifierNamespace": "IDNS_Tag|IDNS_Type",
+      "LDC": {"ptr": "CXXRecordDecl 14"},
+      "LastDecl": {"ptr": "null"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/oc-cont-ft-defn.cc:4:8",
+      "LocStart": "in/src/oc-cont-ft-defn.cc:4:1",
+      "LookupPtr": "null",
+      "Name": "\"S\"",
+      "NextInContext": {"ptr": "FunctionTemplateDecl 16"},
+      "ODRHash": "58770973",
+      "RD::First": {"ptr": "CXXRecordDecl 15"},
+      "RD::Prev": {"ptr": "CXXRecordDecl 15"},
+      "RecordDeclBits": "APK_CanPassInRegs",
+      "TagDeclBits": "TTK_Struct MayHaveOutOfDateDef",
+      "TemplateOrInstantiation": "null",
+      "TypeForDecl": {
+        "preview": "struct S",
+        "ptr": "RecordType 27"
+      },
+      "TypedefNameDeclOrQualifier.name": {"ptr": "null"},
+      "getDependentLambdaCallOperator()": {"ptr": "null"},
+      "getDescribedClassTemplate()": {"ptr": "null"},
+      "getInstantiatedFromMemberClass()": {"ptr": "null"},
+      "getTemplateInstantiationPattern()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "CXXRecordDecl 25": {"skipping reserved": "\"__NSConstantString_tag\""},
+    "CXXRecordDecl 26": {"skipping reserved": "\"__va_list_tag\""},
+    "CompoundStmt 22": {},
+    "ConstantArrayType 12": {"syntax": "\"struct __va_list_tag[1]\""},
+    "DeclRefExpr 24": {
+      "D": {"ptr": "ParmVarDecl 21"},
+      "DNLoc": "(none)",
+      "DeclRefExprBits": "",
+      "Dependent": "Instantiation|Type|Value",
+      "Loc": "in/src/oc-cont-ft-defn.cc:8:12",
+      "ObjectKind": "OK_Ordinary",
+      "TR": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 18"
+      },
+      "ValueKind": "VK_LValue"
+    },
+    "DefinitionData 28": {
+      "Bases": "TODO",
+      "Conversions": "TODO",
+      "DeclaredNonTrivialSpecialMembers": "SMF_None",
+      "DeclaredNonTrivialSpecialMembersForCall": "SMF_None",
+      "DeclaredSpecialMembers": "SMF_None",
+      "Definition": {"ptr": "CXXRecordDecl 14"},
+      "FirstFriend": "TODO",
+      "HasTrivialSpecialMembers": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "HasTrivialSpecialMembersForCall": "SMF_DefaultConstructor|SMF_CopyConstructor|SMF_MoveConstructor|SMF_CopyAssignment|SMF_MoveAssignment|SMF_Destructor",
+      "NumBases": "0",
+      "NumVBases": "0",
+      "ODRHash": "0",
+      "UserDeclaredSpecialMembers": "SMF_None",
+      "VBases": "TODO",
+      "VisibleConversions": "TODO",
+      "flags": [
+        "Aggregate",
+        "PlainOldData",
+        "Empty",
+        "IsStandardLayout",
+        "IsCXX11StandardLayout",
+        "HasIrrelevantDestructor",
+        "DefaultedDefaultConstructorIsConstexpr",
+        "DefaultedDestructorIsConstexpr",
+        "StructuralIfLiteral",
+        "ImplicitCopyConstructorCanHaveConstParamForVBase",
+        "ImplicitCopyConstructorCanHaveConstParamForNonVBase",
+        "ImplicitCopyAssignmentHasConstParam"
+      ]
+    },
+    "FunctionProtoType 20": {
+      "Canon": {
+        "preview": "type-parameter-0-0 (type-parameter-0-0)",
+        "ptr": "FunctionProtoType 31"
+      },
+      "ResultType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 18"
+      },
+      "paramType[0]": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 18"
+      },
+      "syntax": "\"T (T)\""
+    },
+    "FunctionProtoType 31": {
+      "ResultType": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 30"
+      },
+      "paramType[0]": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 30"
+      },
+      "syntax": "\"type-parameter-0-0 (type-parameter-0-0)\""
+    },
+    "FunctionTemplateDecl 16": {
+      "Access": "AS_public",
+      "Cmn": {"ptr": "FunctionTemplateDecl::Common 29"},
+      "DC": {"ptr": "CXXRecordDecl 14"},
+      "Decl::flags": "",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "LDC": {"ptr": "CXXRecordDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/oc-cont-ft-defn.cc:6:5",
+      "Name": "\"identity\"",
+      "NextInContext": {"ptr": "null"},
+      "Param[0]": {"ptr": "TemplateTypeParmDecl 17"},
+      "RD::First": {"ptr": "FunctionTemplateDecl 16"},
+      "RD::Prev": {"ptr": "FunctionTemplateDecl 16"},
+      "TP": "\"template <class T>\"",
+      "TP->Flags": "",
+      "TP->LAngleLoc": "in/src/oc-cont-ft-defn.cc:5:12",
+      "TP->NumTParams": "1",
+      "TP->RAngleLoc": "in/src/oc-cont-ft-defn.cc:5:20",
+      "TP->Requires": {"ptr": "null"},
+      "TP->TemplateLoc": "in/src/oc-cont-ft-defn.cc:5:3",
+      "TdD": {"ptr": "CXXMethodDecl 19"},
+      "getInstantiatedFromMemberTemplate()": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "FunctionTemplateDecl::Common 29": {
+      "InjectedArgs": "null",
+      "InstantiatedFromMember": {"ptr": "null"},
+      "LazySpecializations": "null",
+      "Specializations": "empty",
+      "associated decl": {"ptr": "FunctionTemplateDecl 16"},
+      "explicitMemberSpec": "0"
+    },
+    "ParmVarDecl 21": {
+      "ARCPseudoStrong": "0",
+      "Access": "AS_none",
+      "DC": {"ptr": "CXXMethodDecl 19"},
+      "Decl::flags": "Referenced",
+      "DeclType": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 18"
+      },
+      "DefaultArgKind": "DAK_Normal",
+      "ExtInfo": "absent",
+      "IdentifierNamespace": "IDNS_Ordinary",
+      "InitStmt": {"ptr": "null"},
+      "InitStyle": "CInit",
+      "InnerLocStart": "in/src/oc-cont-ft-defn.cc:6:14",
+      "LDC": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/oc-cont-ft-defn.cc:6:16",
+      "Name": "\"t\"",
+      "NextInContext": {"ptr": "null"},
+      "ParameterIndex": "0",
+      "ParmVarDeclBits flags": "",
+      "SClass": "SC_None",
+      "ScopeDepthOrObjCQuals": "0",
+      "TInfo": "TemplateTypeParm(\"T\", <in/src/oc-cont-ft-defn.cc:6:14>, NullTypeLoc)",
+      "TSCSpec": "TSCS_unspecified",
+      "moduleOwnershipKind": "Unowned"
+    },
+    "PointerType 9": {
+      "PointeeType": {
+        "preview": "char",
+        "ptr": "BuiltinType 10"
+      },
+      "syntax": "\"char *\""
+    },
+    "RecordType 13": {
+      "decl": {"ptr": "CXXRecordDecl 26"},
+      "syntax": "\"struct __va_list_tag\""
+    },
+    "RecordType 27": {
+      "decl": {"ptr": "CXXRecordDecl 14"},
+      "syntax": "\"struct S\""
+    },
+    "RecordType 7": {
+      "decl": {"ptr": "CXXRecordDecl 25"},
+      "syntax": "\"struct __NSConstantString_tag\""
+    },
+    "ReturnStmt 23": {},
+    "TemplateTypeParmDecl 17": {
+      "Access": "AS_public",
+      "DC": {"ptr": "CXXMethodDecl 19"},
+      "Decl::flags": "Referenced",
+      "IdentifierNamespace": "IDNS_Type|IDNS_Ordinary",
+      "LDC": {"ptr": "CXXMethodDecl 19"},
+      "Linkage": "(not set)",
+      "Loc": "in/src/oc-cont-ft-defn.cc:5:19",
+      "LocStart": "in/src/oc-cont-ft-defn.cc:5:13",
+      "Name": "\"T\"",
+      "NextInContext": {"ptr": "null"},
+      "NumExpanded": "0",
+      "TemplateTypeParmDecl flags": "",
+      "TypeForDecl": {
+        "preview": "T",
+        "ptr": "TemplateTypeParmType 18"
+      },
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TemplateTypeParmType 18": {
+      "Canon": {
+        "preview": "type-parameter-0-0",
+        "ptr": "TemplateTypeParmType 30"
+      },
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "TemplateTypeParmDecl 17"},
+      "isParameterPack": "0",
+      "syntax": "\"T\""
+    },
+    "TemplateTypeParmType 30": {
+      "Depth": "0",
+      "Index": "0",
+      "TTPDecl": {"ptr": "null"},
+      "isParameterPack": "0",
+      "syntax": "\"type-parameter-0-0\""
+    },
+    "TranslationUnitDecl 1": {
+      "Access": "AS_none",
+      "DC": {"ptr": "null"},
+      "Decl::flags": "",
+      "DeclContextBits": "",
+      "DeclKind": "TranslationUnitDecl",
+      "FirstDecl": {"ptr": "TypedefDecl 2"},
+      "IdentifierNamespace": "0",
+      "LDC": {"ptr": "null"},
+      "LastDecl": {"ptr": "CXXRecordDecl 14"},
+      "Linkage": "(not set)",
+      "Loc": "<invalid loc>",
+      "LookupPtr": "StoredDeclsMap with 6 entries",
+      "NextInContext": {"ptr": "null"},
+      "moduleOwnershipKind": "Unowned"
+    },
+    "TypedefDecl 11": {"skipping reserved": "\"__builtin_va_list\""},
+    "TypedefDecl 2": {"skipping reserved": "\"__int128_t\""},
+    "TypedefDecl 4": {"skipping reserved": "\"__uint128_t\""},
+    "TypedefDecl 6": {"skipping reserved": "\"__NSConstantString\""},
+    "TypedefDecl 8": {"skipping reserved": "\"__builtin_ms_va_list\""}
+  },
+  "objectGraphConfig": {
+    "newNodeAttributes": null,
+    "newNodeName": null,
+    "showFields": [
+      "specKind",
+      "Name",
+      "TemplateArguments",
+      "NumParams",
+      "InstantiatedFromMember.ptr",
+      "Specializations",
+      "TypeForDecl",
+      "DeclType",
+      "NextInContext",
+      "TemplatedDecl",
+      "TemplateOrInstantiation",
+      "FirstDecl",
+      "DefinitionData",
+      "TP->NumTParams",
+      "TP",
+      "InstantiatedFromMember"
+    ]
+  },
+  "objectGraphSourceFile": "../../out/oc-cont-ft-defn.cc.abbrev.json",
+  "relations": [
+    {
+      "end": {"entityRef": 2},
+      "label": "LastDecl",
+      "start": {"entityRef": 0}
+    },
+    {
+      "dashStructure": [
+        1,
+        2
+      ],
+      "end": {"entityRef": 2},
+      "label": "NextInContext",
+      "start": {"entityRef": 3}
+    },
+    {
+      "controlPts": [{
+        "x": 620,
+        "y": 415
+      }],
+      "end": {"entityRef": 6},
+      "label": "FTD",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 3},
+      "label": "FirstDecl",
+      "start": {"entityRef": 0}
+    },
+    {
+      "controlPts": [{
+        "x": 60,
+        "y": 130
+      }],
+      "end": {"entityRef": 0},
+      "label": "DC",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 4},
+      "label": "DefinitionData",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 360,
+        "y": 110
+      }],
+      "end": {"entityRef": 2},
+      "label": "Definition",
+      "start": {"entityRef": 4}
+    },
+    {
+      "end": {"entityRef": 5},
+      "label": "FirstDecl",
+      "start": {"entityRef": 2}
+    },
+    {
+      "controlPts": [{
+        "x": 365,
+        "y": 205
+      }],
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 6},
+      "label": "NextInContext",
+      "start": {"entityRef": 5}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 430,
+        "y": 280
+      }],
+      "end": {"entityRef": 6},
+      "label": "LastDecl",
+      "start": {"entityRef": 2}
+    },
+    {
+      "end": {"entityRef": 7},
+      "label": "Cmn",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 8},
+      "label": "Param[0]",
+      "start": {"entityRef": 6}
+    },
+    {
+      "controlPts": [{
+        "x": 455,
+        "y": 360
+      }],
+      "end": {"entityRef": 9},
+      "label": "TdD",
+      "start": {"entityRef": 6}
+    },
+    {
+      "end": {"entityRef": 2},
+      "label": "DC",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 10},
+      "label": "FirstDecl",
+      "start": {"entityRef": 9}
+    },
+    {
+      "controlPts": [{
+        "x": 640,
+        "y": 540
+      }],
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 10}
+    },
+    {
+      "controlPts": [{
+        "x": 785,
+        "y": 495
+      }],
+      "end": {"entityRef": 10},
+      "label": "ParamInfo[0]",
+      "start": {"entityRef": 9}
+    },
+    {
+      "end": {"entityRef": 9},
+      "label": "DC",
+      "start": {"entityRef": 8}
+    },
+    {
+      "end": {"entityRef": 11},
+      "label": "Body",
+      "start": {"entityRef": 9}
+    }
+  ],
+  "type": "Diagram Editor Diagram",
+  "version": 30,
+  "windowSize": {
+    "h": 652,
+    "w": 981
+  }
+}
diff --git a/clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded.png b/clang/docs/ASTsForTemplatesImages/oc-cont-ft-defn.ded.png
new file mode 100644
index 0000000000000000000000000000000000000000..68ec5df9fffa4421f1cfb2a445d5bfa4d158369c
GIT binary patch
literal 23009
zcmce-dpy(qA3v<~Q6)(fVwIwDMJneK<`8NPIhQa|<S;TuN0%HMA#x}tHm9<X!|0%L
zUMq8oErm3P6=vC*{obEVUDx%!e~<hA at BUto$M?E?_CCIj&)4C7`=k|Ie6{RqF)=Z5
zGgBjknAj4UnAqaDmCM1G;kx^G!S}5g<e8x3ewQwJ_y&oIUCEqqycF1Hx^Z4rg@(Oc
z`dE6^(t8&9E!VE3m7hOyJc%6RT>9kT*-JMY6L#nnzlv;_OqYmrk+3R9E0hLjT|Y%R
z(V+if0G5sZ8&?q6ooDB6#*S!o>w8B~sK!|wCky86Ig1 at x24k-5`reD9K4eDuA at PB)
zL)`Hj^mjLS28D9`mL}$)%H>h7==EEE98Waz{S^6qz{~WKwZ_#$L4w?8{Ws{WgXhS~
zXUeL34`!n`8n=-XVg0u2uSw{<f7CY}Uv@#lx%BKlBDqp;V^rU`ctXd)?!nB`L{EpA
z)qfwUcyvJabz66C<Y0Gue8aW%k2(G9x?`V~tv&Q}J-hDHs^uY{*?qQF^%pj1-1lCx
zLAAY(y0LAm=OT{ah{KMSd-_WsxG=Q_Wlr9FJ{<4*^NLdTqa*5TAO6UGiBk_f7;clx
zf5B>SJ*{&#;a!+cd#%SRdVA&TP>NrV%D_pTn%Y2q(_djBr+Ozz>=^B!4$h$uj`uxu
zsy?c1LYscwe`L$g-aAG{8e!kW9aDSWX?LEeh`)Pzo%|21ZMnMqu2*0D&dRm>ZyEdg
z#4oP{rLKN!Y1Y%F1qRMnOLrP}J&m|2#-HDQX8#gb4QrC=&ZP$;GPY;gZoKmM>ZFxd
zj~!OLxMwfba?QJx#X%(ss#jwQzh0C3yD#NvOI>0`iS*64VX}Hl)pgYmeVd<oZgtTO
zy>58h#CP0Zi>{g+V63?RdHeYjc^*iws8_eH-8-}F3F}i*hJD=EUz_SKjg|_Irf-#C
zj5NP0>1iHxx_$9w>RJ~8ceb$is^GF?bBAMMk84n8jJZc<hWK2;yTyrP+x9#^dVGEl
zK1aSkdgMZTF!=AMX_KE7-^WP%p=F~kXx6B-o;MBLyezir?70V3$W)IOT>eDx)fFV_
z1RkH)N%2{{PUFkd6bV1BM+uqzSy$5Jt=E>b!6ceZlkx$_P-Euk^&r#YsRRD}x?^p@
zWs78P<}(K~wCDKOR+gN@?_SZkKD>LE{9;?*b=yl;eRY9noiaVsrWV38Ec2 at TVXbKM
zX|<l+kMN+0swZQ{rHPI{CX(=%6$%n7ckoTB6js(!&*f~gS3RCGWEN_!dR&J0u=YD4
zFTY^u`+Co;-VOFErBEMgZNgdAhfHS<UGDmMS?bC4E4NajmJItJ(ro-{m$q^fSK?k&
zZbIXQBb=tioTMc;o+plWkCtrRb3?k6<^IG$|8wvwtPD2jo1_CmCu4Bxdh*c9?8n<z
zKXYr_^);%)Y}{BnXX)uOX94a?Y2KoH<ZI2W at UOBrtaQ<QS3^(1#-6u_9*5{ACMZtN
zSYND-?DJD(cY6&{mOR+OQADo!D at cFqWap{WCNYJt``3gHmgjYd>1=GCJF-JlV>P_~
zD;LR&znLQ at 4pT9TJ886K>-w at m#)?nwjbmxm7BaT3gE2j$>3M^+8Q->T-O3l^k at eOx
zraJK}V^xeNFXPlW>Aa-zw6Tp!IeYKOz1!}g|07A_N+o<ctNu0Ny4nx#m))H6>&b?l
z_dfkF8w|eT8)Qs1d0!i>`$OxwS#D`P{ZNK2<#C++qs7nF?Q<^}9QG?(S}i}z>rdK~
zg<oQkWcmD55#iC2Vgm`U<so((RG+^+QDfI~KhgJQ8Dms at 0-aBml|5?17_GnH)q7%{
zbZ>*$iMqv>gF7C#s;(_twro1;(2!JTGnYdxa;RT#5%+7ux~ZmHD>}5+q_VzEWtY1r
z)L6Ogxwj+wk*as?22$h?u7VWOQ2*TI#>~2Cty?OgbzfGp*QQJU9HwSoQN+H`9S=fU
z7wt1ve{t+DBUx;)f11ty9uJu#PvCE at H*^f%s7-n|_hS9oMqG5xx~{dKc`t`IpsY+3
z7n9-Ci)PE#B6n|2`s?||b;*m5wQegE_wYP^{OR at e*d;$~j1xca?-=n|(P(vW-gMu`
z5S@|MIkz1hw2u4cN3w9Q5C2%SK7XxAs(Jc~mY6$p@{JccVb{G4-rRVt{z*H2u}QW3
zOOAWKUN!ZGr}u-^QTue4p$k^L+~@9ALf<35=k at jsoinSC9ki~HyOSMosQTHBr<WJM
z)1E5(wm5zHjXj$*Ru&SxR&AcsTbq6S&Dxgf!A>VHRx|hTl<8algW2n=Q%0WQpZ4C%
z7dscC`_M0Q#YLYVm*`1Buqs0AhGRo}o$s1e)}5ps!M4rIEeUv_njIZZ5<3(XWQ+~!
zwJ5I(X}Wrae#Ka3QDCZA`)1nQfu}1pV}IPIgs<w at d_rpzrFd#><zniQ=U=y9x-S)V
zZ?mU=(O=EOcQmidIem-|KA9d>J~6GZ;==8k)hG9c&LD<}X#+cJ$2Y9r$TwZHhxKV5
zd9h_zM9K!_qEa1XIcC6j`l;jklwyZMcdUU5U%`J~TH@`dlv(MJikIiFQSX$)nN3r_
zyjRONahAbePS-~7txTz^F)#2=fd_o8K8HWi(aGSW^mhkqpN}gxwtLYQv<TmPS~cR3
z at 9W&ACe5q{UX5Eu^R!`pRJ*j^t!3oQGPm at g6^*jA#f&?z{1k3WcbmCjuuE#MpQj(g
z?UHdVlo}t`{;;B_23<KKK^!zwV7Tn({P;YHcuZ>ky!TOb&tpYJzlR-fUOnkx^H=IG
zKG?Ed<=Ro=(v**J)rogLwr+AgqEa?S&r!ZLpzj^+xc0$kGuj%KRh7#2ukV7_nQgPX
zc6ZUq$1x$jI)jr at lbas<9noEBJ2u|K`-Iy}&AQbS?{MAmVzc^jvDE>HWydeDfAPbe
zU$-_YXM7%mvw4$8U-&6($B*5cJpZO$zvf{Wi)!eXEb|)0zxd>AkfQnX+i<7IaV_2B
zUZbqkqUfqChS{|nN1T$-8{pw9!(aXt at Z~u>`T&y(U)g=P5%KoSYWI|Qf>ij!4f7XX
zx-IrEd>wZsZ!Uk$*%RL%n<Mh#sGs5*^AZ!kKU#Yxd+gieJr4$R?R6w?e5zf=EqNbi
zp}9d3e<fBc{zy-lj?3T)Q?*|I>1PDF;kQIg@;<6%uA*1z1Csp;>Q9%SdKc{F4moS7
zx(Ax6As1g>9h>H#kye9Y*^)BYX(a_shz|!ZTp;anvp;v>43{>SkNN6Ya5{S;tkY+3
z(z?&}Zbq!hSZobZHwIDip*(izv%I%)X*Q)wH5w&3xODDt_{r$rp`Yz at R=q#jQ*EwS
z!tM)Fo6IgR-Y$r<h>hJ6 at V#b4#Zx2ws36WcswaoGL*H`g$A;})`!rDZrlOqgS079(
zHGj?-dBf{hu-!Iy at 71ZVasDZ-D*5-)u5*)qRahOiOfjBXU#R=*IsIC at ba!S=`=KL+
zKP8 at w9iC2hI#QXj7WS9Z`dy0gSz-wl&t02f4G+pPR=v-(fB$0rw}T#?RmZCHInL;_
z&e?As1Y9T|>|Hjr^<wk-f$O}Ynkp0D#<Jtn?aSxgCw_c9^DE$!oMdFy-dHa!5Ar7J
zPYWYQ(^&8GGV+^Xg`V~1Je7#6Qi+ew2EW+X(Yem{lWWoFxwZ#)WX>MQ!pAg=Q(`Ak
zals?kmrG}^!@vDpP}{Tqz at g_4tg<Ywn|-=2zlF11{;Av5k%9FrLY4fzYN}Pv3sVCB
z^tLDF1us5@^nH8KMtk!uC5G73U*j3VsQHX+E7NH&sR-HgLFN3Dx<!}UUAId~g<BxM
zd%QhwKk`HFEP^K9_%hrz_{R-5iH>(4YO)L-Tq5}E6iHTHRtKtgof~!dbOz>jQcBal
zi8PvFANirpp(<a?Q_9oB+hMP5es~|ckFTwin!C5vSJCf!*@@dyo!q0({AITG=o4E_
z+=|IzBQ(YI-F42Y^}R?rt=^xXir!ooXTO{b<LV8+KNPO9)vY!hMJXAgck1(eTkCzu
z378T)IVWD0Gmicj(IJ!bdDL{fbB1PqT}*HD$Io*YCWsgO=jvJ_E^h9e{t$+Cca9=H
zyWhFS?eU9#=T9p7*q4W!I_{<&IVFf6y7v6|fla=yy^W7H$j|lf+ITSJ#p>H<<M;_D
zgG$`LAyRMUJfKbYqGeT5ejOY;T#HTiDK58Iqj at tR&AA#8YZsiK|LT&%!_Rh`f2wYJ
z{Ia=O?R(?~__D8UtEwAT{L-6)4Xr)E+(~Qvipt`c<-AU`>$?1aiIuGU(WLi!|Inc`
zFE)NYVu6dPik91`zoT94(=dtpm*3W~%^ggV7rV=(?(WJLTdyRWevd8N(wfuxRNUwE
zvs3Wil?+E!m-)MDIXMFel<FH*yQ7O at Yh4d-3g|)3irv}k(!clI;}WY5406sebid=O
z`zEXIdk$LdtbJ<HQ?c$HN~>T>c}@Gq<ooDN-YJ)RwB8+P?IOH3DllrS4ELvxr)<eP
zZLq&px1eb6HOqRHb<?D<mhnr<<3|;Tt*xI=$K2AjnSGu>Ik&A#{iuEa*7haa*iZL<
zPj+4V)Mw?HmfTZOssq{YTzOA-tV0;$>9e{gWGZ^bQ!cze={e0Qwm7^(QOV`{*zvTz
zSDh!az8J16XfFHfw9CdpYx%8Q$;|l|ACPk?IFBiX)0wkz?IR7GSZ+LBeR+bI*okXq
zM#qp>`X&Z0B|WVv&mPp<y}sks$0gtQ{-XGgoc;UNlW~2II|#z2mCq)lmAh(d#+Izs
zZmwPW*;OD3Vl6Q-{Li#R;eT9RZ^~|%XP3P at KX1nN5!AnJVHbwWLqA<bhU8DNSaxRU
zTRlnM(3dL&WR(d94!@>R#-<1a^Q9bmWTb*~M?<2PLjqkrbDz)aFyrhM(9j-JB4ue6
zr&i;3TU{5f$&(&9^90r^jitA67DK=5o*~w%^<ViFce(5ib6nl1!K={06(J7&q?XJi
zeJHUrM-S=2<-=zBah!W8%r<r5G?(qPQ~srQnN4H12}o3G1($593C*c9C6*l_b5#i0
z)g7ToqVs9dN-4~SsbJ1HL*~i0ly_}${Ti<8?(w%m6I}L#$P at hUDsl<*ugmdBg?7Vz
zJSY$qdyEr(6ce3Cj3E5FF!CsI5j5ui`f<Bx%{xM3i7kx$??=&b#qhGiMeZ;KqyPc8
z``rAz{&Yr3cbQYLXz_X*qFwz6b<B>eEZQAGu0SfRnxdM{umlQvmF)Tw+&GDW6YjK~
zmYBpOof>Uw2rJj;=`5_^M0D)dg)a+1hO0KFi!MZ{cP8dF_+ at 42snXJKzZab){3Ma$
z+3%7ig%}9yZ}XZhMl#r1u}x^rwPIoyl`Jt**d7{!&x#cA-WLN_Y0}6anu<yZ^<M%v
z<9vL!09M0^g13>sq(je{vJDCIy!g&uiit^E5lXO&rUYH|j<+IB_WcTMhf;3TB0!c~
z$YgKCzCS<t`I&}Ert8^n?+6%HAAed`(k&a>(CZPSFBtVlQ7-L^93lMzK_=JjHn_!6
zqCldqA at uqk+r6x;F>|89c3O$g6NZwcP6LbaHa^;&HuY=1PMHxB9-((3AtKx6<4rK@
zs<Jto8aBSSE2Y(fXvW@&zy>9bRhgrW8r5Mrk&zKI@(mOozc>14!hS~EO8 at +`Ci-LP
zXdrf at hZF%%KZzp-WMzEyI4pr+n#IV;ir)`6$<E7x4`Dk}1w<+a!9PZr*O~rlm(M-X
zmYbJb(mkr at XR-+%5%Tv*N_ZE}qfnpEv&^GG)Iji6GxTtJ8^4km at w$hUC{#5uC6-2c
zIG+2+Cy0@$mWX8hsP!gfOTAac*D#SksS_uF$UT?Nui4qHfsjk-)WKssL(M9p4$jy|
zVDUA|Cs74E6BA6}+0x*=>c|8`)?S)acWg3{jqf`NrJJay2ni?jD;<bsnUCX<wU4+J
zk|`CX*wQVlI&{@E5PGT|Qr!-WJ+$6ShR{ac_?p8%y5(RrQg@`?-ZCGeCf)-<e)Y93
z7Rd^-WXH`UuGS&!0#vz*v~$gK+Vjb7uNtB2&br7{9c+gkqmQ`rf?eCZUVt};*xLZ7
zPkR#*ijVuvkt9>d6O|4^3dmKn0zD5+jE}{2n7CBbc>+O6n?KiZjEGV`kn9(E$d|B8
zOpLyR_F12X&p^5cJ3RYUs}m#W>>Yxq3Uw2)5ASf?oapyVfrN7eQUFwvuo+=VG=`Wh
zw(zSlB;VU<hJfL>B72mkvVmfdt8_{0VL~;1=f5ql#)N1F28l!zFUwH*1pZq%Mfepg
zlp)j{(Wmdxi`RkQ|9t&<6IpiWdza5VU5UuiuHUg;$X{?2{kgfO^JbcWN>{LpfH{0#
zkKpS}@pRn6XBiq)Jz0O>c*DeKb?`f0)+>5;obiJ3HL<>nwFj;f{_w$mKw6-2s`V&=
zKF at h9l+5t3`UZxAqeLzZmL|A7*$Yuo*OI7_tE<u>aV!%n4(@)fTk1P0hd)0#Du`V6
zYn&aS5H^zuOHZ7i$clH%A<y=fqq at Oa&fY at i+#YvEWL0-$KzbNYi3zs2oYxRLuQT;*
zRC-Bzceb+vIDrj9FF at tzYQmvYGT@v?5k%5P%np*2;r$e5uSaz8dT^`Ngant<1DFnA
z6Tsn;z0V#sb-W%LOq at x-tZzv~b%}PXvJ&XupQz>VNa^*C-4<}xX-hzK!t&*K?Wtca
zr_1at*lk=u*5V{)!KxiNh$b<Z^8uw2KN8GChdRd!M{Uj6qtJ*u-r$;Mnk$1&Z$^0v
z=B1`32=mx7IxFwGz6Os&od!}+zn=!<JcZT(<HbxXz!b<6Tt%*dF2Q820)J4Fm_<8u
zx%zeydmeMi36rZe0?kDd4Q8-W_!`Km2(2z~1Pbw)m6LjW)xS&LX7YV!$S8OSY;03#
z88rvcPW<M41P1I1_$!w(<Qn>m&q+UPGM|NY3VQQBhSO4f+K32m*bB*pf}{`Fy3T at F
z)OfIFEezNbvyM1<cq$edjq;O&#87CB52Z0lt15{3+FX6|s(Or}_Ec?Gn6p1O#N8R3
z=?%OQx)<dxGo3n=Qs98Pbx=oEPg^@ni~kWiGPK0=*nDjb#6*U7H^dP{F*x4$y#)Dm
zAb_m46CY6&a^NhhOL{q^bkCC at fxe0|W1nX6e!afKTyKFM>atLp$~>C2Nuokh$W;XP
zhr%o^hZJ3Sj){*h%mTN8nBATmeUY)nHm)g7pTqjnG4HJ9t;-EZBaBQn>vsdCld=IO
z-i(kf(b`*c#@UW_Mgffg+KG2Ct;i+XZ&IYS=P1Pgnx7x{>YVd>`jZm^r})KRg}c<c
zVRQ4oGw~}4%O~$JyL82Rd3tu4+Sz0~v|pCP82hFg3|uw!26oUdA~Iw)llt~4{c9<^
z-fa$3rpXJ7AG~+7vay2A8vUZq(!#8s8|Tire4O8DNW7*4C!+l9E0~yZs at f`(90S;Q
z=pszZ#;I|X1hw=^#{h!tJ?G%6J+m|-O>Mg=yFW0OLNR4G)g*aKDAKOnK;{g5&<bey
zO2-z5af*G(lsF{EB?nR>{`Q9ny1x0*IcDx7A%b55YIKn2Q*5x7`uj_GOgu8ja-NL@
zX3%=fUwE->6&l=do5VoZdALAM&Z8sT{wSmp5x0@>Wo7Jpbc%zL_H- at jZDm9iM#hZo
z0&H=C6=NUGO0ZdiuVBiq0gfM0Qs}+eqKp==s~<oNbU%1lCEuRf?jr5-B#z{Iq^W<L
zVQs(%#5Apl?pqaZOr-2uQFNDCxE7q&k{FLnOF&jx6(uAnF%)T1t!Mn1b!`I$HHRfR
zaYz(OAg^abX7`~qVmO|=?UaEb{XT+Y7CujC(SU4L2GY;p5^ZbF+D7Qu|D_52QKvn%
z^Z-)X*l1#Da4K`$>mV2vL-hP1MT#t|d88dkM&G(?=XClK-a-7dat=1^WgAM1+uv0u
z5mIIyEK{Cr8`F2&&zwCz&d}5HGvkf!W#HJDmP-{7qwi0i#&(Z0P*sI3{RP~X-UhP@
z*~;?G#AHsmS at o138S`=AiM|F(;db9`jww4C;cq==!}$pIS0QYc(7bqVpKh&*W0q5(
zHJ2`ZxxqjushM7~gp#d5W}h9gppA0f;pt`-eX9_Bqldz)#YVsRejI^4n4Zq}$wI>6
zZgAiAM=&Z^Mk-XhQ6s(^tpv6@$A~%GJ4tT8Zc^d__a&%Xl9-ZDY?V1cFTWxwD<rb+
z`45*Yk4F{(WdZI-ldu`LEP1z?<+!U)zIK35y|Nj4#`Xr4e{l#q5yCZq at DU(tY_zN=
zp8M)IvuOp9D8Glhy_M-O8eHQdWWd&Y?JyonKjyq|X7~%gYIpc`q+RiP at O?YYx<2&`
zpjNQhX6lxg<BY?M0_^}Ex%hv1nOIlQx~bFZ_l8Z&G*5i!DZ2&qx^ETq5h5COOBDR<
zL#r5|fWW6hQf55#AgY?~089d3A$uR~=7Re7BVV0xdt?<8J-^;Wi0ObycxGL}0~eWJ
zkI#6V1oYwrp`*X=OUp;nQ%?iE`_(q*_nHs~Tj3H^!8Kr#ZIJ-$H}Q{z++orKlDz#b
zA(yF?D_A1jn68eHtBynk1w9K9w3`zSA@<3>61bKgBN`hCRzN=f)PN~5tbxaqm5`B_
z7#?k^0jv}7OKu1c0IYnZd%P2*oM#F0xPhj?T!fy^spMV94o0Ch-DVF?QNPY-zlq>T
zFY%56*YDpWL<(#0+8W2s%rJ^PduU5z-#jigX^X>9_J3H1w%3z5rL#!5ud@=3`k_iA
zk4{=#vTAeupf*9DJ4f}JVNnuHvJy=mCwd-8tVgjb%qpTs1>ZFZF8u8J-N0^QK6Tlb
zP)BvFA!N)kXQy}0&dXt)M)Xvzx7t}7by{78j7dphswvuimPL=A9UULc>qgW*ayS at 8
z!2#hi%5mLEQ<|C-vrcA4x_o7g at dpYh5wpDchD1Fct2aOagbP559gIxThD3^N=V8br
z=$Nx{8>-y3rk>FS91~*0-fl?PRucAaCCI0E0ROn17Fgh9XU1*{+i(H$uoWu_R_17H
zhj at T}E|ZahDCkrGTn!!L5GLCj^<cDKpoW at apDYk^p?jeXg~AJ>B*Ok9{IH>#i(s at S
z{zguqPjH)R<+0%}<)j;wQlHnTl<ERb4DV`LUw!?%Q?DSXg|2#{egAf?<|6wPWKR2j
zD*)C6Rl2S?rVfi!XGqlGJfT|>%fem3iU6C^5oFRCAXnID+x+VPK4-f>jFUDwaG%Ta
ziR)hxHiXji*Kv5$HI)+|V7J$m^&_3)F_ZlXhJwZU9v3Z8o6j99xR%Vk5p_^oivlpU
zvL*Z_diI{gw+yV4HPNxmpr#JiYRAVEr9R{sF9vr5=)V?nrwD$I?0eGKZ8LOyr;XWn
zVt3IMK9iHhcPbx~9#Dh4F9 at n3e=@Sv+0V*^NO3uT>yt5EdFq)IB1<ct?0rz5HwWk#
z|KkfTx=shetC#THE*#S)?-4EUSrHzS^3Elcdl+olGj?T%lDD!cn|gw7NK}B)P;QpQ
zF)Km6dA-Ki$$d{;Q<-h-zT5*lfUX2zN8T5ULpB^GCJtpF-=dNde(7lNLV_yCsXS!a
z5x$PP2B!({mzUEzI?mAOj;rd*LHeu(f?1d)2DVa2Wj3_t+1JgwbSnK>5Ym~A1Q#}3
zO7C?zjW7!2>HJEBvmW(po9-quDI{0&k_%SXu{xZV91{af=RQ2w2H`xXf!LROU at 3wA
z at KIUzm|NNxGgj<1;_z1Trq(C66OFa_j5A<iz1_4116T5ibu~(|#|x8-8g`J)iD5}v
z+*(q#A|}uTsdk>7rEN5E69*YZ2hwgZ47gW<ujRWf*b^+2REWbC@{MC7n`UDGEEZHY
z5Jfh&!t<2T!6-cU1tN>=;W{HbSbVpG&Oeueq$D7>RzoIxA?gIn0iXQSHUj>hoQ$;F
z3nTpZ$B7K)dmkbRf%$5R4wg~f6)OpF5CAQ`4GOxvs%S4jyWR$XS+lww?My>o1L*58
z(MZbY=4c;311$Yy at fT^<>3z_tC-iAjd3AQ}^Vpf5aV)VcgI~*W$qoLj1%oUNbl}dv
z0ABj7_4b=2;uV3<s*o&9 at h%7jv?_r<J=ER<WZ^F at gk>>UzH4tx^qZ4Ha3;iIKAVjJ
zZ@?-OODB`PuS3c!Bt#i888Q=)UG^~r-1b^aGXv)9$63OzE+D1CX@$Ua_pRCj>92^+
zg~?ziC_GmsHdCt6?bH at ZJ(F*{pTp!&wNS!?vRFN84ms8%fxO!NAs5HGd at 557YWl%V
z_bG7=>W&jv9Rh2qd2cT3TUYeDipd6<o!ZJ5ldVC!GGHGs*byeNZ-kZtcn1fdFcCOp
z)zC-?GSD6G?|D~UNxp>I-ZJd8?{WID{M at gIDpw@YZd}^tdSCJf24~(mo36jP*MxjY
zQqS?II1F+VuWIu%P69ev64!gEs5qyeYUv6yVW>^lo?6tFkYKCE89h{##B7Ve>BVdF
zj7??&3;WikV~xZ=7Fc=K_f&I};+Ym}0bV_+MiX>;xS2zqdcQ>N=t_T+7Gh(;=ZsGv
zvaxB^o0_vpK-!t2*|X^bu0&2w at 7&VMB}i6yvx#3ro0HpifGyENp0eTj804XjoBqLg
zZJ1fQ$L+nSA>@dchQ7LDw-v&<!qwe6x%6lGm;Hon{&lhLL?mkeiY+M&oSI{9nGevi
ziKQaPw}Y0~?w(Ryx{ctXwNYCefqfkSXeq at r9=<SWQ*gbkhf-vsqZ!2mFrqw~6uMSr
zK3GNVzy^@25Y7ilvJj`!dV$_kExTs-bR*$qx9Tws&%EzqOo*t`s$Db|$m2+>l6Z8Y
z8VB58#Bym<wDr=-dwiWh%IEaqI%cW`B)VNeiK|_QBMt<TLtlSmkSW{M6_H3!;v_X8
z4DyscO*=wWC)ZdP8;ejy46{9FIze)#NxuCy-|)OCaXLiu%#Y!$1`8;hfUti}I+BG^
zmFcxEoRIeJvBP6V0<Hq617Ote0XSq?W|IY7xpOua)%7^<LxP|_VuT!#6FJ)_)f$n8
zgzsN58t;|ZA+L`~zu`kPo{4-`#YyErUJ5|5{gNMGz;<QZiEP}-zCaKI?o(pmn6P8|
zvbXiQp7m^QgMlBG7dERSlw8PcGxpPpO5;nOz4aa@#HNgq#t1z(kDk8*V&!;4_`IB4
zd&hi&5LSo*(Bg+<N=bfn_wb|b(7^-O{I%jCI_o6zGW>OwVW!aML!m0U9fS^g4`CXg
zvj;v_p%uQ2*1x;o_SH)(&!E=lWe$$w!QL0zXv&WMln`^pXK8p)?!iCDF)$>m`bmA*
z*xOY9&M~#uu^Y*-KBV#mma~SCnuV|7JWHpJ%i(J at r@v-tOt@<4{9K3Px_b{yvQP1W
z$AWY#9ZBgos5o4cA<<Zjr0jn+z8hm(YFC`*wbsr8J)6O#Ul^)&IgMpAdR7xUoZLwF
zkp}#7Ire?v@(B at 7kX4gKeX_k*a*>o`N?ViljBGGsABZP-tZ at b|Oh^A5Kqvj1s2J_Q
zZ}8cvR9sjae3CRk^dPl%hlP&>%8-?RHubLD4`K_Durp&{mOK;6oLL8>*&Wn1AsUN^
z`DSgC8P==ak*`T<B(~amdNam%>h=yhqE8T9mZ!0RZvxZMUZNzxTvOFglK7WVb))VA
z#3NGPc!qksVzwg9?vEEP`IQ?ovt`)gRD~pTc`HT%#=UZ!UU&k at 3@eaM$o5Rj;@4K_
z7nNpR%t|WVBN;#Fw68doNy?}&{I0~34DAOr$b93%e(g0otxWS)2JACNk5TN6Iv>mV
zoEz(#XfdmwJW>)iq at FB=Ae(!Y>GJOba1Ra%MY*{LjDYu at yp4VPjbYau;wfj#NcwJp
zn3$3i9cQyd{Ge(+mvv%T)l=}tJ-6*V1jHWhIU=7vb7>|}CW{|7lHvdR?iJCx4-VYb
zte$px4dG#7cnHFo at d_A(?k1Ls0iy>jzbP>p3iE;LK=%e4DH5zY=Jx?J4oM*JLa!(m
z7211pgBL?`3q<qH2I<abon4wm;SDLRWbU)_S4IJ-vAS38Atf?xu-2eM8eE%?H6e@{
z`r3(f4}{L5JKo}ZpoItH(Nje28i(*A7r|-*eL{A|IrYL&L>~a6bQDNXg6*IaiHG5k
z at JXNk8ik-Cm*(`a^PEN)hB4Cn$E;&Gwe<lFg&RAwGZW}`;WP70oY10AEd6uGVFY%^
z=~LfY;t-W|4Q at m_BYySS;Gn0NYIqd at iKyAw@e7^3YU;T;$7#V$<1lbnur;LZ=M=UO
zI%1rIZXSVo*nB?iZ+RIAIuUXvDsUo5reb()lWH^`B_<Tg2&obQB at ag3H)j`K%v|+l
z+!Sq+q~5yGzN3lIMwR%4TU8yL#3b^S!ZLzhr^$twu|?As-09&YCe_EH$Q?aw%5K5E
zqvDvVsbRN}Wj$&t)@#bNrNUoF)MEnl0K%0;2pO@$j4juVq-16|RcBh0A8BLu&CqzS
zZSp!n1~!lk;NzeB=OG3pujzOSI{HahJhjSdhTq$eB6G~X7k;;yl-B6JZ<jegz*~!P
zRhp at HYI4$k5WH9j1wi;Xo1|U+MK8r8vB8FSt8bOqf?r3M|CE0*W%;nuRis!#IM5us
zYbuGes)BF$N18-{05XRl2;LwJ3c(VmXnSM4);@V^CExy3S7(|{y%cTR9$d%!Moq8=
zg7s(b07AWkiYf~v*nuyA=7C5h_dvfbF>&b+uN~a+dNP$$Qp1{Bt(8F6xQ~p5&IfjC
z>WY8(=tl%0q3OJlieqB)FW;df8}!8WYU&}7AQEH8!%>lNl~ZaU)t{ZGq=n%I+7eaa
z#IOKt#dz$f02%~@5C1euZk58M93dh4f(cPWGT%5=PyLv~*wa9OP-TS*f`cE5LXi;X
z)d(&irxr99hl~Zq8qrxd*1b+{D{vr^x{)YlK5=6g&WD&cW&z+3Fo_^ubHn$UqI<tF
z8Z=Pwp$N}e7OiTzPx~3)e~wv7uvHdjpoPO{{e*Z5vL!a8-MI&Je>wgQupHN5fu>Ez
zeR`VqeACIQDYc3bGDgY<M9^<8$6`*;X#hw!6A7Ie>^yaWFwdV$7~7DJ*1;4JaOt(G
zlNa>DEGpAw8gix%pRe=>b{4o+b147K*g?~9({hX~8siL%9VZ(9QLOmExA`?_>k-#$
zV*^Fi=*Vwf(=blK<UlPZ7^|N5T`FLky&C8BX1;<Lh(LuIuk|=)+&j7E3$u*g?oy{5
znb3Iixh4$Gn<`keU6fxz at B;|hp&ilh63o%FGv8uP55Pe}EOvf9L@}UVpyOu46bNK`
zhg_{wm`&WL^3v%$E+I?JD*kY-5lh^fh;21R4--Cwn4$s503PCBBDpT{p8k&+7SXJs
z{A~url2&8UrGyDa at 19)<Iju|8|C_k-tCFvp>N-<Gd1YDwXe%O)5y(D4IVzxO|3cqD
zMKg>6Z~%x|XeXfz#DSZCjHYI+Fi?Sh1D7WLgW4hKg>dx3qJV1u!1X^&H+pOp(^R_z
zupE>tAgI1cPI}RTQ2^Bzs8R at OCxF_gUR@2#=Z^dN%=%5Trs1wWufMgXj4c5}0U05P
zCP;ohsYFvv6^f&93ZmrUvQ#rRm6b3ruzT*9G|zbgr)VY3jWXtXchC0v<m?Lz#tMT{
z5bQ5EMV|q+KT(!n+uh~AKRN8Cm^^{IhTH;B;kf(1C!PL_VwIvV*->C7%+d?J3_?77
z=*Si`BO)xxF_g&$wJLj1F at Pi$T*(cq5=&lHhoQ8aqgk3Ds{p0$7pC1|KHA&SHqTcb
zfg!L at +e#SlWmup{d0&_O9ua;9B&<a?^MA=R2IamHC5phT;AM|~ezx*A=@9WRfnKrJ
z0iuh1l_+F_yaHfeZWKYtScs4yn)JRWjHkd at pleVt$F~r=Q(>O#VAM(F$l3I~;s{D!
zq}_gj)W^MCd03)j#X54gHjkf at Q}8dNI)&r4Int+ at XnRFkQP&<=dxJq3kFjWh^+0IQ
z0dp%ysJjC#S|TDr^&_v_07IsSc{Kj;k};tlE+41nuu~(AZo*x7s~_6wEV?R+%1i-X
zx{b_Pb;0NjJm-VXrSPDqY`aOyj#{@~xPmmcZQKX0uTu~SY!c+qR}!MM)9VsKZZ+Dh
zM5Tao)F)?rjT^pZiW>r90#Pss3>SL|5H5=wpcYqeJ>*ZOvT<MSvgR#`4X4J8-1je7
zd_0#1qtOcR6n)>B3}*3>Wbca8*1M<T96&bzq)<cDQknFoQKk=(rOoGc_<)+bTn+$2
z7()qQGgKY`#X%}d(>D_}Z`*mMGShn-H1gi#y2tq-CBf+p49l@#(cginVjxVd;&h4R
z!lW3jPP6p+_s2S|Dy)F06K3JtbMGC`+Jq<xCZb=3tU1F!jL=$w^$8$2dp9?Iu`PMk
z<m1fOa`9J=OV<b%idMX0r<o$nyTGA}#&|{K)M1=$P1!_r-#MAd{zG}wp}%dgP_2ns
zI}viYWE}N5DRgyi;L4eiT}^E-Hb|7VZCeX77~3acYHcZpF*R~f)<Y!Ti_u<*-%b!@
zMWg#d?<4IxvU9LyxSTAqr_a<I9oFW*rhm0%NqEAq!u2U_H`8(av+f|P4AnWPTinVa
z6L6znlO|O_oy55E?5TADa(4TyhtGTJQ*59O)`-l5DY|MivO6{PZs`?JECKdEEN7lv
z3uK{l^^4d#h;O()+}B7OVo_<Rvd}KD5g^ow02X2<5|4QeBGf(KNQqkkx=_WrCNsy`
zUB6HM_wZBAmS4PS#@lT2EQ<nT`Oj<<ZDEG?a}Q!`(n7N4v0pW5c9{tVQ!@3(Knul!
zN_Zd!Huh2@;cybE0kWTh5D>R2-(|Lc%FF_cRgnvAr#EN-grZl)sh%liX8|PZJ~F}N
zY?1gj9<d=y^*I*6WXQ8U{&kRPf39>B3IL*7PNa4ECd-ohjKuJDvx^}AeG^%b at sfU_
z_Y^@tY&{raJt45|*z>SUlnGiSg_F*l*TXnmVSCMFA)F6<Yi at Z{8t|wa=NT~4r~7tC
zXfhJ+!tt8CP0Fan;6E}HKrCzt3GVA($GVXmBmSyxWL2r+M at ypJ;p-&VzwUU?l_M3*
zrm5+=MPu0w1`-RS!x2PS!4<e{J;~%rh~?l1Pl2yxwubucmL{XWY+y8vWWmg?_j6dM
zp+F_t6dT9HsqKRFQ0VVEAKP^{OW5o325^P8j9GjLCfGBy$nzpQL=}%w17(0}5iCEx
zqYOk{4dMCGwhXmYfQ2pq9>#%G4RqXXgFY>=?lo|$f{tjfAs2iKLe8FUPY52DAPK|d
zn-Jnxq^T9%DjBOLfxKLeqn-|@ZSSB4h?VuG^80%4mt9B37Vd=9dL<zu1+=z2-I~>l
z86KUC`OrXu5ZXkiBuMbvB8B@|g5HHN&@}@iUEr8Jg`>X6gBovd11z~T%S`9tX2=NS
zrrz;hhBT_&KT^JHwycle`E@&<t2GUeh86+X+bv-y$bb|YPyBlMOQK|zG^<o9CGccj
zsJd}Qnh0rkKHgVG*ld|qnB|&n at c9yYxLwnnzw>vQ<|B10NKZ9rM>bNI-Yi+Q4IYt}
zKK2kD_MGmM)sB_G3g}#q{a=`tQ(K%<n`#K4j0nL?L!vWkx6(-7nIn-#W1N!Ol}N^^
zvqSziWl~xA13XN6^LCiz at zVODo4_*=JWmY;zRtYd-PP=J+Ci_^K6oj?P{p=5 at q@x^
z=_E>~fl?sqY8$$h%3!;wX}7p2vPs<@Wp&G7fU{6p1b17uOS?oy6RqCY)ZY2Ai*U=X
z>1#(f($l&C6f@`MU?%VYidD6|L>t}5$isi8q8y=z;fBnRh<ClwI1vqGHH&FS2GfD?
zx+Q5XJHRDTeHM|r#XU<;ck0H>s~JQZu~>o at DzG>`QU#HASvCiCv~%pOeowdZJ~K9>
zKdwq6`)o$#*M#WN+qmv!T5T?e at 5%W4*GckSednW_7y at 5_V9Olqz2$7P=JjgUF_lC-
zx_9yGY;za}Mo2%M2uD3D at zquBQdX^1wYCd_=GH5Zw?D$NL4dE;pG%5_*I(Xd-$C_x
zheBy3Ui_Onyg>vDVKftB)iy%H!7!BNyS51%A|5kiktJb92|xE~#*ZqPph|K-Vn*EK
zDz}QZefEg^1mUbzJGmd!UvSnmLZ+-KRR9W at m+piA1A5;$&QJj0P?J{j)~>&7W)&h!
zPpbci6)<TT$d4`}PA8R~%XsrO4w-oHSjmT6mM*{cu!PkJx2bn*i5$yFP at oKW5JOz7
zqLfHD2P?>7MP$@K2#&c5SQS;`>cVKZh|o)fU+EA4ZwT`qxF}v+_%OXyU&RVV>6dUD
zM%m2K{d6mB`uAK1;{hIwAM8T#dD8`*PQXk~?4a>X*-Q at kbQ>nnM;L7YWC0~{K^lF1
zDsxniKpC+<!m}T%pp2Z|f=z7Vm&0F=k86?HThrBY52rP at g&9|R3{}`Q{}?5|5an@!
z=0MScpBgPiW7e)dnD)gaUz-%6cf0IayxS0&SoNXJG<+s-rwF&;xu9t&IBUR9QUfFI
z;)x$(o?cX@>suUAMi1ULV4E8p;ep2(xj96_Xypf0-5{Wx_ejH48wtWwiu>?|Nt;%v
z$pD1%2>t_Yd#s}hf*;3G0?7_S$H3&|2?WX{E3B+L>5I%Yr=2w1mt#R$o+f#)9J`@4
zt*5FNN<44AM at IO}vQj{fUH(9z_(06qCJoq|yw*(@I!yG#fWJ;+)*)RFXx9V;@h%|r
zG~9BW{h)*eq^q*8*7&sAO`guefx!7)X?;}bXYJQSpAB|d%q;_+3CZ9f^s&2N21*Go
zJ84A*Wiex^MIJQ)VImm;iG^!OyMgYR(kRf#lvglk;}omK8(s!7`?Q+A4-GI<Xkz$<
z9_<@DwPUXgk2CU6bfhVo7UqExxa=u|@t__SU}8HTuXjG}ypyI{_OPhV>OfeA>xe^J
zk(FRqw|7DINh7E=;cCq8kt@%TuKwV9K3$%0qDFT>!bM3Kgf37D(jqa-y*IYnU>8Uk
zJ`A+fOb2Js1_l|DzubH09SPYogU)Cnb?hkf1KgKqfl~cP784R_W}2=>kP(KE$s#EU
z%@bLmngg~_hNKF}F~F&2P#_H;(LO~Q5a5LjKG>;3=m4l&46`<!`p?e(S#9+7p+lP{
zsNGy0onRYmnNyCl^{tS-NS%j&6h!vbRsa?Bh@|o=W<)REp|gY4sV$KXm6rj0Gjap!
zOmEq at Xma51xf3IK6?Gv7qfL5+s4i6gHaIH~sO!Yi$CoI_AlV1-8SU7mgy`mS;x^5u
zdIW`fb}Mt2Js<tznPvxa0HPp~y5+MWp~KwEJxCK4ZBNK{j_N%%Q|wfBMh%ox7t%22
zqu1nfFAi}>F+~MXJ5bw+(#_<kEGS7JEQx}QR!=M*6O>!59FKHWEEa}{e-b835CgUK
zRcN_jqZatC!HkqCsz-FGb^Zwyyw~jC(cecT5%f09r!+_q5;DyP?(=n2@}$N{pS#YG
z$Ljtw^8dFuQP+hi;IJrD6jow(9#m?FLJ%lMJ&Uh_wL%e#FcyUpdcagd;mksx#X<~w
zFiO~y12U1q-+m#pHsL~6EaVM9_T}lD#j|FSYEU}0BKnT^ouzeWBl|<$yBKR0l4j7i
zi)x*<F%=EcVt9-OLBA%gBI+)b7rC<(SUU0Fp(`l49CauR*)*0n+<PHCk|DU5ej;Ky
z#2p~|+rd8{P1*Y+?HUXR9Ck(We#di&__Q at _U$?9jW>@qN+}cFlROFK1;oTG5j<}fi
z^tDIGoBV#|D#K`cKiYL?ISi1i5yixac=2Vs%E=Cvb#LTAMHr`+jEU61y-k=0S?cYy
z7g0}Zj<{%YH)uV$BO!r^$Ktis%^!unO#^*pb$RkCO5dP`K#{2oV}RIaNc^#lAg_hC
znO=u*4jIsZ@@<Dff6?wh*5<WTlRZ=NdB#BA?s$*yq2bidYO+AQ2u;6*wA=ix?V92T
zP>_^Bh$F;#Lm%>MG|x!L+}x6W=VH)f5W2FB{4=FS%>97|;brl%J^qoQ?<eX#F~@)g
zED7k-UKUn)%3ID0bmH7$a?H>{?{|J8fE?eLa%AxQp+$F?&2PMdhC)3Lf}|LLYl%of
z%Tpfm29i}(Y?HV|3?X+H>bmW1)--X?giaW4arSDK2Tj at p?7RZ69S{@Z6EryP*f#nC
zcv9e%R;>k{$5)XC2qGi=@=loWOta0-AbbX~k}ya=Mm(1 at 1NyM>+%+psLbN%y at obJR
zCNsL};!&b2TI`Z at tfdJE#Y{EFletSIsA+e+w?=&W=()mDVujir?;d3!OrsX272*c|
ztJ7{gioPKYjfBFGo%oudSCI$iM~%1D9R<5UC2BQA+Mzl?J!tAxq}o>Z>d)jN`H;65
zCw_WKcmv%>j!*xTQhyV)raBmjrgbXp*bxFJ)SuVuFq*#23Ypc0y*xpbTVlqx$nQIL
zy79#tyzHzQf^1SeKPLdi9KDh8kP^=A`HM*X#MHTQ&9E_p8Y_6tKocq*OQE6(zsU7V
z at m%8-CnLWrtpnw;$JWgC^Uk~S;D(sld#MLa at P}10G{$hwrEP&4IUats at q7J-K=%eX
z)5q`YGX6~2Y>rOZ3pe%$Rpn^^nN8n%)g*}dHRc(7KA;BVTcIo7 at kVPNkg=&i!Wjk1
z<r=Ui7%MIP=maP+Kz*_hDYKEWN3L80y>Q&mw;z{km*~LCOL7vy+R^j_2<M$|@D8qq
z#7kHHP at BEtaMnEel_pJ(P^ypRgC_U6>kmF>ct`4RHwpoih#dSELjb%*g4Rg=Fkg^X
ziN0q`xi{cg(1wz!j^csNDgMO2j at hHkUZGaQVf%7YH)B`*>-3?wkXtWFVOJ3<2LYRp
zT)_dRB{M${Kjs??kA>Lx`O`9l_#IGeTewWLtO*e`#wZC-1LhQ-Te|!TFd at -x%S9o`
zazYf~zl3m2xr0K{SQvll6|f(tUO@>iV<WJ<5TR(sJqK0?2$L}R1xW<d^8;iHN=%Dn
z?YC6^CgmF7w!YeRH82F(!=pb$GN&tK2twRRi3V=~VP6<PK*nH|z9?lNmEc65DsfB(
zLxC^AT~*K%oWM|)g5`uHf_!0=#FkGLhymUJYfoPug_7VF8!eOv2uA#c5WlEMgOzU$
zwE{lHN?clWH{soZ0Wcwk!MfoEm*E2JY&a+o0SyqIUDo96RZxDLnVD!SJPbOm0R15T
z8HvOGdhUbgdYOFphT5F|GrrsWpI#ua^}lJ92x#{oqMpm?REYl1DHpi3unSZlh9(HH
z(Eo+5rtEKV{SEf^-9)<IZ~)_nj1%>hF#|UB%y~BFuy4WWT0VJLE2E^L!U|5}j)_EG
zXcOHZ7(63Jp4nG#QzmGneDNmGho}3#wMN?@6sm`vjfi<UJE2Vh{~-P7QC@?up*<5M
zgd5*F8?^N4VdiH0wCqgefB`S&R1=;5BJAU?sa~VV%GP-ejP=YYxr=qCA%+8;8p@(J
zzKBIG0l8 at nncGb!L0Y*i8Eiuv%LG$I{cr=N&&m4`46n2d=EIj=V$W+#^;0QROm>kz
zzZNqyaNy2A{^~W1X8+`Nf{~{?-taq$N3hAelTyBo-w(QtWB3JbuFnGbL^vdnqGapD
zCu8C at OFRY{L1{!m^?jPKz8{oZNaft#A9xE=_p18ZaRVxvn93xw0q%wR<bZImT>D*#
z;Ol(8+I#60wkbNuK3En&#0r-m&kj!-$bfe42;oSeK;B!fEz;j1EZ(bbwP_6n`50Uz
z>#`*~c{T?W9;ZMT64Y3=Ac49d0ZUrys>kDuUU*6Zt(NuD0kayT3&}Q+kzth!j7*Y2
zhJYNgOGS7dP$L2&__sMbfwMgIYyauFRvsm7UVqyXq239t7xN_!iOxVqVg+-3jK9xs
zhdhQ*;StU|P+V~YpUwXo8>x_RO(@ZjHUhsUlDP#-xgcah^HF#XFZ&F<WpS3&4s)gV
zrpMcrQc4T9k1hIbOTe88%Y8v}14$YM3hF0XL^6Kq%7U5M3!2o(IsO(`DU*`FcoFGg
z8>%KLIsu8p>1_KwZ>eDx$=?4qL)ZQWWjv;XARG6RULLofGR`$>5Zi+7AD at a5IxOo2
z at sT!1+Zw|1ie!$pfxc7qwuD^NFy=Mp_U}R4>bBLHYF>T_>i<rH?8W@$Ajh4P-b~Bw
zek|JXw?;kxA6WWZKOtI%A0>u$b1F+;C78}N?QkL?^lR2q*@U~_#&_!wfYB9MScpVD
z|L at 53_o;xPpgrFO1V!Xi|9IYiS;POQEyl}k7dheoWf%}n|L=>TE>Dpqr!P3xCcsb#
z2mos)($;-j7gFm0=&gbtK8dpMkcF(fY at nrcsXWACc=TH;08FMr><As=M>BtD)SsFI
zo+vHUKp{>O*6D}Le4Tdz^;f8nx)M^Z1(>;@Euek8GRLSi7W6Uv2KaHvC19~wgr2&@
zecqQp6-N`|IRi!7n#kq<f~ebR7t+ITAO-XN44FS=VSp8qp9a;>f!8De(uo4Wzsi>a
z7_(4cgisrR6Th*pspiVH0M7ir4an{N1zyGUjWd4ZYH;!A`ZAl&bN;E?0+;n)pxvX)
zC;wBSFxIS)zWR(Cwg@^Di27lQtHlVj5CjwE=$4x;{3SGSrkbUa%dR4Me at 5TfvGCVI
z^`rat;-f_2@<KTGW8<}J*!Sg&{*;pT7YVz+7XGGgDcz>W^AlJaxyXW|fXJRf&2<3b
z{X?UF{Uyv%Lf03j3qWlhZEZUL;ih#%dBCm%%Mx!xZ`F<)22a@|Cv|!$XJ40tGS+WU
ze~c)7+r_$=MEPd+Wj`WIYQ7j*h1cTl{F{FUD!d7e7g(2mv=Ek9Ye-Bqn&zM)1!0vZ
zz$+J%fxI$3l}11k0Pls;3gpNYGz>1jAKKQ-QgREMt%ZFn4UZr73Z4!5?=S<<lKYl}
ze+phXZDg$WFMal?uU^=eAS?-K#vvoG;I)<Bmo&c&#(@|1Hf9wdu^=vzLI7CseVVl6
zh^%zvcqxuKih^3f{vi$E{7wqt4xQM&C5!(Nbo~88n&B=U5{_Eq*RGU}ji&?n<#P}8
z`F+F+=L at +70Syo#{Sh6}Uklm=RQZpXLAnNY7%x<@L~`<n5S6Hf$WEkSZ{7hV1^V=l
zia<5K|NgZgYRTT86+tcSx57c{{_l(bi|>W!)~7J3Ij$-z4O*!Vk79=P!pcT{6!ww+
zwe&dX&X}o{%hy(E1bwZcm;RL2L0$<oK`g*2IQ%Xp+du=s=djgVdAvS&S;*{kSM(u}
zk_R*gEqmbJ8OXyPvnMX*sb|WZ^Ucc6vZs&kVNkm_i+YBjSP4MlS?;i^@j+E)I(YFg
zmxL7P!M+G0egvUPWSu5)Z!=5242%IJDl*0(L&PyDO|&8;%=5<QityUybtHsk;jkq_
z4^{<A%On19CGsonC17WvUj|P=X?e9YQXr*mqrQf=C2`mSJj)r>OX|kGo!xOny{|va
z8p64d1c3*P*%o;1!1$>F(3YQ;2AbCsfLb6m68U`2s83>y7WDcC@|8KMOu5o&UJ?@S
z`C$@jQ+tzDJxpr at qG8tUP$dWJoEr8aI_An^$8E}ifP$l&RWudkV+xuB=_)itn6(eC
z3cM?6tUcT^5VrUCs^!l>Z$m}Y-$+Ss+*p1MQycVci|##?E4$0bP<JKt)Cu%R3)hRr
z0b9Enx7AuO&&zDm-GW=y?CCx?ss~qq{~qB3VQN#&T}HjAmC#HRP^*tWM{o(v_{m6r
z%D8OKl^Z*WZD6$wC+dd$eTjjgG)--5zXHOl^i~ZMzkx^kNl;t>aS}YxNJf^`_+A<I
zi5$i-nVjPOU3rv`gVU}32IQSpRJG0O1~3}B!f$9MSk&@Sl+P{o+^deL=UrgZID`)R
z4UEyQ1d|mSuz0&wzHCh9z*b#uHLB8VOn)FfXQFaKWT=7VG-cD29Db4t%+bM5%gjNO
zb>Iv+tYD-xmD$VQ5^6OQ3Zt~|r_es?ld$EmZ+SeU*{?vsL^dBhqiHaRG;aqD$9C~Z
zyW6xlCr;^&l3!EjY>8pH8TNnc;A^};Ce|N at Je<%<Co>TQeaR=@pijOA*IZ_zoZ{fm
z<$wf&W`^TFT2UpxY3DlYH1F!ee at vx?NuEZsTSe(s7p<+cqd+1`Q<$`m5$<8Kgf}r?
zmMthK^jy>>)FIHMSf#9p%*<epS2WvnBO8o~s46|+Bo{;p2&!5dv+2T9Rg at q>xBfG^
z>=~KXdvQR*Ue7TRJeH9{$T?Snf2&sVN73IkNN<yY30cU<+^~HA(NjR@>%X(EFRSR8
zwJ9J1W-Z7J=(#XMe~Zqpb1VeF4|v+&P7&d}T at KH^Z^*B_l%r>v3HZCfW1&11HOfI?
zLe$VCDbnFT+9VIE;H9Xn>YO0=LsK^075Wp%p%l&pP<Y|4kfB>da5*p?U^{EuzSt79
z)!cwygF%4aR5LXmiJHvouMN387SXQ3Nu3<X(Fza at 2{E1qCkwc2;Guu-oGhNN4MUei
zQcTbJ*_))Hg0Z=-VsZMu!60(|*P8q9GK+7TnAmAt2k&@$J?_aFQ(D+D?2V!WiIn;o
zc>8Qp8fkqk;)bx(ambtM(_<!lHTcJ>;E;({ciDK*;B}KGdQkZLC*D;gr<8Tc`ENPg
z6wd6KXMT8)Ozzm}Js)~cfp$sAKP|L<i2r|N9>IbOb_Tpyk`x-~-yfjdnlOX&`}Y4!
zcPOj$hp`Yq1R0=XLM;a{1K2ref#3Nw@!vcXb)$#|n}OJSA?$|oPon-&;3I?@0MS!~
zP#_!l&r0!0!j=mtZWp at rgS+1Kf2Q){_!NBz&I#up4~(^*P)mW4XARIRL=GLaD~xQ;
zkz}eosT2^v8wep5Gu1p;wVgI=&@%~r0LOn=z3j80vtrl(%)|H1ulOh@%n3kKp5Hr3
ziK*aQ4=fTHUTEGe?3 at 3L5hFy^EctE0ua0cS%QDw3oVfEZFJF)cQ&=pTof~y5a1A*B
z`br%@4v4084b_^p8k2XK^tE5oIRb3N at TC{yEPdq#1$)>3DB at 9QCB>;iU{g<N;XG~N
zWiFVF<AGbb_C9x6EQ+K0dBIL2nHPF}1qmj(lv(hmnlk=n_QD^P$oM#zQ(=^=d|1}U
z5V?<5!dEL7bc}zYc8iPvU_*SO8G0<^gUaAz!N%NPzFLiS$z5;WL7|O+JbC-XJBkXv
zuihfsWVS)#g`Ct6(p&dk<|J2<?gIY5>))TuY!LV{b{YYv$h&2A>&VA4A=ja6dika~
zgBQ80sNRGQm(yhC#ua~T$j?F~XY$MabiU(pEM+#Ho*X*lUu%vYYt3xnxw|{JgZ`04
zzZ-IT%Bw3FbU}V|Tz_e*cj0f|LR8lL;ONIlKb>l(c`-y}PC&!_)(l6UDxuQ)dGHFr
z0O3XUnN}>2UsDDg`|3z4kY8veQ2;Iu@$2Cv<Uxe)`$6?<<^*V$`ZGe2cJIjYnd>2b
ztkLs!D{*{Egjel?^u8(D>a at LF&?7i2{E`gv#p3NH|CR^vG*wf4|K(fAkAhCQe at WSY
z1 at i^1=QD-?$?hL9*|4JrH6HnRV4;QKOQBUu*b*K&y6}le`EMfCN|OcrhWWqi{+jok
zS at BQo2Bp>%X$!F%V&VaK=K;JnqQqc>C`SXr>CYhPa0 at xM-pI%`_g<1W$O!s>H?$%~
zDtm|Ck2dK>2MstT`eCzsDSeE%`Lk8B^Y>}2!&B2bX$@=#GKZuFax at j<ENJDPS9tCT
zE`2wRj4nxHrWRA8>l$SEFMKtBnJYR0(+ys76h{gKL^Wk7#dPV)EfbJry at im&Ui5Q6
ztQ4P at S1EB|f;<v^P_Q4)nuF!FlQ}zS+#6Nk5!>$hX#q+g7s?+sy*x%%AKMUGHc)?W
z!#~-+%Qujmp;^<*6nPDG at 2yxy^v~>7A%30O<-T^SKzc<1ykv*vmBR%B9!r8CkEPHt
zpajpYRW+fDvIN3Js4kKSpT}}opsBXjSM^o~ph|XxCECOkzEhi*P5Z1{?j+2cnpJ?X
z7yx=M4&nSn-~K{}3u)5NB=Rv2Ja4E&<!fWOv!h`qrGW_vL1mkKg}DO|_=3E%DciQe
z5tIgR3YXpmx^=7|0IF96&qG;FRQ{WmH^9>eSg?sM>Q*gVR)YcqObpFNQrb$h(!ENi
zIxizipo||#RD*&e$TSS;({M61VNgS_miDnTKI-M*Z5G^<KWT{x4r=il3i&@<5>@}<
z+2#Gwi_ZXe-T#_5G5Zjx#^1BNHWC~cK>r6GmeaTzepfx}nZ5T5P;!6{5Ep(>0&XVy
z3Q1KE8x6osz<&;q0aNRYF5r+UJXv{wLI;@exWS5$$89{WdsgNr>=zd_od(%51nktI
zrcH*wji6C~;4ae(BEXSuh-^a$#0KE02#A#3EY5)JNZ?LCC>I(z402cHd;a}7_3Qg?
z8TbF!zC$JxfMYW*yvzlwL*)O0_F4c3TOlJ94G%oNzJK5U at 4v@^>QA?;>q1u5&j+eS
zjN~#_w1j-G`>wrj at p*aKz2Ff}=-?B>wn?u9Z}!@#Yh9fgd<Z<k3>sMiX0(R4z+*0o
zYD>7vzuZqh4;&Ci3|=$D=|Z=6B9FK7U>~7n1C9~P0yo!Jon8&xta)+Pit|Xr;%pA}
z3J`;VquxNjEdXb2XdEzJ0FKpyM|OZ26ga{L3vFpgazqcZZ*TekojVn4yZhUH$wTKq
zEvc%xZsh_Ro3+07_}%wi$?@HP_PYMdQ+i!uBD^0qP%X2EAx7hBWasIQqtd^o#Iod;
z?OYetzx!MB?mLftW-Z=6Ioq at 7bvm#_z5M|^sK_we<LgX at Eh&ms{I3FU{*YaJy64Yb
zTdteCmzU?;D&JQ6wb^=`>z7)k`LRzn-${&D2DS*G!w9x2N)zv=x;}qn>VAK>`K}1d
zPgUFa+?T)YTa#WgH at x;>;8tC?dDg!o<M!48w>`W!`?U^~MZld;pbJ;Kt<rW`?zJxc
z+QMJlO{<qyx%Dh|iu|a0=<e at ZXTTLSs1?#7#rB{zs8-GODsav3*Gji*i-cWMuW5gh
z4D~4eQd{-9`s%h5J`2i#tMKn#2Tfi<d%DYySQ<NCy_vZuba_R*EpS;v*4{^jGjrpC
zE at CZN8WO*C{X}598PqhAI?xWZ+AOTY?`r9~^0;8xpWpee1K0G6`A>Q^6|~U;l4~p~
z7=b4tx%*|uS^{@kraiv-eP8vr_a`8W;LL$b9b<1RRlR at 8wQ^mYz3|jVP%;K~YQM1G
zzW4v9cJ0}`*FV4IetcT%3(mygaZU#PH~dD6S1!4=Z9^R}Awp+G7;5&}&zSk7E9AD=
zHGimLVA4g&ho(FY;H<826<l4gK2ZL9aMf$?^!FdFt-U{;`g-$gNt*2f!~h~QurOXf
zgVR#GdUaYVu(buV4Va%J%z!JF@}Ep&n18qU$M?URK+SM|;CTnnAVaOcf&M at YwX!`>
z44OM}*R}oWOEzrRS$x`fw;k{x8#j6L-Fx6>0!J5tBdF=BCPo<BkYJM(M-HAo$bA49
zsb)ogtGT`amnNjurm2N@#~t=t1uFa at 4O1T6qpS?_z`f&N_pW`tK{?3Ii1YfIDgAoR
zCAC_qR at SE=M!+(>@6xKWZ|~!ON(0A#R$keAbN^zasEu~odA(P6p99Xk!m`X216W3c
zR>_dyc31_>!oVsK6x#687Z_-uObpfv34W{@9 at we{$^y?m0xM<#7t_F;2`Ur8g;@Co
z5nxb3qZL|TV~^zs<*VgSx`FjUr9T7ID)2#9(9@`3$4UW5GC=@*h6!+_6 at 0=K5$9H+
is>FJ36;x2?VLjt&n>lA6aQ(;!+2rZ!=d#Wzp$P!<UQYM`

literal 0
HcmV?d00001

diff --git a/clang/docs/index.rst b/clang/docs/index.rst
index 5453a19564b873c..95b788965c66c16 100644
--- a/clang/docs/index.rst
+++ b/clang/docs/index.rst
@@ -65,6 +65,7 @@ Using Clang as a Library
    Tooling
    ExternalClangExamples
    IntroductionToTheClangAST
+   ASTsForTemplates
    LibTooling
    LibClang
    LibFormat



More information about the cfe-commits mailing list