diff --git a/.gitignore b/.gitignore
index e5e3720..a97e1a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ xcuserdata
 .DS_Store
 build
 .build
+
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
index 0000000..ec894ff
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,2658 @@
+# Doxyfile 1.9.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = "XcodeEditor-master"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 1.1
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
+# such as
+# /***************
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
+# Javadoc-style will behave just like regular comments and it will not be
+# interpreted by doxygen.
+# The default value is: NO.
+
+JAVADOC_BANNER         = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# By default Python docstrings are displayed as preformatted text and doxygen's
+# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
+# doxygen's special commands can be used and the contents of the docstring
+# documentation blocks is shown as doxygen documentation.
+# The default value is: YES.
+
+PYTHON_DOCSTRING       = YES
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:^^"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". Note that you cannot put \n's in the value part of an alias
+# to insert newlines (in the resulting output). You can put ^^ in the value part
+# of an alias to insert a newline as if a physical newline was in the original
+# file. When you need a literal { or } or , in the value part of an alias you
+# have to escape them by means of a backslash (\), this can lead to conflicts
+# with the commands \{ and \} for these it is advised to use the version @{ and
+# @} or use a double escape (\\{ and \\})
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE  = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
+# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen. When specifying no_extension you should add
+# * to the FILE_PATTERNS.
+#
+# Note see also the list of default file extension mappings.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 5.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS   = 5
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
+# during processing. When set to 0 doxygen will based this on the number of
+# cores available in the system. You can set it explicitly to a value larger
+# than 0 to get more control over the balance between CPU load and processing
+# speed. At this moment only the input processing can be done using multiple
+# threads. Since this is still an experimental feature the default is set to 1,
+# which effectively disables parallel processing. Please report any issues you
+# encounter. Generating dot graphs in parallel is controlled by the
+# DOT_NUM_THREADS setting.
+# Minimum value: 0, maximum value: 32, default value: 1.
+
+NUM_PROC_THREADS       = 1
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
+# methods of a class will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIV_VIRTUAL   = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If this flag is set to YES, the name of an unnamed parameter in a declaration
+# will be determined by the corresponding definition. By default unnamed
+# parameters remain unnamed in the output.
+# The default value is: YES.
+
+RESOLVE_UNNAMED_PARAMS = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
+# able to match the capabilities of the underlying filesystem. In case the
+# filesystem is case sensitive (i.e. it supports files in the same directory
+# whose names only differ in casing), the option must be set to YES to properly
+# deal with such files in case they appear in the input. For filesystems that
+# are not case sensitive the option should be be set to NO to properly deal with
+# output files written for symbols that only differ in casing, such as for two
+# classes, one named CLASS and the other named Class, and to also support
+# references to files without having to specify the exact matching casing. On
+# Windows (including Cygwin) and MacOS, users should typically set this option
+# to NO, whereas on Linux or other Unix flavors it should typically be set to
+# YES.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class
+# will show which file needs to be included to use the class.
+# The default value is: YES.
+
+SHOW_HEADERFILE        = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file. See also section "Changing the
+# layout of pages" for information.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as documenting some parameters in
+# a documented function twice, or documenting parameters that don't exist or
+# using markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete
+# function parameter documentation. If set to NO, doxygen will accept that some
+# parameters have no documentation without warning.
+# The default value is: YES.
+
+WARN_IF_INCOMPLETE_DOC = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong parameter
+# documentation, but not about the absence of documentation. If EXTRACT_ALL is
+# set to YES then this flag will automatically be disabled. See also
+# WARN_IF_INCOMPLETE_DOC
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
+# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
+# at the end of the doxygen process doxygen will return with a non-zero status.
+# Possible values are: NO, YES and FAIL_ON_WARNINGS.
+# The default value is: NO.
+
+WARN_AS_ERROR          = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr). In case the file specified cannot be opened for writing the
+# warning and error messages are written to standard error. When as file - is
+# specified the warning and error messages are written to standard output
+# (stdout).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  =
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see:
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# Note the list of default checked file patterns might differ from the list of
+# default file extension mappings.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml,
+# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C
+# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,
+# *.vhdl, *.ucf, *.qsf and *.ice.
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.idl \
+                         *.ddl \
+                         *.odl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.l \
+                         *.cs \
+                         *.d \
+                         *.php \
+                         *.php4 \
+                         *.php5 \
+                         *.phtml \
+                         *.inc \
+                         *.m \
+                         *.markdown \
+                         *.md \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.pyw \
+                         *.f90 \
+                         *.f95 \
+                         *.f03 \
+                         *.f08 \
+                         *.f18 \
+                         *.f \
+                         *.for \
+                         *.vhd \
+                         *.vhdl \
+                         *.ucf \
+                         *.qsf \
+                         *.ice
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# ANamespace::AClass, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# entity all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see https://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a color-wheel, see
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use gray-scales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via JavaScript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have JavaScript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see:
+# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
+# create a documentation set, doxygen will generate a Makefile in the HTML
+# output directory. Running make will produce the docset in that directory and
+# running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag determines the URL of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDURL         =
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# on Windows. In the beginning of 2021 Microsoft took the original page, with
+# a.o. the download links, offline the HTML help workshop was already many years
+# in maintenance mode). You can download the HTML help workshop from the web
+# archives at Installation executable (see:
+# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
+# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the main .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location (absolute path
+# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
+# run qhelpgenerator on the generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine tune the look of the index (see "Fine-tuning the output"). As an
+# example, the default style sheet generated by doxygen has an example that
+# shows how to put an image at the root of the tree instead of the PROJECT_NAME.
+# Since the tree basically has the same information as the tab index, you could
+# consider setting DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the
+# FULL_SIDEBAR option determines if the side bar is limited to only the treeview
+# area (value NO) or if it should extend to the full height of the window (value
+# YES). Setting this to YES gives a layout similar to
+# https://docs.readthedocs.io with more room for contents, but less room for the
+# project logo, title, and description. If either GENERATE_TREEVIEW or
+# DISABLE_INDEX is set to NO, this option has no effect.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FULL_SIDEBAR           = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email
+# addresses.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+OBFUSCATE_EMAILS       = YES
+
+# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
+# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
+# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
+# the HTML output. These images will generally look nicer at scaled resolutions.
+# Possible values are: png (the default) and svg (looks nicer but requires the
+# pdf2svg or inkscape tool).
+# The default value is: png.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FORMULA_FORMAT    = png
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
+# to create new LaTeX commands to be used in formulas as building blocks. See
+# the section "Including formulas" for details.
+
+FORMULA_MACROFILE      =
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# https://www.mathjax.org) which uses client side JavaScript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.
+# Note that the different versions of MathJax have different requirements with
+# regards to the different settings, so it is possible that also other MathJax
+# settings have to be changed when switching between the different MathJax
+# versions.
+# Possible values are: MathJax_2 and MathJax_3.
+# The default value is: MathJax_2.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_VERSION        = MathJax_2
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. For more details about the output format see MathJax
+# version 2 (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3
+# (see:
+# http://docs.mathjax.org/en/latest/web/components/output.html).
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility. This is the name for Mathjax version 2, for MathJax version 3
+# this will be translated into chtml), NativeMML (i.e. MathML. Only supported
+# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This
+# is the name for Mathjax version 3, for MathJax version 2 this will be
+# translated into HTML-CSS) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from https://www.mathjax.org before deployment. The default value is:
+# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
+# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        =
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# for MathJax version 2 (see https://docs.mathjax.org/en/v2.7-latest/tex.html
+# #tex-and-latex-extensions):
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# For example for MathJax version 3 (see
+# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
+# MATHJAX_EXTENSIONS = ams
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using JavaScript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see:
+# https://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see:
+# https://xapian.org/). See the section "External Indexing and Searching" for
+# details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when not enabling USE_PDFLATEX the default is latex when enabling
+# USE_PDFLATEX the default is pdflatex and when in the later case latex is
+# chosen this is overwritten by pdflatex. For specific output languages the
+# default can have been set differently, this depends on the implementation of
+# the output language.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         =
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# Note: This tag is used in the Makefile / make.bat.
+# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
+# (.tex).
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
+# generate index for LaTeX. In case there is no backslash (\) as first character
+# it will be automatically added in the LaTeX code.
+# Note: This tag is used in the generated output file (.tex).
+# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
+# The default value is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_MAKEINDEX_CMD    = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for
+# the generated LaTeX document. The header should contain everything until the
+# first chapter. If it is left blank doxygen will generate a standard header. It
+# is highly recommended to start with a default header using
+# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
+# and then modify the file new_header.tex. See also section "Doxygen usage" for
+# information on how to generate the default header that doxygen normally uses.
+#
+# Note: Only use a user-defined header if you know what you are doing!
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. The following
+# commands have a special meaning inside the header (and footer): For a
+# description of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for
+# the generated LaTeX document. The footer should contain everything after the
+# last chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer. See also section "Doxygen
+# usage" for information on how to generate the default footer that doxygen
+# normally uses. Note: Only use a user-defined footer if you know what you are
+# doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
+# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
+# files. Set this option to YES, to get a higher quality PDF documentation.
+#
+# See also section LATEX_CMD_NAME for selecting the engine.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
+# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
+# path from which the emoji images will be read. If a relative path is entered,
+# it will be relative to the LATEX_OUTPUT directory. If left blank the
+# LATEX_OUTPUT directory will be used.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EMOJI_DIRECTORY  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = YES
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# configuration file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's configuration file. A template extensions file can be
+# generated using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = YES
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
+# namespace members in file scope as well, matching the HTML output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_NS_MEMB_FILE_SCOPE = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = YES
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES (or GRAPH) then doxygen will generate a
+# graph for each documented class showing the direct and indirect inheritance
+# relations. In case HAVE_DOT is set as well dot will be used to draw the graph,
+# otherwise the built-in generator will be used. If the CLASS_GRAPH tag is set
+# to TEXT the direct and indirect inheritance relations will be shown as texts /
+# links.
+# Possible values are: NO, YES, TEXT and GRAPH.
+# The default value is: YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag UML_LOOK is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and
+# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS
+# tag is set to YES, doxygen will add type and arguments for attributes and
+# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen
+# will not generate fields with class member information in the UML graphs. The
+# class diagrams will look similar to the default class diagrams but using UML
+# notation for the relationships.
+# Possible values are: NO, YES and NONE.
+# The default value is: NO.
+# This tag requires that the tag UML_LOOK is set to YES.
+
+DOT_UML_DETAILS        = NO
+
+# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters
+# to display on a single line. If the actual line length exceeds this threshold
+# significantly it will wrapped across multiple lines. Some heuristics are apply
+# to avoid ugly line breaks.
+# Minimum value: 0, maximum value: 1000, default value: 17.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_WRAP_THRESHOLD     = 17
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels
+# of child directories generated in directory dependency graphs by dot.
+# Minimum value: 1, maximum value: 25, default value: 1.
+# This tag requires that the tag DIRECTORY_GRAPH is set to YES.
+
+DIR_GRAPH_MAX_DEPTH    = 1
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file or to the filename of jar file
+# to be used. If left blank, it is assumed PlantUML is not used or called during
+# a preprocessing step. Doxygen will generate a warning when it encounters a
+# \startuml command in this case and will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal
+# graphical representation for inheritance and collaboration diagrams is used.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
+# files that are used to generate the various graphs.
+#
+# Note: This setting is not only used for dot files but also for msc temporary
+# files.
+# The default value is: YES.
+
+DOT_CLEANUP            = YES
diff --git a/Source/Include/XCBuildFile.h b/Source/Include/XCBuildFile.h
index 2aa73c6..6c498ab 100644
--- a/Source/Include/XCBuildFile.h
+++ b/Source/Include/XCBuildFile.h
@@ -7,7 +7,7 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "XcodeMemberType.h"
+#import <XcodeEditor/XcodeMemberType.h>
 
 @protocol XCBuildFile <NSObject>
 
diff --git a/Source/Include/XCBuildShellScript.h b/Source/Include/XCBuildShellScript.h
index ed2b1a7..807ad0f 100644
--- a/Source/Include/XCBuildShellScript.h
+++ b/Source/Include/XCBuildShellScript.h
@@ -7,8 +7,8 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "XcodeGroupMember.h"
-#import "XcodeSourceFileType.h"
+#import <XcodeEditor/XcodeGroupMember.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
 
 @class XCProject;
 
diff --git a/Source/Include/XCBuildShellScriptDefinition.h b/Source/Include/XCBuildShellScriptDefinition.h
index c7e2d57..c22ad8c 100644
--- a/Source/Include/XCBuildShellScriptDefinition.h
+++ b/Source/Include/XCBuildShellScriptDefinition.h
@@ -7,7 +7,7 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
 
 @interface XCBuildShellScriptDefinition : XCAbstractDefinition
 {
diff --git a/Source/Include/XCClassDefinition.h b/Source/Include/XCClassDefinition.h
index a8ea76d..1320ab8 100755
--- a/Source/Include/XCClassDefinition.h
+++ b/Source/Include/XCClassDefinition.h
@@ -11,7 +11,7 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
 
 typedef enum
 {
diff --git a/Source/Include/XCFrameworkDefinition.h b/Source/Include/XCFrameworkDefinition.h
index a59f812..0fe63e5 100644
--- a/Source/Include/XCFrameworkDefinition.h
+++ b/Source/Include/XCFrameworkDefinition.h
@@ -12,8 +12,8 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
-#import "XcodeSourceTreeType.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
+#import <XcodeEditor/XcodeSourceTreeType.h>
 
 @interface XCFrameworkDefinition : XCAbstractDefinition
 {
@@ -37,4 +37,4 @@
 
 
 
-@end
\ No newline at end of file
+@end
diff --git a/Source/Include/XCGroup.h b/Source/Include/XCGroup.h
index 666a97a..52de562 100644
--- a/Source/Include/XCGroup.h
+++ b/Source/Include/XCGroup.h
@@ -11,9 +11,9 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XcodeGroupMember.h"
-#import "XcodeSourceFileType.h"
-#import "XCBuildFile.h"
+#import <XcodeEditor/XcodeGroupMember.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
+#import <XcodeEditor/XCBuildFile.h>
 
 @class XCProject;
 @class XCClassDefinition;
diff --git a/Source/Include/XCProject+SubProject.h b/Source/Include/XCProject+SubProject.h
index ec4bf06..4efdb5e 100644
--- a/Source/Include/XCProject+SubProject.h
+++ b/Source/Include/XCProject+SubProject.h
@@ -12,7 +12,7 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCProject.h"
+#import <XcodeEditor/XCProject.h>
 
 @interface XCProject (SubProject)
 
@@ -40,4 +40,4 @@
 
 - (NSString *)productsGroupKeyForKey:(NSString *)key;
 
-@end
\ No newline at end of file
+@end
diff --git a/Source/Include/XCProject.h b/Source/Include/XCProject.h
index 38de35d..d874ddb 100644
--- a/Source/Include/XCProject.h
+++ b/Source/Include/XCProject.h
@@ -10,9 +10,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 #import <Foundation/Foundation.h>
-#import "XcodeMemberType.h"
-#import "XcodeSourceFileType.h"
-#import "XcodeGroupMember.h"
+#import <XcodeEditor/XcodeMemberType.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
+#import <XcodeEditor/XcodeGroupMember.h>
 
 @class XCClassDefinition;
 @class XCGroup;
diff --git a/Source/Include/XCSourceFile.h b/Source/Include/XCSourceFile.h
index d369659..278e8ad 100644
--- a/Source/Include/XCSourceFile.h
+++ b/Source/Include/XCSourceFile.h
@@ -12,9 +12,9 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XcodeGroupMember.h"
-#import "XcodeSourceFileType.h"
-#import "XCBuildFile.h"
+#import <XcodeEditor/XcodeGroupMember.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
+#import <XcodeEditor/XCBuildFile.h>
 
 @class XCProject;
 
diff --git a/Source/Include/XCSourceFileDefinition.h b/Source/Include/XCSourceFileDefinition.h
index 3f90db8..0e15900 100644
--- a/Source/Include/XCSourceFileDefinition.h
+++ b/Source/Include/XCSourceFileDefinition.h
@@ -12,8 +12,8 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
-#import "XcodeSourceFileType.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
 
 @interface XCSourceFileDefinition : XCAbstractDefinition
 {
diff --git a/Source/Include/XCSubProjectDefinition.h b/Source/Include/XCSubProjectDefinition.h
index e397f0b..66c721d 100644
--- a/Source/Include/XCSubProjectDefinition.h
+++ b/Source/Include/XCSubProjectDefinition.h
@@ -12,8 +12,8 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
-#import "XcodeSourceFileType.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
+#import <XcodeEditor/XcodeSourceFileType.h>
 
 @class XCProject;
 
diff --git a/Source/Include/XCVersionGroup.h b/Source/Include/XCVersionGroup.h
index 701e86e..4b5d586 100644
--- a/Source/Include/XCVersionGroup.h
+++ b/Source/Include/XCVersionGroup.h
@@ -7,9 +7,9 @@
 //
 
 #import <Foundation/Foundation.h>
-#import "XcodeGroupMember.h"
-#import "XCGroup.h"
-#import "XCBuildFile.h"
+#import <XcodeEditor/XcodeGroupMember.h>
+#import <XcodeEditor/XCGroup.h>
+#import <XcodeEditor/XCBuildFile.h>
 
 @class XCProject;
 @class XCClassDefinition;
diff --git a/Source/Include/XCXibDefinition.h b/Source/Include/XCXibDefinition.h
index d7018a8..279efef 100755
--- a/Source/Include/XCXibDefinition.h
+++ b/Source/Include/XCXibDefinition.h
@@ -12,7 +12,7 @@
 
 
 #import <Foundation/Foundation.h>
-#import "XCAbstractDefinition.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
 
 
 @interface XCXibDefinition : XCAbstractDefinition
diff --git a/Source/Include/XcodeEditor.h b/Source/Include/XcodeEditor.h
index 21c1e44..d9b21aa 100644
--- a/Source/Include/XcodeEditor.h
+++ b/Source/Include/XcodeEditor.h
@@ -20,20 +20,20 @@ FOUNDATION_EXPORT const unsigned char XcodeEditorVersionString[];
 // In this header, you should import all the public headers of your framework using statements like #import <XcodeEditor/PublicHeader.h>
 
 
-#import "XCAbstractDefinition.h"
-#import "XCGroup.h"
-#import "XCClassDefinition.h"
-#import "XCFileOperationQueue.h"
-#import "XCFrameworkDefinition.h"
-#import "XCProject.h"
-#import "XCSourceFile.h"
-#import "XCSourceFileDefinition.h"
-#import "XCSubProjectDefinition.h"
-#import "XCTarget.h"
-#import "XCXibDefinition.h"
-#import "XCKeyBuilder.h"
-#import "XCProject+SubProject.h"
-#import "XCProjectBuildConfig.h"
-#import "XCBuildShellScript.h"
-#import "XCBuildShellScriptDefinition.h"
-#import "XCVersionGroup.h"
+#import <XcodeEditor/XCAbstractDefinition.h>
+#import <XcodeEditor/XCGroup.h>
+#import <XcodeEditor/XCClassDefinition.h>
+#import <XcodeEditor/XCFileOperationQueue.h>
+#import <XcodeEditor/XCFrameworkDefinition.h>
+#import <XcodeEditor/XCProject.h>
+#import <XcodeEditor/XCSourceFile.h>
+#import <XcodeEditor/XCSourceFileDefinition.h>
+#import <XcodeEditor/XCSubProjectDefinition.h>
+#import <XcodeEditor/XCTarget.h>
+#import <XcodeEditor/XCXibDefinition.h>
+#import <XcodeEditor/XCKeyBuilder.h>
+#import <XcodeEditor/XCProject+SubProject.h>
+#import <XcodeEditor/XCProjectBuildConfig.h>
+#import <XcodeEditor/XCBuildShellScript.h>
+#import <XcodeEditor/XCBuildShellScriptDefinition.h>
+#import <XcodeEditor/XCVersionGroup.h>
diff --git a/Source/Include/XcodeGroupMember.h b/Source/Include/XcodeGroupMember.h
index e38b12b..0059736 100755
--- a/Source/Include/XcodeGroupMember.h
+++ b/Source/Include/XcodeGroupMember.h
@@ -11,7 +11,7 @@
 
 
 
-#import "XcodeMemberType.h"
+#import <XcodeEditor/XcodeMemberType.h>
 
 @protocol XcodeGroupMember <NSObject>
 
@@ -25,4 +25,4 @@
 * Group members can either be other groups (PBXGroup) or source files (PBXFileReference).
 */
 - (XcodeMemberType)groupMemberType;
-@end
\ No newline at end of file
+@end
diff --git a/Source/Resources/XcodeEditor-Prefix.pch b/Source/Resources/XcodeEditor-Prefix.pch
index ce16f7d..b71a76a 100644
--- a/Source/Resources/XcodeEditor-Prefix.pch
+++ b/Source/Resources/XcodeEditor-Prefix.pch
@@ -6,8 +6,9 @@
 
 #import <Foundation/Foundation.h>
 
+#ifndef DEBUG
+#define DEBUG 0
 #endif
 
-#if !DEBUG
-#define NSLog(...)
 #endif
+
diff --git a/Source/Utils/XCKeyBuilder.m b/Source/Utils/XCKeyBuilder.m
index 631f169..e77e8b2 100755
--- a/Source/Utils/XCKeyBuilder.m
+++ b/Source/Utils/XCKeyBuilder.m
@@ -45,7 +45,8 @@ - (id)initHashValueMD5HashWithBytes:(const void*)bytes length:(NSUInteger)length
     self = [super init];
     if (self != nil)
     {
-        CC_MD5(bytes, (int) length, _value);
+       // CC_MD5(bytes, (int) length, _value);
+        CC_SHA256(bytes, ( CC_LONG )length, _value);
     }
     return self;
 }
diff --git a/Source/XCFileOperationQueue.m b/Source/XCFileOperationQueue.m
index d2e1216..325f94b 100755
--- a/Source/XCFileOperationQueue.m
+++ b/Source/XCFileOperationQueue.m
@@ -12,6 +12,7 @@
 
 
 #import "XCFileOperationQueue.h"
+#import "XcodeEditor-Prefix.pch"
 
 @interface XCFileOperationQueue ()
 
@@ -81,7 +82,7 @@ - (void)queueFrameworkWithFilePath:(NSString*)filePath inDirectory:(NSString*)di
 
 - (void)queueDeletion:(NSString*)filePath
 {
-    NSLog(@"Queue deletion at: %@", filePath);
+    if ( DEBUG ) printf("Queue deletion at: %s\n", filePath.UTF8String);
     [_filesToDelete addObject:filePath];
 }
 
@@ -125,7 +126,7 @@ - (void)performCopyFrameworks
     [_frameworksToCopy enumerateKeysAndObjectsUsingBlock:^(NSURL* destinationUrl, NSURL* frameworkPath, BOOL* stop)
     {
 
-        NSLog(@"$$$$$$$$$$$$$$ destination url: %@", destinationUrl);
+        if ( DEBUG ) printf("$$$$$$$$$$$$$$ destination url: %s\n", destinationUrl.fileSystemRepresentation);
         NSFileManager* fileManager = [NSFileManager defaultManager];
 
         if ([fileManager fileExistsAtPath:[destinationUrl path]])
@@ -150,12 +151,12 @@ - (void)performFileDeletions
 
         if (![[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error])
         {
-            NSLog(@"failed to remove item at path; error == %@", error);
+            fprintf(stderr, "failed to remove item at path; error == %s\n", error.description.UTF8String);
             [NSException raise:NSInternalInconsistencyException format:@"Error deleting file at filePath: %@", filePath];
         }
         else
         {
-            NSLog(@"Deleted: %@", fullPath);
+            if ( DEBUG ) printf("Deleted: %s\n", fullPath.UTF8String);
         }
     }
     [_filesToDelete removeAllObjects];
@@ -177,4 +178,4 @@ - (void)performCreateDirectories
 }
 
 
-@end
\ No newline at end of file
+@end
diff --git a/Source/XCGroup.m b/Source/XCGroup.m
index 6b8a528..f7b3148 100644
--- a/Source/XCGroup.m
+++ b/Source/XCGroup.m
@@ -25,6 +25,7 @@
 #import "XCProject+SubProject.h"
 #import "XcodeMemberType.h"
 #import "XCVersionGroup.h"
+#import "XcodeEditor-Prefix.pch"
 
 @implementation XCGroup
 
@@ -96,17 +97,16 @@ - (void)removeFromParentDeletingChildren:(BOOL)deleteChildren
         [_fileOperationQueue queueDeletion:[self pathRelativeToProjectRoot]];
     }
     NSDictionary *dictionary = [_project objects][_key];
-    NSLog(@"Here's the dictionary: %@", dictionary);
+    if (( dictionary ) && ( DEBUG )) printf("%s Dictionary: %s\n", __func__, dictionary.description.UTF8String ); else if ( DEBUG ) printf("%s No Dictionary\n", __func__);
 
     [[_project objects] removeObjectForKey:_key];
 
     dictionary = [_project objects][_key];
-    NSLog(@"Here's the dictionary: %@", dictionary);
-
+    if (( dictionary ) && ( DEBUG )) printf("%s Dictionary: %s\n", __func__, dictionary.description.UTF8String ); else if ( DEBUG ) printf("%s No Dictionary\n", __func__ );
     for (XCTarget *target in [_project targets]) {
         [target removeMembersWithKeys:[self recursiveMembers]];
     }
-    NSLog(@"Done!!!");
+    if ( DEBUG ) puts("group removed");
 }
 
 - (XCGroup *)parentGroup
@@ -179,9 +179,10 @@ - (void)removeHeader:(XCClassDefinition*)classDefinition {
 
 - (void)addFramework:(XCFrameworkDefinition *)frameworkDefinition
 {
-    if (([self memberWithDisplayName:[frameworkDefinition fileName]]) == nil) {
-        NSLog(@"frame doesnt exists. creating %@", [frameworkDefinition fileName]);
-        NSLog(@"existing members: %@", [self members]);
+    if (([self memberWithDisplayName:[frameworkDefinition fileName]]) == nil)
+    {
+        if ( DEBUG ) printf("frame doesnt exists. creating %s\n", [frameworkDefinition fileName].UTF8String);
+        if ( DEBUG ) printf("existing members: %s\n", [self members].description.UTF8String );
         NSDictionary *fileReference;
         if ([frameworkDefinition copyToDestination]) {
             fileReference = [self makeFileReferenceWithPath:[frameworkDefinition fileName] name:nil type:Framework
diff --git a/Source/XCProject.m b/Source/XCProject.m
index b7d98e9..7941ac8 100644
--- a/Source/XCProject.m
+++ b/Source/XCProject.m
@@ -17,6 +17,7 @@
 #import "XCFileOperationQueue.h"
 #import "XCProjectBuildConfig.h"
 #import "XCVersionGroup.h"
+#import "XcodeEditor-Prefix.pch"
 
 NSString *const XCProjectNotFoundException;
 
@@ -436,8 +437,7 @@ - (void)save
     
     // Don't forget to reset the cache so that we'll always get the latest data.
     [self dropCache];
-
-    NSLog(@"Saved project");
+    if ( DEBUG ) printf("Project %s saved\n", _filePath.lastPathComponent.UTF8String);
 }
 
 - (NSMutableDictionary *)objects
diff --git a/Source/XCProjectBuildConfig.m b/Source/XCProjectBuildConfig.m
index 3a9d435..5b81eff 100644
--- a/Source/XCProjectBuildConfig.m
+++ b/Source/XCProjectBuildConfig.m
@@ -67,7 +67,7 @@ + (NSDictionary*)buildConfigurationsFromArray:(NSArray*)array inProject:(XCProje
 
                 if (![[NSFileManager defaultManager] fileExistsAtPath:path])
                 {
-                    NSLog(@"XCConfig not found. Unable to find XCConfig file at %@", path);
+                    fprintf(stderr, "XCConfig not found. Unable to find XCConfig file at %s\n", path.UTF8String);
                 }
 
             }
diff --git a/Source/XCVersionGroup.m b/Source/XCVersionGroup.m
index 5b3fba1..c864ca0 100644
--- a/Source/XCVersionGroup.m
+++ b/Source/XCVersionGroup.m
@@ -14,6 +14,7 @@
 #import "XCKeyBuilder.h"
 #import "XCSourceFileDefinition.h"
 #import "XCProject+SubProject.h"
+#import "XcodeEditor-Prefix.pch"
 
 @implementation XCVersionGroup
 
@@ -69,20 +70,21 @@ - (void)removeFromParentDeletingChildren:(BOOL)deleteChildren
         [_fileOperationQueue queueDeletion:[self pathRelativeToProjectRoot]];
     }
     NSDictionary* dictionary = [_project objects][_key];
-    NSLog(@"Here's the dictionary: %@", dictionary);
-    
+    if (( dictionary ) &&( DEBUG )) printf("Dictionary: %s\n", dictionary.description.UTF8String ); else if ( DEBUG ) printf("No Dictionary\n");
+
     [[_project objects] removeObjectForKey:_key];
     
     dictionary = [_project objects][_key];
-    NSLog(@"Here's the dictionary: %@", dictionary);
-    
+    if ( DEBUG ) printf("%s",__func__);
+    if (( dictionary ) && ( DEBUG )) printf("Dictionary: %s\n", dictionary.description.UTF8String ); else if ( DEBUG ) printf("No Dictionary\n");
+
     for (XCTarget* target in [_project targets])
     {
         for (XCSourceFile *source in [self members]) {
             [target removeMemberWithKey:source.key];
         }
     }
-    NSLog(@"Done!!!");
+    if ( DEBUG ) puts("group removed");
 }
 
 - (XCGroup*)parentGroup
diff --git a/XcodeEditor.xcodeproj/project.pbxproj b/XcodeEditor.xcodeproj/project.pbxproj
index 291be3c..d432175 100644
--- a/XcodeEditor.xcodeproj/project.pbxproj
+++ b/XcodeEditor.xcodeproj/project.pbxproj
@@ -17,7 +17,6 @@
 		6BE8FDB81C01C190001EF5B3 /* XcodeEditor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BE8FDAD1C01C190001EF5B3 /* XcodeEditor.framework */; };
 		BA7980BF50D23B7BEF646CEB /* XCProjectBuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79825B6294137CFC2609B9 /* XCProjectBuildConfig.m */; };
 		BA7980C2CFE1088A485DEF43 /* XCTestResourceUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79870D516A14BE1922F109 /* XCTestResourceUtils.m */; };
-		BA7980F352BBC94B37A85B50 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BA798ED8B847C8BEE5A56CF4 /* InfoPlist.strings */; };
 		BA7981FCC7DFB418DFD25C9D /* XCSourceFileDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7982102090AE1FFBBA5C63 /* XCSourceFileDefinition.m */; };
 		BA79823125F335EF8C4A53CA /* XCSubProjectDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7987EBAFEB84C72B4C63D6 /* XCSubProjectDefinition.m */; };
 		BA798280BE8DA3E2AD97A04A /* XCGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = BA79842F32FBBA0B05247673 /* XCGroup.m */; };
@@ -41,7 +40,7 @@
 		BA798DF4DEEA8368A42FACA9 /* XCSubProjectDefinitionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798B849BC7E9D7F2F00491 /* XCSubProjectDefinitionTests.m */; };
 		BA798EAA17988686D3D7E8B2 /* XCProject+SubProject.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798CB9BB3A4BD2E144BF89 /* XCProject+SubProject.m */; };
 		BA798EC723A793B612052BE7 /* XcodeSourceFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = BA7983F73E0C257372AF1F3B /* XcodeSourceFileType.m */; };
-		BA798F0DCBD407799127F9F2 /* XcodeEditor-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = BA79899DAF14541468FCDC2C /* XcodeEditor-Prefix.pch */; };
+		BA798F0DCBD407799127F9F2 /* XcodeEditor-Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = BA79899DAF14541468FCDC2C /* XcodeEditor-Prefix.pch */; settings = {ATTRIBUTES = (Public, ); }; };
 		BA798F8C7A905D2F1C2B700D /* XCAbstractDefinition.m in Sources */ = {isa = PBXBuildFile; fileRef = BA798C43B7ADCEEA466EC35E /* XCAbstractDefinition.m */; };
 		E892C1292014A14300BED02B /* NSString+RemoveEmoji.h in Headers */ = {isa = PBXBuildFile; fileRef = E892C1112014A10300BED02B /* NSString+RemoveEmoji.h */; };
 		E892C12A2014A14300BED02B /* XCAbstractDefinition.h in Headers */ = {isa = PBXBuildFile; fileRef = E892C1122014A10300BED02B /* XCAbstractDefinition.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -88,9 +87,7 @@
 		5D5AC8751C6A423C00E5B3DA /* XCBuildShellScriptDefinition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCBuildShellScriptDefinition.m; sourceTree = "<group>"; };
 		5DC6E7571C6B72B9008FA743 /* XCVersionGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCVersionGroup.m; sourceTree = "<group>"; };
 		6BE8FDAD1C01C190001EF5B3 /* XcodeEditor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XcodeEditor.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		6BE8FDB21C01C190001EF5B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		6BE8FDB71C01C190001EF5B3 /* XcodeEditorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XcodeEditorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
-		6BE8FDBE1C01C190001EF5B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		BA79801D6C7758B86C21D00C /* XCKeyBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCKeyBuilder.m; sourceTree = "<group>"; };
 		BA798034335C63C874E00AF1 /* XCGroupTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCGroupTests.m; sourceTree = "<group>"; };
 		BA798082C37F23810B9E6E13 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@@ -158,7 +155,6 @@
 		BA798E1EC5C489FE796F5EA7 /* ESA.Sales.Foobar.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ESA.Sales.Foobar.xib; sourceTree = "<group>"; };
 		BA798E270F16321925D0C383 /* encodings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = encodings.xml; sourceTree = "<group>"; };
 		BA798E29A9F471EFF3DC43FA /* MasterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = "<group>"; };
-		BA798E961B73D239157C47D4 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = "<group>"; };
 		BA798EA5F6140CB98BC7DDD8 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
 		BA798ED36A824097C41239C8 /* ESA_Sales_Foobar_ViewController.impl */ = {isa = PBXFileReference; lastKnownFileType = file.impl; path = ESA_Sales_Foobar_ViewController.impl; sourceTree = "<group>"; };
 		BA798EFC68F1CEAB2B630557 /* project.pbxproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.pbxproject; path = project.pbxproj; sourceTree = "<group>"; };
@@ -217,7 +213,6 @@
 			isa = PBXGroup;
 			children = (
 				E892C10F20149CFA00BED02B /* Package.swift */,
-				6BE8FDAF1C01C190001EF5B3 /* XcodeEditor */,
 				6BE8FDBB1C01C190001EF5B3 /* XcodeEditorTests */,
 				6BE8FDAE1C01C190001EF5B3 /* Products */,
 				BA7986BDFB99098F8E646649 /* Source */,
@@ -233,18 +228,9 @@
 			name = Products;
 			sourceTree = "<group>";
 		};
-		6BE8FDAF1C01C190001EF5B3 /* XcodeEditor */ = {
-			isa = PBXGroup;
-			children = (
-				6BE8FDB21C01C190001EF5B3 /* Info.plist */,
-			);
-			path = XcodeEditor;
-			sourceTree = "<group>";
-		};
 		6BE8FDBB1C01C190001EF5B3 /* XcodeEditorTests */ = {
 			isa = PBXGroup;
 			children = (
-				6BE8FDBE1C01C190001EF5B3 /* Info.plist */,
 				BA798B849BC7E9D7F2F00491 /* XCSubProjectDefinitionTests.m */,
 				BA79838B7C6C0173D1F59C03 /* XCProjectTests.m */,
 				BA7986F0221AD3D9FBE7461D /* XcodeFileReferenceTypeTests.m */,
@@ -429,7 +415,6 @@
 		BA79884DD82D8873D8985852 /* en.lproj */ = {
 			isa = PBXGroup;
 			children = (
-				BA798ED8B847C8BEE5A56CF4 /* InfoPlist.strings */,
 			);
 			path = en.lproj;
 			sourceTree = "<group>";
@@ -594,6 +579,7 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				BA798F0DCBD407799127F9F2 /* XcodeEditor-Prefix.pch in Headers */,
 				E892C12A2014A14300BED02B /* XCAbstractDefinition.h in Headers */,
 				E892C12B2014A14300BED02B /* XCBuildFile.h in Headers */,
 				E892C12C2014A14300BED02B /* XCBuildShellScript.h in Headers */,
@@ -617,7 +603,6 @@
 				E892C13E2014A14300BED02B /* XCTarget.h in Headers */,
 				E892C13F2014A14300BED02B /* XCVersionGroup.h in Headers */,
 				E892C1402014A14300BED02B /* XCXibDefinition.h in Headers */,
-				BA798F0DCBD407799127F9F2 /* XcodeEditor-Prefix.pch in Headers */,
 				E892C1292014A14300BED02B /* NSString+RemoveEmoji.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -668,7 +653,7 @@
 		6BE8FDA41C01C190001EF5B3 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0710;
+				LastUpgradeCheck = 1320;
 				ORGANIZATIONNAME = appsquickly;
 				TargetAttributes = {
 					6BE8FDAC1C01C190001EF5B3 = {
@@ -681,10 +666,12 @@
 			};
 			buildConfigurationList = 6BE8FDA71C01C190001EF5B3 /* Build configuration list for PBXProject "XcodeEditor" */;
 			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
+			developmentRegion = en;
 			hasScannedForEncodings = 0;
 			knownRegions = (
+				English,
 				en,
+				Base,
 			);
 			mainGroup = 6BE8FDA31C01C190001EF5B3;
 			productRefGroup = 6BE8FDAE1C01C190001EF5B3 /* Products */;
@@ -702,7 +689,6 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				BA7980F352BBC94B37A85B50 /* InfoPlist.strings in Resources */,
 				BA7988A0432093FC3C9B81AD /* InfoPlist.strings in Resources */,
 				BA798AC943D831E9EF74B1C8 /* XcodeEditor-Info.plist in Resources */,
 			);
@@ -815,14 +801,6 @@
 			name = Main.storyboard;
 			sourceTree = "<group>";
 		};
-		BA798ED8B847C8BEE5A56CF4 /* InfoPlist.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				BA798E961B73D239157C47D4 /* en */,
-			);
-			name = InfoPlist.strings;
-			sourceTree = "<group>";
-		};
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
@@ -830,17 +808,29 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				CODE_SIGN_IDENTITY = "-";
@@ -863,7 +853,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.11;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = macosx;
@@ -876,17 +866,29 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 				CODE_SIGN_IDENTITY = "-";
@@ -903,7 +905,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.11;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = macosx;
 				VERSIONING_SYSTEM = "apple-generic";
@@ -923,10 +925,10 @@
 				INFOPLIST_FILE = XcodeEditor/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				PRODUCT_BUNDLE_IDENTIFIER = appsquickly.xcode.XcodeEditor;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
+				SKIP_INSTALL = NO;
 			};
 			name = Debug;
 		};
@@ -942,10 +944,10 @@
 				INFOPLIST_FILE = XcodeEditor/Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
-				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				PRODUCT_BUNDLE_IDENTIFIER = appsquickly.xcode.XcodeEditor;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
+				SKIP_INSTALL = NO;
 			};
 			name = Release;
 		};
diff --git a/XcodeEditor.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme b/XcodeEditor.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme
index ca16108..777ce89 100644
--- a/XcodeEditor.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme
+++ b/XcodeEditor.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
+   LastUpgradeVersion = "1320"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -38,8 +39,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -60,8 +59,6 @@
             ReferencedContainer = "container:XcodeEditor.xcodeproj">
          </BuildableReference>
       </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"
diff --git a/XcodeEditor.xcodeproj/xcshareddata/xcschemes/XcodeEditor.xcscheme b/XcodeEditor.xcodeproj/xcshareddata/xcschemes/XcodeEditor.xcscheme
index 20b71e4..63cc09d 100644
--- a/XcodeEditor.xcodeproj/xcshareddata/xcschemes/XcodeEditor.xcscheme
+++ b/XcodeEditor.xcodeproj/xcshareddata/xcschemes/XcodeEditor.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0710"
+   LastUpgradeVersion = "1320"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -27,6 +27,15 @@
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "6BE8FDAC1C01C190001EF5B3"
+            BuildableName = "XcodeEditor.framework"
+            BlueprintName = "XcodeEditor"
+            ReferencedContainer = "container:XcodeEditor.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
       <Testables>
          <TestableReference
             skipped = "NO">
@@ -39,17 +48,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "6BE8FDAC1C01C190001EF5B3"
-            BuildableName = "XcodeEditor.framework"
-            BlueprintName = "XcodeEditor"
-            ReferencedContainer = "container:XcodeEditor.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -70,8 +68,6 @@
             ReferencedContainer = "container:XcodeEditor.xcodeproj">
          </BuildableReference>
       </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"
diff --git a/XcodeEditorTests/Resources/Files/HelloWorldLayer.impl b/XcodeEditorTests/Resources/Files/HelloWorldLayer.impl
index 0172fea..c219623 100644
--- a/XcodeEditorTests/Resources/Files/HelloWorldLayer.impl
+++ b/XcodeEditorTests/Resources/Files/HelloWorldLayer.impl
@@ -244,7 +244,7 @@ enum {
 
 - (void) ccTouchEnded:(UITouch*)touch withEvent:(UIEvent*)event {
     CCLOG(@"Stop touching!!!!!");
-    NSLog(@"Stop touchin' !!!!!!!!!!!");
+    if ( DEBUG ) puts("Stop touchin' !!!!!!!!!!!");
     if (_mouseJoint) {
         _world->DestroyJoint(_mouseJoint);
         _mouseJoint = NULL;
diff --git a/XcodeEditorTests/Resources/Files/project.pbxproj b/XcodeEditorTests/Resources/Files/project.pbxproj
index 076c905..f0708f7 100644
--- a/XcodeEditorTests/Resources/Files/project.pbxproj
+++ b/XcodeEditorTests/Resources/Files/project.pbxproj
@@ -605,7 +605,7 @@
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = macosx;
 			};
@@ -625,7 +625,7 @@
 				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				MACOSX_DEPLOYMENT_TARGET = 10.7;
+				MACOSX_DEPLOYMENT_TARGET = 10.14;
 				SDKROOT = macosx;
 			};
 			name = Release;
diff --git a/XcodeEditorTests/XCGroupTests.m b/XcodeEditorTests/XCGroupTests.m
index 9b1c52a..4f85b9f 100644
--- a/XcodeEditorTests/XCGroupTests.m
+++ b/XcodeEditorTests/XCGroupTests.m
@@ -89,7 +89,7 @@ - (void)test_able_to_describe_itself
 
 - (void)test_able_to_return_its_full_path_relative_to_the_project_base_directory
 {
-    NSLog(@"############Path: %@", [_group pathRelativeToProjectRoot]);
+    if ( DEBUG ) printf("############Path: %s\n", [_group pathRelativeToProjectRoot].UTF8String);
 }
 
 //-------------------------------------------------------------------------------------------
@@ -104,7 +104,7 @@ - (void)test_allows_adding_a_source_file
     [classDefinition setHeader:NSStringWithXCTestResource(@"ESA_Sales_Foobar_ViewController.header")];
     [classDefinition setSource:NSStringWithXCTestResource(@"ESA_Sales_Foobar_ViewController.impl")];
 
-    NSLog(@"Class definition: %@", classDefinition);
+    if ( DEBUG ) printf("Class definition: %s\n", classDefinition.description.UTF8String);
 
     [_group addClass:classDefinition];
     [_project save];
@@ -121,7 +121,7 @@ - (void)test_allows_adding_a_source_file
     XCTAssertTrue([fileResource isBuildFile]);
 
     [_project save];
-    NSLog(@"Done adding source file.");
+    if ( DEBUG ) puts("Done adding source file.");
 }
 
 - (void)test_provides_a_convenience_method_to_add_a_source_file_and_specify_targets
@@ -236,7 +236,7 @@ - (void)test_should_allow_adding_a_xib_file
     XCTAssertTrue([xibFile isBuildFile]);
 
     [_project save];
-    NSLog(@"Done adding xib file.");
+    if ( DEBUG ) puts("Done adding xib file.");
 
 }
 
@@ -400,7 +400,7 @@ - (void)test_able_to_provide_a_sorted_list_of_its_children
 {
 
     NSArray *children = [_group members];
-    NSLog(@"Group children: %@", children);
+    if ( DEBUG ) printf("Group children: %s\n", children.description.UTF8String);
     XCTAssertFalse([children count] == 0);
 
 }
@@ -417,9 +417,9 @@ - (void)test_able_to_return_a_member_by_its_name
 - (void)test_able_to_list_all_of_its_members_recursively
 {
 
-    NSLog(@"Let's get recursive members!!!!");
+    if ( DEBUG ) puts("Let's get recursive members!!!!");
     NSArray *recursiveMembers = [_group recursiveMembers];
-    NSLog(@"$$$$$$$$$$$$$$$**********$*$*$*$*$*$* recursive members: %@", recursiveMembers);
+    if ( DEBUG ) printf("$$$$$$$$$$$$$$$**********$*$*$*$*$*$* recursive members: %s\n", recursiveMembers.description.UTF8String);
 
 }
 
@@ -436,14 +436,14 @@ - (void)test_allows_deleting_a_filesystem_group_optionally_deleting_also_the_con
     XCGroup *aGroup = [_project groupWithPathFromRoot:@"Source/Main/UserInterface/Components"];
 
     NSArray *groups = [_project groups];
-    NSLog(@"Groups now: %@", groups);
+    if ( DEBUG ) printf("Groups now: %s\n", groups.description.UTF8String);
 
     [aGroup removeFromParentDeletingChildren:YES];
     [_project save];
 
     groups = [_project groups];
-    NSLog(@"Groups now: %@", groups);
-
+    if ( DEBUG ) printf("Groups now: %s\n", groups.description.UTF8String);
+ 
     XCGroup *deleted = [_project groupWithPathFromRoot:@"Source/Main/UserInterface/Components"];
     XCTAssertNil(deleted);
 
@@ -465,7 +465,7 @@ - (void)test_allows_deleting_a_group_after_adding_contents
     [classDefinition setHeader:NSStringWithXCTestResource(@"ClassCalledJanine.h")];
     [classDefinition setSource:NSStringWithXCTestResource(@"ClassCalledJanine.m")];
 
-    NSLog(@"Class definition: %@", classDefinition);
+    if ( DEBUG ) printf("Class definition: %s\n", classDefinition.description.UTF8String);
 
     [group addClass:classDefinition];
     [project save];
@@ -481,7 +481,7 @@ - (void)test_allows_deleting_a_group_after_adding_contents
     XCTAssertTrue([fileResource isBuildFile]);
 
     [project save];
-    NSLog(@"Done adding source file.");
+    if ( DEBUG ) puts("Done adding source file.");
 
     [group removeFromParentDeletingChildren:YES];
     [project save];
diff --git a/XcodeEditorTests/XCKeyBuilderTests.m b/XcodeEditorTests/XCKeyBuilderTests.m
index fce71a1..5a58d5b 100644
--- a/XcodeEditorTests/XCKeyBuilderTests.m
+++ b/XcodeEditorTests/XCKeyBuilderTests.m
@@ -28,10 +28,10 @@ - (void)test_returns_an_md5_hash_for_an_NSData_instance
 
     XCKeyBuilder* builtKey = [XCKeyBuilder forItemNamed:requiresKey];
     NSString* key = [builtKey build];
-    NSLog(@"Key: %@", key);
+    if ( DEBUG ) printf("Key: %s\n", key.UTF8String);
     XCTAssertNotNil(key);
     XCTAssertEqual(key.length, 24);
 }
 
 
-@end
\ No newline at end of file
+@end
diff --git a/XcodeEditorTests/XCProjectTests.m b/XcodeEditorTests/XCProjectTests.m
index 5c7b24a..c81f736 100644
--- a/XcodeEditorTests/XCProjectTests.m
+++ b/XcodeEditorTests/XCProjectTests.m
@@ -38,11 +38,12 @@ - (void)test_able_to_list_all_the_header_files_in_a_project
 {
 
     NSArray *headerFiles = [_project headerFiles];
-    NSLog(@"Headers: %@", headerFiles);
+    if ( DEBUG ) printf("Headers: %s\n", headerFiles.description.UTF8String);
 
     XCTAssertTrue([headerFiles count] == 18);
-    for (XCSourceFile *file in headerFiles) {
-        NSLog(@"File: %@", [file description]);
+    for (XCSourceFile *file in headerFiles)
+    {
+        if ( DEBUG ) printf("File: %s\n", [file description].UTF8String);
     }
 
 }
@@ -51,7 +52,7 @@ - (void)test_able_to_list_all_the_obj_c_files_in_a_project
 {
 
     NSArray *objcFiles = [_project objectiveCFiles];
-    NSLog(@"Implementation Files: %@", objcFiles);
+    if ( DEBUG ) printf("Implementation Files: %s\n", objcFiles.description.UTF8String);
 
     XCTAssertTrue([objcFiles count] == 21);
 }
@@ -59,7 +60,7 @@ - (void)test_able_to_list_all_the_obj_c_files_in_a_project
 - (void)test_able_to_list_all_the_obj_cPlusPlus_files_in_a_project
 {
     NSArray *objcPlusPlusFiles = [_project objectiveCPlusPlusFiles];
-    NSLog(@"Implementation Files: %@", objcPlusPlusFiles);
+    if ( DEBUG ) printf("Implementation Files: %s\n", objcPlusPlusFiles.description.UTF8String);
 
     //TODO: Put an obj-c++ file in the test project.
     XCTAssertTrue([objcPlusPlusFiles count] == 0);
@@ -69,7 +70,7 @@ - (void)test_be_able_to_list_all_the_xib_files_in_a_project
 {
 
     NSArray *xibFiles = [_project xibFiles];
-    NSLog(@"Xib Files: %@", xibFiles);
+    if ( DEBUG ) printf("Xib Files: %s\n", xibFiles.description.UTF8String);
     XCTAssertTrue([xibFiles count] == 2);
 }
 
@@ -82,10 +83,12 @@ - (void)test_able_to_list_all_of_the_groups_in_a_project
 {
     NSArray *groups = [_project groups];
 
-    for (XCGroup *group in groups) {
-        NSLog(@"Name: %@, full path: %@", [group displayName], [group pathRelativeToProjectRoot]);
-        for (id <XcodeGroupMember> member  in [group members]) {
-            NSLog(@"\t%@", [member displayName]);
+    for (XCGroup *group in groups)
+    {
+        if ( DEBUG ) printf("Name: %s, full path: %s\n", [group displayName].UTF8String, [group pathRelativeToProjectRoot].UTF8String);
+        for (id <XcodeGroupMember> member  in [group members])
+        {
+            if ( DEBUG ) printf("\t%s\n", [member displayName].UTF8String);
         }
     }
 
@@ -97,7 +100,7 @@ - (void)test_provides_access_to_the_root_top_level_group
 {
 
     XCGroup *rootGroup = [_project rootGroup];
-    NSLog(@"Here the _group: %@", rootGroup);
+    if ( DEBUG ) printf("Here the _group: %s\n", rootGroup.description.UTF8String);
     XCTAssertFalse([rootGroup.members count] == 0);
 }
 
@@ -106,7 +109,7 @@ - (void)test_provides_a_way_to_locate_a_group_from_its_path_to_the_root_group
 
     XCGroup *group = [_project groupWithPathFromRoot:@"Source/Main/Assembly"];
     XCTAssertNotNil(group);
-    NSLog(@"Group: %@", group);
+    if ( DEBUG ) printf("Group: %s\n", group.description.UTF8String);
 
 }
 
@@ -134,18 +137,19 @@ - (void)test_able_to_list_the_targets_in_an_xcode_project
 {
 
     NSArray *targets = [_project targets];
-    for (XCTarget *target in [_project targets]) {
-        NSLog(@"%@", target);
+    for (XCTarget *target in [_project targets])
+    {
+        if ( DEBUG ) printf("%s\n", target.description.UTF8String);
     }
     XCTAssertNotNil(targets);
     XCTAssertFalse([targets count] == 0);
 
     for (XCTarget *target in targets) {
         NSArray *members = [target members];
-        NSLog(@"Members: %@", members);
+        if ( DEBUG ) printf("Members: %s\n", members.description.UTF8String);
     }
 
 }
 
 
-@end
\ No newline at end of file
+@end
diff --git a/XcodeEditorTests/XCTargetTests.m b/XcodeEditorTests/XCTargetTests.m
index 786d262..d86b40d 100644
--- a/XcodeEditorTests/XCTargetTests.m
+++ b/XcodeEditorTests/XCTargetTests.m
@@ -27,7 +27,7 @@ @implementation XCTargetTests
 - (void)setUp
 {
     _project = [[XCProject alloc] initWithFilePath:XCSample1XcodeProjectPath()];
-    NSLog(@"Targets: %@", [_project targets]);
+    if ( DEBUG ) printf("Targets: %s\n", [_project targets].description.UTF8String);
 }
 
 - (void)test_allows_setting_name_and_product_name_target_properties
@@ -50,18 +50,18 @@ - (void)test_allows_setting_build_configurations
     XCTarget* target = [project targetWithName:@"HelloBoxy"];
 
     XCProjectBuildConfig * configuration = [target configurationWithName:@"Debug"];
-    NSLog(@"Here's the configuration: %@", configuration);
+    if ( DEBUG ) printf("Here's the configuration: %s\n", configuration.description.UTF8String);
     id ldFlags = [configuration valueForKey:@"OTHER_LDFLAGS"];
-    NSLog(@"ldflags: %@, %@", ldFlags, [ldFlags class]);
+    if ( DEBUG ) printf("ldflags: %s, %s\n", ((NSObject *)ldFlags).description.UTF8String, [ldFlags className].UTF8String);
     [configuration addOrReplaceSetting:@"-lz -lxml2" forKey:@"OTHER_LDFLAGS"];
     [configuration addOrReplaceSetting:@[@"foo", @"bar"] forKey:@"HEADER_SEARCH_PATHS"];
 
 
 
     configuration = [target configurationWithName:@"Release"];
-    NSLog(@"Here's the configuration: %@", configuration);
+    if ( DEBUG ) printf("Here's the configuration: %s\n", configuration.description.UTF8String);
     ldFlags = [configuration valueForKey:@"OTHER_LDFLAGS"];
-    NSLog(@"ldflags: %@, %@", ldFlags, [ldFlags class]);
+    if ( DEBUG ) printf("ldflags: %s, %s\n", ((NSObject *)ldFlags).description.UTF8String, [ldFlags className].UTF8String);//(@"%@, %@");
     [configuration addOrReplaceSetting:@"-lz -lxml2" forKey:@"OTHER_LDFLAGS"];
     [configuration addOrReplaceSetting:@[@"foo", @"bar"] forKey:@"HEADER_SEARCH_PATHS"];
 
@@ -78,8 +78,9 @@ - (void)test_allows_duplicating_a_target
     XCTarget* target = [project targetWithName:@"HelloBoxy"];
 
     XCTarget* duplicated = [target duplicateWithTargetName:@"DuplicatedTarget" productName:@"NewProduct"];
+    if ( ! duplicated ) fprintf(stderr, "%s failed\n", __func__);
     [project save];
 }
 
 
-@end
\ No newline at end of file
+@end
diff --git a/doc/docbook/_class_called_janine_8h_source.xml b/doc/docbook/_class_called_janine_8h_source.xml
new file mode 100644
index 0000000..f9f4a7c
--- /dev/null
+++ b/doc/docbook/_class_called_janine_8h_source.xml
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__class_called_janine_8h_source" xml:lang="en-US">
+<title>ClassCalledJanine.h</title>
+<indexterm><primary>ClassCalledJanine.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+2 
+3 
+4 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_class_called_janine">ClassCalledJanine</link>&#32;:&#32;NSObject
+5 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_n_s_string_09_remove_emoji_8h_source.xml b/doc/docbook/_n_s_string_09_remove_emoji_8h_source.xml
new file mode 100644
index 0000000..29960ff
--- /dev/null
+++ b/doc/docbook/_n_s_string_09_remove_emoji_8h_source.xml
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__n_s_string_09_remove_emoji_8h_source" xml:lang="en-US">
+<title>NSString+RemoveEmoji.h</title>
+<indexterm><primary>NSString+RemoveEmoji.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+2 
+3 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_category_n_s_string_07_remove_emoji_08">NSString (RemoveEmoji)</link>
+4 
+5 -&#32;(BOOL)isIncludingEmoji;
+6 
+7 -&#32;(instancetype)stringByRemovingEmoji;
+8 
+9 -&#32;(instancetype)removedEmojiString&#32;__attribute__((deprecated));
+10 
+11 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_abstract_definition_8h_source.xml b/doc/docbook/_x_c_abstract_definition_8h_source.xml
new file mode 100644
index 0000000..1232d71
--- /dev/null
+++ b/doc/docbook/_x_c_abstract_definition_8h_source.xml
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_abstract_definition_8h_source" xml:lang="en-US">
+<title>XCAbstractDefinition.h</title>
+<indexterm><primary>XCAbstractDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;-&#32;2013&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 
+15 <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">enum</emphasis>
+16 {
+17 
+22 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;XCFileOperationTypeOverwrite,
+23 
+28 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;XCFileOperationTypeAcceptExisting,
+29 
+34 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;XCFileOperationTypeReferenceOnly
+35 }&#32;XCFileOperationType;
+36 
+40 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>&#32;:&#32;NSObject
+41 {
+42 &#32;&#32;&#32;&#32;XCFileOperationType&#32;_fileOperationType;
+43 }
+44 
+45 <emphasis role="keyword">@property</emphasis>(nonatomic)&#32;XCFileOperationType&#32;fileOperationType;
+46 
+47 
+48 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_build_file_8h_source.xml b/doc/docbook/_x_c_build_file_8h_source.xml
new file mode 100644
index 0000000..aa0c1a0
--- /dev/null
+++ b/doc/docbook/_x_c_build_file_8h_source.xml
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_build_file_8h_source" xml:lang="en-US">
+<title>XCBuildFile.h</title>
+<indexterm><primary>XCBuildFile.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="comment">//</emphasis>
+2 <emphasis role="comment">//&#32;&#32;XCBuildFile.h</emphasis>
+3 <emphasis role="comment">//&#32;&#32;XcodeEditor</emphasis>
+4 <emphasis role="comment">//</emphasis>
+5 <emphasis role="comment">//&#32;&#32;Created&#32;by&#32;joel&#32;on&#32;01/02/16.</emphasis>
+6 <emphasis role="comment">//&#32;&#32;Copyright&#32;©&#32;2016&#32;appsquickly.&#32;All&#32;rights&#32;reserved.</emphasis>
+7 <emphasis role="comment">//</emphasis>
+8 
+9 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+10 <emphasis role="comment">//#import&#32;&quot;XcodeMemberType.h&quot;</emphasis>
+11 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeMemberType.h&gt;</emphasis>
+12 
+13 <emphasis role="keyword">@protocol&#32;</emphasis><link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&#32;&lt;NSObject&gt;
+14 
+15 -&#32;(void)becomeBuildFile;
+16 -&#32;(XcodeMemberType)buildPhase;
+17 -&#32;(NSString&#32;*)buildFileKey;
+18 -&#32;(BOOL)isBuildFile;
+19 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_build_shell_script_8h_source.xml b/doc/docbook/_x_c_build_shell_script_8h_source.xml
new file mode 100644
index 0000000..cf71df2
--- /dev/null
+++ b/doc/docbook/_x_c_build_shell_script_8h_source.xml
@@ -0,0 +1,70 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_build_shell_script_8h_source" xml:lang="en-US">
+<title>XCBuildShellScript.h</title>
+<indexterm><primary>XCBuildShellScript.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="comment">//</emphasis>
+2 <emphasis role="comment">//&#32;&#32;XCBuildShellScript.h</emphasis>
+3 <emphasis role="comment">//&#32;&#32;xcode-editor</emphasis>
+4 <emphasis role="comment">//</emphasis>
+5 <emphasis role="comment">//&#32;&#32;Created&#32;by&#32;joel&#32;on&#32;03/02/16.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//</emphasis>
+8 
+9 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+10 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeGroupMember.h&gt;</emphasis>
+11 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+12 
+13 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+14 
+15 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link>&#32;:&#32;NSObject
+16 {
+17 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+18 
+19 <emphasis role="keyword">@private</emphasis>
+20 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>*_project;
+21 &#32;&#32;&#32;&#32;BOOL&#32;_runOnlyForDeploymentPostprocessing;
+22 &#32;&#32;&#32;&#32;NSArray*_files;
+23 &#32;&#32;&#32;&#32;NSArray*_inputPaths;
+24 &#32;&#32;&#32;&#32;NSArray*_outputPaths;
+25 &#32;&#32;&#32;&#32;NSString*_name;
+26 &#32;&#32;&#32;&#32;NSString*_shellPath;
+27 &#32;&#32;&#32;&#32;NSString*_shellScript;
+28 }
+29 
+30 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly,nonnull)&#32;NSString*&#32;key;
+31 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly,nonnull)&#32;NSString*&#32;name;
+32 <emphasis role="keyword">@property</emphasis>(nonatomic,readonly)&#32;BOOL&#32;runOnlyForDeploymentPostprocessing;
+33 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSString*shellScript;
+34 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSString*shellPath;
+35 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*files;
+36 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*inputPaths;
+37 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*outputPaths;
+38 
+39 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+40 <emphasis role="preprocessor">#pragma&#32;mark&#32;-&#32;Initialization&#32;&amp;&#32;Destruction</emphasis>
+41 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+42 
+43 +&#32;(<link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link>*_Nonnull)shellScriptWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*_Nonnull)project
+44 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;key:(NSString&#32;*_Nonnull)key
+45 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;name:(&#32;NSString*&#32;_Nullable&#32;)name
+46 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;files:&#32;(NSArray&lt;NSString*&gt;*&#32;_Nullable)files
+47 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;inputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)inputPaths
+48 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;outputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)outputPaths
+49 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing
+50 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellPath:(NSString*_Nullable)shellPath
+51 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellScript:(NSString*_Nonnull)shellScript;
+52 
+53 -&#32;(instancetype&#32;_Nonnull)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*_Nonnull)project
+54 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;key:(NSString&#32;*_Nonnull)key
+55 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;name:(&#32;NSString*&#32;_Nullable&#32;)name
+56 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;files:&#32;(NSArray&lt;NSString*&gt;*&#32;_Nullable)files
+57 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;inputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)inputPaths
+58 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;outputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)outputPaths
+59 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing
+60 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellPath:(NSString*_Nullable)shellPath
+61 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellScript:(NSString*_Nonnull)shellScript;
+62 
+63 
+64 
+65 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_build_shell_script_definition_8h_source.xml b/doc/docbook/_x_c_build_shell_script_definition_8h_source.xml
new file mode 100644
index 0000000..2a3a42c
--- /dev/null
+++ b/doc/docbook/_x_c_build_shell_script_definition_8h_source.xml
@@ -0,0 +1,60 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_build_shell_script_definition_8h_source" xml:lang="en-US">
+<title>XCBuildShellScriptDefinition.h</title>
+<indexterm><primary>XCBuildShellScriptDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="comment">//</emphasis>
+2 <emphasis role="comment">//&#32;&#32;XCBuildShellScriptDefinition.h</emphasis>
+3 <emphasis role="comment">//&#32;&#32;xcode-editor</emphasis>
+4 <emphasis role="comment">//</emphasis>
+5 <emphasis role="comment">//&#32;&#32;Created&#32;by&#32;joel&#32;on&#32;03/02/16.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//</emphasis>
+8 
+9 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+10 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+11 
+12 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+13 {
+14 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+15 &#32;&#32;&#32;&#32;
+16 <emphasis role="keyword">@private</emphasis>
+17 &#32;&#32;&#32;&#32;BOOL&#32;_runOnlyForDeploymentPostprocessing;
+18 &#32;&#32;&#32;&#32;NSArray*_files;
+19 &#32;&#32;&#32;&#32;NSArray*_inputPaths;
+20 &#32;&#32;&#32;&#32;NSArray*_outputPaths;
+21 &#32;&#32;&#32;&#32;NSString*_name;
+22 &#32;&#32;&#32;&#32;NSString*_shellPath;
+23 &#32;&#32;&#32;&#32;NSString*_shellScript;
+24 }
+25 
+26 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly,nonnull)&#32;NSString*&#32;key;
+27 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly,nonnull)&#32;NSString*&#32;name;
+28 <emphasis role="keyword">@property</emphasis>(nonatomic,readonly)&#32;BOOL&#32;runOnlyForDeploymentPostprocessing;
+29 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSString*shellScript;
+30 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSString*shellPath;
+31 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*files;
+32 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*inputPaths;
+33 <emphasis role="keyword">@property</emphasis>(nonatomic,nonnull,strong,readonly)&#32;NSArray&lt;NSString*&gt;*outputPaths;
+34 
+35 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+36 <emphasis role="preprocessor">#pragma&#32;mark&#32;-&#32;Initialization&#32;&amp;&#32;Destruction</emphasis>
+37 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+38 
+39 +&#32;(<link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link>*_Nonnull)shellScriptDefinitionWithName:(&#32;NSString*&#32;_Nullable&#32;)name
+40 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;files:&#32;(NSArray&lt;NSString*&gt;*&#32;_Nullable)files
+41 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;inputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)inputPaths
+42 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;outputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)outputPaths
+43 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing
+44 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellPath:(NSString*_Nullable)shellPath
+45 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellScript:(NSString*_Nonnull)shellScript;
+46 
+47 -&#32;(instancetype&#32;_Nonnull)initWithName:(&#32;NSString*&#32;_Nullable&#32;)name
+48 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;files:&#32;(NSArray&lt;NSString*&gt;*&#32;_Nullable)files
+49 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;inputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)inputPaths
+50 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;outputPaths:(NSArray&lt;NSString*&gt;*&#32;_Nullable)outputPaths
+51 &#32;&#32;&#32;runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing
+52 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellPath:(NSString*_Nullable)shellPath
+53 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;shellScript:(NSString*_Nonnull)shellScript;
+54 
+55 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_class_definition_8h_source.xml b/doc/docbook/_x_c_class_definition_8h_source.xml
new file mode 100644
index 0000000..9a2ff79
--- /dev/null
+++ b/doc/docbook/_x_c_class_definition_8h_source.xml
@@ -0,0 +1,60 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_class_definition_8h_source" xml:lang="en-US">
+<title>XCClassDefinition.h</title>
+<indexterm><primary>XCClassDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;-&#32;2013&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+15 
+16 <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">enum</emphasis>
+17 {
+18 &#32;&#32;&#32;&#32;ObjectiveC,
+19 &#32;&#32;&#32;&#32;ObjectiveCPlusPlus,
+20 &#32;&#32;&#32;&#32;CPlusPlus,
+21 }&#32;ClassDefinitionLanguage;
+22 
+23 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_class_definition">XCClassDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+24 {
+25 
+26 &#32;&#32;&#32;&#32;NSString*&#32;_className;
+27 &#32;&#32;&#32;&#32;NSString*&#32;_header;
+28 &#32;&#32;&#32;&#32;NSString*&#32;_source;
+29 
+30 <emphasis role="keyword">@private</emphasis>
+31 &#32;&#32;&#32;&#32;ClassDefinitionLanguage&#32;_language;
+32 }
+33 
+34 <emphasis role="keyword">@property</emphasis>(strong,&#32;nonatomic,&#32;readonly)&#32;NSString*&#32;className;
+35 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong)&#32;NSString*&#32;header;
+36 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong)&#32;NSString*&#32;source;
+37 
+38 +&#32;(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinitionWithName:(NSString*)fileName;
+39 
+40 +&#32;(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinitionWithName:(NSString*)className&#32;language:(ClassDefinitionLanguage)language;
+41 
+45 -&#32;(id)initWithName:(NSString*)fileName;
+46 
+50 -&#32;(id)initWithName:(NSString*)className&#32;language:(ClassDefinitionLanguage)language;
+51 
+52 -&#32;(BOOL)isObjectiveC;
+53 
+54 -&#32;(BOOL)isObjectiveCPlusPlus;
+55 
+56 -&#32;(BOOL)isCPlusPlus;
+57 
+58 -&#32;(NSString*)headerFileName;
+59 
+60 -&#32;(NSString*)sourceFileName;
+61 
+62 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_file_operation_queue_8h_source.xml b/doc/docbook/_x_c_file_operation_queue_8h_source.xml
new file mode 100644
index 0000000..8114b16
--- /dev/null
+++ b/doc/docbook/_x_c_file_operation_queue_8h_source.xml
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_file_operation_queue_8h_source" xml:lang="en-US">
+<title>XCFileOperationQueue.h</title>
+<indexterm><primary>XCFileOperationQueue.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 
+15 
+16 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>&#32;:&#32;NSObject
+17 {
+18 
+19 <emphasis role="keyword">@private</emphasis>
+20 &#32;&#32;&#32;&#32;NSString*&#32;_baseDirectory;
+21 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_filesToWrite;
+22 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_frameworksToCopy;
+23 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_filesToDelete;
+24 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_directoriesToCreate;
+25 }
+26 
+27 
+28 -&#32;(id)initWithBaseDirectory:(NSString*)baseDirectory;
+29 
+30 -&#32;(BOOL)fileWithName:(NSString*)name&#32;existsInProjectDirectory:(NSString*)directory;
+31 
+32 -&#32;(void)queueTextFile:(NSString*)fileName&#32;inDirectory:(NSString*)directory&#32;withContents:(NSString*)contents;
+33 
+34 -&#32;(void)queueDataFile:(NSString*)fileName&#32;inDirectory:(NSString*)directory&#32;withContents:(NSData*)contents;
+35 
+36 -&#32;(void)queueFrameworkWithFilePath:(NSString*)filePath&#32;inDirectory:(NSString*)directory;
+37 
+38 -&#32;(void)queueDeletion:(NSString*)filePath;
+39 
+40 -&#32;(void)queueDirectory:(NSString*)withName&#32;inDirectory:(NSString*)parentDirectory;
+41 
+42 -&#32;(void)commitFileOperations;
+43 
+44 <emphasis role="keyword">@end</emphasis>
+45 
+</programlisting></section>
diff --git a/doc/docbook/_x_c_framework_definition_8h_source.xml b/doc/docbook/_x_c_framework_definition_8h_source.xml
new file mode 100644
index 0000000..317f487
--- /dev/null
+++ b/doc/docbook/_x_c_framework_definition_8h_source.xml
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_framework_definition_8h_source" xml:lang="en-US">
+<title>XCFrameworkDefinition.h</title>
+<indexterm><primary>XCFrameworkDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+16 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceTreeType.h&gt;</emphasis>
+17 
+18 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+19 {
+20 &#32;&#32;&#32;&#32;NSString*&#32;_filePath;
+21 &#32;&#32;&#32;&#32;BOOL&#32;_copyToDestination;
+22 &#32;&#32;&#32;&#32;XcodeSourceTreeType&#32;_sourceTree;
+23 }
+24 
+25 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;filePath;
+26 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;readonly)&#32;BOOL&#32;copyToDestination;
+27 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;readonly)&#32;XcodeSourceTreeType&#32;sourceTree;
+28 
+29 +&#32;(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>*)frameworkDefinitionWithFilePath:(NSString*)filePath&#32;copyToDestination:(BOOL)copyToDestination;
+30 +&#32;(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>*)frameworkDefinitionWithFilePath:(NSString*)filePath&#32;copyToDestination:(BOOL)copyToDestination&#32;sourceTree:(XcodeSourceTreeType)sourceTree;
+31 
+32 -&#32;(id)initWithFilePath:(NSString*)filePath&#32;copyToDestination:(BOOL)copyToDestination;
+33 -&#32;(id)initWithFilePath:(NSString*)filePath&#32;copyToDestination:(BOOL)copyToDestination
+34 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sourceTree:(XcodeSourceTreeType)sourceTree;
+35 
+36 -&#32;(NSString*)fileName;
+37 
+38 
+39 
+40 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_group_8h_source.xml b/doc/docbook/_x_c_group_8h_source.xml
new file mode 100644
index 0000000..2415c82
--- /dev/null
+++ b/doc/docbook/_x_c_group_8h_source.xml
@@ -0,0 +1,143 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_group_8h_source" xml:lang="en-US">
+<title>XCGroup.h</title>
+<indexterm><primary>XCGroup.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeGroupMember.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+16 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCBuildFile.h&gt;</emphasis>
+17 
+18 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+19 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>;
+20 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file">XCSourceFile</link>;
+21 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>;
+22 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>;
+23 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>;
+24 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>;
+25 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>;
+26 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_target">XCTarget</link>;
+27 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_version_group">XCVersionGroup</link>;
+28 
+33 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_group">XCGroup</link>&#32;:&#32;NSObject&#32;&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>,&#32;<link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&gt;
+34 {
+35 
+36 &#32;&#32;&#32;&#32;NSString*&#32;_pathRelativeToParent;
+37 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+38 &#32;&#32;&#32;&#32;NSString*&#32;_alias;
+39 
+40 
+41 <emphasis role="keyword">@private</emphasis>
+42 &#32;&#32;&#32;&#32;NSString*&#32;_pathRelativeToProjectRoot;
+43 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_children;
+44 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_members;
+45 
+46 &#32;&#32;&#32;&#32;NSNumber&#32;*_isBuildFile;
+47 &#32;&#32;&#32;&#32;NSString&#32;*_buildFileKey;
+48 
+49 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>*&#32;_fileOperationQueue;
+50 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>*&#32;_project;
+51 &#32;&#32;&#32;&#32;XcodeMemberType&#32;_memberType;
+52 
+53 }
+54 
+55 
+61 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;alias;
+62 
+68 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;pathRelativeToParent;
+69 
+73 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;key;
+74 
+78 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSMutableArray&lt;id&lt;XcodeGroupMember&gt;&gt;*&#32;children;
+79 
+80 
+81 <emphasis role="preprocessor">#pragma&#32;mark&#32;Initializers</emphasis>
+82 
+83 +&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;alias:(NSString*)alias&#32;path:(NSString*)path&#32;children:(NSArray&lt;<emphasis role="keywordtype">id</emphasis>&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;&gt;*)children;
+84 
+85 +&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;alias:(NSString*)alias&#32;path:(NSString*)path&#32;children:(NSArray&lt;<emphasis role="keywordtype">id</emphasis>&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;&gt;*)children&#32;memberType:(XcodeMemberType)groupType;
+86 
+87 -&#32;(id)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;alias:(NSString*)alias&#32;path:(NSString*)path&#32;children:(NSArray&lt;<emphasis role="keywordtype">id</emphasis>&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;&gt;*)children;
+88 
+89 -&#32;(id)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;alias:(NSString*)alias&#32;path:(NSString*)path&#32;children:(NSArray&lt;<emphasis role="keywordtype">id</emphasis>&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;&gt;*)children&#32;memberType:(XcodeMemberType)groupType;
+90 
+91 <emphasis role="preprocessor">#pragma&#32;mark&#32;Parent&#32;group</emphasis>
+92 
+93 -&#32;(void)removeFromParentGroup;
+94 
+95 -&#32;(void)removeFromParentDeletingChildren:(BOOL)deleteChildren;
+96 
+97 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)parentGroup;
+98 
+99 -&#32;(BOOL)isRootGroup;
+100 
+101 -&#32;(BOOL)isEmpty;
+102 
+103 <emphasis role="preprocessor">#pragma&#32;mark&#32;Adding&#32;children</emphasis>
+108 -&#32;(void)addClass:(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinition;
+109 
+113 -&#32;(void)addClass:(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinition&#32;toTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+114 
+118 -&#32;(void)removeClass:(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinition&#32;fromTargets:(NSArray*)targets;
+119 
+123 -&#32;(void)removeHeader:(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*)classDefinition;
+124 
+129 -&#32;(void)addFramework:(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>*)frameworkDefinition;
+130 
+134 -&#32;(void)&#32;removeFramework:(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>&#32;*)frameworkDefinition&#32;fromTargets:(NSArray&#32;*)targets;
+135 
+139 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)addGroupWithPath:(NSString*)path;
+140 
+144 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)addGroupWithAlias:(NSString&#32;*)alias;
+145 
+149 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)addGroupWithAlias:(NSString&#32;*)alias&#32;groupType:(XcodeMemberType)type;
+150 
+154 -&#32;(<link linkend="_interface_x_c_version_group">XCVersionGroup</link>*)addVersionGroupWithPath:(NSString*)path;
+155 
+159 -&#32;(void)addFolderReference:(NSString*)sourceFolder;
+160 
+161 -&#32;(void)addFileReference:(NSString&#32;*)filePath&#32;withType:(XcodeSourceFileType)type;
+162 
+166 -&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)addFramework:(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>*)framework&#32;toTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+167 
+171 -&#32;(void)addSourceFile:(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*)sourceFileDefinition;
+172 
+173 
+177 -&#32;(void)addXib:(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>*)xibDefinition;
+178 
+182 -&#32;(void)addXib:(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>*)xibDefinition&#32;toTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+183 
+190 -&#32;(void)addSubProject:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>*)projectDefinition;
+191 
+195 -&#32;(void)addSubProject:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>*)projectDefinition&#32;toTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+196 
+197 -&#32;(void)removeSubProject:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>*)projectDefinition;
+198 
+199 -&#32;(void)removeSubProject:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>*)projectDefinition&#32;fromTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+200 
+201 
+202 <emphasis role="preprocessor">#pragma&#32;mark&#32;Locating&#32;children</emphasis>
+206 -&#32;(NSArray&lt;id&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;&gt;*)members;
+207 
+211 -&#32;(NSArray&lt;NSString*&gt;*)recursiveMembers;
+212 
+216 -&#32;(NSArray&lt;NSString*&gt;*)buildFileKeys;
+217 
+221 -&#32;(<emphasis role="keywordtype">id</emphasis>&#32;&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;)memberWithKey:(NSString*)key;
+222 
+226 -&#32;(<emphasis role="keywordtype">id</emphasis>&#32;&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;)memberWithDisplayName:(NSString*)name;
+227 
+231 -&#32;(void)removeMemberWithKey:(NSString*)key;
+232 
+233 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_key_builder_8h_source.xml b/doc/docbook/_x_c_key_builder_8h_source.xml
new file mode 100644
index 0000000..6c09fcb
--- /dev/null
+++ b/doc/docbook/_x_c_key_builder_8h_source.xml
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_key_builder_8h_source" xml:lang="en-US">
+<title>XCKeyBuilder.h</title>
+<indexterm><primary>XCKeyBuilder.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;-&#32;2013&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 
+15 
+16 <emphasis role="preprocessor">#define&#32;HASH_VALUE_STORAGE_SIZE&#32;48</emphasis>
+17 <emphasis role="preprocessor">#define&#32;MD5_DIGEST_LENGTH&#32;16</emphasis>
+18 
+19 <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">struct</emphasis>
+20 {
+21 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">char</emphasis>&#32;value[MD5_DIGEST_LENGTH];
+22 }&#32;<link linkend="_struct_hash_value_m_d5_hash">HashValueMD5Hash</link>;
+23 
+24 
+25 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_key_builder">XCKeyBuilder</link>&#32;:&#32;NSObject
+26 {
+27 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;_value[HASH_VALUE_STORAGE_SIZE];
+28 }
+29 
+30 +&#32;(<link linkend="_interface_x_c_key_builder">XCKeyBuilder</link>*)forItemNamed:(NSString*)name;
+31 
+32 +&#32;(<link linkend="_interface_x_c_key_builder">XCKeyBuilder</link>*)createUnique;
+33 
+34 -&#32;(id)initHashValueMD5HashWithBytes:(const&#32;<emphasis role="keywordtype">void</emphasis>*)bytes&#32;length:(NSUInteger)length;
+35 
+36 -&#32;(NSString*)build;
+37 
+38 <emphasis role="keyword">@end</emphasis>
+39 
+</programlisting></section>
diff --git a/doc/docbook/_x_c_project_09_sub_project_8h_source.xml b/doc/docbook/_x_c_project_09_sub_project_8h_source.xml
new file mode 100644
index 0000000..b812ed7
--- /dev/null
+++ b/doc/docbook/_x_c_project_09_sub_project_8h_source.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_project_09_sub_project_8h_source" xml:lang="en-US">
+<title>XCProject+SubProject.h</title>
+<indexterm><primary>XCProject+SubProject.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCProject.h&gt;</emphasis>
+16 
+17 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_category_x_c_project_07_sub_project_08">XCProject (SubProject)</link>
+18 
+19 
+20 -&#32;(NSString&#32;*)referenceProxyKeyForName:(NSString&#32;*)name;
+21 
+22 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;&#32;*)buildProductsForTargets:(NSString&#32;*)xcodeprojKey;
+23 
+24 -&#32;(void)addAsTargetDependency:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>&#32;*)xcodeprojDefinition&#32;toTargets:(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+25 
+26 -&#32;(NSArray&lt;NSString*&gt;&#32;*)keysForProjectObjectsOfType:(XcodeMemberType)memberType&#32;withIdentifier:(NSString&#32;*)identifier
+27 &#32;&#32;&#32;&#32;singleton:(BOOL)singleton&#32;required:(BOOL)required;
+28 
+29 -&#32;(NSMutableDictionary&#32;*)PBXProjectDict;
+30 
+31 -&#32;(void)removeProxies:(NSString&#32;*)xcodeprojKey;
+32 
+33 -&#32;(void)addProxies:(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>&#32;*)xcodeproj;
+34 
+35 -&#32;(void)removeFromProjectReferences:(NSString&#32;*)key&#32;forProductsGroup:(NSString&#32;*)productsGroupKey;
+36 
+37 -&#32;(void)removeTargetDependencies:(NSString&#32;*)name;
+38 
+39 -&#32;(NSString&#32;*)containerItemProxyKeyForName:(NSString&#32;*)name&#32;proxyType:(NSString&#32;*)proxyType;
+40 
+41 -&#32;(NSString&#32;*)productsGroupKeyForKey:(NSString&#32;*)key;
+42 
+43 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_project_8h_source.xml b/doc/docbook/_x_c_project_8h_source.xml
new file mode 100644
index 0000000..1bb1aca
--- /dev/null
+++ b/doc/docbook/_x_c_project_8h_source.xml
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_project_8h_source" xml:lang="en-US">
+<title>XCProject.h</title>
+<indexterm><primary>XCProject.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;-&#32;2013&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeMemberType.h&gt;</emphasis>
+14 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeGroupMember.h&gt;</emphasis>
+16 
+17 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>;
+18 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_group">XCGroup</link>;
+19 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>;
+20 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file">XCSourceFile</link>;
+21 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_target">XCTarget</link>;
+22 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>;
+23 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>;
+24 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_version_group">XCVersionGroup</link>;
+25 
+26 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_project">XCProject</link>&#32;:&#32;NSObject
+27 {
+28 <emphasis role="keyword">@protected</emphasis>
+29 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>*&#32;_fileOperationQueue;
+30 
+31 &#32;&#32;&#32;&#32;NSString*&#32;_filePath;
+32 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_dataStore;
+33 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_targets;
+34 
+35 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_groups;
+36 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_versionGroups;
+37 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_configurations;
+38 
+39 &#32;&#32;&#32;&#32;NSString*&#32;_defaultConfigurationName;
+40 &#32;&#32;&#32;&#32;NSString*&#32;_rootObjectKey;
+41 }
+42 
+43 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>*&#32;fileOperationQueue;
+44 
+45 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+46 <emphasis role="preprocessor">#pragma&#32;mark&#32;-&#32;Initialization&#32;&amp;&#32;Destruction</emphasis>
+47 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+48 
+49 
+50 +&#32;(<link linkend="_interface_x_c_project">XCProject</link>*)projectWithFilePath:(NSString*)filePath;
+51 
+55 -&#32;(id)initWithFilePath:(NSString*)filePath;
+56 
+57 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+58 <emphasis role="preprocessor">#pragma&#32;mark&#32;Groupd&#32;Member</emphasis>
+59 -&#32;(id&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt;)groupMemberWithKey:(NSString&#32;*)key;
+60 
+61 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+62 <emphasis role="preprocessor">#pragma&#32;mark&#32;Files</emphasis>
+66 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)files;
+67 
+71 -&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)fileWithKey:(NSString*)key;
+72 
+77 -&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)fileWithName:(NSString*)name;
+78 
+82 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)headerFiles;
+83 
+87 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)objectiveCFiles;
+88 
+92 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)objectiveCPlusPlusFiles;
+93 
+97 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)xibFiles;
+98 
+99 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)imagePNGFiles;
+100 
+101 -&#32;(NSString*)filePath;
+102 
+103 
+104 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+105 <emphasis role="preprocessor">#pragma&#32;mark&#32;Groups</emphasis>
+109 -&#32;(NSArray&lt;<link linkend="_interface_x_c_group">XCGroup</link>*&gt;*)groups;
+110 
+114 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)rootGroup;
+115 
+119 -&#32;(NSArray&lt;<link linkend="_interface_x_c_group">XCGroup</link>*&gt;*)rootGroups;
+120 
+124 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>&#32;*)mainGroup;
+125 
+129 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithKey:(NSString*)key;
+130 
+134 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithDisplayName:(NSString*)name;
+135 
+139 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithPathFromRoot:(NSString*)path;
+140 
+144 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupForGroupMemberWithKey:(NSString*)key;
+145 
+149 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)groupWithSourceFile:(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)sourceFile;
+150 
+154 -&#32;(void)pruneEmptyGroups;
+155 
+156 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+157 <emphasis role="preprocessor">#pragma&#32;mark&#32;VersionGroups</emphasis>
+161 -&#32;(NSArray*)versionGroups;
+162 
+166 -&#32;(<link linkend="_interface_x_c_version_group">XCVersionGroup</link>*)versionGroupWithKey:(NSString*)key;
+167 
+171 -&#32;(<link linkend="_interface_x_c_version_group">XCVersionGroup</link>*)versionGroupWithName:(NSString*)name;
+172 
+173 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+174 <emphasis role="preprocessor">#pragma&#32;mark&#32;Targets</emphasis>
+178 -&#32;(NSArray&lt;<link linkend="_interface_x_c_target">XCTarget</link>*&gt;*)targets;
+179 
+183 -&#32;(<link linkend="_interface_x_c_target">XCTarget</link>*)targetWithName:(NSString*)name;
+184 
+188 -&#32;(NSArray*)applicationTargets;
+189 
+190 <emphasis role="preprocessor">#pragma&#32;mark&#32;Configurations</emphasis>
+194 -&#32;(NSDictionary&lt;NSString*,<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>*&gt;*)configurations;
+198 -&#32;(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>*)configurationWithName:(NSString*)name;
+199 
+200 -&#32;(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>&#32;*)defaultConfiguration;
+201 
+202 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+203 <emphasis role="preprocessor">#pragma&#32;mark&#32;Deletion</emphasis>
+204 
+205 -&#32;(void)removeObjectWithKey:(NSString*)key;
+206 
+207 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+208 <emphasis role="preprocessor">#pragma&#32;mark&#32;Saving</emphasis>
+212 -&#32;(void)save;
+213 
+214 
+215 <emphasis role="comment">//-------------------------------------------------------------------------------------------</emphasis>
+219 <emphasis role="comment"></emphasis>-&#32;(NSMutableDictionary*)objects;
+220 
+221 -&#32;(NSMutableDictionary*)dataStore;
+222 
+223 -&#32;(void)dropCache;
+224 
+225 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_project_build_config_8h_source.xml b/doc/docbook/_x_c_project_build_config_8h_source.xml
new file mode 100644
index 0000000..7d99167
--- /dev/null
+++ b/doc/docbook/_x_c_project_build_config_8h_source.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_project_build_config_8h_source" xml:lang="en-US">
+<title>XCProjectBuildConfig.h</title>
+<indexterm><primary>XCProjectBuildConfig.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 
+14 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+15 
+16 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>&#32;:&#32;NSObject
+17 {
+18 <emphasis role="keyword">@private</emphasis>
+19 &#32;&#32;&#32;&#32;__weak&#32;<link linkend="_interface_x_c_project">XCProject</link>*&#32;_project;
+20 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+21 
+22 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_buildSettings;
+23 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_xcconfigSettings;
+24 }
+25 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;key;
+26 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;readonly)&#32;NSDictionary*&#32;specifiedBuildSettings;
+27 
+28 +&#32;(NSDictionary&lt;NSString*,NSString*&gt;*)buildConfigurationsFromArray:(NSArray&lt;<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>*&gt;*)array&#32;inProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project;
+29 
+30 -&#32;(instancetype)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key;
+31 
+32 -&#32;(void)addBuildSettings:(NSDictionary*)buildSettings;
+33 
+34 -&#32;(void)addOrReplaceSetting:(<emphasis role="keywordtype">id</emphasis>&#32;&lt;NSCopying&gt;)setting&#32;forKey:(NSString*)key;
+35 
+36 -&#32;(<emphasis role="keywordtype">id</emphasis>&#32;&lt;NSCopying&gt;)valueForKey:(NSString*)key;
+37 
+38 -(void)removeSettingByKey:(NSString*)key;
+39 
+40 +&#32;(NSString*)duplicatedBuildConfigurationListWithKey:(NSString*)buildConfigurationListKey&#32;inProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project
+41 &#32;&#32;&#32;&#32;withBuildConfigurationVisitor:(<emphasis role="keywordtype">void</emphasis>&#32;(^)(NSMutableDictionary*))buildConfigurationVisitor;
+42 
+43 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_source_file_8h_source.xml b/doc/docbook/_x_c_source_file_8h_source.xml
new file mode 100644
index 0000000..7fec0d9
--- /dev/null
+++ b/doc/docbook/_x_c_source_file_8h_source.xml
@@ -0,0 +1,68 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_source_file_8h_source" xml:lang="en-US">
+<title>XCSourceFile.h</title>
+<indexterm><primary>XCSourceFile.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeGroupMember.h&gt;</emphasis>
+16 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+17 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCBuildFile.h&gt;</emphasis>
+18 
+19 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+20 
+24 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_source_file">XCSourceFile</link>&#32;:&#32;NSObject&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>,<link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&gt;
+25 {
+26 &#32;&#32;&#32;&#32;
+27 <emphasis role="keyword">@private</emphasis>
+28 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>&#32;*_project;
+29 &#32;&#32;&#32;&#32;
+30 &#32;&#32;&#32;&#32;NSNumber&#32;*_isBuildFile;
+31 &#32;&#32;&#32;&#32;NSString&#32;*_buildFileKey;
+32 &#32;&#32;&#32;&#32;NSString&#32;*_name;
+33 &#32;&#32;&#32;&#32;NSString&#32;*_sourceTree;
+34 &#32;&#32;&#32;&#32;NSString&#32;*_key;
+35 &#32;&#32;&#32;&#32;NSString&#32;*_path;
+36 &#32;&#32;&#32;&#32;XcodeSourceFileType&#32;_type;
+37 }
+38 
+39 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;readonly)&#32;XcodeSourceFileType&#32;type;
+40 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;NSString&#32;*key;
+41 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong)&#32;NSString&#32;*name;
+42 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;NSString&#32;*sourceTree;
+43 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong)&#32;NSString&#32;*path;
+44 
+45 +&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>&#32;*)sourceFileWithProject:(<link linkend="_interface_x_c_project">XCProject</link>&#32;*)project&#32;key:(NSString&#32;*)key&#32;type:(XcodeSourceFileType)type
+46 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;name:(NSString&#32;*)name&#32;sourceTree:(NSString&#32;*)tree&#32;path:(NSString&#32;*)path;
+47 
+48 -&#32;(id)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>&#32;*)project&#32;key:(NSString&#32;*)key&#32;type:(XcodeSourceFileType)type&#32;name:(NSString&#32;*)name
+49 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sourceTree:(NSString&#32;*)tree&#32;path:(NSString&#32;*)path;
+50 
+54 -&#32;(BOOL)isBuildFile;
+55 
+56 -&#32;(BOOL)canBecomeBuildFile;
+57 
+58 -&#32;(XcodeMemberType)buildPhase;
+59 
+60 -&#32;(NSString&#32;*)buildFileKey;
+61 
+65 -&#32;(void)becomeBuildFile;
+66 
+70 -&#32;(void)removeBuildFile;
+71 
+77 -&#32;(void)setCompilerFlags:(NSString&#32;*)value;
+78 
+82 -&#32;(void)setWeakReference;
+83 
+84 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_source_file_definition_8h_source.xml b/doc/docbook/_x_c_source_file_definition_8h_source.xml
new file mode 100644
index 0000000..ebe1057
--- /dev/null
+++ b/doc/docbook/_x_c_source_file_definition_8h_source.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_source_file_definition_8h_source" xml:lang="en-US">
+<title>XCSourceFileDefinition.h</title>
+<indexterm><primary>XCSourceFileDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+16 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+17 
+18 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+19 {
+20 
+21 &#32;&#32;&#32;&#32;NSString*&#32;_sourceFileName;
+22 &#32;&#32;&#32;&#32;XcodeSourceFileType&#32;_type;
+23 &#32;&#32;&#32;&#32;NSData*&#32;_data;
+24 
+25 }
+26 
+27 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;sourceFileName;
+28 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSData*&#32;data;
+29 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;readonly)&#32;XcodeSourceFileType&#32;type;
+30 
+31 +&#32;(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*)sourceDefinitionWithName:(NSString*)name&#32;text:(NSString*)text&#32;type:(XcodeSourceFileType)type;
+32 
+33 +&#32;(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*)sourceDefinitionWithName:(NSString*)name&#32;data:(NSData*)data&#32;type:(XcodeSourceFileType)type;
+34 
+35 <emphasis role="comment">//&#32;For&#32;now&#32;you&#32;can&#32;add&#32;Asset&#32;Catalog&#32;only&#32;as&#32;reference</emphasis>
+36 +&#32;(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*)sourceDefinitionWithAssetCatalogName:(NSString*)name;
+37 
+38 -&#32;(id)initWithName:(NSString*)name&#32;text:(NSString*)text&#32;type:(XcodeSourceFileType)type;
+39 
+40 -&#32;(id)initWithName:(NSString*)name&#32;data:(NSData*)data&#32;type:(XcodeSourceFileType)type;
+41 
+42 
+43 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_sub_project_definition_8h_source.xml b/doc/docbook/_x_c_sub_project_definition_8h_source.xml
new file mode 100644
index 0000000..1c9daef
--- /dev/null
+++ b/doc/docbook/_x_c_sub_project_definition_8h_source.xml
@@ -0,0 +1,63 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_sub_project_definition_8h_source" xml:lang="en-US">
+<title>XCSubProjectDefinition.h</title>
+<indexterm><primary>XCSubProjectDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+16 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeSourceFileType.h&gt;</emphasis>
+17 
+18 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+19 
+20 
+21 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+22 {
+23 
+24 &#32;&#32;&#32;&#32;NSString&#32;*_name;
+25 &#32;&#32;&#32;&#32;NSString&#32;*_path;
+26 &#32;&#32;&#32;&#32;XcodeSourceFileType&#32;_type;
+27 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>&#32;*_subProject;
+28 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>&#32;*_parentProject;
+29 &#32;&#32;&#32;&#32;NSString&#32;*_key;
+30 &#32;&#32;&#32;&#32;NSString&#32;*_fullProjectPath;
+31 &#32;&#32;&#32;&#32;NSString&#32;*_relativePath;
+32 }
+33 
+34 
+35 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;NSString&#32;*name;
+36 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;NSString&#32;*path;
+37 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;readonly)&#32;XcodeSourceFileType&#32;type;
+38 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;<link linkend="_interface_x_c_project">XCProject</link>&#32;*subProject;
+39 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;<link linkend="_interface_x_c_project">XCProject</link>&#32;*parentProject;
+40 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readonly)&#32;NSString&#32;*key;
+41 <emphasis role="keyword">@property</emphasis>&#32;(nonatomic,&#32;strong,&#32;readwrite)&#32;NSString&#32;*fullProjectPath;
+42 
+43 +&#32;(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>&#32;*)withName:(NSString&#32;*)name&#32;path:(NSString&#32;*)path&#32;parentProject:(<link linkend="_interface_x_c_project">XCProject</link>&#32;*)parentProject;
+44 
+45 -&#32;(id)initWithName:(NSString&#32;*)name&#32;path:(NSString&#32;*)path&#32;parentProject:(<link linkend="_interface_x_c_project">XCProject</link>&#32;*)parentProject;
+46 
+47 -&#32;(NSString&#32;*)projectFileName;
+48 
+49 -&#32;(NSString&#32;*)fullPathName;
+50 
+51 -&#32;(NSArray&lt;NSString*&gt;&#32;*)buildProductNames;
+52 
+53 -&#32;(NSString&#32;*)projectKey;
+54 
+55 -&#32;(NSString&#32;*)pathRelativeToProjectRoot;
+56 
+57 -&#32;(void)initFullProjectPath:(NSString&#32;*)fullProjectPath&#32;groupPath:(NSString&#32;*)groupPath;
+58 
+59 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_target_8h_source.xml b/doc/docbook/_x_c_target_8h_source.xml
new file mode 100644
index 0000000..7b394c7
--- /dev/null
+++ b/doc/docbook/_x_c_target_8h_source.xml
@@ -0,0 +1,89 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_target_8h_source" xml:lang="en-US">
+<title>XCTarget.h</title>
+<indexterm><primary>XCTarget.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 
+15 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+16 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file">XCSourceFile</link>;
+17 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>;
+18 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link>;
+19 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link>;
+20 <emphasis role="keyword">@protocol&#32;</emphasis><link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>;
+21 
+25 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_target">XCTarget</link>&#32;:&#32;NSObject
+26 {
+27 
+28 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>*&#32;_project;
+29 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+30 &#32;&#32;&#32;&#32;NSString*&#32;_name;
+31 &#32;&#32;&#32;&#32;NSString*&#32;_productName;
+32 &#32;&#32;&#32;&#32;NSString*&#32;_productReference;
+33 &#32;&#32;&#32;&#32;NSString*&#32;_productType;
+34 &#32;&#32;&#32;&#32;NSString*&#32;_defaultConfigurationName;
+35 
+36 <emphasis role="keyword">@private</emphasis>
+37 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_members;
+38 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_resources;
+39 &#32;&#32;&#32;&#32;NSMutableDictionary*&#32;_configurations;
+40 &#32;&#32;&#32;&#32;NSMutableArray&#32;*_buildShellScripts;
+41 }
+42 
+43 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;key;
+44 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong)&#32;NSString*&#32;name;
+45 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong)&#32;NSString*&#32;productName;
+46 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;productReference;
+47 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;productType;
+48 
+49 +&#32;(<link linkend="_interface_x_c_target">XCTarget</link>*)targetWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;name:(NSString*)name&#32;productName:(NSString*)productName
+50 &#32;&#32;&#32;&#32;productReference:(NSString*)productReference&#32;productType:(NSString*)productType;
+51 
+52 -&#32;(id)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;name:(NSString*)name&#32;productName:(NSString*)productName
+53 &#32;&#32;&#32;&#32;productReference:(NSString*)productReference&#32;productType:(NSString*)productType;
+54 
+55 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)resources;
+56 
+57 -&#32;(NSArray&lt;id&lt;<link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&gt;&gt;*)members;
+58 
+59 -&#32;(NSArray&lt;<link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link>*&gt;*)buildShellScripts;
+60 
+61 -&#32;(NSDictionary&lt;NSString*,<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>*&gt;*)configurations;
+62 
+63 -&#32;(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>&#32;*)configurationWithName:(NSString*)name;
+64 
+65 -&#32;(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link>&#32;*)defaultConfiguration;
+66 
+67 -&#32;(void)addMember:(<emphasis role="keywordtype">id</emphasis>&lt;<link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&gt;)member;
+68 
+69 -&#32;(void)makeAndAddShellScript:(<link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link>*)shellScript;
+70 
+71 -&#32;(void)removeShellScriptByName:(NSString*)name;
+72 
+73 -&#32;(void)removeMemberWithKey:(NSString*)key;
+74 
+75 -&#32;(void)removeMembersWithKeys:(NSArray&lt;NSString*&gt;*)keys;
+76 
+77 -&#32;(void)removeResourceWithKey:(NSString*)key;
+78 
+79 -&#32;(void)removeResourcesWithKeys:(NSArray&lt;NSString*&gt;*)keys;
+80 
+81 -&#32;(void)addDependency:(NSString*)key;
+82 
+83 -&#32;(instancetype)duplicateWithTargetName:(NSString*)targetName&#32;productName:(NSString*)productName;
+84 
+85 -&#32;(BOOL)isApplicationType;
+86 
+87 <emphasis role="keyword">@end</emphasis>
+88 
+</programlisting></section>
diff --git a/doc/docbook/_x_c_test_resource_utils_8h_source.xml b/doc/docbook/_x_c_test_resource_utils_8h_source.xml
new file mode 100644
index 0000000..eab7251
--- /dev/null
+++ b/doc/docbook/_x_c_test_resource_utils_8h_source.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_test_resource_utils_8h_source" xml:lang="en-US">
+<title>XCTestResourceUtils.h</title>
+<indexterm><primary>XCTestResourceUtils.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+14 
+15 <emphasis role="comment">//TODO:&#32;Just&#32;use&#32;one&#32;sample&#32;project</emphasis>
+16 
+17 NSString&#32;*XCTestResourcePath(<emphasis role="keywordtype">void</emphasis>);
+18 
+19 NSString&#32;*XCSample1FolderPath(<emphasis role="keywordtype">void</emphasis>);
+20 
+21 NSString&#32;*XCSample1XcodeProjectPath(<emphasis role="keywordtype">void</emphasis>);
+22 
+23 NSString&#32;*XCBox2dSampleContainingFolderPath(<emphasis role="keywordtype">void</emphasis>);
+24 
+25 NSString&#32;*XCBox2dSampleProjectPath(<emphasis role="keywordtype">void</emphasis>);
+26 
+27 NSString&#32;*XCMasterDetailContainerFolderPath(<emphasis role="keywordtype">void</emphasis>);
+28 
+29 NSString&#32;*XCMasterDetailProjectPath(<emphasis role="keywordtype">void</emphasis>);
+30 
+31 
+32 NSString&#32;*NSStringWithXCTestResource(NSString&#32;*resourceName);
+33 
+34 NSData&#32;*NSDataWithXCTestResource(NSString&#32;*resourceName);
+</programlisting></section>
diff --git a/doc/docbook/_x_c_version_group_8h_source.xml b/doc/docbook/_x_c_version_group_8h_source.xml
new file mode 100644
index 0000000..c631cc4
--- /dev/null
+++ b/doc/docbook/_x_c_version_group_8h_source.xml
@@ -0,0 +1,90 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_version_group_8h_source" xml:lang="en-US">
+<title>XCVersionGroup.h</title>
+<indexterm><primary>XCVersionGroup.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 <emphasis role="comment">//</emphasis>
+2 <emphasis role="comment">//&#32;&#32;XCCoreDataModelVersioned.h</emphasis>
+3 <emphasis role="comment">//&#32;&#32;xcode-editor</emphasis>
+4 <emphasis role="comment">//</emphasis>
+5 <emphasis role="comment">//&#32;&#32;Created&#32;by&#32;joel&#32;on&#32;04/09/15.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//</emphasis>
+8 
+9 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+10 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeGroupMember.h&gt;</emphasis>
+11 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCGroup.h&gt;</emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCBuildFile.h&gt;</emphasis>
+13 
+14 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_project">XCProject</link>;
+15 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>;
+16 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file">XCSourceFile</link>;
+17 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>;
+18 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>;
+19 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>;
+20 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>;
+21 <emphasis role="keyword">@class</emphasis>&#32;<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>;
+22 
+23 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_version_group">XCVersionGroup</link>&#32;:&#32;NSObject&#32;&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>,<link linkend="_protocol_x_c_build_file-p">XCBuildFile</link>&gt;
+24 {
+25 &#32;&#32;&#32;&#32;NSString*&#32;_pathRelativeToParent;
+26 &#32;&#32;&#32;&#32;NSString*&#32;_key;
+27 &#32;&#32;&#32;&#32;
+28 <emphasis role="keyword">@private</emphasis>
+29 &#32;&#32;&#32;&#32;NSString*&#32;_pathRelativeToProjectRoot;
+30 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_children;
+31 &#32;&#32;&#32;&#32;NSMutableArray*&#32;_members;
+32 &#32;&#32;&#32;&#32;NSString&#32;*_currentVersion;
+33 &#32;&#32;&#32;&#32;NSString&#32;*_versionGroupType;
+34 &#32;&#32;&#32;&#32;
+35 &#32;&#32;&#32;&#32;NSNumber&#32;*_isBuildFile;
+36 &#32;&#32;&#32;&#32;NSString&#32;*_buildFileKey;
+37 &#32;&#32;&#32;&#32;
+38 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link>*&#32;_fileOperationQueue;&#32;<emphasis role="comment">//&#32;weak</emphasis>
+39 &#32;&#32;&#32;&#32;<link linkend="_interface_x_c_project">XCProject</link>*&#32;_project;
+40 &#32;&#32;&#32;&#32;
+41 }
+42 
+43 
+49 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;alias;
+50 
+56 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;pathRelativeToParent;
+57 
+61 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;key;
+62 
+66 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSMutableArray*&#32;versions;
+67 
+68 <emphasis role="keyword">@property</emphasis>(nonatomic,strong)&#32;NSString*currentVersion;
+69 
+70 
+71 <emphasis role="preprocessor">#pragma&#32;mark&#32;Initializers</emphasis>
+72 
+73 +&#32;(<link linkend="_interface_x_c_version_group">XCVersionGroup</link>*)versionGroupWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;path:(NSString*)path&#32;children:(NSArray*)children&#32;currentVersion:(NSString*)currentVersion;
+74 
+75 -&#32;(id)initWithProject:(<link linkend="_interface_x_c_project">XCProject</link>*)project&#32;key:(NSString*)key&#32;path:(NSString*)path&#32;children:(NSArray*)children&#32;currentVersion:(NSString*)currentVersion;
+76 
+77 <emphasis role="preprocessor">#pragma&#32;mark&#32;Parent&#32;group</emphasis>
+78 
+79 -&#32;(void)removeFromParentGroup;
+80 
+81 -&#32;(void)removeFromParentDeletingChildren:(BOOL)deleteChildren;
+82 
+83 -&#32;(<link linkend="_interface_x_c_group">XCGroup</link>*)parentGroup;
+84 
+85 <emphasis role="preprocessor">#pragma&#32;mark&#32;Adding&#32;children</emphasis>
+86 
+90 -&#32;(void)addDataModelSource:(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*)sourceFileDefinition;
+91 
+92 <emphasis role="preprocessor">#pragma&#32;mark&#32;Locating&#32;children</emphasis>
+93 
+94 -&#32;(NSArray&lt;<link linkend="_interface_x_c_source_file">XCSourceFile</link>*&gt;*)members;
+95 
+96 -&#32;(NSArray&lt;NSString*&gt;*)buildFileKeys;
+97 
+101 -&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)memberWithKey:(NSString*)key;
+102 
+106 -&#32;(<link linkend="_interface_x_c_source_file">XCSourceFile</link>*)memberWithDisplayName:(NSString*)name;
+107 
+108 -&#32;(NSDictionary*)asDictionary;
+109 
+110 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_x_c_xib_definition_8h_source.xml b/doc/docbook/_x_c_xib_definition_8h_source.xml
new file mode 100644
index 0000000..6b8b3ab
--- /dev/null
+++ b/doc/docbook/_x_c_xib_definition_8h_source.xml
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__x_c_xib_definition_8h_source" xml:lang="en-US">
+<title>XCXibDefinition.h</title>
+<indexterm><primary>XCXibDefinition.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+15 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+16 
+17 
+18 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>&#32;:&#32;<link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link>
+19 {
+20 &#32;&#32;&#32;&#32;NSString*&#32;_name;
+21 &#32;&#32;&#32;&#32;NSString*&#32;_content;
+22 }
+23 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong,&#32;readonly)&#32;NSString*&#32;name;
+24 <emphasis role="keyword">@property</emphasis>(nonatomic,&#32;strong)&#32;NSString*&#32;content;
+25 
+26 +&#32;(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>*)xibDefinitionWithName:(NSString*)name;
+27 
+28 +&#32;(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>*)xibDefinitionWithName:(NSString*)name&#32;content:(NSString*)content;
+29 
+30 -&#32;(id)initWithName:(NSString*)name;
+31 
+32 -&#32;(id)initWithName:(NSString*)name&#32;content:(NSString*)content;
+33 
+34 -&#32;(NSString*)xibFileName;
+35 
+36 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_xcode_editor_8h_source.xml b/doc/docbook/_xcode_editor_8h_source.xml
new file mode 100644
index 0000000..19073ba
--- /dev/null
+++ b/doc/docbook/_xcode_editor_8h_source.xml
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__xcode_editor_8h_source" xml:lang="en-US">
+<title>XcodeEditor.h</title>
+<indexterm><primary>XcodeEditor.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 
+15 FOUNDATION_EXPORT&#32;<emphasis role="keywordtype">double</emphasis>&#32;XcodeEditorVersionNumber;
+16 
+18 FOUNDATION_EXPORT&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;XcodeEditorVersionString[];
+19 
+20 <emphasis role="comment">//&#32;In&#32;this&#32;header,&#32;you&#32;should&#32;import&#32;all&#32;the&#32;public&#32;headers&#32;of&#32;your&#32;framework&#32;using&#32;statements&#32;like&#32;#import&#32;&lt;XcodeEditor/PublicHeader.h&gt;</emphasis>
+21 
+22 
+23 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCAbstractDefinition.h&gt;</emphasis>
+24 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCGroup.h&gt;</emphasis>
+25 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCClassDefinition.h&gt;</emphasis>
+26 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCFileOperationQueue.h&gt;</emphasis>
+27 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCFrameworkDefinition.h&gt;</emphasis>
+28 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCProject.h&gt;</emphasis>
+29 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCSourceFile.h&gt;</emphasis>
+30 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCSourceFileDefinition.h&gt;</emphasis>
+31 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCSubProjectDefinition.h&gt;</emphasis>
+32 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCTarget.h&gt;</emphasis>
+33 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCXibDefinition.h&gt;</emphasis>
+34 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCKeyBuilder.h&gt;</emphasis>
+35 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCProject+SubProject.h&gt;</emphasis>
+36 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCProjectBuildConfig.h&gt;</emphasis>
+37 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCBuildShellScript.h&gt;</emphasis>
+38 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCBuildShellScriptDefinition.h&gt;</emphasis>
+39 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XCVersionGroup.h&gt;</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_xcode_group_member_8h_source.xml b/doc/docbook/_xcode_group_member_8h_source.xml
new file mode 100644
index 0000000..18d8a07
--- /dev/null
+++ b/doc/docbook/_xcode_group_member_8h_source.xml
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__xcode_group_member_8h_source" xml:lang="en-US">
+<title>XcodeGroupMember.h</title>
+<indexterm><primary>XcodeGroupMember.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 
+13 
+14 <emphasis role="preprocessor">#import&#32;&lt;XcodeEditor/XcodeMemberType.h&gt;</emphasis>
+15 
+16 <emphasis role="keyword">@protocol&#32;</emphasis><link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&#32;&lt;NSObject&gt;
+17 
+18 -&#32;(NSString*)key;
+19 
+20 -&#32;(NSString*)displayName;
+21 
+22 -&#32;(NSString*)pathRelativeToProjectRoot;
+23 
+27 -&#32;(XcodeMemberType)<link linkend="_protocol_xcode_group_member-p_1a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</link>;
+28 <emphasis role="keyword">@end</emphasis>
+</programlisting></section>
diff --git a/doc/docbook/_xcode_member_type_8h_source.xml b/doc/docbook/_xcode_member_type_8h_source.xml
new file mode 100644
index 0000000..f65f623
--- /dev/null
+++ b/doc/docbook/_xcode_member_type_8h_source.xml
@@ -0,0 +1,61 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__xcode_member_type_8h_source" xml:lang="en-US">
+<title>XcodeMemberType.h</title>
+<indexterm><primary>XcodeMemberType.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 
+14 <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">enum</emphasis>
+15 {
+16 &#32;&#32;&#32;&#32;PBXNilType,
+17 &#32;&#32;&#32;&#32;PBXBuildFileType,
+18 &#32;&#32;&#32;&#32;PBXContainerItemProxyType,
+19 &#32;&#32;&#32;&#32;PBXCopyFilesBuildPhaseType,
+20 &#32;&#32;&#32;&#32;PBXFileReferenceType,
+21 &#32;&#32;&#32;&#32;PBXFrameworksBuildPhaseType,
+22 &#32;&#32;&#32;&#32;PBXGroupType,
+23 &#32;&#32;&#32;&#32;PBXNativeTargetType,
+24 &#32;&#32;&#32;&#32;PBXProjectType,
+25 &#32;&#32;&#32;&#32;PBXReferenceProxyType,
+26 &#32;&#32;&#32;&#32;PBXResourcesBuildPhaseType,
+27 &#32;&#32;&#32;&#32;PBXSourcesBuildPhaseType,
+28 &#32;&#32;&#32;&#32;PBXTargetDependencyType,
+29 &#32;&#32;&#32;&#32;PBXVariantGroupType,
+30 &#32;&#32;&#32;&#32;XCBuildConfigurationType,
+31 &#32;&#32;&#32;&#32;XCConfigurationListType,
+32 &#32;&#32;&#32;&#32;PBXShellScriptBuildPhase,
+33 &#32;&#32;&#32;&#32;XCVersionGroupType
+34 }&#32;XcodeMemberType;
+35 
+36 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_category_n_s_string_07_xcode_member_type_extensions_08">NSString (XcodeMemberTypeExtensions)</link>
+37 
+38 +&#32;(NSString*)xce_stringFromMemberType:(XcodeMemberType)nodeType;
+39 
+40 -&#32;(XcodeMemberType)xce_asMemberType;
+41 
+42 -&#32;(BOOL)xce_hasFileReferenceType;
+43 -&#32;(BOOL)xce_hasFileReferenceOrReferenceProxyType;
+44 -&#32;(BOOL)xce_hasReferenceProxyType;
+45 -&#32;(BOOL)xce_hasGroupType;
+46 -&#32;(BOOL)xce_hasProjectType;
+47 -&#32;(BOOL)xce_hasNativeTargetType;
+48 -&#32;(BOOL)xce_hasBuildFileType;
+49 -&#32;(BOOL)xce_hasBuildConfigurationType;
+50 -&#32;(BOOL)xce_hasContainerItemProxyType;
+51 -&#32;(BOOL)xce_hasResourcesBuildPhaseType;
+52 -&#32;(BOOL)xce_hasShellScriptBuildPhase;
+53 -&#32;(BOOL)xce_hasSourcesOrFrameworksBuildPhaseType;
+54 -&#32;(BOOL)xce_hasVersionedGroupType;
+55 
+56 <emphasis role="keyword">@end</emphasis>
+57 
+</programlisting></section>
diff --git a/doc/docbook/_xcode_source_file_type_8h_source.xml b/doc/docbook/_xcode_source_file_type_8h_source.xml
new file mode 100644
index 0000000..ddcaf10
--- /dev/null
+++ b/doc/docbook/_xcode_source_file_type_8h_source.xml
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__xcode_source_file_type_8h_source" xml:lang="en-US">
+<title>XcodeSourceFileType.h</title>
+<indexterm><primary>XcodeSourceFileType.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 
+14 <emphasis role="keyword">typedef</emphasis>&#32;NS_OPTIONS(NSInteger,&#32;XcodeSourceFileType)
+15 {
+16 &#32;&#32;&#32;&#32;FileTypeNil&#32;=&#32;0,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;Unknown&#32;filetype</emphasis>
+17 &#32;&#32;&#32;&#32;Framework&#32;=&#32;1,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.framework</emphasis>
+18 &#32;&#32;&#32;&#32;PropertyList&#32;=&#32;2,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.plist</emphasis>
+19 &#32;&#32;&#32;&#32;SourceCodeHeader&#32;=&#32;3,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.h</emphasis>
+20 &#32;&#32;&#32;&#32;SourceCodeObjC&#32;=&#32;4,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.m</emphasis>
+21 &#32;&#32;&#32;&#32;SourceCodeObjCPlusPlus&#32;=&#32;5,&#32;&#32;<emphasis role="comment">//&#32;.mm</emphasis>
+22 &#32;&#32;&#32;&#32;SourceCodeCPlusPlus&#32;=&#32;6,&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.cpp</emphasis>
+23 &#32;&#32;&#32;&#32;XibFile&#32;=&#32;7,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.xib</emphasis>
+24 &#32;&#32;&#32;&#32;ImageResourcePNG&#32;=&#32;8,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.png</emphasis>
+25 &#32;&#32;&#32;&#32;Bundle&#32;=&#32;9,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.bundle&#32;&#32;.octet</emphasis>
+26 &#32;&#32;&#32;&#32;Archive&#32;=&#32;10,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.a&#32;files</emphasis>
+27 &#32;&#32;&#32;&#32;HTML&#32;=&#32;11,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;HTML&#32;file</emphasis>
+28 &#32;&#32;&#32;&#32;TEXT&#32;=&#32;12,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;Some&#32;text&#32;file</emphasis>
+29 &#32;&#32;&#32;&#32;XcodeProject&#32;=&#32;13,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.xcodeproj</emphasis>
+30 &#32;&#32;&#32;&#32;Folder&#32;=&#32;14,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;a&#32;Folder&#32;reference</emphasis>
+31 &#32;&#32;&#32;&#32;AssetCatalog&#32;=&#32;15,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;Assets</emphasis>
+32 &#32;&#32;&#32;&#32;SourceCodeSwift&#32;=&#32;16,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.swift</emphasis>
+33 &#32;&#32;&#32;&#32;Application&#32;=&#32;17,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.app&#32;(wrapper.application)</emphasis>
+34 &#32;&#32;&#32;&#32;Playground&#32;=&#32;18,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.playground&#32;(file.playground)</emphasis>
+35 &#32;&#32;&#32;&#32;ShellScript&#32;=&#32;19,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;no&#32;suffix&#32;Xcode&#32;seems&#32;to&#32;detect&#32;(text.script.sh)</emphasis>
+36 &#32;&#32;&#32;&#32;Markdown&#32;=&#32;20,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.md&#32;(net.daringfileball.markdown)</emphasis>
+37 &#32;&#32;&#32;&#32;XMLPropertyList&#32;=&#32;21,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.plist&#32;(text.plist.xml)</emphasis>
+38 &#32;&#32;&#32;&#32;Storyboard&#32;=&#32;22,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.storyboard&#32;(file.storyboard)</emphasis>
+39 &#32;&#32;&#32;&#32;XCConfig&#32;=&#32;23,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.xcconfig</emphasis>
+40 &#32;&#32;&#32;&#32;XCDataModel&#32;=&#32;24,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.xcdatamodel</emphasis>
+41 &#32;&#32;&#32;&#32;LocalizableStrings&#32;=&#32;25&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;.strings</emphasis>
+42 };
+43 
+44 NSString*&#32;NSStringFromXCSourceFileType(XcodeSourceFileType&#32;type);
+45 
+46 XcodeSourceFileType&#32;XCSourceFileTypeFromStringRepresentation(NSString*&#32;<emphasis role="keywordtype">string</emphasis>);
+47 
+48 XcodeSourceFileType&#32;XCSourceFileTypeFromFileName(NSString*&#32;fileName);
+49 
+</programlisting></section>
diff --git a/doc/docbook/_xcode_source_tree_type_8h_source.xml b/doc/docbook/_xcode_source_tree_type_8h_source.xml
new file mode 100644
index 0000000..f6dfb71
--- /dev/null
+++ b/doc/docbook/_xcode_source_tree_type_8h_source.xml
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="__xcode_source_tree_type_8h_source" xml:lang="en-US">
+<title>XcodeSourceTreeType.h</title>
+<indexterm><primary>XcodeSourceTreeType.h</primary></indexterm>
+<programlisting linenumbering="unnumbered">1 
+2 <emphasis role="comment">//</emphasis>
+3 <emphasis role="comment">//&#32;&#32;JASPER&#32;BLUES</emphasis>
+4 <emphasis role="comment">//&#32;&#32;Copyright&#32;2012&#32;Jasper&#32;Blues</emphasis>
+5 <emphasis role="comment">//&#32;&#32;All&#32;Rights&#32;Reserved.</emphasis>
+6 <emphasis role="comment">//</emphasis>
+7 <emphasis role="comment">//&#32;&#32;NOTICE:&#32;Jasper&#32;Blues&#32;permits&#32;you&#32;to&#32;use,&#32;modify,&#32;and&#32;distribute&#32;this&#32;file</emphasis>
+8 <emphasis role="comment">//&#32;&#32;in&#32;accordance&#32;with&#32;the&#32;terms&#32;of&#32;the&#32;license&#32;agreement&#32;accompanying&#32;it.</emphasis>
+9 <emphasis role="comment">//</emphasis>
+11 <emphasis role="comment"></emphasis>
+12 <emphasis role="preprocessor">#import&#32;&lt;Foundation/Foundation.h&gt;</emphasis>
+13 
+14 <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">enum</emphasis>
+15 {
+16 &#32;&#32;&#32;&#32;SourceTreeSDKRoot,
+17 &#32;&#32;&#32;&#32;SourceTreeGroup
+18 }&#32;XcodeSourceTreeType;
+19 
+20 <emphasis role="keyword">@interface&#32;</emphasis><link linkend="_category_n_s_string_07_xcode_source_tree_type_extensions_08">NSString (XcodeSourceTreeTypeExtensions)</link>
+21 
+22 +&#32;(NSString*)xce_stringFromSourceTreeType:(XcodeSourceTreeType)nodeType;
+23 
+24 -&#32;(XcodeSourceTreeType)xce_asSourceTreeType;
+25 
+26 <emphasis role="keyword">@end</emphasis>
+27 
+</programlisting></section>
diff --git a/doc/docbook/annotated.xml b/doc/docbook/annotated.xml
new file mode 100644
index 0000000..6e9dcc5
--- /dev/null
+++ b/doc/docbook/annotated.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_annotated" xml:lang="en-US">
+<title>Class List</title>
+Here are the classes, structs, unions and interfaces with brief descriptions:<link linkend="_interface_class_called_janine">ClassCalledJanine</link><link linkend="_struct_hash_value_m_d5_hash">HashValueMD5Hash</link><link linkend="_category_n_s_string_07_remove_emoji_08">NSString(RemoveEmoji)</link><link linkend="_category_n_s_string_07_xcode_member_type_extensions_08">NSString(XcodeMemberTypeExtensions)</link><link linkend="_category_n_s_string_07_xcode_source_tree_type_extensions_08">NSString(XcodeSourceTreeTypeExtensions)</link><link linkend="_interface_x_c_abstract_definition">XCAbstractDefinition</link><link linkend="_protocol_x_c_build_file-p">&lt;XCBuildFile&gt;</link><link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link><link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link><link linkend="_interface_x_c_build_shell_script_definition_tests">XCBuildShellScriptDefinitionTests</link><link linkend="_interface_x_c_build_shell_script_tests">XCBuildShellScriptTests</link><link linkend="_interface_x_c_class_definition">XCClassDefinition</link><link linkend="_interface_x_c_class_definition_tests">XCClassDefinitionTests</link><link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link><link linkend="_category_x_c_file_operation_queue_07_08">XCFileOperationQueue()</link><link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link><link linkend="_interface_x_c_framework_path">XCFrameworkPath</link><link linkend="_interface_x_c_group">XCGroup</link><link linkend="_interface_x_c_group_tests">XCGroupTests</link><link linkend="_interface_x_c_key_builder">XCKeyBuilder</link><link linkend="_interface_x_c_key_builder_tests">XCKeyBuilderTests</link><link linkend="_interface_xcode_file_reference_type_tests">XcodeFileReferenceTypeTests</link><link linkend="_protocol_xcode_group_member-p">&lt;XcodeGroupMember&gt;</link><link linkend="_interface_x_c_project">XCProject</link><link linkend="_category_x_c_project_07_sub_project_08">XCProject(SubProject)</link><link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link><link linkend="_interface_x_c_project_tests">XCProjectTests</link><link linkend="_interface_x_c_source_file">XCSourceFile</link><link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link><link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link><link linkend="_category_x_c_sub_project_definition_07_08">XCSubProjectDefinition()</link><link linkend="_interface_x_c_sub_project_definition_tests">XCSubProjectDefinitionTests</link><link linkend="_interface_x_c_target">XCTarget</link><link linkend="_interface_x_c_target_tests">XCTargetTests</link><link linkend="_interface_x_c_version_group">XCVersionGroup</link><link linkend="_interface_x_c_xib_definition">XCXibDefinition</link></section>
diff --git a/doc/docbook/category_n_s_string_07_remove_emoji_08.xml b/doc/docbook/category_n_s_string_07_remove_emoji_08.xml
new file mode 100644
index 0000000..553f666
--- /dev/null
+++ b/doc/docbook/category_n_s_string_07_remove_emoji_08.xml
@@ -0,0 +1,18 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_n_s_string_07_remove_emoji_08" xml:lang="en-US">
+<title>NSString(RemoveEmoji) Category Reference</title>
+<indexterm><primary>NSString(RemoveEmoji)</primary></indexterm>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_remove_emoji_08_1ac1f0436d5d2e1c710f616b4d7acd1253"/>(BOOL) - <emphasis role="strong">isIncludingEmoji</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_remove_emoji_08_1aac8e33ce5dacdfbed2811f341b69bf5d"/>(instancetype) - <emphasis role="strong">stringByRemovingEmoji</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_remove_emoji_08_1a595b600cfebed475788feed38314af98"/>((deprecated) - <emphasis role="strong">__attribute__</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following files:</para>
+NSString+RemoveEmoji.hNSString+RemoveEmoji.m</section>
diff --git a/doc/docbook/category_n_s_string_07_xcode_member_type_extensions_08.xml b/doc/docbook/category_n_s_string_07_xcode_member_type_extensions_08.xml
new file mode 100644
index 0000000..7990b21
--- /dev/null
+++ b/doc/docbook/category_n_s_string_07_xcode_member_type_extensions_08.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_n_s_string_07_xcode_member_type_extensions_08" xml:lang="en-US">
+<title>NSString(XcodeMemberTypeExtensions) Category Reference</title>
+<indexterm><primary>NSString(XcodeMemberTypeExtensions)</primary></indexterm>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a0c30a5f2fc5ed808d39e891adac90ff9"/>(XcodeMemberType) - <emphasis role="strong">xce_asMemberType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a0b444d0eae9e7674658e29211fca06f5"/>(BOOL) - <emphasis role="strong">xce_hasFileReferenceType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a41c8558315a1d3d047c602c9652aef29"/>(BOOL) - <emphasis role="strong">xce_hasFileReferenceOrReferenceProxyType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1af3eeec7f57fdd88445b67fbf5eea8781"/>(BOOL) - <emphasis role="strong">xce_hasReferenceProxyType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a553f49f087f00e05f0024b5bb2ce07ad"/>(BOOL) - <emphasis role="strong">xce_hasGroupType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1affaa14881d029e9644e50f8fe96628ef"/>(BOOL) - <emphasis role="strong">xce_hasProjectType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a5bc59a1e064c62006a7f1bd467bbc992"/>(BOOL) - <emphasis role="strong">xce_hasNativeTargetType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1ab15ac44a708d7a74e5592f9f2d1d68b5"/>(BOOL) - <emphasis role="strong">xce_hasBuildFileType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a7096c70200be48fb242b415e1259eed5"/>(BOOL) - <emphasis role="strong">xce_hasBuildConfigurationType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a6db284b9e8daaf259b37b07f649ada65"/>(BOOL) - <emphasis role="strong">xce_hasContainerItemProxyType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a65f54f96e843f92b4a526e65830dd40c"/>(BOOL) - <emphasis role="strong">xce_hasResourcesBuildPhaseType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1aa39eee81b980302915f10668e1d7c335"/>(BOOL) - <emphasis role="strong">xce_hasShellScriptBuildPhase</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a0ac1e9fe2793c1c373250a69985389bc"/>(BOOL) - <emphasis role="strong">xce_hasSourcesOrFrameworksBuildPhaseType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a22a500d93bd9c4384231a96f5eab8f30"/>(BOOL) - <emphasis role="strong">xce_hasVersionedGroupType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_member_type_extensions_08_1a6aa90897bd9f233574611c83969d8d78"/>(NSString *) + <emphasis role="strong">xce_stringFromMemberType:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following files:</para>
+XcodeMemberType.hXcodeMemberType.m</section>
diff --git a/doc/docbook/category_n_s_string_07_xcode_source_tree_type_extensions_08.xml b/doc/docbook/category_n_s_string_07_xcode_source_tree_type_extensions_08.xml
new file mode 100644
index 0000000..31f29dd
--- /dev/null
+++ b/doc/docbook/category_n_s_string_07_xcode_source_tree_type_extensions_08.xml
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_n_s_string_07_xcode_source_tree_type_extensions_08" xml:lang="en-US">
+<title>NSString(XcodeSourceTreeTypeExtensions) Category Reference</title>
+<indexterm><primary>NSString(XcodeSourceTreeTypeExtensions)</primary></indexterm>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_source_tree_type_extensions_08_1aa71895eb3611dc52402d8c5e2d34908f"/>(XcodeSourceTreeType) - <emphasis role="strong">xce_asSourceTreeType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_n_s_string_07_xcode_source_tree_type_extensions_08_1a6c173a5ecd5deaf2d62a25c6dd34eb9e"/>(NSString *) + <emphasis role="strong">xce_stringFromSourceTreeType:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following files:</para>
+XcodeSourceTreeType.hXcodeSourceTreeType.m</section>
diff --git a/doc/docbook/category_x_c_file_operation_queue_07_08.xml b/doc/docbook/category_x_c_file_operation_queue_07_08.xml
new file mode 100644
index 0000000..556fd34
--- /dev/null
+++ b/doc/docbook/category_x_c_file_operation_queue_07_08.xml
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_x_c_file_operation_queue_07_08" xml:lang="en-US">
+<title>XCFileOperationQueue() Category Reference</title>
+<indexterm><primary>XCFileOperationQueue()</primary></indexterm>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_x_c_file_operation_queue_07_08_1a396b8a6bac40903a81e88f18556990af"/>(NSString *) - <emphasis role="strong">destinationPathFor:inProjectDirectory:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_file_operation_queue_07_08_1ae251327e851f8d879613e4fca9945405"/>(void) - <emphasis role="strong">performFileWrites</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_file_operation_queue_07_08_1a88abc5ec02d89e5ab47d424064d2196d"/>(void) - <emphasis role="strong">performCopyFrameworks</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_file_operation_queue_07_08_1a971eb0149ad8ed21e35c493bd06296ec"/>(void) - <emphasis role="strong">performFileDeletions</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_file_operation_queue_07_08_1a93c6820e8b055ed6415773b64a6bf1d7"/>(void) - <emphasis role="strong">performCreateDirectories</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following file:</para>
+XCFileOperationQueue.m</section>
diff --git a/doc/docbook/category_x_c_project_07_sub_project_08.xml b/doc/docbook/category_x_c_project_07_sub_project_08.xml
new file mode 100644
index 0000000..8bc94a9
--- /dev/null
+++ b/doc/docbook/category_x_c_project_07_sub_project_08.xml
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_x_c_project_07_sub_project_08" xml:lang="en-US">
+<title>XCProject(SubProject) Category Reference</title>
+<indexterm><primary>XCProject(SubProject)</primary></indexterm>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a92dd68dc215dfed3ee2fcaab5b72346e"/>(NSString *) - <emphasis role="strong">referenceProxyKeyForName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a1909100224b2527bc609caf8eab7a5f0"/>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <emphasis role="strong">buildProductsForTargets:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1aca0d762dbf21a7515beb0cf49f636fbc"/>(void) - <emphasis role="strong">addAsTargetDependency:toTargets:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1ac1f47cda658191013bd6184356255d1f"/>(NSArray&lt; NSString * &gt; *) - <emphasis role="strong">keysForProjectObjectsOfType:withIdentifier:singleton:required:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a54669d671dac484cf5d207657f7c92a2"/>(NSMutableDictionary *) - <emphasis role="strong">PBXProjectDict</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1aaa724f5876db3d4f5f82c4a5d9a48ae3"/>(void) - <emphasis role="strong">removeProxies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a235e112109c93d5987e2b29c836000a6"/>(void) - <emphasis role="strong">addProxies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a9caf756e7c08abe60d82258f251c0c8e"/>(void) - <emphasis role="strong">removeFromProjectReferences:forProductsGroup:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a17db0fff9e79f69dd267d5a6474625dc"/>(void) - <emphasis role="strong">removeTargetDependencies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a05186f24cbaeca02ae5a78dbddf9ab7e"/>(NSString *) - <emphasis role="strong">containerItemProxyKeyForName:proxyType:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_category_x_c_project_07_sub_project_08_1a1fbbe1cda07f9e1d543abef4b1f251d4"/>(NSString *) - <emphasis role="strong">productsGroupKeyForKey:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following files:</para>
+XCProject+SubProject.hXCProject+SubProject.m</section>
diff --git a/doc/docbook/category_x_c_sub_project_definition_07_08.xml b/doc/docbook/category_x_c_sub_project_definition_07_08.xml
new file mode 100644
index 0000000..ad25149
--- /dev/null
+++ b/doc/docbook/category_x_c_sub_project_definition_07_08.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_category_x_c_sub_project_definition_07_08" xml:lang="en-US">
+<title>XCSubProjectDefinition() Category Reference</title>
+<indexterm><primary>XCSubProjectDefinition()</primary></indexterm>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_category_x_c_sub_project_definition_07_08_1a72acb788ea0676c7704f138b533a3a77"/>NSString * <emphasis role="strong">relativePath</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this category was generated from the following file:</para>
+XCSubProjectDefinition.m</section>
diff --git a/doc/docbook/index.xml b/doc/docbook/index.xml
new file mode 100644
index 0000000..d33d792
--- /dev/null
+++ b/doc/docbook/index.xml
@@ -0,0 +1,75 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<book xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_index" xml:lang="en-US">
+    <info>
+    <title>XcodeEditor-master</title>
+    </info>
+<chapter>
+    <title>Class Documentation</title>
+    <xi:include href="interface_class_called_janine.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="struct_hash_value_m_d5_hash.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_n_s_string_07_remove_emoji_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_n_s_string_07_xcode_member_type_extensions_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_n_s_string_07_xcode_source_tree_type_extensions_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_abstract_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="protocol_x_c_build_file-p.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_build_shell_script.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_build_shell_script_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_build_shell_script_definition_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_build_shell_script_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_class_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_class_definition_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_file_operation_queue.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_x_c_file_operation_queue_07_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_framework_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_framework_path.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_group_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_key_builder.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_key_builder_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_xcode_file_reference_type_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="protocol_xcode_group_member-p.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_project.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_x_c_project_07_sub_project_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_project_build_config.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_project_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_source_file.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_source_file_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_sub_project_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="category_x_c_sub_project_definition_07_08.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_sub_project_definition_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_target.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_target_tests.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_version_group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="interface_x_c_xib_definition.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+</chapter>
+<chapter>
+    <title>File Documentation</title>
+    <xi:include href="_n_s_string_09_remove_emoji_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_abstract_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_build_file_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_build_shell_script_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_build_shell_script_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_class_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_file_operation_queue_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_framework_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_group_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_key_builder_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_xcode_editor_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_xcode_group_member_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_xcode_member_type_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_xcode_source_file_type_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_xcode_source_tree_type_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_project_09_sub_project_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_project_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_project_build_config_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_source_file_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_source_file_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_sub_project_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_target_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_version_group_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_xib_definition_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_class_called_janine_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+    <xi:include href="_x_c_test_resource_utils_8h_source.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+</chapter>
+<index/>
+</book>
diff --git a/doc/docbook/interface_class_called_janine.png b/doc/docbook/interface_class_called_janine.png
new file mode 100644
index 0000000..a83a4aa
Binary files /dev/null and b/doc/docbook/interface_class_called_janine.png differ
diff --git a/doc/docbook/interface_class_called_janine.xml b/doc/docbook/interface_class_called_janine.xml
new file mode 100644
index 0000000..157bf4c
--- /dev/null
+++ b/doc/docbook/interface_class_called_janine.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_class_called_janine" xml:lang="en-US">
+<title>ClassCalledJanine Class Reference</title>
+<indexterm><primary>ClassCalledJanine</primary></indexterm>
+<para>Inheritance diagram for ClassCalledJanine:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_class_called_janine.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+ClassCalledJanine.h</section>
diff --git a/doc/docbook/interface_x_c_abstract_definition.png b/doc/docbook/interface_x_c_abstract_definition.png
new file mode 100644
index 0000000..15dca55
Binary files /dev/null and b/doc/docbook/interface_x_c_abstract_definition.png differ
diff --git a/doc/docbook/interface_x_c_abstract_definition.xml b/doc/docbook/interface_x_c_abstract_definition.xml
new file mode 100644
index 0000000..f1cd558
--- /dev/null
+++ b/doc/docbook/interface_x_c_abstract_definition.xml
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_abstract_definition" xml:lang="en-US">
+<title>XCAbstractDefinition Class Reference</title>
+<indexterm><primary>XCAbstractDefinition</primary></indexterm>
+<para>
+<computeroutput>#import &lt;XCAbstractDefinition.h&gt;</computeroutput>
+</para>
+<para>Inheritance diagram for XCAbstractDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_abstract_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_abstract_definition_1a7403687ee4cd520f5a67743965744c07"/>XCFileOperationType <emphasis role="strong">_fileOperationType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_abstract_definition_1a1d6a905c3233209a6557aa3d730dfa84"/>XCFileOperationType <emphasis role="strong">fileOperationType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Detailed Description</title>
+
+<para>Holds properties to all types of resource that can be added to an Xcode project. </para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCAbstractDefinition.h</section>
+</section>
diff --git a/doc/docbook/interface_x_c_build_shell_script.png b/doc/docbook/interface_x_c_build_shell_script.png
new file mode 100644
index 0000000..7661d21
Binary files /dev/null and b/doc/docbook/interface_x_c_build_shell_script.png differ
diff --git a/doc/docbook/interface_x_c_build_shell_script.xml b/doc/docbook/interface_x_c_build_shell_script.xml
new file mode 100644
index 0000000..21b66e4
--- /dev/null
+++ b/doc/docbook/interface_x_c_build_shell_script.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_build_shell_script" xml:lang="en-US">
+<title>XCBuildShellScript Class Reference</title>
+<indexterm><primary>XCBuildShellScript</primary></indexterm>
+<para>Inheritance diagram for XCBuildShellScript:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_build_shell_script.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a776869cb5f3534f0123649c5d43fc27a"/>(instancetype _Nonnull) - <emphasis role="strong">initWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a546240e131ef3113050edaedd1c02c40"/>(<link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link> *_Nonnull) + <emphasis role="strong">shellScriptWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a8395d31f9049a538bb94c0e4cb5277ea"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1ab88419d2cd8525883ff6ccbe1cde2389"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1ae21f51288e30e5baae9c194ccad324b1"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a818e40adfaf4f36b0f6346c4927f6ace"/>BOOL <emphasis role="strong">runOnlyForDeploymentPostprocessing</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a2044c2e23e49807d91108a69331d4318"/>NSString * <emphasis role="strong">shellScript</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a4e707035e5735b970423bb741cabc4dc"/>NSString * <emphasis role="strong">shellPath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a1ea0a64850dca73c9192601168512396"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">files</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a2f3cb1af62fd6c58709e19f4010d82e1"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">inputPaths</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_1a09f1f7340392b62f808b4b71fab11c60"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">outputPaths</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCBuildShellScript.h</section>
diff --git a/doc/docbook/interface_x_c_build_shell_script_definition.png b/doc/docbook/interface_x_c_build_shell_script_definition.png
new file mode 100644
index 0000000..96f5c8b
Binary files /dev/null and b/doc/docbook/interface_x_c_build_shell_script_definition.png differ
diff --git a/doc/docbook/interface_x_c_build_shell_script_definition.xml b/doc/docbook/interface_x_c_build_shell_script_definition.xml
new file mode 100644
index 0000000..fec771b
--- /dev/null
+++ b/doc/docbook/interface_x_c_build_shell_script_definition.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_build_shell_script_definition" xml:lang="en-US">
+<title>XCBuildShellScriptDefinition Class Reference</title>
+<indexterm><primary>XCBuildShellScriptDefinition</primary></indexterm>
+<para>Inheritance diagram for XCBuildShellScriptDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_build_shell_script_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a6da6cb540f62b4f60daa622f583319b0"/>(instancetype _Nonnull) - <emphasis role="strong">initWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1ae61f52f8e27e373b73de4d5a813ace74"/>(<link linkend="_interface_x_c_build_shell_script_definition">XCBuildShellScriptDefinition</link> *_Nonnull) + <emphasis role="strong">shellScriptDefinitionWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a78d2a6ce6dfc4f239454e4707f029a0b"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a72b0cd7e8ea5bf38cb548992d82244ef"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a1f1a1003dcc7451ef27d39b0d911d176"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1aa0d83a2385278ec41184c5002185483f"/>BOOL <emphasis role="strong">runOnlyForDeploymentPostprocessing</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1ab9dd4e3c901959f29d3bd67e67626e34"/>NSString * <emphasis role="strong">shellScript</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1acdfb1ba09449fd3caaf3370f2f106fb4"/>NSString * <emphasis role="strong">shellPath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1aa04c6111c3736016c391fb39681d6cd7"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">files</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a22dc77450412e8c1422344c5719938c8"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">inputPaths</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_build_shell_script_definition_1a404e502b97fa0ee9f62a7a2fbda4ced5"/>NSArray&lt; NSString * &gt; * <emphasis role="strong">outputPaths</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCBuildShellScriptDefinition.hXCBuildShellScriptDefinition.m</section>
diff --git a/doc/docbook/interface_x_c_build_shell_script_definition_tests.png b/doc/docbook/interface_x_c_build_shell_script_definition_tests.png
new file mode 100644
index 0000000..511f313
Binary files /dev/null and b/doc/docbook/interface_x_c_build_shell_script_definition_tests.png differ
diff --git a/doc/docbook/interface_x_c_build_shell_script_definition_tests.xml b/doc/docbook/interface_x_c_build_shell_script_definition_tests.xml
new file mode 100644
index 0000000..85c4e28
--- /dev/null
+++ b/doc/docbook/interface_x_c_build_shell_script_definition_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_build_shell_script_definition_tests" xml:lang="en-US">
+<title>XCBuildShellScriptDefinitionTests Class Reference</title>
+<indexterm><primary>XCBuildShellScriptDefinitionTests</primary></indexterm>
+<para>Inheritance diagram for XCBuildShellScriptDefinitionTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_build_shell_script_definition_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCBuildShellScriptDefinitionTests.m</section>
diff --git a/doc/docbook/interface_x_c_build_shell_script_tests.png b/doc/docbook/interface_x_c_build_shell_script_tests.png
new file mode 100644
index 0000000..34882cb
Binary files /dev/null and b/doc/docbook/interface_x_c_build_shell_script_tests.png differ
diff --git a/doc/docbook/interface_x_c_build_shell_script_tests.xml b/doc/docbook/interface_x_c_build_shell_script_tests.xml
new file mode 100644
index 0000000..2d9bde7
--- /dev/null
+++ b/doc/docbook/interface_x_c_build_shell_script_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_build_shell_script_tests" xml:lang="en-US">
+<title>XCBuildShellScriptTests Class Reference</title>
+<indexterm><primary>XCBuildShellScriptTests</primary></indexterm>
+<para>Inheritance diagram for XCBuildShellScriptTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_build_shell_script_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCBuildShellScriptTests.m</section>
diff --git a/doc/docbook/interface_x_c_class_definition.png b/doc/docbook/interface_x_c_class_definition.png
new file mode 100644
index 0000000..41a2b2b
Binary files /dev/null and b/doc/docbook/interface_x_c_class_definition.png differ
diff --git a/doc/docbook/interface_x_c_class_definition.xml b/doc/docbook/interface_x_c_class_definition.xml
new file mode 100644
index 0000000..391b26c
--- /dev/null
+++ b/doc/docbook/interface_x_c_class_definition.xml
@@ -0,0 +1,82 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_class_definition" xml:lang="en-US">
+<title>XCClassDefinition Class Reference</title>
+<indexterm><primary>XCClassDefinition</primary></indexterm>
+<para>Inheritance diagram for XCClassDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_class_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para>(id) - <link linkend="_interface_x_c_class_definition_1a23690152051fe1b9faae85328a0b01e4">initWithName:</link></para>
+</listitem>
+            <listitem><para>(id) - <link linkend="_interface_x_c_class_definition_1a5ac63d73ba9eb0cc41124a86a13960c8">initWithName:language:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a8057794678ce18938d74712647cd768f"/>(BOOL) - <emphasis role="strong">isObjectiveC</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1ae16be8fde4a4a4220c6304a7af843e62"/>(BOOL) - <emphasis role="strong">isObjectiveCPlusPlus</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1ac55b847a41c97cebdae6129f97c04411"/>(BOOL) - <emphasis role="strong">isCPlusPlus</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1ab581631959c4a311b08cef8795db19f4"/>(NSString *) - <emphasis role="strong">headerFileName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a2151047dda92fc08060f5db5f0870c5a"/>(NSString *) - <emphasis role="strong">sourceFileName</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1abd37214c1044249cf596305989375513"/>(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link> *) + <emphasis role="strong">classDefinitionWithName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1aa06c00d77cf6fd2e47574b0f25525b9a"/>(<link linkend="_interface_x_c_class_definition">XCClassDefinition</link> *) + <emphasis role="strong">classDefinitionWithName:language:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1aca0cfdcf71ca0882755e48f8cf7fa2e6"/>NSString * <emphasis role="strong">_className</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a7f8877a914b3beb805895f8d9479721f"/>NSString * <emphasis role="strong">_header</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a049ddbd9b0c9b5db631bff86739a4563"/>NSString * <emphasis role="strong">_source</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a2546319b3a49afb05aeff8edb307e426"/>NSString * <emphasis role="strong">className</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1a5aa654cae2860ce584f409bfcc3c34b1"/>NSString * <emphasis role="strong">header</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_class_definition_1acab09962126ebae52ec5bc9eb4e9c261"/>NSString * <emphasis role="strong">source</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_interface_x_c_class_definition_1a23690152051fe1b9faae85328a0b01e4"/><section>
+    <title>initWithName:</title>
+<indexterm><primary>initWithName:</primary><secondary>XCClassDefinition</secondary></indexterm>
+<indexterm><primary>XCClassDefinition</primary><secondary>initWithName:</secondary></indexterm>
+<para><computeroutput>- (id) initWithName: (NSString*) fileName</computeroutput></para>
+<para>Initializes a new objective-c class definition. </para>
+</section>
+<anchor xml:id="_interface_x_c_class_definition_1a5ac63d73ba9eb0cc41124a86a13960c8"/><section>
+    <title>initWithName:language:</title>
+<indexterm><primary>initWithName:language:</primary><secondary>XCClassDefinition</secondary></indexterm>
+<indexterm><primary>XCClassDefinition</primary><secondary>initWithName:language:</secondary></indexterm>
+<para><computeroutput>- (id) <link linkend="_interface_x_c_class_definition_1a23690152051fe1b9faae85328a0b01e4">initWithName:</link> (NSString*) className(ClassDefinitionLanguage) language</computeroutput></para>
+<para>Initializes a new class definition with the specified language. </para>
+</section>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCClassDefinition.hXCClassDefinition.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_class_definition_tests.png b/doc/docbook/interface_x_c_class_definition_tests.png
new file mode 100644
index 0000000..2ac4bb5
Binary files /dev/null and b/doc/docbook/interface_x_c_class_definition_tests.png differ
diff --git a/doc/docbook/interface_x_c_class_definition_tests.xml b/doc/docbook/interface_x_c_class_definition_tests.xml
new file mode 100644
index 0000000..33bfe43
--- /dev/null
+++ b/doc/docbook/interface_x_c_class_definition_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_class_definition_tests" xml:lang="en-US">
+<title>XCClassDefinitionTests Class Reference</title>
+<indexterm><primary>XCClassDefinitionTests</primary></indexterm>
+<para>Inheritance diagram for XCClassDefinitionTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_class_definition_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCClassDefinitionTests.m</section>
diff --git a/doc/docbook/interface_x_c_file_operation_queue.png b/doc/docbook/interface_x_c_file_operation_queue.png
new file mode 100644
index 0000000..f0077d6
Binary files /dev/null and b/doc/docbook/interface_x_c_file_operation_queue.png differ
diff --git a/doc/docbook/interface_x_c_file_operation_queue.xml b/doc/docbook/interface_x_c_file_operation_queue.xml
new file mode 100644
index 0000000..fb749bf
--- /dev/null
+++ b/doc/docbook/interface_x_c_file_operation_queue.xml
@@ -0,0 +1,36 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_file_operation_queue" xml:lang="en-US">
+<title>XCFileOperationQueue Class Reference</title>
+<indexterm><primary>XCFileOperationQueue</primary></indexterm>
+<para>Inheritance diagram for XCFileOperationQueue:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_file_operation_queue.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1a580ee6b6c0df85cb533376feb0dcf470"/>(id) - <emphasis role="strong">initWithBaseDirectory:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1aa77e6c7278dffdf5c0d1a9895ea696b7"/>(BOOL) - <emphasis role="strong">fileWithName:existsInProjectDirectory:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1afa988e09a85dfc39ee594c16c3791d17"/>(void) - <emphasis role="strong">queueTextFile:inDirectory:withContents:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1a4d89200d1ae0025c2033419225a6e8a9"/>(void) - <emphasis role="strong">queueDataFile:inDirectory:withContents:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1ad190028004951117f463ddb5d5484b74"/>(void) - <emphasis role="strong">queueFrameworkWithFilePath:inDirectory:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1acee5306e88d22c322134064724a1227d"/>(void) - <emphasis role="strong">queueDeletion:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1a7143342f5652922181dc982ce0a5ed71"/>(void) - <emphasis role="strong">queueDirectory:inDirectory:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_file_operation_queue_1af3cda6fb196b8a4ccc377e06c5fbafb9"/>(void) - <emphasis role="strong">commitFileOperations</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCFileOperationQueue.hXCFileOperationQueue.m</section>
diff --git a/doc/docbook/interface_x_c_framework_definition.png b/doc/docbook/interface_x_c_framework_definition.png
new file mode 100644
index 0000000..104d3fd
Binary files /dev/null and b/doc/docbook/interface_x_c_framework_definition.png differ
diff --git a/doc/docbook/interface_x_c_framework_definition.xml b/doc/docbook/interface_x_c_framework_definition.xml
new file mode 100644
index 0000000..bc4dfbe
--- /dev/null
+++ b/doc/docbook/interface_x_c_framework_definition.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_framework_definition" xml:lang="en-US">
+<title>XCFrameworkDefinition Class Reference</title>
+<indexterm><primary>XCFrameworkDefinition</primary></indexterm>
+<para>Inheritance diagram for XCFrameworkDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_framework_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a692f07320b6a66e6aa2619a28d483b32"/>(id) - <emphasis role="strong">initWithFilePath:copyToDestination:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1ae42e50ae4ba4243aa0d89d695a8b4636"/>(id) - <emphasis role="strong">initWithFilePath:copyToDestination:sourceTree:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a41770c4aa2b37b67210cd35070b4bc3d"/>(NSString *) - <emphasis role="strong">fileName</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a13f96181b5df04e26f308cbc0122422a"/>(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link> *) + <emphasis role="strong">frameworkDefinitionWithFilePath:copyToDestination:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1adacb9b07bba827484466795a8d6228ce"/>(<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link> *) + <emphasis role="strong">frameworkDefinitionWithFilePath:copyToDestination:sourceTree:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a4ec0180484e50df85802881a4e890862"/>NSString * <emphasis role="strong">_filePath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a635f330365c99e5806d51f44fc8ac10d"/>BOOL <emphasis role="strong">_copyToDestination</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1add132a619414714f9571ccf77891d19a"/>XcodeSourceTreeType <emphasis role="strong">_sourceTree</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a62cb2edda93699a7b7d2690762deb1c4"/>NSString * <emphasis role="strong">filePath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a788efd231c23735b89e508849a708544"/>BOOL <emphasis role="strong">copyToDestination</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_framework_definition_1a1e8261e7bd47602a002aa966405054be"/>XcodeSourceTreeType <emphasis role="strong">sourceTree</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCFrameworkDefinition.hXCFrameworkDefinition.m</section>
diff --git a/doc/docbook/interface_x_c_framework_path.png b/doc/docbook/interface_x_c_framework_path.png
new file mode 100644
index 0000000..5e2ab95
Binary files /dev/null and b/doc/docbook/interface_x_c_framework_path.png differ
diff --git a/doc/docbook/interface_x_c_framework_path.xml b/doc/docbook/interface_x_c_framework_path.xml
new file mode 100644
index 0000000..e11441b
--- /dev/null
+++ b/doc/docbook/interface_x_c_framework_path.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_framework_path" xml:lang="en-US">
+<title>XCFrameworkPath Class Reference</title>
+<indexterm><primary>XCFrameworkPath</primary></indexterm>
+<para>Inheritance diagram for XCFrameworkPath:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_framework_path.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCGroupTests.m</section>
diff --git a/doc/docbook/interface_x_c_group.png b/doc/docbook/interface_x_c_group.png
new file mode 100644
index 0000000..602ecff
Binary files /dev/null and b/doc/docbook/interface_x_c_group.png differ
diff --git a/doc/docbook/interface_x_c_group.xml b/doc/docbook/interface_x_c_group.xml
new file mode 100644
index 0000000..8d9c63c
--- /dev/null
+++ b/doc/docbook/interface_x_c_group.xml
@@ -0,0 +1,326 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_group" xml:lang="en-US">
+<title>XCGroup Class Reference</title>
+<indexterm><primary>XCGroup</primary></indexterm>
+<para>
+<computeroutput>#import &lt;XCGroup.h&gt;</computeroutput>
+</para>
+<para>Inheritance diagram for XCGroup:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_group.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a944113b8b5a60f8271417f1edba1887f"/>(id) - <emphasis role="strong">initWithProject:key:alias:path:children:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a97417d5f55cf08cac488121496de1e7a"/>(id) - <emphasis role="strong">initWithProject:key:alias:path:children:memberType:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a37732de928d286e0ab6260108f7e3c40"/>(void) - <emphasis role="strong">removeFromParentGroup</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a2cf68d8e18c04115a66f89230b6f9897"/>(void) - <emphasis role="strong">removeFromParentDeletingChildren:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a77e2963f8e9aebd04895c0c89ecc900f"/>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <emphasis role="strong">parentGroup</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a9ef355eeeb1f342ab13a64d0cc3b81e1"/>(BOOL) - <emphasis role="strong">isRootGroup</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a205d13347d777b1c0b9ac78bb9806ceb"/>(BOOL) - <emphasis role="strong">isEmpty</emphasis></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a96411d3bbbc3575f8ec054e248f6ccc0">addClass:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a122394632f69a66216a83cf4465827f5">addClass:toTargets:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1ad5359c55dbe6dec38410f04e11f23a25">removeClass:fromTargets:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1aff6d0325233590013bf94605cdd33ca1">removeHeader:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a05d334241ef5aaebd085ee12346edf11">addFramework:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1aeb47434275327c36d755a4abc0a7086c">removeFramework:fromTargets:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_group_1a9fae9599b5eeb8790891e970c5f1dd55">addGroupWithPath:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_group_1a77fc9f047b4f38476a40314c1d1b2e88">addGroupWithAlias:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_group_1a9c7c7ad2a6a0f8d1cfa197b75b3790d4">addGroupWithAlias:groupType:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) - <link linkend="_interface_x_c_group_1ace1128bb049a7ffe3a5ac0ff2aafa1ec">addVersionGroupWithPath:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a014d95b76b0ee5602bfd471a54971575">addFolderReference:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a93ec3ff78841c682e75be9c771f1e71f"/>(void) - <emphasis role="strong">addFileReference:withType:</emphasis></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) - <link linkend="_interface_x_c_group_1a6793e5b2fa198356d31caa41cb5ca5f3">addFramework:toTargets:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1aa24878ffd2dab62c58da17e65c03d686">addSourceFile:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1ae5c97eeb00aa9ba0fbfebe2b19b5c267">addXib:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a497ac4da2c0dec3353e9880d824251bb">addXib:toTargets:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1af59bed33844ce3577749f4bcae7236e5">addSubProject:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a52dfc0c60614fb215954921c492a8674">addSubProject:toTargets:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a973da6798e2dfb279835131d4f51fb2a"/>(void) - <emphasis role="strong">removeSubProject:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a0b0198d7635634e59d34ea08fad82d47"/>(void) - <emphasis role="strong">removeSubProject:fromTargets:</emphasis></para>
+</listitem>
+            <listitem><para>(NSArray&lt; id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt; &gt; *) - <link linkend="_interface_x_c_group_1a5ac6b60f770672010f50003340f9631b">members</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; NSString * &gt; *) - <link linkend="_interface_x_c_group_1a138ba369f7336fc0373416529e1d2495">recursiveMembers</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; NSString * &gt; *) - <link linkend="_interface_x_c_group_1a856ec674626d75d10c61383860ef211a">buildFileKeys</link></para>
+</listitem>
+            <listitem><para>(id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) - <link linkend="_interface_x_c_group_1a2010863a994ab2c9ba4b080b9fd8b849">memberWithKey:</link></para>
+</listitem>
+            <listitem><para>(id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) - <link linkend="_interface_x_c_group_1af791799b15771786d1c1ed77a4218a70">memberWithDisplayName:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_group_1a194d2b1f72d393aa045aa96bd72ff77a">removeMemberWithKey:</link></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1ace4dbba41ce3b9493a9d009456049e2c"/>(<link linkend="_interface_x_c_group">XCGroup</link> *) + <emphasis role="strong">groupWithProject:key:alias:path:children:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a654ffe67ec06ba30e525c95f33dad1d0"/>(<link linkend="_interface_x_c_group">XCGroup</link> *) + <emphasis role="strong">groupWithProject:key:alias:path:children:memberType:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a341022b2ba331f01eeddc6c1e00aab23"/>NSString * <emphasis role="strong">_pathRelativeToParent</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1ab00a6117f46b3c4ffbaaa7bbfe871f76"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_group_1a26b3260d1cc2d6fe3e0711d48e161854"/>NSString * <emphasis role="strong">_alias</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para>NSString * <link linkend="_interface_x_c_group_1a5e85f49148d25f0a01f5149231d41cac">alias</link></para>
+</listitem>
+            <listitem><para>NSString * <link linkend="_interface_x_c_group_1a8baa1a967bff74d9fb8ef6dc6e7fb13a">pathRelativeToParent</link></para>
+</listitem>
+            <listitem><para>NSString * <link linkend="_interface_x_c_group_1afeb7627acb0907d9c3672653eca8b6eb">key</link></para>
+</listitem>
+            <listitem><para>NSMutableArray&lt; id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt; &gt; * <link linkend="_interface_x_c_group_1a3456b071207ed8d3b79e66024d53a7db">children</link></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Detailed Description</title>
+
+<para>Represents a _group container in an Xcode project. A group can contain members of type <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> or other groups. </para>
+</section>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_interface_x_c_group_1a96411d3bbbc3575f8ec054e248f6ccc0"/><section>
+    <title>addClass:</title>
+<indexterm><primary>addClass:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addClass:</secondary></indexterm>
+<para><computeroutput>- (void) addClass: (<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*) classDefinition</computeroutput></para>
+<para>Adds a class to the _group, as specified by the ClassDefinition. If the _group already contains a class by the same name, the contents will be updated. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a122394632f69a66216a83cf4465827f5"/><section>
+    <title>addClass:toTargets:</title>
+<indexterm><primary>addClass:toTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addClass:toTargets:</secondary></indexterm>
+<para><computeroutput>- (void) <link linkend="_interface_x_c_group_1a96411d3bbbc3575f8ec054e248f6ccc0">addClass:</link> (<link linkend="_interface_x_c_class_definition">XCClassDefinition</link> *) classDefinition(NSArray&lt; <link linkend="_interface_x_c_target">XCTarget</link> * &gt; *) targets</computeroutput></para>
+<para>Adds a class to the _group, making it a member of the specified [targets](<link linkend="_interface_x_c_target">XCTarget</link>). </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a014d95b76b0ee5602bfd471a54971575"/><section>
+    <title>addFolderReference:</title>
+<indexterm><primary>addFolderReference:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addFolderReference:</secondary></indexterm>
+<para><computeroutput>- (void) addFolderReference: (NSString*) sourceFolder</computeroutput></para>
+<para>Adds a reference to a folder </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a05d334241ef5aaebd085ee12346edf11"/><section>
+    <title>addFramework:</title>
+<indexterm><primary>addFramework:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addFramework:</secondary></indexterm>
+<para><computeroutput>- (void) addFramework: (<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link>*) frameworkDefinition</computeroutput></para>
+<para>Adds a framework to the _group. If the _group already contains the framework, the contents will be updated if the framework definition&apos;s copyToDestination flag is yes, otherwise it will be ignored. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a6793e5b2fa198356d31caa41cb5ca5f3"/><section>
+    <title>addFramework:toTargets:</title>
+<indexterm><primary>addFramework:toTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addFramework:toTargets:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) <link linkend="_interface_x_c_group_1a05d334241ef5aaebd085ee12346edf11">addFramework:</link> (<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link> *) framework(NSArray&lt; <link linkend="_interface_x_c_target">XCTarget</link> * &gt; *) targets</computeroutput></para>
+<para>Adds a framework to the _group, making it a member of the specified targets. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a77fc9f047b4f38476a40314c1d1b2e88"/><section>
+    <title>addGroupWithAlias:</title>
+<indexterm><primary>addGroupWithAlias:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addGroupWithAlias:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) addGroupWithAlias: (NSString *) alias</computeroutput></para>
+<para>Adds a _group with an alias to this _group. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a9c7c7ad2a6a0f8d1cfa197b75b3790d4"/><section>
+    <title>addGroupWithAlias:groupType:</title>
+<indexterm><primary>addGroupWithAlias:groupType:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addGroupWithAlias:groupType:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) <link linkend="_interface_x_c_group_1a77fc9f047b4f38476a40314c1d1b2e88">addGroupWithAlias:</link> (NSString *) alias(XcodeMemberType) type</computeroutput></para>
+<para>Adds a _group with an alias to this _group and a particular type (only PBXGroupType and PBXVariantGroupType are valid) </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a9fae9599b5eeb8790891e970c5f1dd55"/><section>
+    <title>addGroupWithPath:</title>
+<indexterm><primary>addGroupWithPath:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addGroupWithPath:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) addGroupWithPath: (NSString*) path</computeroutput></para>
+<para>Adds a _group with a path relative to this _group. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1aa24878ffd2dab62c58da17e65c03d686"/><section>
+    <title>addSourceFile:</title>
+<indexterm><primary>addSourceFile:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addSourceFile:</secondary></indexterm>
+<para><computeroutput>- (void) addSourceFile: (<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*) sourceFileDefinition</computeroutput></para>
+<para>Adds a source file of arbitrary type - image resource, header, etc. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1af59bed33844ce3577749f4bcae7236e5"/><section>
+    <title>addSubProject:</title>
+<indexterm><primary>addSubProject:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addSubProject:</secondary></indexterm>
+<para><computeroutput>- (void) addSubProject: (<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link>*) projectDefinition</computeroutput></para>
+<para>Adds a sub-project to the _group. If the _group already contains a sub-project by the same name, the contents will be updated. Returns boolean success/fail; if method fails, caller should assume that project file is corrupt (or file format has changed). </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a52dfc0c60614fb215954921c492a8674"/><section>
+    <title>addSubProject:toTargets:</title>
+<indexterm><primary>addSubProject:toTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addSubProject:toTargets:</secondary></indexterm>
+<para><computeroutput>- (void) <link linkend="_interface_x_c_group_1af59bed33844ce3577749f4bcae7236e5">addSubProject:</link> (<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link> *) projectDefinition(NSArray&lt; <link linkend="_interface_x_c_target">XCTarget</link> * &gt; *) targets</computeroutput></para>
+<para>Adds a sub-project to the _group, making it a member of the specified [targets](<link linkend="_interface_x_c_target">XCTarget</link>). </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1ace1128bb049a7ffe3a5ac0ff2aafa1ec"/><section>
+    <title>addVersionGroupWithPath:</title>
+<indexterm><primary>addVersionGroupWithPath:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addVersionGroupWithPath:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) addVersionGroupWithPath: (NSString*) path</computeroutput></para>
+<para>Adds a version group with a path relative to this group. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1ae5c97eeb00aa9ba0fbfebe2b19b5c267"/><section>
+    <title>addXib:</title>
+<indexterm><primary>addXib:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addXib:</secondary></indexterm>
+<para><computeroutput>- (void) addXib: (<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link>*) xibDefinition</computeroutput></para>
+<para>Adds a xib file to the _group. If the _group already contains a class by the same name, the contents will be updated. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a497ac4da2c0dec3353e9880d824251bb"/><section>
+    <title>addXib:toTargets:</title>
+<indexterm><primary>addXib:toTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>addXib:toTargets:</secondary></indexterm>
+<para><computeroutput>- (void) <link linkend="_interface_x_c_group_1ae5c97eeb00aa9ba0fbfebe2b19b5c267">addXib:</link> (<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link> *) xibDefinition(NSArray&lt; <link linkend="_interface_x_c_target">XCTarget</link> * &gt; *) targets</computeroutput></para>
+<para>Adds a xib to the _group, making it a member of the specified [targets](<link linkend="_interface_x_c_target">XCTarget</link>). </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a856ec674626d75d10c61383860ef211a"/><section>
+    <title>buildFileKeys</title>
+<indexterm><primary>buildFileKeys</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>buildFileKeys</secondary></indexterm>
+<para><computeroutput>- (NSArray *) buildFileKeys  </computeroutput></para>
+<para>Keys of members from this group </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a5ac6b60f770672010f50003340f9631b"/><section>
+    <title>members</title>
+<indexterm><primary>members</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>members</secondary></indexterm>
+<para><computeroutput>- (NSArray&lt; id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt; &gt; *) members  </computeroutput></para>
+<para>Instances of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> and <computeroutput><link linkend="_interface_x_c_group">XCGroup</link></computeroutput> returned as the type <computeroutput><link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link></computeroutput>. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1af791799b15771786d1c1ed77a4218a70"/><section>
+    <title>memberWithDisplayName:</title>
+<indexterm><primary>memberWithDisplayName:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>memberWithDisplayName:</secondary></indexterm>
+<para><computeroutput>- (id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) memberWithDisplayName: (NSString*) name</computeroutput></para>
+<para>Returns the child with the specified name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a2010863a994ab2c9ba4b080b9fd8b849"/><section>
+    <title>memberWithKey:</title>
+<indexterm><primary>memberWithKey:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>memberWithKey:</secondary></indexterm>
+<para><computeroutput>- (id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) memberWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the child with the specified key, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a138ba369f7336fc0373416529e1d2495"/><section>
+    <title>recursiveMembers</title>
+<indexterm><primary>recursiveMembers</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>recursiveMembers</secondary></indexterm>
+<para><computeroutput>- (NSArray *) recursiveMembers  </computeroutput></para>
+<para>Keys of members from this group and any child groups. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1ad5359c55dbe6dec38410f04e11f23a25"/><section>
+    <title>removeClass:fromTargets:</title>
+<indexterm><primary>removeClass:fromTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>removeClass:fromTargets:</secondary></indexterm>
+<para><computeroutput>- (void) removeClass: (<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*) classDefinition(NSArray*) targets</computeroutput></para>
+<para>Removes a class from the _group </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1aeb47434275327c36d755a4abc0a7086c"/><section>
+    <title>removeFramework:fromTargets:</title>
+<indexterm><primary>removeFramework:fromTargets:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>removeFramework:fromTargets:</secondary></indexterm>
+<para><computeroutput>- (void) removeFramework: (<link linkend="_interface_x_c_framework_definition">XCFrameworkDefinition</link> *) frameworkDefinition(NSArray *) targets</computeroutput></para>
+<para>Removes a framework from the _group </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1aff6d0325233590013bf94605cdd33ca1"/><section>
+    <title>removeHeader:</title>
+<indexterm><primary>removeHeader:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>removeHeader:</secondary></indexterm>
+<para><computeroutput>- (void) removeHeader: (<link linkend="_interface_x_c_class_definition">XCClassDefinition</link>*) classDefinition</computeroutput></para>
+<para>Removes a header from the _group </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a194d2b1f72d393aa045aa96bd72ff77a"/><section>
+    <title>removeMemberWithKey:</title>
+<indexterm><primary>removeMemberWithKey:</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>removeMemberWithKey:</secondary></indexterm>
+<para><computeroutput>- (void) removeMemberWithKey: (NSString*) key</computeroutput></para>
+<para>Remove the member with the specified key </para>
+</section>
+</section>
+<section>
+<title>Property Documentation</title>
+<anchor xml:id="_interface_x_c_group_1a5e85f49148d25f0a01f5149231d41cac"/><section>
+    <title>alias</title>
+<indexterm><primary>alias</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>alias</secondary></indexterm>
+<para><computeroutput>- (NSString*) alias<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The alias of the group, which can be used to give the group a name other than the last path component.</para>
+
+<para>See: [<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> displayName] </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a3456b071207ed8d3b79e66024d53a7db"/><section>
+    <title>children</title>
+<indexterm><primary>children</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>children</secondary></indexterm>
+<para><computeroutput>- (NSMutableArray&lt;id&lt;<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link>&gt; &gt;*) children<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>An array containing the groups members as <computeroutput><link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link></computeroutput> types. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1afeb7627acb0907d9c3672653eca8b6eb"/><section>
+    <title>key</title>
+<indexterm><primary>key</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>key</secondary></indexterm>
+<para><computeroutput>- (NSString*) key<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The group&apos;s unique key. </para>
+</section>
+<anchor xml:id="_interface_x_c_group_1a8baa1a967bff74d9fb8ef6dc6e7fb13a"/><section>
+    <title>pathRelativeToParent</title>
+<indexterm><primary>pathRelativeToParent</primary><secondary>XCGroup</secondary></indexterm>
+<indexterm><primary>XCGroup</primary><secondary>pathRelativeToParent</secondary></indexterm>
+<para><computeroutput>- (NSString*) pathRelativeToParent<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The path of the group relative to the group&apos;s parent.</para>
+
+<para>See: [<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> displayName] </para>
+</section>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCGroup.hXCGroup.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_group_tests.png b/doc/docbook/interface_x_c_group_tests.png
new file mode 100644
index 0000000..585fd04
Binary files /dev/null and b/doc/docbook/interface_x_c_group_tests.png differ
diff --git a/doc/docbook/interface_x_c_group_tests.xml b/doc/docbook/interface_x_c_group_tests.xml
new file mode 100644
index 0000000..0bc5b80
--- /dev/null
+++ b/doc/docbook/interface_x_c_group_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_group_tests" xml:lang="en-US">
+<title>XCGroupTests Class Reference</title>
+<indexterm><primary>XCGroupTests</primary></indexterm>
+<para>Inheritance diagram for XCGroupTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_group_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCGroupTests.m</section>
diff --git a/doc/docbook/interface_x_c_key_builder.png b/doc/docbook/interface_x_c_key_builder.png
new file mode 100644
index 0000000..118524f
Binary files /dev/null and b/doc/docbook/interface_x_c_key_builder.png differ
diff --git a/doc/docbook/interface_x_c_key_builder.xml b/doc/docbook/interface_x_c_key_builder.xml
new file mode 100644
index 0000000..83168dd
--- /dev/null
+++ b/doc/docbook/interface_x_c_key_builder.xml
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_key_builder" xml:lang="en-US">
+<title>XCKeyBuilder Class Reference</title>
+<indexterm><primary>XCKeyBuilder</primary></indexterm>
+<para>Inheritance diagram for XCKeyBuilder:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_key_builder.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_key_builder_1aca64c85e90a00e1234b3909d32db8c15"/>(id) - <emphasis role="strong">initHashValueMD5HashWithBytes:length:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_key_builder_1a809ff460ab0e01ab7b8912d202ba2f01"/>(NSString *) - <emphasis role="strong">build</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_key_builder_1a5811a756cdef15206a69eff593046138"/>(<link linkend="_interface_x_c_key_builder">XCKeyBuilder</link> *) + <emphasis role="strong">forItemNamed:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_key_builder_1aef0933f07779c85c0304a844aeef9828"/>(<link linkend="_interface_x_c_key_builder">XCKeyBuilder</link> *) + <emphasis role="strong">createUnique</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_key_builder_1a8b47ac1c493fd0e6a31a5e60c18ced63"/>unsigned char <emphasis role="strong">_value</emphasis> [HASH_VALUE_STORAGE_SIZE]</para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCKeyBuilder.hXCKeyBuilder.m</section>
diff --git a/doc/docbook/interface_x_c_key_builder_tests.png b/doc/docbook/interface_x_c_key_builder_tests.png
new file mode 100644
index 0000000..3525349
Binary files /dev/null and b/doc/docbook/interface_x_c_key_builder_tests.png differ
diff --git a/doc/docbook/interface_x_c_key_builder_tests.xml b/doc/docbook/interface_x_c_key_builder_tests.xml
new file mode 100644
index 0000000..43fa086
--- /dev/null
+++ b/doc/docbook/interface_x_c_key_builder_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_key_builder_tests" xml:lang="en-US">
+<title>XCKeyBuilderTests Class Reference</title>
+<indexterm><primary>XCKeyBuilderTests</primary></indexterm>
+<para>Inheritance diagram for XCKeyBuilderTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_key_builder_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCKeyBuilderTests.m</section>
diff --git a/doc/docbook/interface_x_c_project.png b/doc/docbook/interface_x_c_project.png
new file mode 100644
index 0000000..8d22f79
Binary files /dev/null and b/doc/docbook/interface_x_c_project.png differ
diff --git a/doc/docbook/interface_x_c_project.xml b/doc/docbook/interface_x_c_project.xml
new file mode 100644
index 0000000..2e787b0
--- /dev/null
+++ b/doc/docbook/interface_x_c_project.xml
@@ -0,0 +1,348 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_project" xml:lang="en-US">
+<title>XCProject Class Reference</title>
+<indexterm><primary>XCProject</primary></indexterm>
+<para>Inheritance diagram for XCProject:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_project.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para>(id) - <link linkend="_interface_x_c_project_1a88eb4b9317a0a1e232f7d1a37eed6b7c">initWithFilePath:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a96e2f90d957fe6c8200e0af5daad7917"/>(id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) - <emphasis role="strong">groupMemberWithKey:</emphasis></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <link linkend="_interface_x_c_project_1a131d039952cd8bbd455fa1a1d4f6f1f0">files</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) - <link linkend="_interface_x_c_project_1a8e37d7a871da0916f01ca46be04bd68a">fileWithKey:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) - <link linkend="_interface_x_c_project_1af0ec1bda5ecf6777521993732e5ce081">fileWithName:</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <link linkend="_interface_x_c_project_1aa036faece156d323fd2b52d32eacddcf">headerFiles</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <link linkend="_interface_x_c_project_1aa2611412e68a6a85e13aeacb47c27c9e">objectiveCFiles</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <link linkend="_interface_x_c_project_1a00a2007e659b99510355a3f0d259c487">objectiveCPlusPlusFiles</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <link linkend="_interface_x_c_project_1ab4e7d3f18d4026fd136e2710ea38f7ec">xibFiles</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a0a12420d166e1899d7d864c4e432729b"/>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <emphasis role="strong">imagePNGFiles</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a96bd2795c2056788b54d569fbecfeca8"/>(NSString *) - <emphasis role="strong">filePath</emphasis></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_group">XCGroup</link> * &gt; *) - <link linkend="_interface_x_c_project_1a02c11d0e7e8bd59140d4a1cfc3b07101">groups</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1a6fff64e311f1a406c25a64191232a36c">rootGroup</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_group">XCGroup</link> * &gt; *) - <link linkend="_interface_x_c_project_1a02602c3235f28a5a4a3b175bc79031d1">rootGroups</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1ae92eccb36eef3337d7623ee1d890481e">mainGroup</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1a7a612074deba05dbfdc4bd2c8fbfc5a8">groupWithKey:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1a42b4f74d42d8554a2d0e967416aa99a6">groupWithDisplayName:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1a5c29526ae6ec53f9a20b887dbaecff39">groupWithPathFromRoot:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1ab4c661b07ed8ee9ce5a3c0d256b11f17">groupForGroupMemberWithKey:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <link linkend="_interface_x_c_project_1a5ca26311344e697b5935435d32c76e9d">groupWithSourceFile:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_project_1a8f240e15a2f922ea6dab7ed67830263e">pruneEmptyGroups</link></para>
+</listitem>
+            <listitem><para>(NSArray *) - <link linkend="_interface_x_c_project_1a12a30d4884d3ba06914d711558bb22a7">versionGroups</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) - <link linkend="_interface_x_c_project_1ae6bd0577d0e4c93368961b86ad108fee">versionGroupWithKey:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) - <link linkend="_interface_x_c_project_1a7b2745077b7872bff0979b8f8f772adc">versionGroupWithName:</link></para>
+</listitem>
+            <listitem><para>(NSArray&lt; <link linkend="_interface_x_c_target">XCTarget</link> * &gt; *) - <link linkend="_interface_x_c_project_1a3ee5cb7c9774166ff175e527d95ae61a">targets</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_target">XCTarget</link> *) - <link linkend="_interface_x_c_project_1abaa9a7968fad5ec90d41f89e63887ed7">targetWithName:</link></para>
+</listitem>
+            <listitem><para>(NSArray *) - <link linkend="_interface_x_c_project_1a4410361e238bd7b0c713904fec310a2a">applicationTargets</link></para>
+</listitem>
+            <listitem><para>(NSDictionary&lt; NSString *, <link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> * &gt; *) - <link linkend="_interface_x_c_project_1a265cc594ffba012b5bebfc64f301b6ff">configurations</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> *) - <link linkend="_interface_x_c_project_1a1b7d7949bad44777252ac4aa9a1d42a1">configurationWithName:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a8cd3b721551f90b55b55dc0da39ee9ee"/>(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> *) - <emphasis role="strong">defaultConfiguration</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a960203178c72583f5e4ae2d42b60e4f8"/>(void) - <emphasis role="strong">removeObjectWithKey:</emphasis></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_project_1a2802de6cf0bb6e8550d713a188b35d52">save</link></para>
+</listitem>
+            <listitem><para>(NSMutableDictionary *) - <link linkend="_interface_x_c_project_1a0a4c7be71a2f8fd0c5b732bd03ff7fd6">objects</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1afbfbf5df3134d5fe516c496e543b5abe"/>(NSMutableDictionary *) - <emphasis role="strong">dataStore</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1aaa574f2ab415a7ca5ded893d8f1dc5da"/>(void) - <emphasis role="strong">dropCache</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a92dd68dc215dfed3ee2fcaab5b72346e"/>(NSString *) - <emphasis role="strong">referenceProxyKeyForName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a1909100224b2527bc609caf8eab7a5f0"/>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <emphasis role="strong">buildProductsForTargets:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1aca0d762dbf21a7515beb0cf49f636fbc"/>(void) - <emphasis role="strong">addAsTargetDependency:toTargets:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1ac1f47cda658191013bd6184356255d1f"/>(NSArray&lt; NSString * &gt; *) - <emphasis role="strong">keysForProjectObjectsOfType:withIdentifier:singleton:required:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a54669d671dac484cf5d207657f7c92a2"/>(NSMutableDictionary *) - <emphasis role="strong">PBXProjectDict</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1aaa724f5876db3d4f5f82c4a5d9a48ae3"/>(void) - <emphasis role="strong">removeProxies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a235e112109c93d5987e2b29c836000a6"/>(void) - <emphasis role="strong">addProxies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a9caf756e7c08abe60d82258f251c0c8e"/>(void) - <emphasis role="strong">removeFromProjectReferences:forProductsGroup:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a17db0fff9e79f69dd267d5a6474625dc"/>(void) - <emphasis role="strong">removeTargetDependencies:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a05186f24cbaeca02ae5a78dbddf9ab7e"/>(NSString *) - <emphasis role="strong">containerItemProxyKeyForName:proxyType:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a1fbbe1cda07f9e1d543abef4b1f251d4"/>(NSString *) - <emphasis role="strong">productsGroupKeyForKey:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1abf4324ba26ad1e5575aabd9fbdf01a7b"/>(<link linkend="_interface_x_c_project">XCProject</link> *) + <emphasis role="strong">projectWithFilePath:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a173619eac2f16acb2df97bd260a5fa67"/><link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link> * <emphasis role="strong">_fileOperationQueue</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1ad6c4a515034b224b14539d41e3ff2ad0"/>NSString * <emphasis role="strong">_filePath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a761fe57b6f262db7a654cc99b7b6953d"/>NSMutableDictionary * <emphasis role="strong">_dataStore</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a8a80a0b2e1c4d2056d8f030446d85253"/>NSMutableArray * <emphasis role="strong">_targets</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a1e25dda852501fc14a96e0ca4e5bc23a"/>NSMutableDictionary * <emphasis role="strong">_groups</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a2b5b056b0df27bfc0ead818136c357a0"/>NSMutableDictionary * <emphasis role="strong">_versionGroups</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a580f988f798957d8e0c8cb641e3baa1f"/>NSMutableDictionary * <emphasis role="strong">_configurations</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a234f33077598c48ffdf08af4b6cd3395"/>NSString * <emphasis role="strong">_defaultConfigurationName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1ac7a8e11957c774711cabfa4821acb053"/>NSString * <emphasis role="strong">_rootObjectKey</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_1a695fa34a29d8e9545fcbc45d3f73147e"/><link linkend="_interface_x_c_file_operation_queue">XCFileOperationQueue</link> * <emphasis role="strong">fileOperationQueue</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_interface_x_c_project_1a4410361e238bd7b0c713904fec310a2a"/><section>
+    <title>applicationTargets</title>
+<indexterm><primary>applicationTargets</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>applicationTargets</secondary></indexterm>
+<para><computeroutput>- (NSArray *) applicationTargets  </computeroutput></para>
+<para>Lists the targets which are of application type. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a265cc594ffba012b5bebfc64f301b6ff"/><section>
+    <title>configurations</title>
+<indexterm><primary>configurations</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>configurations</secondary></indexterm>
+<para><computeroutput>- (NSDictionary *) configurations  </computeroutput></para>
+<para>Lists the configurations in an xcode project. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a1b7d7949bad44777252ac4aa9a1d42a1"/><section>
+    <title>configurationWithName:</title>
+<indexterm><primary>configurationWithName:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>configurationWithName:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> *) configurationWithName: (NSString*) name</computeroutput></para>
+<para>Returns the configuration with the specified name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a131d039952cd8bbd455fa1a1d4f6f1f0"/><section>
+    <title>files</title>
+<indexterm><primary>files</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>files</secondary></indexterm>
+<para><computeroutput>- (NSArray *) files  </computeroutput></para>
+<para>Returns all file resources in the project, as an array of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a8e37d7a871da0916f01ca46be04bd68a"/><section>
+    <title>fileWithKey:</title>
+<indexterm><primary>fileWithKey:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>fileWithKey:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) fileWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the project file with the specified key, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1af0ec1bda5ecf6777521993732e5ce081"/><section>
+    <title>fileWithName:</title>
+<indexterm><primary>fileWithName:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>fileWithName:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) fileWithName: (NSString*) name</computeroutput></para>
+<para>Returns the project file with the specified name, or nil. If more than one project file matches the specified name, which one is returned is undefined. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1ab4c661b07ed8ee9ce5a3c0d256b11f17"/><section>
+    <title>groupForGroupMemberWithKey:</title>
+<indexterm><primary>groupForGroupMemberWithKey:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groupForGroupMemberWithKey:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) groupForGroupMemberWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the parent _group for the _group or file with the given key; </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a02c11d0e7e8bd59140d4a1cfc3b07101"/><section>
+    <title>groups</title>
+<indexterm><primary>groups</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groups</secondary></indexterm>
+<para><computeroutput>- (NSArray *) groups  </computeroutput></para>
+<para>Lists the groups in an xcode project, returning an array of <computeroutput><link linkend="_interface_x_c_group">XCGroup</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a42b4f74d42d8554a2d0e967416aa99a6"/><section>
+    <title>groupWithDisplayName:</title>
+<indexterm><primary>groupWithDisplayName:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groupWithDisplayName:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) groupWithDisplayName: (NSString*) name</computeroutput></para>
+<para>Returns the <emphasis>first</emphasis> group in the project with the given name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a7a612074deba05dbfdc4bd2c8fbfc5a8"/><section>
+    <title>groupWithKey:</title>
+<indexterm><primary>groupWithKey:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groupWithKey:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) groupWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the group with the given key, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a5c29526ae6ec53f9a20b887dbaecff39"/><section>
+    <title>groupWithPathFromRoot:</title>
+<indexterm><primary>groupWithPathFromRoot:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groupWithPathFromRoot:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) groupWithPathFromRoot: (NSString*) path</computeroutput></para>
+<para>Returns the _group with the specified display name path - the directory relative to the root _group. Eg Source/Main </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a5ca26311344e697b5935435d32c76e9d"/><section>
+    <title>groupWithSourceFile:</title>
+<indexterm><primary>groupWithSourceFile:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>groupWithSourceFile:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) groupWithSourceFile: (<link linkend="_interface_x_c_source_file">XCSourceFile</link>*) sourceFile</computeroutput></para>
+<para>Returns the parent group for the group or file with the source file </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1aa036faece156d323fd2b52d32eacddcf"/><section>
+    <title>headerFiles</title>
+<indexterm><primary>headerFiles</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>headerFiles</secondary></indexterm>
+<para><computeroutput>- (NSArray *) headerFiles  </computeroutput></para>
+<para>Returns all header files in the project, as an array of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a88eb4b9317a0a1e232f7d1a37eed6b7c"/><section>
+    <title>initWithFilePath:</title>
+<indexterm><primary>initWithFilePath:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>initWithFilePath:</secondary></indexterm>
+<para><computeroutput>- (id) initWithFilePath: (NSString*) filePath</computeroutput></para>
+<para>Creates a new project editor instance with the specified Project.xcodeproj file. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1ae92eccb36eef3337d7623ee1d890481e"/><section>
+    <title>mainGroup</title>
+<indexterm><primary>mainGroup</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>mainGroup</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) mainGroup  </computeroutput></para>
+<para>Returns the main group under root object </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1aa2611412e68a6a85e13aeacb47c27c9e"/><section>
+    <title>objectiveCFiles</title>
+<indexterm><primary>objectiveCFiles</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>objectiveCFiles</secondary></indexterm>
+<para><computeroutput>- (NSArray *) objectiveCFiles  </computeroutput></para>
+<para>Returns all implementation obj-c implementation files in the project, as an array of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a00a2007e659b99510355a3f0d259c487"/><section>
+    <title>objectiveCPlusPlusFiles</title>
+<indexterm><primary>objectiveCPlusPlusFiles</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>objectiveCPlusPlusFiles</secondary></indexterm>
+<para><computeroutput>- (NSArray *) objectiveCPlusPlusFiles  </computeroutput></para>
+<para>Returns all implementation obj-c++ implementation files in the project, as an array of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a0a4c7be71a2f8fd0c5b732bd03ff7fd6"/><section>
+    <title>objects</title>
+<indexterm><primary>objects</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>objects</secondary></indexterm>
+<para><computeroutput>- (NSMutableDictionary *) objects  </computeroutput></para>
+<para>Raw project data. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a8f240e15a2f922ea6dab7ed67830263e"/><section>
+    <title>pruneEmptyGroups</title>
+<indexterm><primary>pruneEmptyGroups</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>pruneEmptyGroups</secondary></indexterm>
+<para><computeroutput>- (void) pruneEmptyGroups  </computeroutput></para>
+<para>Removes all empty groups from the project. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a6fff64e311f1a406c25a64191232a36c"/><section>
+    <title>rootGroup</title>
+<indexterm><primary>rootGroup</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>rootGroup</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_group">XCGroup</link> *) rootGroup  </computeroutput></para>
+<para>Returns the root (top-level) _group. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a02602c3235f28a5a4a3b175bc79031d1"/><section>
+    <title>rootGroups</title>
+<indexterm><primary>rootGroups</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>rootGroups</secondary></indexterm>
+<para><computeroutput>- (NSArray *) rootGroups  </computeroutput></para>
+<para>Returns the root (top-level) groups, if there are multiple. An array of rootGroup if there is only one. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a2802de6cf0bb6e8550d713a188b35d52"/><section>
+    <title>save</title>
+<indexterm><primary>save</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>save</secondary></indexterm>
+<para><computeroutput>- (void) save  </computeroutput></para>
+<para>Saves a project after editing. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a3ee5cb7c9774166ff175e527d95ae61a"/><section>
+    <title>targets</title>
+<indexterm><primary>targets</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>targets</secondary></indexterm>
+<para><computeroutput>- (NSArray *) targets  </computeroutput></para>
+<para>Lists the targets in an xcode project, returning an array of <computeroutput><link linkend="_interface_x_c_target">XCTarget</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1abaa9a7968fad5ec90d41f89e63887ed7"/><section>
+    <title>targetWithName:</title>
+<indexterm><primary>targetWithName:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>targetWithName:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_target">XCTarget</link> *) targetWithName: (NSString*) name</computeroutput></para>
+<para>Returns the target with the specified name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a12a30d4884d3ba06914d711558bb22a7"/><section>
+    <title>versionGroups</title>
+<indexterm><primary>versionGroups</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>versionGroups</secondary></indexterm>
+<para><computeroutput>- (NSArray *) versionGroups  </computeroutput></para>
+<para>Lists the version groups in an xcode project, returning an array of <computeroutput><link linkend="_interface_x_c_version_group">XCVersionGroup</link></computeroutput> objects. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1ae6bd0577d0e4c93368961b86ad108fee"/><section>
+    <title>versionGroupWithKey:</title>
+<indexterm><primary>versionGroupWithKey:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>versionGroupWithKey:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) versionGroupWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the version group with the given key, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1a7b2745077b7872bff0979b8f8f772adc"/><section>
+    <title>versionGroupWithName:</title>
+<indexterm><primary>versionGroupWithName:</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>versionGroupWithName:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) versionGroupWithName: (NSString*) name</computeroutput></para>
+<para>Returns the version group with the given file name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_project_1ab4e7d3f18d4026fd136e2710ea38f7ec"/><section>
+    <title>xibFiles</title>
+<indexterm><primary>xibFiles</primary><secondary>XCProject</secondary></indexterm>
+<indexterm><primary>XCProject</primary><secondary>xibFiles</secondary></indexterm>
+<para><computeroutput>- (NSArray *) xibFiles  </computeroutput></para>
+<para>Returns all the xib files in the project, as an array of <computeroutput><link linkend="_interface_x_c_source_file">XCSourceFile</link></computeroutput> objects. </para>
+</section>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCProject.hXCProject.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_project_build_config.png b/doc/docbook/interface_x_c_project_build_config.png
new file mode 100644
index 0000000..10112f7
Binary files /dev/null and b/doc/docbook/interface_x_c_project_build_config.png differ
diff --git a/doc/docbook/interface_x_c_project_build_config.xml b/doc/docbook/interface_x_c_project_build_config.xml
new file mode 100644
index 0000000..89e85c4
--- /dev/null
+++ b/doc/docbook/interface_x_c_project_build_config.xml
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_project_build_config" xml:lang="en-US">
+<title>XCProjectBuildConfig Class Reference</title>
+<indexterm><primary>XCProjectBuildConfig</primary></indexterm>
+<para>Inheritance diagram for XCProjectBuildConfig:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_project_build_config.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a6aa3921a24aa1a04ed146d1bc01aa830"/>(instancetype) - <emphasis role="strong">initWithProject:key:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a3b31022ad4a5a68e6d78a52fd9cc8b5a"/>(void) - <emphasis role="strong">addBuildSettings:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a86561120cb7c5ceefaa2423b50df4aea"/>(void) - <emphasis role="strong">addOrReplaceSetting:forKey:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a314cc154633199f17ba9f0a6abb56fe2"/>(id&lt; NSCopying &gt;) - <emphasis role="strong">valueForKey:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a7e02f019e67fc5b36444bfcb21fa6886"/>(void) - <emphasis role="strong">removeSettingByKey:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1ad0f82eebf4648908c2d410dcdbd52149"/>(NSDictionary&lt; NSString *, NSString * &gt; *) + <emphasis role="strong">buildConfigurationsFromArray:inProject:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a95d856873a021db2c92734a43f86801c"/>(NSString *) + <emphasis role="strong">duplicatedBuildConfigurationListWithKey:inProject:withBuildConfigurationVisitor:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a15d0aa4eb48fdb07bde07ba2c5fa42a4"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_project_build_config_1a23deb664a0d8ac6dcfca4c9f8f51f44e"/>NSDictionary * <emphasis role="strong">specifiedBuildSettings</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCProjectBuildConfig.hXCProjectBuildConfig.m</section>
diff --git a/doc/docbook/interface_x_c_project_tests.png b/doc/docbook/interface_x_c_project_tests.png
new file mode 100644
index 0000000..30c58e7
Binary files /dev/null and b/doc/docbook/interface_x_c_project_tests.png differ
diff --git a/doc/docbook/interface_x_c_project_tests.xml b/doc/docbook/interface_x_c_project_tests.xml
new file mode 100644
index 0000000..531e3d3
--- /dev/null
+++ b/doc/docbook/interface_x_c_project_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_project_tests" xml:lang="en-US">
+<title>XCProjectTests Class Reference</title>
+<indexterm><primary>XCProjectTests</primary></indexterm>
+<para>Inheritance diagram for XCProjectTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_project_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCProjectTests.m</section>
diff --git a/doc/docbook/interface_x_c_source_file.png b/doc/docbook/interface_x_c_source_file.png
new file mode 100644
index 0000000..2cab42e
Binary files /dev/null and b/doc/docbook/interface_x_c_source_file.png differ
diff --git a/doc/docbook/interface_x_c_source_file.xml b/doc/docbook/interface_x_c_source_file.xml
new file mode 100644
index 0000000..b1cfca7
--- /dev/null
+++ b/doc/docbook/interface_x_c_source_file.xml
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_source_file" xml:lang="en-US">
+<title>XCSourceFile Class Reference</title>
+<indexterm><primary>XCSourceFile</primary></indexterm>
+<para>
+<computeroutput>#import &lt;XCSourceFile.h&gt;</computeroutput>
+</para>
+<para>Inheritance diagram for XCSourceFile:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_source_file.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1ac8615e3a5e8ef18bef470b67499356d2"/>(id) - <emphasis role="strong">initWithProject:key:type:name:sourceTree:path:</emphasis></para>
+</listitem>
+            <listitem><para>(BOOL) - <link linkend="_interface_x_c_source_file_1a94f914a09f7abbbf3048a86ced9f7d10">isBuildFile</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a8901719779cfa15805ff292b3b242d07"/>(BOOL) - <emphasis role="strong">canBecomeBuildFile</emphasis></para>
+</listitem>
+            <listitem><para>(XcodeMemberType) - <link linkend="_interface_x_c_source_file_1a32b82cd21f7ce2e00c05c331f5ca922d">buildPhase</link></para>
+</listitem>
+            <listitem><para>(NSString *) - <link linkend="_interface_x_c_source_file_1a01b5137080ebdcbfb927e8c541f2ecfe">buildFileKey</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_source_file_1a69feb820711a44a5d3adf4bc25669e37">becomeBuildFile</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_source_file_1ab4a6d4d99379dbdb99f8e1214ffed356">removeBuildFile</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_source_file_1a9694571d4b026b428a056162f20a6dd3">setCompilerFlags:</link></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_source_file_1a009a3627573419fb5f9cb67c5afa3f87">setWeakReference</link></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a97625fb8853a21d30bf8033fc766859f"/>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) + <emphasis role="strong">sourceFileWithProject:key:type:name:sourceTree:path:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a73402fcd99aa8e97837f1adc998c2304"/>XcodeSourceFileType <emphasis role="strong">type</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a82cbd166469f86d7b92ebd970a9e148b"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a2a8feb4272e7439f072411462f82911f"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a135b3d0390f10bcd740055081e65524a"/>NSString * <emphasis role="strong">sourceTree</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_1a0f8c01b546123f88b839bdbb14138d4d"/>NSString * <emphasis role="strong">path</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Detailed Description</title>
+
+<para>Represents a file resource in an xcode project. </para>
+</section>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_interface_x_c_source_file_1a69feb820711a44a5d3adf4bc25669e37"/><section>
+    <title>becomeBuildFile</title>
+<indexterm><primary>becomeBuildFile</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>becomeBuildFile</secondary></indexterm>
+<para><computeroutput>- (void) becomeBuildFile  </computeroutput></para>
+<para>Adds this file to the project as an <computeroutput>xcode_BuildFile</computeroutput>, ready to be included in targets. </para>
+<para>
+Reimplemented from <link linkend="_protocol_x_c_build_file-p">&lt;XCBuildFile&gt;</link>.</para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1a01b5137080ebdcbfb927e8c541f2ecfe"/><section>
+    <title>buildFileKey</title>
+<indexterm><primary>buildFileKey</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>buildFileKey</secondary></indexterm>
+<para><computeroutput>- (NSString *) buildFileKey  </computeroutput></para><para>
+Reimplemented from <link linkend="_protocol_x_c_build_file-p">&lt;XCBuildFile&gt;</link>.</para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1a32b82cd21f7ce2e00c05c331f5ca922d"/><section>
+    <title>buildPhase</title>
+<indexterm><primary>buildPhase</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>buildPhase</secondary></indexterm>
+<para><computeroutput>- (XcodeMemberType) buildPhase  </computeroutput></para><para>
+Reimplemented from <link linkend="_protocol_x_c_build_file-p">&lt;XCBuildFile&gt;</link>.</para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1a94f914a09f7abbbf3048a86ced9f7d10"/><section>
+    <title>isBuildFile</title>
+<indexterm><primary>isBuildFile</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>isBuildFile</secondary></indexterm>
+<para><computeroutput>- (BOOL) isBuildFile  </computeroutput></para>
+<para>If yes, indicates the file is able to be included for compilation in an <computeroutput><link linkend="_interface_x_c_target">XCTarget</link></computeroutput>. </para>
+<para>
+Reimplemented from <link linkend="_protocol_x_c_build_file-p">&lt;XCBuildFile&gt;</link>.</para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1ab4a6d4d99379dbdb99f8e1214ffed356"/><section>
+    <title>removeBuildFile</title>
+<indexterm><primary>removeBuildFile</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>removeBuildFile</secondary></indexterm>
+<para><computeroutput>- (void) removeBuildFile  </computeroutput></para>
+<para>Removes this file as an <computeroutput>xcode_BuildFile</computeroutput> from the project. </para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1a9694571d4b026b428a056162f20a6dd3"/><section>
+    <title>setCompilerFlags:</title>
+<indexterm><primary>setCompilerFlags:</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>setCompilerFlags:</secondary></indexterm>
+<para><computeroutput>- (void) setCompilerFlags: (NSString *) value</computeroutput></para>
+<para>Method for setting Compiler Flags for individual build files</para>
+
+<para>
+                <formalpara>
+                    <title>
+Parameters</title>
+                    <para>
+                    <table frame="all">
+                        <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                        <colspec colwidth="1*"/>
+                        <colspec colwidth="4*"/>
+                        <tbody>
+                            <row>
+<entry>value</entry><entry>
+<para>String value to set in Compiler Flags </para>
+</entry>
+                            </row>
+                        </tbody>
+                        </tgroup>
+                    </table>
+                    </para>
+                </formalpara>
+                </para>
+</section>
+<anchor xml:id="_interface_x_c_source_file_1a009a3627573419fb5f9cb67c5afa3f87"/><section>
+    <title>setWeakReference</title>
+<indexterm><primary>setWeakReference</primary><secondary>XCSourceFile</secondary></indexterm>
+<indexterm><primary>XCSourceFile</primary><secondary>setWeakReference</secondary></indexterm>
+<para><computeroutput>- (void) setWeakReference  </computeroutput></para>
+<para>Method for setting the build file is a weak reference </para>
+</section>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCSourceFile.hXCSourceFile.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_source_file_definition.png b/doc/docbook/interface_x_c_source_file_definition.png
new file mode 100644
index 0000000..8261c6c
Binary files /dev/null and b/doc/docbook/interface_x_c_source_file_definition.png differ
diff --git a/doc/docbook/interface_x_c_source_file_definition.xml b/doc/docbook/interface_x_c_source_file_definition.xml
new file mode 100644
index 0000000..8399c0b
--- /dev/null
+++ b/doc/docbook/interface_x_c_source_file_definition.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_source_file_definition" xml:lang="en-US">
+<title>XCSourceFileDefinition Class Reference</title>
+<indexterm><primary>XCSourceFileDefinition</primary></indexterm>
+<para>Inheritance diagram for XCSourceFileDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_source_file_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1ab0ce23ddeb76786ea11d5baee28cb608"/>(id) - <emphasis role="strong">initWithName:text:type:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a8e77fb8abd13a719d8e2ebb02fdc8d7a"/>(id) - <emphasis role="strong">initWithName:data:type:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a91c12cde86894c007a0f1995e44ac7c1"/>(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link> *) + <emphasis role="strong">sourceDefinitionWithName:text:type:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a79e91c49704ce9504a94e9e1b0307760"/>(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link> *) + <emphasis role="strong">sourceDefinitionWithName:data:type:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a387acd3e10ac68b221f2e96aa811453b"/>(<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link> *) + <emphasis role="strong">sourceDefinitionWithAssetCatalogName:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1aa603abd339463d91dce002f8e0c8b5e8"/>NSString * <emphasis role="strong">_sourceFileName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a1bbeb08f884f2b7d973dcf43e80cc4b4"/>XcodeSourceFileType <emphasis role="strong">_type</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1ae8a4564b2d6ac56857b949450bad909a"/>NSData * <emphasis role="strong">_data</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1aa178243081bf2ea2bfbd23528a413180"/>NSString * <emphasis role="strong">sourceFileName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a4e16359e1c3b2f3f07b1c87b056a24a7"/>NSData * <emphasis role="strong">data</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_source_file_definition_1a89ca94c0a2b6bf90b7c181ed8614c584"/>XcodeSourceFileType <emphasis role="strong">type</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCSourceFileDefinition.hXCSourceFileDefinition.m</section>
diff --git a/doc/docbook/interface_x_c_sub_project_definition.png b/doc/docbook/interface_x_c_sub_project_definition.png
new file mode 100644
index 0000000..d41b122
Binary files /dev/null and b/doc/docbook/interface_x_c_sub_project_definition.png differ
diff --git a/doc/docbook/interface_x_c_sub_project_definition.xml b/doc/docbook/interface_x_c_sub_project_definition.xml
new file mode 100644
index 0000000..426c665
--- /dev/null
+++ b/doc/docbook/interface_x_c_sub_project_definition.xml
@@ -0,0 +1,81 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_sub_project_definition" xml:lang="en-US">
+<title>XCSubProjectDefinition Class Reference</title>
+<indexterm><primary>XCSubProjectDefinition</primary></indexterm>
+<para>Inheritance diagram for XCSubProjectDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_sub_project_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a53d521ea7fae7db7e9aedcb38b7ae801"/>(id) - <emphasis role="strong">initWithName:path:parentProject:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a6547ce2981677bb48ada29f755578bab"/>(NSString *) - <emphasis role="strong">projectFileName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ae86cd94d3b946147cf9f85aa232fc48d"/>(NSString *) - <emphasis role="strong">fullPathName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a7f1306be6f728cee5fff0a227965adfa"/>(NSArray&lt; NSString * &gt; *) - <emphasis role="strong">buildProductNames</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a4fef8b1017918476188ac37e4ef35c8a"/>(NSString *) - <emphasis role="strong">projectKey</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ac77271ef0fb480fef436edec4da52e38"/>(NSString *) - <emphasis role="strong">pathRelativeToProjectRoot</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ab1665e46fec97cc08298b7e1da0ead41"/>(void) - <emphasis role="strong">initFullProjectPath:groupPath:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a0caa409f6624fff4c7ccfa725700320b"/>(<link linkend="_interface_x_c_sub_project_definition">XCSubProjectDefinition</link> *) + <emphasis role="strong">withName:path:parentProject:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a072b5d3edfc113540ae2b3eae0013599"/>NSString * <emphasis role="strong">_name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a584269eeb584b4420ff0ffa069696ac1"/>NSString * <emphasis role="strong">_path</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1aa37c5dedcbb833305484f4f6d044d740"/>XcodeSourceFileType <emphasis role="strong">_type</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a33a8195d958daadb4246fae77f06996e"/><link linkend="_interface_x_c_project">XCProject</link> * <emphasis role="strong">_subProject</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a1523a192c4e777b49e99c1917510e15c"/><link linkend="_interface_x_c_project">XCProject</link> * <emphasis role="strong">_parentProject</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a4f6c5012222b6a82ab7b8cbeab37a26c"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a4c3a4943f32b50b230a1d9be0a8e219f"/>NSString * <emphasis role="strong">_fullProjectPath</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a551d51ffe95bc16877bcfdcdc1a7d5e0"/>NSString * <emphasis role="strong">_relativePath</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a67afe67729dc553562b66a7651650e98"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a655b86f19b418a200951fca36d82f3de"/>NSString * <emphasis role="strong">path</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ae5394747200ae66dd78766930d478d96"/>XcodeSourceFileType <emphasis role="strong">type</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ab011e26759fe6f64e2a0ed31d830ecad"/><link linkend="_interface_x_c_project">XCProject</link> * <emphasis role="strong">subProject</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1ad4d922689ef099b044a05842d6f93e9b"/><link linkend="_interface_x_c_project">XCProject</link> * <emphasis role="strong">parentProject</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1acce7c006ddf1978a968ec9a9e49be358"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_sub_project_definition_1a76bb73ad50d92eb16225b774428b1723"/>NSString * <emphasis role="strong">fullProjectPath</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCSubProjectDefinition.hXCSubProjectDefinition.m</section>
diff --git a/doc/docbook/interface_x_c_sub_project_definition_tests.png b/doc/docbook/interface_x_c_sub_project_definition_tests.png
new file mode 100644
index 0000000..0cddc38
Binary files /dev/null and b/doc/docbook/interface_x_c_sub_project_definition_tests.png differ
diff --git a/doc/docbook/interface_x_c_sub_project_definition_tests.xml b/doc/docbook/interface_x_c_sub_project_definition_tests.xml
new file mode 100644
index 0000000..8d6715d
--- /dev/null
+++ b/doc/docbook/interface_x_c_sub_project_definition_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_sub_project_definition_tests" xml:lang="en-US">
+<title>XCSubProjectDefinitionTests Class Reference</title>
+<indexterm><primary>XCSubProjectDefinitionTests</primary></indexterm>
+<para>Inheritance diagram for XCSubProjectDefinitionTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_sub_project_definition_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCSubProjectDefinitionTests.m</section>
diff --git a/doc/docbook/interface_x_c_target.png b/doc/docbook/interface_x_c_target.png
new file mode 100644
index 0000000..551c399
Binary files /dev/null and b/doc/docbook/interface_x_c_target.png differ
diff --git a/doc/docbook/interface_x_c_target.xml b/doc/docbook/interface_x_c_target.xml
new file mode 100644
index 0000000..0395c36
--- /dev/null
+++ b/doc/docbook/interface_x_c_target.xml
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_target" xml:lang="en-US">
+<title>XCTarget Class Reference</title>
+<indexterm><primary>XCTarget</primary></indexterm>
+<para>
+<computeroutput>#import &lt;XCTarget.h&gt;</computeroutput>
+</para>
+<para>Inheritance diagram for XCTarget:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_target.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1afad674edc98884edb24f090b5d378e31"/>(id) - <emphasis role="strong">initWithProject:key:name:productName:productReference:productType:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1ab8e51f2d194a3e5d49cfe21b1a4f2988"/>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <emphasis role="strong">resources</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1abeef4fa09df4f49cf068688fada18f36"/>(NSArray&lt; id&lt; <link linkend="_protocol_x_c_build_file-p">XCBuildFile</link> &gt; &gt; *) - <emphasis role="strong">members</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a8f874868fd7f7abec6f901abe9b360fc"/>(NSArray&lt; <link linkend="_interface_x_c_build_shell_script">XCBuildShellScript</link> * &gt; *) - <emphasis role="strong">buildShellScripts</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1aca1ec28004d29928d3eac511e25da744"/>(NSDictionary&lt; NSString *, <link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> * &gt; *) - <emphasis role="strong">configurations</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a37f0c80efa42c78224b6b3e802e2dfc3"/>(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> *) - <emphasis role="strong">configurationWithName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a8de328b2d78a913fe647eeae916e6953"/>(<link linkend="_interface_x_c_project_build_config">XCProjectBuildConfig</link> *) - <emphasis role="strong">defaultConfiguration</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a4772a23624ec530a93df654bd898cb64"/>(void) - <emphasis role="strong">addMember:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a7cf3b7f36adbe8f3fc8dd025fcb4f439"/>(void) - <emphasis role="strong">makeAndAddShellScript:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a6f33f5bdc159aa797a75b93af71d4365"/>(void) - <emphasis role="strong">removeShellScriptByName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a3aaed35866dc400d4b88e79ee9717b36"/>(void) - <emphasis role="strong">removeMemberWithKey:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a1a8fb69f0caceadc054e6826465fecf7"/>(void) - <emphasis role="strong">removeMembersWithKeys:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1af0c91f3ee07278742e9a0a7fa3374db7"/>(void) - <emphasis role="strong">removeResourceWithKey:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a7762ceb98c4f5f8005988378cb03bb6e"/>(void) - <emphasis role="strong">removeResourcesWithKeys:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1afa9f6565fa69e8f456312435903816f5"/>(void) - <emphasis role="strong">addDependency:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1afec49a376a2f4856cda389ab5ad3e604"/>(instancetype) - <emphasis role="strong">duplicateWithTargetName:productName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a3b89d4c5550b832921fc5efc52ff41cd"/>(BOOL) - <emphasis role="strong">isApplicationType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1ae48bbab918d1fe83afb0abac701224ab"/>(<link linkend="_interface_x_c_target">XCTarget</link> *) + <emphasis role="strong">targetWithProject:key:name:productName:productReference:productType:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a1eb6b30e6683e053774fe99e71467263"/><link linkend="_interface_x_c_project">XCProject</link> * <emphasis role="strong">_project</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a8150da4d6b50ee82d9c34069560c0755"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1ad0d40c5cb0fe2d9495fd07d7575cb3c9"/>NSString * <emphasis role="strong">_name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a95f516c6e639d53e399d2f1453017ed0"/>NSString * <emphasis role="strong">_productName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a6e35f7e1a3b65198b62d8e7b9cd43bcf"/>NSString * <emphasis role="strong">_productReference</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1ad6e0170a3c489e63b073d1f273e26c36"/>NSString * <emphasis role="strong">_productType</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1ab2630c299a5e77c0dcc9d9f134d98e40"/>NSString * <emphasis role="strong">_defaultConfigurationName</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a72e25adbcc07cf3df26734321465d926"/>NSString * <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a7a5f548eb9e5dd17334bce543ce76a20"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a5dc8a5b6b476e7adacd0d7d3b57e3660"/>NSString * <emphasis role="strong">productName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1acc530e4c19cd4a6a73595cdd3d5ec4cb"/>NSString * <emphasis role="strong">productReference</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_target_1a132365ae8379582e0f5ee3b45f9849f9"/>NSString * <emphasis role="strong">productType</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Detailed Description</title>
+
+<para>Represents a target in an xcode project. </para>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCTarget.hXCTarget.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_target_tests.png b/doc/docbook/interface_x_c_target_tests.png
new file mode 100644
index 0000000..61c2d1a
Binary files /dev/null and b/doc/docbook/interface_x_c_target_tests.png differ
diff --git a/doc/docbook/interface_x_c_target_tests.xml b/doc/docbook/interface_x_c_target_tests.xml
new file mode 100644
index 0000000..5032a4d
--- /dev/null
+++ b/doc/docbook/interface_x_c_target_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_target_tests" xml:lang="en-US">
+<title>XCTargetTests Class Reference</title>
+<indexterm><primary>XCTargetTests</primary></indexterm>
+<para>Inheritance diagram for XCTargetTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_target_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XCTargetTests.m</section>
diff --git a/doc/docbook/interface_x_c_version_group.png b/doc/docbook/interface_x_c_version_group.png
new file mode 100644
index 0000000..51380cc
Binary files /dev/null and b/doc/docbook/interface_x_c_version_group.png differ
diff --git a/doc/docbook/interface_x_c_version_group.xml b/doc/docbook/interface_x_c_version_group.xml
new file mode 100644
index 0000000..61cce00
--- /dev/null
+++ b/doc/docbook/interface_x_c_version_group.xml
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_version_group" xml:lang="en-US">
+<title>XCVersionGroup Class Reference</title>
+<indexterm><primary>XCVersionGroup</primary></indexterm>
+<para>Inheritance diagram for XCVersionGroup:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_version_group.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1af213f9c00a675f35026b80085ad94aa0"/>(id) - <emphasis role="strong">initWithProject:key:path:children:currentVersion:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a13ebb5e30e489a4fa4740b2f34c8883f"/>(void) - <emphasis role="strong">removeFromParentGroup</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a661019987c21b0b3d8d65710ab25f5ec"/>(void) - <emphasis role="strong">removeFromParentDeletingChildren:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a98addd255bf7c092b89e278d2a872dee"/>(<link linkend="_interface_x_c_group">XCGroup</link> *) - <emphasis role="strong">parentGroup</emphasis></para>
+</listitem>
+            <listitem><para>(void) - <link linkend="_interface_x_c_version_group_1a95f29cd0630223ec7273c3c98c669b37">addDataModelSource:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a03df67da6147478982e1b1cf7b8f8f41"/>(NSArray&lt; <link linkend="_interface_x_c_source_file">XCSourceFile</link> * &gt; *) - <emphasis role="strong">members</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a3fb5d4fe976d45f1c31dde0f8bd635fa"/>(NSArray&lt; NSString * &gt; *) - <emphasis role="strong">buildFileKeys</emphasis></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) - <link linkend="_interface_x_c_version_group_1a80b556d4c32df75d842e15ca1e64b2cd">memberWithKey:</link></para>
+</listitem>
+            <listitem><para>(<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) - <link linkend="_interface_x_c_version_group_1a162fb995f778781d25e2c94cd242a1d6">memberWithDisplayName:</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a21f2d321fdfbde3a982db53bac486a25"/>(NSDictionary *) - <emphasis role="strong">asDictionary</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a54ef892c65df40da1bdde4642d2a3dc1"/>(<link linkend="_interface_x_c_version_group">XCVersionGroup</link> *) + <emphasis role="strong">versionGroupWithProject:key:path:children:currentVersion:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a80e4bc62286f79aee7dd98295d5df963"/>NSString * <emphasis role="strong">_pathRelativeToParent</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a17f1e0eb958b4c0501480fa138ba8aed"/>NSString * <emphasis role="strong">_key</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para>NSString * <link linkend="_interface_x_c_version_group_1afd3e95e73e576b608f6f5e2416898885">alias</link></para>
+</listitem>
+            <listitem><para>NSString * <link linkend="_interface_x_c_version_group_1af93e68eb50e9c368f2f94b1e3e81ef5b">pathRelativeToParent</link></para>
+</listitem>
+            <listitem><para>NSString * <link linkend="_interface_x_c_version_group_1acf4f1652b83fc6cc7fc3165d65c7655c">key</link></para>
+</listitem>
+            <listitem><para>NSMutableArray * <link linkend="_interface_x_c_version_group_1ac094cb0b196c580cbac574781a642d0c">versions</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_version_group_1a338bab4567342ddc6ff152304876a5c2"/>NSString * <emphasis role="strong">currentVersion</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_interface_x_c_version_group_1a95f29cd0630223ec7273c3c98c669b37"/><section>
+    <title>addDataModelSource:</title>
+<indexterm><primary>addDataModelSource:</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>addDataModelSource:</secondary></indexterm>
+<para><computeroutput>- (void) addDataModelSource: (<link linkend="_interface_x_c_source_file_definition">XCSourceFileDefinition</link>*) sourceFileDefinition</computeroutput></para>
+<para>Adds a source file. The only valid file type is XCDataModel </para>
+</section>
+<anchor xml:id="_interface_x_c_version_group_1a162fb995f778781d25e2c94cd242a1d6"/><section>
+    <title>memberWithDisplayName:</title>
+<indexterm><primary>memberWithDisplayName:</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>memberWithDisplayName:</secondary></indexterm>
+<para><computeroutput>- (id&lt; <link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> &gt;) memberWithDisplayName: (NSString*) name</computeroutput></para>
+<para>Returns the child with the specified name, or nil. </para>
+</section>
+<anchor xml:id="_interface_x_c_version_group_1a80b556d4c32df75d842e15ca1e64b2cd"/><section>
+    <title>memberWithKey:</title>
+<indexterm><primary>memberWithKey:</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>memberWithKey:</secondary></indexterm>
+<para><computeroutput>- (<link linkend="_interface_x_c_source_file">XCSourceFile</link> *) memberWithKey: (NSString*) key</computeroutput></para>
+<para>Returns the child with the specified key, or nil. </para>
+</section>
+</section>
+<section>
+<title>Property Documentation</title>
+<anchor xml:id="_interface_x_c_version_group_1afd3e95e73e576b608f6f5e2416898885"/><section>
+    <title>alias</title>
+<indexterm><primary>alias</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>alias</secondary></indexterm>
+<para><computeroutput>- (NSString*) alias<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The alias of the group, which can be used to give the group a name other than the last path component.</para>
+
+<para>See: [<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> displayName] </para>
+</section>
+<anchor xml:id="_interface_x_c_version_group_1acf4f1652b83fc6cc7fc3165d65c7655c"/><section>
+    <title>key</title>
+<indexterm><primary>key</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>key</secondary></indexterm>
+<para><computeroutput>- (NSString*) key<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The group&apos;s unique key. </para>
+</section>
+<anchor xml:id="_interface_x_c_version_group_1af93e68eb50e9c368f2f94b1e3e81ef5b"/><section>
+    <title>pathRelativeToParent</title>
+<indexterm><primary>pathRelativeToParent</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>pathRelativeToParent</secondary></indexterm>
+<para><computeroutput>- (NSString*) pathRelativeToParent<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>The path of the group relative to the group&apos;s parent.</para>
+
+<para>See: [<link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link> displayName] </para>
+</section>
+<anchor xml:id="_interface_x_c_version_group_1ac094cb0b196c580cbac574781a642d0c"/><section>
+    <title>versions</title>
+<indexterm><primary>versions</primary><secondary>XCVersionGroup</secondary></indexterm>
+<indexterm><primary>XCVersionGroup</primary><secondary>versions</secondary></indexterm>
+<para><computeroutput>- (NSMutableArray*) versions<computeroutput>[read]</computeroutput>, <computeroutput>[nonatomic]</computeroutput>, <computeroutput>[strong]</computeroutput></computeroutput></para>
+<para>An array containing the groups members as <computeroutput><link linkend="_protocol_xcode_group_member-p">XcodeGroupMember</link></computeroutput> types. </para>
+</section>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCVersionGroup.hXCVersionGroup.m</section>
+</section>
diff --git a/doc/docbook/interface_x_c_xib_definition.png b/doc/docbook/interface_x_c_xib_definition.png
new file mode 100644
index 0000000..4e4c450
Binary files /dev/null and b/doc/docbook/interface_x_c_xib_definition.png differ
diff --git a/doc/docbook/interface_x_c_xib_definition.xml b/doc/docbook/interface_x_c_xib_definition.xml
new file mode 100644
index 0000000..d6d6ef5
--- /dev/null
+++ b/doc/docbook/interface_x_c_xib_definition.xml
@@ -0,0 +1,53 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_x_c_xib_definition" xml:lang="en-US">
+<title>XCXibDefinition Class Reference</title>
+<indexterm><primary>XCXibDefinition</primary></indexterm>
+<para>Inheritance diagram for XCXibDefinition:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_x_c_xib_definition.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1a71e9133c2f6014f5154f6b41429e394f"/>(id) - <emphasis role="strong">initWithName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1a6f4cc949c68e9f1a392c81c59584af50"/>(id) - <emphasis role="strong">initWithName:content:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1a95d72d783aeb130c4a97cfe47c242d9f"/>(NSString *) - <emphasis role="strong">xibFileName</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Class Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1a0f0fed96387cac92a17a6f96cee1ae07"/>(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link> *) + <emphasis role="strong">xibDefinitionWithName:</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1ad004842851fa976f83f8fadbdb15ed2a"/>(<link linkend="_interface_x_c_xib_definition">XCXibDefinition</link> *) + <emphasis role="strong">xibDefinitionWithName:content:</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Protected Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1ac1fd23a99294381d23b2ae23e3844e20"/>NSString * <emphasis role="strong">_name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1ac2364849c0ed680d1f30c2c2b9b93171"/>NSString * <emphasis role="strong">_content</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<simplesect>
+    <title>Properties    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1a2e3bf501465d4879ea9f64d32d10ac08"/>NSString * <emphasis role="strong">name</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_interface_x_c_xib_definition_1ac58c8587af4f2f984114c2da51abd825"/>NSString * <emphasis role="strong">content</emphasis></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this class was generated from the following files:</para>
+XCXibDefinition.hXCXibDefinition.m</section>
diff --git a/doc/docbook/interface_xcode_file_reference_type_tests.png b/doc/docbook/interface_xcode_file_reference_type_tests.png
new file mode 100644
index 0000000..2a87738
Binary files /dev/null and b/doc/docbook/interface_xcode_file_reference_type_tests.png differ
diff --git a/doc/docbook/interface_xcode_file_reference_type_tests.xml b/doc/docbook/interface_xcode_file_reference_type_tests.xml
new file mode 100644
index 0000000..d9ceea6
--- /dev/null
+++ b/doc/docbook/interface_xcode_file_reference_type_tests.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_interface_xcode_file_reference_type_tests" xml:lang="en-US">
+<title>XcodeFileReferenceTypeTests Class Reference</title>
+<indexterm><primary>XcodeFileReferenceTypeTests</primary></indexterm>
+<para>Inheritance diagram for XcodeFileReferenceTypeTests:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="interface_xcode_file_reference_type_tests.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<para>
+The documentation for this class was generated from the following file:</para>
+XcodeFileReferenceTypeTests.m</section>
diff --git a/doc/docbook/md__r_e_a_d_m_e.xml b/doc/docbook/md__r_e_a_d_m_e.xml
new file mode 100644
index 0000000..659b9eb
--- /dev/null
+++ b/doc/docbook/md__r_e_a_d_m_e.xml
@@ -0,0 +1,273 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_md__r_e_a_d_m_e" xml:lang="en-US">
+
+<para>An API for manipulating Xcode project files.</para>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md1">
+<title>Usage</title>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md2">
+<title>Adding Source Files to a Project</title>
+
+<para><literallayout><computeroutput>XCProject*&#32;project&#32;=&#32;[[XCProject&#32;alloc]&#32;initWithFilePath:@&quot;MyProject.xcodeproj&quot;];
+XCGroup*&#32;group&#32;=&#32;[project&#32;groupWithPathFromRoot:@&quot;Main&quot;];
+XCClassDefinition*&#32;classDefinition&#32;=&#32;[[XCClassDefinition&#32;alloc]&#32;initWithName:@&quot;MyNewClass&quot;];
+[classDefinition&#32;setHeader:@&quot;&lt;some-header-text&gt;&quot;];
+[classDefinition&#32;setSource:@&quot;&lt;some-impl-text&gt;&quot;];
+
+[group&#32;addClass:classDefinition];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md3">
+<title>Duplicating Targets</title>
+
+<para>It will be added to project as well.</para>
+
+<para><literallayout><computeroutput>XCTarget*&#32;target&#32;=&#32;[project&#32;targetWithName:@&quot;SomeTarget&quot;];
+XCTarget*&#32;duplicated&#32;=&#32;[target&#32;duplicateWithTargetName:@&quot;DuplicatedTarget&quot;&#32;productName:@&quot;NewProduct&quot;];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md4">
+<title>Specifying Source File Belongs to Target</title>
+
+<para><literallayout><computeroutput>XCSourceFile*&#32;sourceFile&#32;=&#32;[project&#32;fileWithName:@&quot;MyNewClass.m&quot;];
+XCTarget*&#32;examples&#32;=&#32;[project&#32;targetWithName:@&quot;Examples&quot;];
+[examples&#32;addMember:sourceFile];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md5">
+<title>Adding a Xib File</title>
+
+<para>This time, we&apos;ll use a convenience method on <link linkend="_interface_x_c_group">XCGroup</link> to specify the targets at the same time:</para>
+
+<para><literallayout><computeroutput>XCXibDefinition*&#32;xibDefinition&#32;=&#32;[[XCXibDefinition&#32;alloc]&#32;initWithName:@&quot;MyXibFile&quot;&#32;content:@&quot;&lt;xibXml&gt;&quot;];
+[group&#32;addXib:xibDefinition&#32;toTargets:[project&#32;targets]];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md6">
+<title>Adding a Framework</title>
+
+<para><literallayout><computeroutput>XCFrameworkDefinition*&#32;frameworkDefinition&#32;=
+&#32;&#32;&#32;&#32;[[XCFrameworkDefinition&#32;alloc]&#32;initWithFilePath:@&quot;&lt;framework&#32;path&gt;&quot;&#32;copyToDestination:NO];
+[group&#32;addFramework:frameworkDefinition&#32;toTargets:[project&#32;targets]];
+[project&#32;save];
+</computeroutput></literallayout> Setting copyToDestination to YES, will cause the framework to be first copied to the group&apos;s directory within the project, and subsequently linked from there.</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md7">
+<title>Adding an Image Resource</title>
+
+<para><literallayout><computeroutput>XCSourceFileDefinition*&#32;sourceFileDefinition&#32;=&#32;[[XCSourceFileDefinition&#32;alloc]
+&#32;&#32;&#32;&#32;initWithName:@&quot;MyImageFile.png&quot;&#32;data:[NSData&#32;dataWithContentsOfFile:&lt;your&#32;image&#32;file&#32;name&gt;]
+&#32;&#32;&#32;&#32;type:ImageResourcePNG];
+
+[group&#32;addSourceFile:sourceFileDefinition];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md8">
+<title>Adding Asset Catalog (ImageSet)</title>
+
+<para><literallayout><computeroutput>XCSourceFileDefinition*&#32;sourceFileDefinition&#32;=&#32;[XCSourceFileDefinition&#32;sourceDefinitionWithAssetCatalogName:&lt;path&#32;to&#32;asset&#32;catalog&gt;];
+
+[group&#32;addSourceFile:sourceFileDefinition];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md9">
+<title>Adding a Header</title>
+
+<para><literallayout><computeroutput>XCSourceFileDefinition*&#32;header&#32;=&#32;[[XCSourceFileDefinition&#32;alloc]
+&#32;&#32;&#32;&#32;initWithName:@&quot;SomeHeader.h&quot;&#32;text:&lt;your&#32;header&#32;text&gt;&#32;type:SourceCodeHeader];
+
+[group&#32;addSourceFile:header];
+[project&#32;save];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md10">
+<title>Adding a sub-project</title>
+
+<para><literallayout><computeroutput>subProjectDefinition&#32;=&#32;[XCSubProjectDefinition&#32;withName:@&quot;mySubproject&quot;&#32;projPath=@&quot;/Path/To/Subproject&quot;&#32;type:XcodeProject];
+[group&#32;addSubProject:subProjectDefinition&#32;toTargets:[project&#32;targets]];
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md11">
+<title>Removing a sub-project</title>
+
+<para><literallayout><computeroutput>[group&#32;removeSubProject:subProjectDefinition];&#32;&#32;//TODO:&#32;project&#32;should&#32;be&#32;able&#32;to&#32;remove&#32;itself&#32;from&#32;parent.
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md12">
+<title>Configuring targets</title>
+
+<para>We can add/update linker flags, header search paths, C-flags, etc to a target. Here we&apos;ll add header search paths:</para>
+
+<para><literallayout><computeroutput>XCTarget*&#32;target&#32;=&#32;[_project&#32;targetWithName:_projectName];
+for&#32;(NSString*&#32;configName&#32;in&#32;[target&#32;configurations])
+{
+&#32;&#32;&#32;&#32;XCBuildConfiguration*&#32;configuration&#32;=&#32;[target&#32;configurationWithName:configName];
+&#32;&#32;&#32;&#32;NSMutableArray*&#32;headerPaths&#32;=&#32;[[NSMutableArray&#32;alloc]&#32;init];
+&#32;&#32;&#32;&#32;[headerPaths&#32;addObject:@&quot;$(inherited)&quot;];
+&#32;&#32;&#32;&#32;[headerPaths&#32;addObject:@&quot;$(SRCROOT)/include&quot;];&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;
+&#32;&#32;&#32;&#32;[configuration&#32;addOrReplaceSetting:headerPaths&#32;forKey:@&quot;HEADER_SEARCH_PATHS&quot;];
+}
+</computeroutput></literallayout></para>
+
+<para>. . . these settings are added by key, as they would appear in a make file. (Xcode provides more human friendly descriptions). To find the key for a given build setting, consult the compiler docs. Common settings are:</para>
+
+<para><itemizedlist>
+<listitem>
+<para>HEADER_SEARCH_PATHS</para>
+</listitem><listitem>
+<para>OTHER_LD_FLAGS</para>
+</listitem><listitem>
+<para>CLANG_CXX_LANGUAGE_STANDARD</para>
+</listitem><listitem>
+<para>CODE_SIGN_IDENTITY</para>
+</listitem><listitem>
+<para>GCC_C_LANGUAGE_STANDARD</para>
+</listitem><listitem>
+<para>INFOPLIST_FILE</para>
+</listitem><listitem>
+<para>LIBRARY_SEARCH_PATHS</para>
+</listitem><listitem>
+<para>PRODUCT_NAME</para>
+</listitem><listitem>
+<para>PROVISIONING_PROFILE</para>
+</listitem></itemizedlist>
+</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md13">
+<title>Adding a Library</title>
+
+<para><literallayout><computeroutput>XCSourceFile&#32;*&#32;libSourceFile&#32;=&#32;[project&#32;fileWithName:@&quot;libAmazing.a&quot;];
+
+XCTarget*&#32;target&#32;=&#32;[project&#32;targetWithName:self.mProject.projectName];
+[target&#32;addMember:libSourceFile];
+
+for&#32;(NSString*&#32;configName&#32;in&#32;[target&#32;configurations])&#32;{
+&#32;&#32;&#32;&#32;XCProjectBuildConfig*&#32;configuration&#32;=&#32;[target&#32;configurationWithName:configName];
+&#32;&#32;&#32;&#32;NSMutableArray*&#32;headerPaths&#32;=&#32;[[NSMutableArray&#32;alloc]&#32;init];
+&#32;&#32;&#32;&#32;[headerPaths&#32;addObject:@&quot;$(inherited)&quot;];
+&#32;&#32;&#32;&#32;[headerPaths&#32;addObject:@&quot;$(PROJECT_DIR)/Amazing&quot;];
+&#32;&#32;&#32;&#32;[configuration&#32;addOrReplaceSetting:headerPaths&#32;forKey:@&quot;LIBRARY_SEARCH_PATHS&quot;];
+}
+</computeroutput></literallayout></para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md14">
+<title>File write behavior</title>
+
+<para><literallayout><computeroutput>//Creates&#32;the&#32;reference&#32;in&#32;the&#32;project&#32;and&#32;writes&#32;the&#32;contents&#32;to&#32;disk.&#32;If&#32;a&#32;file&#32;already&#32;exists&#32;at&#32;the&#32;
+//specified&#32;location,&#32;its&#32;contents&#32;will&#32;be&#32;updated.
+[definition&#32;setFileOperationStyle:FileOperationStyleOverwrite];&#32;
+</computeroutput></literallayout></para>
+
+<para><literallayout><computeroutput>//Creates&#32;the&#32;reference&#32;in&#32;the&#32;project.&#32;If&#32;a&#32;file&#32;already&#32;exists&#32;at&#32;the&#32;specified&#32;location,&#32;the&#32;contents&#32;will&#32;
+//not&#32;be&#32;updated.
+[definition&#32;setFileOperationStyle:FileOperationStyleAcceptExisting];&#32;
+</computeroutput></literallayout></para>
+
+<para><literallayout><computeroutput>//Creates&#32;the&#32;reference&#32;in&#32;the&#32;project,&#32;but&#32;does&#32;not&#32;write&#32;to&#32;disk.&#32;The&#32;filesystem&#32;is&#32;expected&#32;to&#32;be&#32;updated&#32;
+//through&#32;some&#32;other&#32;means.
+[definition&#32;setFileOperationStyle:FileOperationStyleReferenceOnly];&#32;
+</computeroutput></literallayout></para>
+</section>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md15">
+<title>Building</title>
+
+<para>Open the project in XCode and choose Product/Build. Alternatively install with CocoaPods.</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md16">
+<title>Feature Requests and Contributions</title>
+
+<para>. . . are very welcome.</para>
+
+<para>If you&apos;re using the API shoot me an email and tell me what you&apos;re doing with it.</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md17">
+<title>Compatibility</title>
+
+<para><itemizedlist>
+<listitem>
+<para>Xcode-editor has been tested on Xcode 4+. It should also work on earlier versions of Xcode.</para>
+</listitem><listitem>
+<para>The AppCode IDE from JetBrains is now supported too!</para>
+</listitem><listitem>
+<para>Supports both ARC and MRR modes of memory management.</para>
+</listitem></itemizedlist>
+</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md18">
+<title>Who&apos;s using it?</title>
+
+<para><itemizedlist>
+<listitem>
+<para><link xlink:href="http://www.apportable.com">Apportable</link> : Develop Android applications using Xcode, Objective-C and Cocoa APIs</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/calabash/calabash-ios">Xamarin</link>: The Calabash automated functional testing for mobile applications.</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/markohlebar/Peckham">Peckham</link> : A great plugin for managing Xcode imports</para>
+</listitem><listitem>
+<para><link xlink:href="http://www.levelhelper.org">Level Helper</link>: A RAD framework for developing 2D games on iOS &amp; Android.</para>
+</listitem><listitem>
+<para><link xlink:href="http://macromates.com/">Text Mate</link>: The missing Text Editor for OSX.</para>
+</listitem></itemizedlist>
+</para>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md19">
+<title>Authors</title>
+
+<para><itemizedlist>
+<listitem>
+<para><link xlink:href="http://ph.linkedin.com/pub/jasper-blues/8/163/778">Jasper Blues</link> - <link xlink:href="mailto:jasper@appsquick.ly?Subject=xcode-editor">jasper@appsquick.ly</link></para>
+</listitem></itemizedlist>
+</para>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md20">
+<title>With contributions from:</title>
+
+<para><itemizedlist>
+<listitem>
+<para><link xlink:href="https://github.com/cncool">Connor Duggan</link> - lots of bug fixes, maintenance and enhancements.</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/smirn0v">Alexander Smirnov</link> - Cleaned up, generalized and contributed back the changes from the Calabash fork.</para>
+</listitem><listitem>
+<para>Zach Drayer - lots of fixes and features to support TextMate.</para>
+</listitem><listitem>
+<para>Janine Ohmer - support adding and removing sub-projects (<link xlink:href="http://www.synapticats.com">http://www.synapticats.com</link>).</para>
+</listitem><listitem>
+<para>Bogdan Vladu - support adding and removing groups (www.levelhelper.org).</para>
+</listitem><listitem>
+<para>Chris Ross of Hidden Memory (<link xlink:href="http://www.hiddenmemory.co.uk/">http://www.hiddenmemory.co.uk/</link>)</para>
+</listitem><listitem>
+<para>Paul Taykalo</para>
+</listitem><listitem>
+<para>Vladislav Alekseev</para>
+</listitem><listitem>
+<para>Felix Schneider - bug fixes.</para>
+</listitem><listitem>
+<para>Isak Sky - mutable XCSourceFiles.</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/hartman">Derk-Jan Hartman</link> : Adding folder references, by-file compiler flags.</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/StoneSpb">StoneSpb</link> : Speed improvements</para>
+</listitem><listitem>
+<para><link xlink:href="https://github.com/cezheng">Ce Zheng</link> : Fixes relating to Xcode 7, xcconfig support and others.</para>
+</listitem></itemizedlist>
+</para>
+
+<para>Thanks!</para>
+</section>
+</section>
+<section xml:id="_md__r_e_a_d_m_e_1autotoc_md21">
+<title>LICENSE</title>
+
+<para>Apache License, Version 2.0, January 2004, <link xlink:href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</link></para>
+
+<para><itemizedlist>
+<listitem>
+<para>© 2011 - 2012 Jasper Blues and contributors. </para>
+</listitem></itemizedlist>
+</para>
+</section>
+</section>
diff --git a/doc/docbook/protocol_x_c_build_file-p.png b/doc/docbook/protocol_x_c_build_file-p.png
new file mode 100644
index 0000000..8386d9e
Binary files /dev/null and b/doc/docbook/protocol_x_c_build_file-p.png differ
diff --git a/doc/docbook/protocol_x_c_build_file-p.xml b/doc/docbook/protocol_x_c_build_file-p.xml
new file mode 100644
index 0000000..198f9cc
--- /dev/null
+++ b/doc/docbook/protocol_x_c_build_file-p.xml
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_protocol_x_c_build_file-p" xml:lang="en-US">
+<title>&lt;XCBuildFile&gt; Protocol Reference</title>
+<indexterm><primary>&lt;XCBuildFile&gt;</primary></indexterm>
+<para>Inheritance diagram for &lt;XCBuildFile&gt;:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="protocol_x_c_build_file-p.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para>(void) - <link linkend="_protocol_x_c_build_file-p_1ab4cbac9982b3dc37e3444779c88eecbe">becomeBuildFile</link></para>
+</listitem>
+            <listitem><para><anchor xml:id="_protocol_x_c_build_file-p_1afe34a94cd11ba7fcd1b3c27cb837548b"/>(XcodeMemberType) - <emphasis role="strong">buildPhase</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_protocol_x_c_build_file-p_1a8d481e73a986d781537c68e3be24bdf4"/>(NSString *) - <emphasis role="strong">buildFileKey</emphasis></para>
+</listitem>
+            <listitem><para>(BOOL) - <link linkend="_protocol_x_c_build_file-p_1ae5882d46671f3891d484f6f5d293b4b4">isBuildFile</link></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_protocol_x_c_build_file-p_1ab4cbac9982b3dc37e3444779c88eecbe"/><section>
+    <title>becomeBuildFile</title>
+<indexterm><primary>becomeBuildFile</primary><secondary>&lt;XCBuildFile&gt;</secondary></indexterm>
+<indexterm><primary>&lt;XCBuildFile&gt;</primary><secondary>becomeBuildFile</secondary></indexterm>
+<para><computeroutput>- (void) becomeBuildFile  </computeroutput></para><para>
+Reimplemented in <link linkend="_interface_x_c_source_file_1a69feb820711a44a5d3adf4bc25669e37">XCSourceFile</link>.</para>
+</section>
+<anchor xml:id="_protocol_x_c_build_file-p_1ae5882d46671f3891d484f6f5d293b4b4"/><section>
+    <title>isBuildFile</title>
+<indexterm><primary>isBuildFile</primary><secondary>&lt;XCBuildFile&gt;</secondary></indexterm>
+<indexterm><primary>&lt;XCBuildFile&gt;</primary><secondary>isBuildFile</secondary></indexterm>
+<para><computeroutput>- (BOOL) isBuildFile  </computeroutput></para><para>
+Reimplemented in <link linkend="_interface_x_c_source_file_1a94f914a09f7abbbf3048a86ced9f7d10">XCSourceFile</link>.</para>
+</section>
+<para>
+The documentation for this protocol was generated from the following file:</para>
+XCBuildFile.h</section>
+</section>
diff --git a/doc/docbook/protocol_xcode_group_member-p.png b/doc/docbook/protocol_xcode_group_member-p.png
new file mode 100644
index 0000000..d34a9e6
Binary files /dev/null and b/doc/docbook/protocol_xcode_group_member-p.png differ
diff --git a/doc/docbook/protocol_xcode_group_member-p.xml b/doc/docbook/protocol_xcode_group_member-p.xml
new file mode 100644
index 0000000..a9af4e8
--- /dev/null
+++ b/doc/docbook/protocol_xcode_group_member-p.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_protocol_xcode_group_member-p" xml:lang="en-US">
+<title>&lt;XcodeGroupMember&gt; Protocol Reference</title>
+<indexterm><primary>&lt;XcodeGroupMember&gt;</primary></indexterm>
+<para>Inheritance diagram for &lt;XcodeGroupMember&gt;:    <informalfigure>
+        <mediaobject>
+            <imageobject>
+                <imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="protocol_xcode_group_member-p.png"></imagedata>
+            </imageobject>
+        </mediaobject>
+    </informalfigure>
+</para>
+<simplesect>
+    <title>Instance Methods    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_protocol_xcode_group_member-p_1a9c26d7fb8e5b8e9a70514cd82f17a753"/>(NSString *) - <emphasis role="strong">key</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_protocol_xcode_group_member-p_1aaa904107027b7f93f9770816ee6e9af4"/>(NSString *) - <emphasis role="strong">displayName</emphasis></para>
+</listitem>
+            <listitem><para><anchor xml:id="_protocol_xcode_group_member-p_1ace875c36516c8431fa545cdbd7539247"/>(NSString *) - <emphasis role="strong">pathRelativeToProjectRoot</emphasis></para>
+</listitem>
+            <listitem><para>(XcodeMemberType) - <link linkend="_protocol_xcode_group_member-p_1a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</link></para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<section>
+<title>Method Documentation</title>
+<anchor xml:id="_protocol_xcode_group_member-p_1a37e9e9f28d597028f66ae694b3efd1d8"/><section>
+    <title>groupMemberType</title>
+<indexterm><primary>groupMemberType</primary><secondary>&lt;XcodeGroupMember&gt;</secondary></indexterm>
+<indexterm><primary>&lt;XcodeGroupMember&gt;</primary><secondary>groupMemberType</secondary></indexterm>
+<para><computeroutput>- (XcodeMemberType) groupMemberType  </computeroutput></para>
+<para>Group members can either be other groups (PBXGroup) or source files (PBXFileReference). </para>
+</section>
+<para>
+The documentation for this protocol was generated from the following file:</para>
+XcodeGroupMember.h</section>
+</section>
diff --git a/doc/docbook/struct_hash_value_m_d5_hash.xml b/doc/docbook/struct_hash_value_m_d5_hash.xml
new file mode 100644
index 0000000..b03925e
--- /dev/null
+++ b/doc/docbook/struct_hash_value_m_d5_hash.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_struct_hash_value_m_d5_hash" xml:lang="en-US">
+<title>HashValueMD5Hash Struct Reference</title>
+<indexterm><primary>HashValueMD5Hash</primary></indexterm>
+<simplesect>
+    <title>Public Attributes    </title>
+        <itemizedlist>
+            <listitem><para><anchor xml:id="_struct_hash_value_m_d5_hash_1adc99db30c947c996c6e20aaed14e5a7b"/>char <emphasis role="strong">value</emphasis> [MD5_DIGEST_LENGTH]</para>
+</listitem>
+        </itemizedlist>
+</simplesect>
+<para>
+The documentation for this struct was generated from the following file:</para>
+XCKeyBuilder.h</section>
diff --git a/doc/html/_class_called_janine_8h_source.html b/doc/html/_class_called_janine_8h_source.html
new file mode 100644
index 0000000..75be9f0
--- /dev/null
+++ b/doc/html/_class_called_janine_8h_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: ClassCalledJanine.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li><li class="navelem"><a class="el" href="dir_0713b2bab752f4da4697c3a41b1a4c29.html">Resources</a></li><li class="navelem"><a class="el" href="dir_533f0ac04c4a2073642b0a2c15ebb302.html">Files</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">ClassCalledJanine.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span> </div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span> </div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"><a class="line" href="interface_class_called_janine.html">    4</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_class_called_janine.html">ClassCalledJanine</a> : NSObject</div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_class_called_janine_html"><div class="ttname"><a href="interface_class_called_janine.html">ClassCalledJanine</a></div><div class="ttdef"><b>Definition:</b> ClassCalledJanine.h:5</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_n_s_string_09_remove_emoji_8h_source.html b/doc/html/_n_s_string_09_remove_emoji_8h_source.html
new file mode 100644
index 0000000..6bb6add
--- /dev/null
+++ b/doc/html/_n_s_string_09_remove_emoji_8h_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: NSString+RemoveEmoji.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">NSString+RemoveEmoji.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span> </div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"><a class="line" href="category_n_s_string_07_remove_emoji_08.html">    3</a></span><span class="keyword">@interface </span><a class="code hl_category" href="category_n_s_string_07_remove_emoji_08.html">NSString (RemoveEmoji)</a></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span>- (BOOL)isIncludingEmoji;</div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span>- (instancetype)stringByRemovingEmoji;</div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span>- (instancetype)removedEmojiString __attribute__((deprecated));</div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="keyword">@end</span></div>
+<div class="ttc" id="acategory_n_s_string_07_remove_emoji_08_html"><div class="ttname"><a href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a></div><div class="ttdef"><b>Definition:</b> NSString+RemoveEmoji.h:3</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_abstract_definition_8h_source.html b/doc/html/_x_c_abstract_definition_8h_source.html
new file mode 100644
index 0000000..029f098
--- /dev/null
+++ b/doc/html/_x_c_abstract_definition_8h_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCAbstractDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCAbstractDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 - 2013 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>{</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>        XCFileOperationTypeOverwrite,</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>        XCFileOperationTypeAcceptExisting,</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>        XCFileOperationTypeReferenceOnly</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>} XCFileOperationType;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="interface_x_c_abstract_definition.html">   40</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a> : NSObject</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>{</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    XCFileOperationType _fileOperationType;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>}</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">@property</span>(nonatomic) XCFileOperationType fileOperationType;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_build_file_8h_source.html b/doc/html/_x_c_build_file_8h_source.html
new file mode 100644
index 0000000..399d59c
--- /dev/null
+++ b/doc/html/_x_c_build_file_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildFile.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildFile.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">//</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//  XCBuildFile.h</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  XcodeEditor</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  Created by joel on 01/02/16.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//  Copyright © 2016 appsquickly. All rights reserved.</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment">//#import &quot;XcodeMemberType.h&quot;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeMemberType.h&gt;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="protocol_x_c_build_file-p.html">   13</a></span><span class="keyword">@protocol </span><a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a> &lt;NSObject&gt;</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>- (void)becomeBuildFile;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>- (XcodeMemberType)buildPhase;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>- (NSString *)buildFileKey;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>- (BOOL)isBuildFile;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@end</span></div>
+<div class="ttc" id="aprotocol_x_c_build_file-p_html"><div class="ttname"><a href="protocol_x_c_build_file-p.html">XCBuildFile-p</a></div><div class="ttdef"><b>Definition:</b> XCBuildFile.h:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_build_shell_script_8h_source.html b/doc/html/_x_c_build_shell_script_8h_source.html
new file mode 100644
index 0000000..ed725d8
--- /dev/null
+++ b/doc/html/_x_c_build_shell_script_8h_source.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScript.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScript.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">//</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//  XCBuildShellScript.h</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  xcode-editor</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  Created by joel on 03/02/16.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeGroupMember.h&gt;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"><a class="line" href="interface_x_c_build_shell_script.html">   15</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a> : NSObject</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>{</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    NSString* _key;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*_project;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    BOOL _runOnlyForDeploymentPostprocessing;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    NSArray*_files;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    NSArray*_inputPaths;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    NSArray*_outputPaths;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    NSString*_name;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    NSString*_shellPath;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    NSString*_shellScript;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>}</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">@property</span>(nonatomic, strong, readonly,nonnull) NSString* key;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">@property</span>(nonatomic, strong, readonly,nonnull) NSString* name;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">@property</span>(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSString*shellScript;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSString*shellPath;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*files;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*inputPaths;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*outputPaths;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#pragma mark - Initialization &amp; Destruction</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>+ (<a class="code hl_class" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>*_Nonnull)shellScriptWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*_Nonnull)project</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>                                                  key:(NSString *_Nonnull)key</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>                                                 name:( NSString* _Nullable )name</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>                         files: (NSArray&lt;NSString*&gt;* _Nullable)files</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>                    inputPaths:(NSArray&lt;NSString*&gt;* _Nullable)inputPaths</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>                   outputPaths:(NSArray&lt;NSString*&gt;* _Nullable)outputPaths</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>                     shellPath:(NSString*_Nullable)shellPath</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>                   shellScript:(NSString*_Nonnull)shellScript;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>- (instancetype _Nonnull)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*_Nonnull)project</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>                                    key:(NSString *_Nonnull)key</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>                                    name:( NSString* _Nullable )name</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>                       files: (NSArray&lt;NSString*&gt;* _Nullable)files</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>                  inputPaths:(NSArray&lt;NSString*&gt;* _Nullable)inputPaths</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>                 outputPaths:(NSArray&lt;NSString*&gt;* _Nullable)outputPaths</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>                   shellPath:(NSString*_Nullable)shellPath</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>                 shellScript:(NSString*_Nonnull)shellScript;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_build_shell_script_html"><div class="ttname"><a href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></div><div class="ttdef"><b>Definition:</b> XCBuildShellScript.h:16</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_build_shell_script_definition_8h_source.html b/doc/html/_x_c_build_shell_script_definition_8h_source.html
new file mode 100644
index 0000000..95d8d27
--- /dev/null
+++ b/doc/html/_x_c_build_shell_script_definition_8h_source.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScriptDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScriptDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">//</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//  XCBuildShellScriptDefinition.h</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  xcode-editor</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  Created by joel on 03/02/16.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"><a class="line" href="interface_x_c_build_shell_script_definition.html">   12</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span>{</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span>    NSString* _key;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>    </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    BOOL _runOnlyForDeploymentPostprocessing;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    NSArray*_files;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    NSArray*_inputPaths;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    NSArray*_outputPaths;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    NSString*_name;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    NSString*_shellPath;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    NSString*_shellScript;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>}</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">@property</span>(nonatomic, strong, readonly,nonnull) NSString* key;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">@property</span>(nonatomic, strong, readonly,nonnull) NSString* name;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">@property</span>(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSString*shellScript;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSString*shellPath;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*files;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*inputPaths;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">@property</span>(nonatomic,nonnull,strong,readonly) NSArray&lt;NSString*&gt;*outputPaths;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#pragma mark - Initialization &amp; Destruction</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>+ (<a class="code hl_class" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>*_Nonnull)shellScriptDefinitionWithName:( NSString* _Nullable )name</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>                                             files: (NSArray&lt;NSString*&gt;* _Nullable)files</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>                                        inputPaths:(NSArray&lt;NSString*&gt;* _Nullable)inputPaths</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>                                       outputPaths:(NSArray&lt;NSString*&gt;* _Nullable)outputPaths</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>                runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>                                         shellPath:(NSString*_Nullable)shellPath</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>                                       shellScript:(NSString*_Nonnull)shellScript;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>- (instancetype _Nonnull)initWithName:( NSString* _Nullable )name</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>                                files: (NSArray&lt;NSString*&gt;* _Nullable)files</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>                           inputPaths:(NSArray&lt;NSString*&gt;* _Nullable)inputPaths</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>                          outputPaths:(NSArray&lt;NSString*&gt;* _Nullable)outputPaths</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>   runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>                            shellPath:(NSString*_Nullable)shellPath</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>                          shellScript:(NSString*_Nonnull)shellScript;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_build_shell_script_definition_html"><div class="ttname"><a href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></div><div class="ttdef"><b>Definition:</b> XCBuildShellScriptDefinition.h:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_class_definition_8h_source.html b/doc/html/_x_c_class_definition_8h_source.html
new file mode 100644
index 0000000..36d0bb6
--- /dev/null
+++ b/doc/html/_x_c_class_definition_8h_source.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCClassDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCClassDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 - 2013 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>{</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    ObjectiveC,</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    ObjectiveCPlusPlus,</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    CPlusPlus,</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>} ClassDefinitionLanguage;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="interface_x_c_class_definition.html">   23</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>{</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    NSString* _className;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    NSString* _header;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    NSString* _source;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    ClassDefinitionLanguage _language;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>}</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">@property</span>(strong, nonatomic, readonly) NSString* className;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">@property</span>(nonatomic, strong) NSString* header;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">@property</span>(nonatomic, strong) NSString* source;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>+ (<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinitionWithName:(NSString*)fileName;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>+ (<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinitionWithName:(NSString*)className language:(ClassDefinitionLanguage)language;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>- (id)initWithName:(NSString*)fileName;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>- (id)initWithName:(NSString*)className language:(ClassDefinitionLanguage)language;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>- (BOOL)isObjectiveC;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>- (BOOL)isObjectiveCPlusPlus;</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>- (BOOL)isCPlusPlus;</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>- (NSString*)headerFileName;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>- (NSString*)sourceFileName;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_class_definition_html"><div class="ttname"><a href="interface_x_c_class_definition.html">XCClassDefinition</a></div><div class="ttdef"><b>Definition:</b> XCClassDefinition.h:24</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_file_operation_queue_8h_source.html b/doc/html/_x_c_file_operation_queue_8h_source.html
new file mode 100644
index 0000000..23665f7
--- /dev/null
+++ b/doc/html/_x_c_file_operation_queue_8h_source.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFileOperationQueue.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFileOperationQueue.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="interface_x_c_file_operation_queue.html">   16</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a> : NSObject</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>{</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    NSString* _baseDirectory;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    NSMutableDictionary* _filesToWrite;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    NSMutableDictionary* _frameworksToCopy;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    NSMutableArray* _filesToDelete;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    NSMutableArray* _directoriesToCreate;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>}</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>- (id)initWithBaseDirectory:(NSString*)baseDirectory;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>- (BOOL)fileWithName:(NSString*)name existsInProjectDirectory:(NSString*)directory;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>- (void)queueTextFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSString*)contents;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>- (void)queueDataFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSData*)contents;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>- (void)queueFrameworkWithFilePath:(NSString*)filePath inDirectory:(NSString*)directory;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>- (void)queueDeletion:(NSString*)filePath;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>- (void)queueDirectory:(NSString*)withName inDirectory:(NSString*)parentDirectory;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>- (void)commitFileOperations;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="keyword">@end</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="ttc" id="ainterface_x_c_file_operation_queue_html"><div class="ttname"><a href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></div><div class="ttdef"><b>Definition:</b> XCFileOperationQueue.h:17</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_framework_definition_8h_source.html b/doc/html/_x_c_framework_definition_8h_source.html
new file mode 100644
index 0000000..976957c
--- /dev/null
+++ b/doc/html/_x_c_framework_definition_8h_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFrameworkDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFrameworkDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceTreeType.h&gt;</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="interface_x_c_framework_definition.html">   18</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>{</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    NSString* _filePath;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    BOOL _copyToDestination;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    XcodeSourceTreeType _sourceTree;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>}</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* filePath;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">@property</span>(nonatomic, readonly) BOOL copyToDestination;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">@property</span>(nonatomic, readonly) XcodeSourceTreeType sourceTree;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>+ (<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>+ (<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination sourceTree:(XcodeSourceTreeType)sourceTree;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>- (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>- (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>            sourceTree:(XcodeSourceTreeType)sourceTree;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>- (NSString*)fileName;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_framework_definition_html"><div class="ttname"><a href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></div><div class="ttdef"><b>Definition:</b> XCFrameworkDefinition.h:19</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_group_8h_source.html b/doc/html/_x_c_group_8h_source.html
new file mode 100644
index 0000000..3561a0e
--- /dev/null
+++ b/doc/html/_x_c_group_8h_source.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCGroup.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCGroup.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeGroupMember.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#import &lt;XcodeEditor/XCBuildFile.h&gt;</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="interface_x_c_group.html">   33</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_group.html">XCGroup</a> : NSObject &lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>, <a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>&gt;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>{</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    NSString* _pathRelativeToParent;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    NSString* _key;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    NSString* _alias;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>    NSString* _pathRelativeToProjectRoot;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>    NSMutableArray* _children;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>    NSMutableArray* _members;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>    NSNumber *_isBuildFile;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>    NSString *_buildFileKey;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>    <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>* _fileOperationQueue;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>* _project;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>    XcodeMemberType _memberType;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>}</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* alias;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac">   62</a></span> </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* pathRelativeToParent;</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a">   69</a></span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* key;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb">   74</a></span> </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSMutableArray&lt;id&lt;XcodeGroupMember&gt;&gt;* children;</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="interface_x_c_group.html#a122394632f69a66216a83cf4465827f5">   79</a></span> </div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span><span class="preprocessor">#pragma mark Initializers</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>+ (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray&lt;<span class="keywordtype">id</span>&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;&gt;*)children;</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>+ (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray&lt;<span class="keywordtype">id</span>&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;&gt;*)children memberType:(XcodeMemberType)groupType;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>- (id)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray&lt;<span class="keywordtype">id</span>&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;&gt;*)children;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>- (id)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray&lt;<span class="keywordtype">id</span>&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;&gt;*)children memberType:(XcodeMemberType)groupType;</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span><span class="preprocessor">#pragma mark Parent group</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>- (void)removeFromParentGroup;</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>- (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)parentGroup;</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>- (BOOL)isRootGroup;</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>- (BOOL)isEmpty;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span><span class="preprocessor">#pragma mark Adding children</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>- (void)addClass:(<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinition;</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>- (void)addClass:(<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinition toTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>- (void)removeClass:(<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinition fromTargets:(NSArray*)targets;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>- (void)removeHeader:(<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)classDefinition;</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>- (void)addFramework:(<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>*)frameworkDefinition;</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>- (void) removeFramework:(<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> *)frameworkDefinition fromTargets:(NSArray *)targets;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)addGroupWithPath:(NSString*)path;</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)addGroupWithAlias:(NSString *)alias;</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)addGroupWithAlias:(NSString *)alias groupType:(XcodeMemberType)type;</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>- (<a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>*)addVersionGroupWithPath:(NSString*)path;</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>- (void)addFolderReference:(NSString*)sourceFolder;</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>- (void)addFileReference:(NSString *)filePath withType:(XcodeSourceFileType)type;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>- (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)addFramework:(<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>*)framework toTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>- (void)addSourceFile:(<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)sourceFileDefinition;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>- (void)addXib:(<a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>*)xibDefinition;</div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>- (void)addXib:(<a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>*)xibDefinition toTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>- (void)addSubProject:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>*)projectDefinition;</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>- (void)addSubProject:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>*)projectDefinition toTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>- (void)removeSubProject:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>*)projectDefinition;</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>- (void)removeSubProject:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>*)projectDefinition fromTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span><span class="preprocessor">#pragma mark Locating children</span></div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>- (NSArray&lt;id&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;&gt;*)members;</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>- (NSArray&lt;NSString*&gt;*)recursiveMembers;</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>- (NSArray&lt;NSString*&gt;*)buildFileKeys;</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>- (<span class="keywordtype">id</span> &lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;)memberWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>- (<span class="keywordtype">id</span> &lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;)memberWithDisplayName:(NSString*)name;</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>- (void)removeMemberWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_class_definition_html"><div class="ttname"><a href="interface_x_c_class_definition.html">XCClassDefinition</a></div><div class="ttdef"><b>Definition:</b> XCClassDefinition.h:24</div></div>
+<div class="ttc" id="ainterface_x_c_file_operation_queue_html"><div class="ttname"><a href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></div><div class="ttdef"><b>Definition:</b> XCFileOperationQueue.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_framework_definition_html"><div class="ttname"><a href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></div><div class="ttdef"><b>Definition:</b> XCFrameworkDefinition.h:19</div></div>
+<div class="ttc" id="ainterface_x_c_group_html"><div class="ttname"><a href="interface_x_c_group.html">XCGroup</a></div><div class="ttdef"><b>Definition:</b> XCGroup.h:35</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_definition_html"><div class="ttname"><a href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSourceFileDefinition.h:19</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+<div class="ttc" id="ainterface_x_c_target_html"><div class="ttname"><a href="interface_x_c_target.html">XCTarget</a></div><div class="ttdef"><b>Definition:</b> XCTarget.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_version_group_html"><div class="ttname"><a href="interface_x_c_version_group.html">XCVersionGroup</a></div><div class="ttdef"><b>Definition:</b> XCVersionGroup.h:25</div></div>
+<div class="ttc" id="ainterface_x_c_xib_definition_html"><div class="ttname"><a href="interface_x_c_xib_definition.html">XCXibDefinition</a></div><div class="ttdef"><b>Definition:</b> XCXibDefinition.h:19</div></div>
+<div class="ttc" id="aprotocol_x_c_build_file-p_html"><div class="ttname"><a href="protocol_x_c_build_file-p.html">XCBuildFile-p</a></div><div class="ttdef"><b>Definition:</b> XCBuildFile.h:13</div></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html"><div class="ttname"><a href="protocol_xcode_group_member-p.html">XcodeGroupMember-p</a></div><div class="ttdef"><b>Definition:</b> XcodeGroupMember.h:16</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_key_builder_8h_source.html b/doc/html/_x_c_key_builder_8h_source.html
new file mode 100644
index 0000000..c545293
--- /dev/null
+++ b/doc/html/_x_c_key_builder_8h_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCKeyBuilder.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCKeyBuilder.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 - 2013 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#define HASH_VALUE_STORAGE_SIZE 48</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">#define MD5_DIGEST_LENGTH 16</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"><a class="line" href="struct_hash_value_m_d5_hash.html">   19</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>{</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    <span class="keywordtype">char</span> value[MD5_DIGEST_LENGTH];</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>} <a class="code hl_struct" href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="interface_x_c_key_builder.html">   25</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_key_builder.html">XCKeyBuilder</a> : NSObject</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> _value[HASH_VALUE_STORAGE_SIZE];</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>}</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>+ (<a class="code hl_class" href="interface_x_c_key_builder.html">XCKeyBuilder</a>*)forItemNamed:(NSString*)name;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>+ (<a class="code hl_class" href="interface_x_c_key_builder.html">XCKeyBuilder</a>*)createUnique;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>- (id)initHashValueMD5HashWithBytes:(const <span class="keywordtype">void</span>*)bytes length:(NSUInteger)length;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>- (NSString*)build;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">@end</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="ttc" id="ainterface_x_c_key_builder_html"><div class="ttname"><a href="interface_x_c_key_builder.html">XCKeyBuilder</a></div><div class="ttdef"><b>Definition:</b> XCKeyBuilder.h:26</div></div>
+<div class="ttc" id="astruct_hash_value_m_d5_hash_html"><div class="ttname"><a href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a></div><div class="ttdef"><b>Definition:</b> XCKeyBuilder.h:20</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_project_09_sub_project_8h_source.html b/doc/html/_x_c_project_09_sub_project_8h_source.html
new file mode 100644
index 0000000..e035a77
--- /dev/null
+++ b/doc/html/_x_c_project_09_sub_project_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProject+SubProject.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProject+SubProject.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XCProject.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="category_x_c_project_07_sub_project_08.html">   17</a></span><span class="keyword">@interface </span><a class="code hl_category" href="category_x_c_project_07_sub_project_08.html">XCProject (SubProject)</a></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>- (NSString *)referenceProxyKeyForName:(NSString *)name;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt; *)buildProductsForTargets:(NSString *)xcodeprojKey;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>- (void)addAsTargetDependency:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> *)xcodeprojDefinition toTargets:(NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>- (NSArray&lt;NSString*&gt; *)keysForProjectObjectsOfType:(XcodeMemberType)memberType withIdentifier:(NSString *)identifier</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    singleton:(BOOL)singleton required:(BOOL)required;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>- (NSMutableDictionary *)PBXProjectDict;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>- (void)removeProxies:(NSString *)xcodeprojKey;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>- (void)addProxies:(<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> *)xcodeproj;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>- (void)removeFromProjectReferences:(NSString *)key forProductsGroup:(NSString *)productsGroupKey;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>- (void)removeTargetDependencies:(NSString *)name;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>- (NSString *)containerItemProxyKeyForName:(NSString *)name proxyType:(NSString *)proxyType;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>- (NSString *)productsGroupKeyForKey:(NSString *)key;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@end</span></div>
+<div class="ttc" id="acategory_x_c_project_07_sub_project_08_html"><div class="ttname"><a href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></div><div class="ttdef"><b>Definition:</b> XCProject+SubProject.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+<div class="ttc" id="ainterface_x_c_target_html"><div class="ttname"><a href="interface_x_c_target.html">XCTarget</a></div><div class="ttdef"><b>Definition:</b> XCTarget.h:26</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_project_8h_source.html b/doc/html/_x_c_project_8h_source.html
new file mode 100644
index 0000000..333ec9e
--- /dev/null
+++ b/doc/html/_x_c_project_8h_source.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProject.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProject.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 - 2013 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeMemberType.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeGroupMember.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="interface_x_c_project.html">   26</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_project.html">XCProject</a> : NSObject</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>{</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">@protected</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>* _fileOperationQueue;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    NSString* _filePath;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    NSMutableDictionary* _dataStore;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    NSMutableArray* _targets;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    NSMutableDictionary* _groups;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    NSMutableDictionary* _versionGroups;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    NSMutableDictionary* _configurations;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    NSString* _defaultConfigurationName;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    NSString* _rootObjectKey;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>}</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@property</span>(nonatomic, strong, readonly) <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>* fileOperationQueue;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="preprocessor">#pragma mark - Initialization &amp; Destruction</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>+ (<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)projectWithFilePath:(NSString*)filePath;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>- (id)initWithFilePath:(NSString*)filePath;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span><span class="preprocessor">#pragma mark Groupd Member</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>- (id&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt;)groupMemberWithKey:(NSString *)key;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span><span class="preprocessor">#pragma mark Files</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)files;</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>- (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)fileWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>- (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)fileWithName:(NSString*)name;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)headerFiles;</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)objectiveCFiles;</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)objectiveCPlusPlusFiles;</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)xibFiles;</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)imagePNGFiles;</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>- (NSString*)filePath;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span><span class="preprocessor">#pragma mark Groups</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*&gt;*)groups;</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)rootGroup;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*&gt;*)rootGroups;</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a> *)mainGroup;</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithDisplayName:(NSString*)name;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithPathFromRoot:(NSString*)path;</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupForGroupMemberWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)groupWithSourceFile:(<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)sourceFile;</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>- (void)pruneEmptyGroups;</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span><span class="preprocessor">#pragma mark VersionGroups</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>- (NSArray*)versionGroups;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>- (<a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>*)versionGroupWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>- (<a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>*)versionGroupWithName:(NSString*)name;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span><span class="preprocessor">#pragma mark Targets</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*&gt;*)targets;</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>- (<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*)targetWithName:(NSString*)name;</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>- (NSArray*)applicationTargets;</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span><span class="preprocessor">#pragma mark Configurations</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>- (NSDictionary&lt;NSString*,<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>*&gt;*)configurations;</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>- (<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>*)configurationWithName:(NSString*)name;</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>- (<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)defaultConfiguration;</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span><span class="preprocessor">#pragma mark Deletion</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>- (void)removeObjectWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span><span class="preprocessor">#pragma mark Saving</span></div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>- (void)save;</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span><span class="comment">//-------------------------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span><span class="comment"></span>- (NSMutableDictionary*)objects;</div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>- (NSMutableDictionary*)dataStore;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>- (void)dropCache;</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_class_definition_html"><div class="ttname"><a href="interface_x_c_class_definition.html">XCClassDefinition</a></div><div class="ttdef"><b>Definition:</b> XCClassDefinition.h:24</div></div>
+<div class="ttc" id="ainterface_x_c_file_operation_queue_html"><div class="ttname"><a href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></div><div class="ttdef"><b>Definition:</b> XCFileOperationQueue.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_group_html"><div class="ttname"><a href="interface_x_c_group.html">XCGroup</a></div><div class="ttdef"><b>Definition:</b> XCGroup.h:35</div></div>
+<div class="ttc" id="ainterface_x_c_project_build_config_html"><div class="ttname"><a href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></div><div class="ttdef"><b>Definition:</b> XCProjectBuildConfig.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+<div class="ttc" id="ainterface_x_c_target_html"><div class="ttname"><a href="interface_x_c_target.html">XCTarget</a></div><div class="ttdef"><b>Definition:</b> XCTarget.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_version_group_html"><div class="ttname"><a href="interface_x_c_version_group.html">XCVersionGroup</a></div><div class="ttdef"><b>Definition:</b> XCVersionGroup.h:25</div></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html"><div class="ttname"><a href="protocol_xcode_group_member-p.html">XcodeGroupMember-p</a></div><div class="ttdef"><b>Definition:</b> XcodeGroupMember.h:16</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_project_build_config_8h_source.html b/doc/html/_x_c_project_build_config_8h_source.html
new file mode 100644
index 0000000..35dc089
--- /dev/null
+++ b/doc/html/_x_c_project_build_config_8h_source.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProjectBuildConfig.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProjectBuildConfig.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="interface_x_c_project_build_config.html">   16</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> : NSObject</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>{</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    __weak <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>* _project;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    NSString* _key;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    NSMutableDictionary* _buildSettings;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    NSMutableDictionary* _xcconfigSettings;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>}</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* key;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">@property</span>(nonatomic, readonly) NSDictionary* specifiedBuildSettings;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>+ (NSDictionary&lt;NSString*,NSString*&gt;*)buildConfigurationsFromArray:(NSArray&lt;<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>*&gt;*)array inProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>- (instancetype)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>- (void)addBuildSettings:(NSDictionary*)buildSettings;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>- (void)addOrReplaceSetting:(<span class="keywordtype">id</span> &lt;NSCopying&gt;)setting forKey:(NSString*)key;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>- (<span class="keywordtype">id</span> &lt;NSCopying&gt;)valueForKey:(NSString*)key;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>-(void)removeSettingByKey:(NSString*)key;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>+ (NSString*)duplicatedBuildConfigurationListWithKey:(NSString*)buildConfigurationListKey inProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    withBuildConfigurationVisitor:(<span class="keywordtype">void</span> (^)(NSMutableDictionary*))buildConfigurationVisitor;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_project_build_config_html"><div class="ttname"><a href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></div><div class="ttdef"><b>Definition:</b> XCProjectBuildConfig.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_source_file_8h_source.html b/doc/html/_x_c_source_file_8h_source.html
new file mode 100644
index 0000000..ec12892
--- /dev/null
+++ b/doc/html/_x_c_source_file_8h_source.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSourceFile.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSourceFile.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeGroupMember.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">#import &lt;XcodeEditor/XCBuildFile.h&gt;</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="interface_x_c_source_file.html">   24</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a> : NSObject&lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>,<a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>&gt;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>{</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *_project;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    NSNumber *_isBuildFile;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    NSString *_buildFileKey;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    NSString *_name;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    NSString *_sourceTree;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    NSString *_key;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    NSString *_path;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    XcodeSourceFileType _type;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>}</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">@property</span> (nonatomic, readonly) XcodeSourceFileType type;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">@property</span> (nonatomic, strong, readonly) NSString *key;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">@property</span> (nonatomic, strong) NSString *name;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">@property</span> (nonatomic, strong, readonly) NSString *sourceTree;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@property</span> (nonatomic, strong) NSString *path;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>+ (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a> *)sourceFileWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *)project key:(NSString *)key type:(XcodeSourceFileType)type</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>                                   name:(NSString *)name sourceTree:(NSString *)tree path:(NSString *)path;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>- (id)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *)project key:(NSString *)key type:(XcodeSourceFileType)type name:(NSString *)name</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>           sourceTree:(NSString *)tree path:(NSString *)path;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>- (BOOL)isBuildFile;</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>- (BOOL)canBecomeBuildFile;</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>- (XcodeMemberType)buildPhase;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>- (NSString *)buildFileKey;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>- (void)becomeBuildFile;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>- (void)removeBuildFile;</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>- (void)setCompilerFlags:(NSString *)value;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>- (void)setWeakReference;</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="aprotocol_x_c_build_file-p_html"><div class="ttname"><a href="protocol_x_c_build_file-p.html">XCBuildFile-p</a></div><div class="ttdef"><b>Definition:</b> XCBuildFile.h:13</div></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html"><div class="ttname"><a href="protocol_xcode_group_member-p.html">XcodeGroupMember-p</a></div><div class="ttdef"><b>Definition:</b> XcodeGroupMember.h:16</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_source_file_definition_8h_source.html b/doc/html/_x_c_source_file_definition_8h_source.html
new file mode 100644
index 0000000..5436625
--- /dev/null
+++ b/doc/html/_x_c_source_file_definition_8h_source.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSourceFileDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSourceFileDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="interface_x_c_source_file_definition.html">   18</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>{</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    NSString* _sourceFileName;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    XcodeSourceFileType _type;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    NSData* _data;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>}</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* sourceFileName;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSData* data;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="keyword">@property</span>(nonatomic, readonly) XcodeSourceFileType type;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>+ (<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)sourceDefinitionWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>+ (<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)sourceDefinitionWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="comment">// For now you can add Asset Catalog only as reference</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>+ (<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)sourceDefinitionWithAssetCatalogName:(NSString*)name;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>- (id)initWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>- (id)initWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_definition_html"><div class="ttname"><a href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSourceFileDefinition.h:19</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_sub_project_definition_8h_source.html b/doc/html/_x_c_sub_project_definition_8h_source.html
new file mode 100644
index 0000000..33fedbf
--- /dev/null
+++ b/doc/html/_x_c_sub_project_definition_8h_source.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSubProjectDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSubProjectDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeSourceFileType.h&gt;</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="interface_x_c_sub_project_definition.html">   21</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>{</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    NSString *_name;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    NSString *_path;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    XcodeSourceFileType _type;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *_subProject;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *_parentProject;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    NSString *_key;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    NSString *_fullProjectPath;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    NSString *_relativePath;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>}</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="keyword">@property</span> (nonatomic, strong, readonly) NSString *name;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">@property</span> (nonatomic, strong, readonly) NSString *path;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="keyword">@property</span> (nonatomic, readonly) XcodeSourceFileType type;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="keyword">@property</span> (nonatomic, strong, readonly) <a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *subProject;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">@property</span> (nonatomic, strong, readonly) <a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *parentProject;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">@property</span> (nonatomic, strong, readonly) NSString *key;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">@property</span> (nonatomic, strong, readwrite) NSString *fullProjectPath;</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>+ (<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> *)withName:(NSString *)name path:(NSString *)path parentProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *)parentProject;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>- (id)initWithName:(NSString *)name path:(NSString *)path parentProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a> *)parentProject;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>- (NSString *)projectFileName;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>- (NSString *)fullPathName;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>- (NSArray&lt;NSString*&gt; *)buildProductNames;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span> </div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>- (NSString *)projectKey;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>- (NSString *)pathRelativeToProjectRoot;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>- (void)initFullProjectPath:(NSString *)fullProjectPath groupPath:(NSString *)groupPath;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_target_8h_source.html b/doc/html/_x_c_target_8h_source.html
new file mode 100644
index 0000000..b11d6a6
--- /dev/null
+++ b/doc/html/_x_c_target_8h_source.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCTarget.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCTarget.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">@protocol </span><a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="interface_x_c_target.html">   25</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_target.html">XCTarget</a> : NSObject</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>{</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>* _project;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    NSString* _key;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    NSString* _name;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    NSString* _productName;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    NSString* _productReference;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    NSString* _productType;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    NSString* _defaultConfigurationName;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    NSMutableArray* _members;</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    NSMutableArray* _resources;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    NSMutableDictionary* _configurations;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    NSMutableArray *_buildShellScripts;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>}</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* key;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="keyword">@property</span>(nonatomic, strong) NSString* name;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">@property</span>(nonatomic, strong) NSString* productName;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* productReference;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* productType;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>+ (<a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>*)targetWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>    productReference:(NSString*)productReference productType:(NSString*)productType;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>- (id)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    productReference:(NSString*)productReference productType:(NSString*)productType;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)resources;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>- (NSArray&lt;id&lt;<a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>&gt;&gt;*)members;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>*&gt;*)buildShellScripts;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>- (NSDictionary&lt;NSString*,<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>*&gt;*)configurations;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>- (<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)configurationWithName:(NSString*)name;</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>- (<a class="code hl_class" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)defaultConfiguration;</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>- (void)addMember:(<span class="keywordtype">id</span>&lt;<a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>&gt;)member;</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>- (void)makeAndAddShellScript:(<a class="code hl_class" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>*)shellScript;</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>- (void)removeShellScriptByName:(NSString*)name;</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>- (void)removeMemberWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>- (void)removeMembersWithKeys:(NSArray&lt;NSString*&gt;*)keys;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>- (void)removeResourceWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>- (void)removeResourcesWithKeys:(NSArray&lt;NSString*&gt;*)keys;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>- (void)addDependency:(NSString*)key;</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>- (instancetype)duplicateWithTargetName:(NSString*)targetName productName:(NSString*)productName;</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>- (BOOL)isApplicationType;</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span><span class="keyword">@end</span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="ttc" id="ainterface_x_c_build_shell_script_definition_html"><div class="ttname"><a href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></div><div class="ttdef"><b>Definition:</b> XCBuildShellScriptDefinition.h:13</div></div>
+<div class="ttc" id="ainterface_x_c_build_shell_script_html"><div class="ttname"><a href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></div><div class="ttdef"><b>Definition:</b> XCBuildShellScript.h:16</div></div>
+<div class="ttc" id="ainterface_x_c_project_build_config_html"><div class="ttname"><a href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></div><div class="ttdef"><b>Definition:</b> XCProjectBuildConfig.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_target_html"><div class="ttname"><a href="interface_x_c_target.html">XCTarget</a></div><div class="ttdef"><b>Definition:</b> XCTarget.h:26</div></div>
+<div class="ttc" id="aprotocol_x_c_build_file-p_html"><div class="ttname"><a href="protocol_x_c_build_file-p.html">XCBuildFile-p</a></div><div class="ttdef"><b>Definition:</b> XCBuildFile.h:13</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_test_resource_utils_8h_source.html b/doc/html/_x_c_test_resource_utils_8h_source.html
new file mode 100644
index 0000000..0d226fa
--- /dev/null
+++ b/doc/html/_x_c_test_resource_utils_8h_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCTestResourceUtils.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li><li class="navelem"><a class="el" href="dir_9410f5602cc653cc9d7588bd1ca72908.html">Utils</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCTestResourceUtils.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment">//TODO: Just use one sample project</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>NSString *XCTestResourcePath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>NSString *XCSample1FolderPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>NSString *XCSample1XcodeProjectPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>NSString *XCBox2dSampleContainingFolderPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>NSString *XCBox2dSampleProjectPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>NSString *XCMasterDetailContainerFolderPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>NSString *XCMasterDetailProjectPath(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>NSString *NSStringWithXCTestResource(NSString *resourceName);</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>NSData *NSDataWithXCTestResource(NSString *resourceName);</div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_version_group_8h_source.html b/doc/html/_x_c_version_group_8h_source.html
new file mode 100644
index 0000000..fb34fbb
--- /dev/null
+++ b/doc/html/_x_c_version_group_8h_source.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCVersionGroup.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCVersionGroup.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">//</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//  XCCoreDataModelVersioned.h</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  xcode-editor</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  Created by joel on 04/09/15.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeGroupMember.h&gt;</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#import &lt;XcodeEditor/XCGroup.h&gt;</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;XcodeEditor/XCBuildFile.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>;</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>;</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>;</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">@class</span> <a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="interface_x_c_version_group.html">   23</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a> : NSObject &lt;<a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>,<a class="code hl_protocol" href="protocol_x_c_build_file-p.html">XCBuildFile</a>&gt;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>{</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    NSString* _pathRelativeToParent;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    NSString* _key;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">@private</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    NSString* _pathRelativeToProjectRoot;</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    NSMutableArray* _children;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    NSMutableArray* _members;</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    NSString *_currentVersion;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    NSString *_versionGroupType;</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    NSNumber *_isBuildFile;</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    NSString *_buildFileKey;</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    <a class="code hl_class" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>* _fileOperationQueue; <span class="comment">// weak</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    <a class="code hl_class" href="interface_x_c_project.html">XCProject</a>* _project;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>}</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* alias;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885">   50</a></span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* pathRelativeToParent;</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b">   57</a></span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* key;</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c">   62</a></span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSMutableArray* versions;</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c">   67</a></span> </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="keyword">@property</span>(nonatomic,strong) NSString*currentVersion;</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span><span class="preprocessor">#pragma mark Initializers</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>+ (<a class="code hl_class" href="interface_x_c_version_group.html">XCVersionGroup</a>*)versionGroupWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>- (id)initWithProject:(<a class="code hl_class" href="interface_x_c_project.html">XCProject</a>*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span><span class="preprocessor">#pragma mark Parent group</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>- (void)removeFromParentGroup;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>- (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>- (<a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>*)parentGroup;</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span><span class="preprocessor">#pragma mark Adding children</span></div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>- (void)addDataModelSource:(<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)sourceFileDefinition;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span><span class="preprocessor">#pragma mark Locating children</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>- (NSArray&lt;<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*&gt;*)members;</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>- (NSArray&lt;NSString*&gt;*)buildFileKeys;</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>- (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)memberWithKey:(NSString*)key;</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>- (<a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>*)memberWithDisplayName:(NSString*)name;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>- (NSDictionary*)asDictionary;</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_class_definition_html"><div class="ttname"><a href="interface_x_c_class_definition.html">XCClassDefinition</a></div><div class="ttdef"><b>Definition:</b> XCClassDefinition.h:24</div></div>
+<div class="ttc" id="ainterface_x_c_file_operation_queue_html"><div class="ttname"><a href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></div><div class="ttdef"><b>Definition:</b> XCFileOperationQueue.h:17</div></div>
+<div class="ttc" id="ainterface_x_c_framework_definition_html"><div class="ttname"><a href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></div><div class="ttdef"><b>Definition:</b> XCFrameworkDefinition.h:19</div></div>
+<div class="ttc" id="ainterface_x_c_group_html"><div class="ttname"><a href="interface_x_c_group.html">XCGroup</a></div><div class="ttdef"><b>Definition:</b> XCGroup.h:35</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_definition_html"><div class="ttname"><a href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSourceFileDefinition.h:19</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+<div class="ttc" id="ainterface_x_c_version_group_html"><div class="ttname"><a href="interface_x_c_version_group.html">XCVersionGroup</a></div><div class="ttdef"><b>Definition:</b> XCVersionGroup.h:25</div></div>
+<div class="ttc" id="ainterface_x_c_xib_definition_html"><div class="ttname"><a href="interface_x_c_xib_definition.html">XCXibDefinition</a></div><div class="ttdef"><b>Definition:</b> XCXibDefinition.h:19</div></div>
+<div class="ttc" id="aprotocol_x_c_build_file-p_html"><div class="ttname"><a href="protocol_x_c_build_file-p.html">XCBuildFile-p</a></div><div class="ttdef"><b>Definition:</b> XCBuildFile.h:13</div></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html"><div class="ttname"><a href="protocol_xcode_group_member-p.html">XcodeGroupMember-p</a></div><div class="ttdef"><b>Definition:</b> XcodeGroupMember.h:16</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_x_c_xib_definition_8h_source.html b/doc/html/_x_c_xib_definition_8h_source.html
new file mode 100644
index 0000000..b717ebf
--- /dev/null
+++ b/doc/html/_x_c_xib_definition_8h_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCXibDefinition.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCXibDefinition.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="interface_x_c_xib_definition.html">   18</a></span><span class="keyword">@interface </span><a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a> : <a class="code hl_class" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>{</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    NSString* _name;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    NSString* _content;</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>}</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">@property</span>(nonatomic, strong, readonly) NSString* name;</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="keyword">@property</span>(nonatomic, strong) NSString* content;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>+ (<a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>*)xibDefinitionWithName:(NSString*)name;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>+ (<a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>*)xibDefinitionWithName:(NSString*)name content:(NSString*)content;</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>- (id)initWithName:(NSString*)name;</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>- (id)initWithName:(NSString*)name content:(NSString*)content;</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>- (NSString*)xibFileName;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">@end</span></div>
+<div class="ttc" id="ainterface_x_c_abstract_definition_html"><div class="ttname"><a href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></div><div class="ttdef"><b>Definition:</b> XCAbstractDefinition.h:41</div></div>
+<div class="ttc" id="ainterface_x_c_xib_definition_html"><div class="ttname"><a href="interface_x_c_xib_definition.html">XCXibDefinition</a></div><div class="ttdef"><b>Definition:</b> XCXibDefinition.h:19</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_xcode_editor_8h_source.html b/doc/html/_xcode_editor_8h_source.html
new file mode 100644
index 0000000..12c1b6e
--- /dev/null
+++ b/doc/html/_xcode_editor_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeEditor.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeEditor.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>FOUNDATION_EXPORT <span class="keywordtype">double</span> XcodeEditorVersionNumber;</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>FOUNDATION_EXPORT <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> XcodeEditorVersionString[];</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="comment">// In this header, you should import all the public headers of your framework using statements like #import &lt;XcodeEditor/PublicHeader.h&gt;</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#import &lt;XcodeEditor/XCAbstractDefinition.h&gt;</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="preprocessor">#import &lt;XcodeEditor/XCGroup.h&gt;</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#import &lt;XcodeEditor/XCClassDefinition.h&gt;</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="preprocessor">#import &lt;XcodeEditor/XCFileOperationQueue.h&gt;</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#import &lt;XcodeEditor/XCFrameworkDefinition.h&gt;</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="preprocessor">#import &lt;XcodeEditor/XCProject.h&gt;</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#import &lt;XcodeEditor/XCSourceFile.h&gt;</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#import &lt;XcodeEditor/XCSourceFileDefinition.h&gt;</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#import &lt;XcodeEditor/XCSubProjectDefinition.h&gt;</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#import &lt;XcodeEditor/XCTarget.h&gt;</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#import &lt;XcodeEditor/XCXibDefinition.h&gt;</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#import &lt;XcodeEditor/XCKeyBuilder.h&gt;</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#import &lt;XcodeEditor/XCProject+SubProject.h&gt;</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#import &lt;XcodeEditor/XCProjectBuildConfig.h&gt;</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#import &lt;XcodeEditor/XCBuildShellScript.h&gt;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#import &lt;XcodeEditor/XCBuildShellScriptDefinition.h&gt;</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="preprocessor">#import &lt;XcodeEditor/XCVersionGroup.h&gt;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_xcode_group_member_8h_source.html b/doc/html/_xcode_group_member_8h_source.html
new file mode 100644
index 0000000..4a08a7b
--- /dev/null
+++ b/doc/html/_xcode_group_member_8h_source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeGroupMember.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeGroupMember.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"><a class="line" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">    1</a></span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#import &lt;XcodeEditor/XcodeMemberType.h&gt;</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="protocol_xcode_group_member-p.html">   16</a></span><span class="keyword">@protocol </span><a class="code hl_protocol" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &lt;NSObject&gt;</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>- (NSString*)key;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>- (NSString*)displayName;</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>- (NSString*)pathRelativeToProjectRoot;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>- (XcodeMemberType)<a class="code hl_function" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a>;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="keyword">@end</span></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html"><div class="ttname"><a href="protocol_xcode_group_member-p.html">XcodeGroupMember-p</a></div><div class="ttdef"><b>Definition:</b> XcodeGroupMember.h:16</div></div>
+<div class="ttc" id="aprotocol_xcode_group_member-p_html_a37e9e9f28d597028f66ae694b3efd1d8"><div class="ttname"><a href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">-[XcodeGroupMember-p groupMemberType]</a></div><div class="ttdeci">XcodeMemberType groupMemberType()</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_xcode_member_type_8h_source.html b/doc/html/_xcode_member_type_8h_source.html
new file mode 100644
index 0000000..3af8a84
--- /dev/null
+++ b/doc/html/_xcode_member_type_8h_source.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeMemberType.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeMemberType.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>{</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>    PBXNilType,</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    PBXBuildFileType,</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    PBXContainerItemProxyType,</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    PBXCopyFilesBuildPhaseType,</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    PBXFileReferenceType,</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    PBXFrameworksBuildPhaseType,</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    PBXGroupType,</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    PBXNativeTargetType,</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    PBXProjectType,</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    PBXReferenceProxyType,</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    PBXResourcesBuildPhaseType,</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    PBXSourcesBuildPhaseType,</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    PBXTargetDependencyType,</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    PBXVariantGroupType,</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    XCBuildConfigurationType,</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    XCConfigurationListType,</div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    PBXShellScriptBuildPhase,</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    XCVersionGroupType</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>} XcodeMemberType;</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="category_n_s_string_07_xcode_member_type_extensions_08.html">   36</a></span><span class="keyword">@interface </span><a class="code hl_category" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString (XcodeMemberTypeExtensions)</a></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>+ (NSString*)xce_stringFromMemberType:(XcodeMemberType)nodeType;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>- (XcodeMemberType)xce_asMemberType;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>- (BOOL)xce_hasFileReferenceType;</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span>- (BOOL)xce_hasFileReferenceOrReferenceProxyType;</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>- (BOOL)xce_hasReferenceProxyType;</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span>- (BOOL)xce_hasGroupType;</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>- (BOOL)xce_hasProjectType;</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>- (BOOL)xce_hasNativeTargetType;</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>- (BOOL)xce_hasBuildFileType;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>- (BOOL)xce_hasBuildConfigurationType;</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span>- (BOOL)xce_hasContainerItemProxyType;</div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span>- (BOOL)xce_hasResourcesBuildPhaseType;</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>- (BOOL)xce_hasShellScriptBuildPhase;</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>- (BOOL)xce_hasSourcesOrFrameworksBuildPhaseType;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>- (BOOL)xce_hasVersionedGroupType;</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span><span class="keyword">@end</span></div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="ttc" id="acategory_n_s_string_07_xcode_member_type_extensions_08_html"><div class="ttname"><a href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></div><div class="ttdef"><b>Definition:</b> XcodeMemberType.h:36</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_xcode_source_file_type_8h_source.html b/doc/html/_xcode_source_file_type_8h_source.html
new file mode 100644
index 0000000..dbe0ac8
--- /dev/null
+++ b/doc/html/_xcode_source_file_type_8h_source.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeSourceFileType.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeSourceFileType.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="keyword">typedef</span> NS_OPTIONS(NSInteger, XcodeSourceFileType)</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>{</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>    FileTypeNil = 0,             <span class="comment">// Unknown filetype</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    Framework = 1,               <span class="comment">// .framework</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>    PropertyList = 2,            <span class="comment">// .plist</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span>    SourceCodeHeader = 3,        <span class="comment">// .h</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span>    SourceCodeObjC = 4,          <span class="comment">// .m</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span>    SourceCodeObjCPlusPlus = 5,  <span class="comment">// .mm</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>    SourceCodeCPlusPlus = 6,     <span class="comment">// .cpp</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span>    XibFile = 7,                 <span class="comment">// .xib</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>    ImageResourcePNG = 8,        <span class="comment">// .png</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>    Bundle = 9,                  <span class="comment">// .bundle  .octet</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span>    Archive = 10,                <span class="comment">// .a files</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>    HTML = 11,                   <span class="comment">// HTML file</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span>    TEXT = 12,                   <span class="comment">// Some text file</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span>    XcodeProject = 13,           <span class="comment">// .xcodeproj</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span>    Folder = 14,                 <span class="comment">// a Folder reference</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span>    AssetCatalog = 15,           <span class="comment">// Assets</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    SourceCodeSwift = 16,        <span class="comment">// .swift</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span>    Application = 17,            <span class="comment">// .app (wrapper.application)</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span>    Playground = 18,             <span class="comment">// .playground (file.playground)</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span>    ShellScript = 19,            <span class="comment">// no suffix Xcode seems to detect (text.script.sh)</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span>    Markdown = 20,               <span class="comment">// .md (net.daringfileball.markdown)</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span>    XMLPropertyList = 21,        <span class="comment">// .plist (text.plist.xml)</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span>    Storyboard = 22,             <span class="comment">// .storyboard (file.storyboard)</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span>    XCConfig = 23,               <span class="comment">// .xcconfig</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span>    XCDataModel = 24,            <span class="comment">// .xcdatamodel</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span>    LocalizableStrings = 25      <span class="comment">// .strings</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span>};</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span>NSString* NSStringFromXCSourceFileType(XcodeSourceFileType type);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span>XcodeSourceFileType XCSourceFileTypeFromStringRepresentation(NSString* <span class="keywordtype">string</span>);</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>XcodeSourceFileType XCSourceFileTypeFromFileName(NSString* fileName);</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/_xcode_source_tree_type_8h_source.html b/doc/html/_xcode_source_tree_type_8h_source.html
new file mode 100644
index 0000000..88602ea
--- /dev/null
+++ b/doc/html/_xcode_source_tree_type_8h_source.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeSourceTreeType.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeSourceTreeType.h</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">//</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">//  JASPER BLUES</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">//  Copyright 2012 Jasper Blues</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">//  All Rights Reserved.</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">//</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment">//  in accordance with the terms of the license agreement accompanying it.</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">//</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#import &lt;Foundation/Foundation.h&gt;</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span>{</div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span>    SourceTreeSDKRoot,</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span>    SourceTreeGroup</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span>} XcodeSourceTreeType;</div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">   20</a></span><span class="keyword">@interface </span><a class="code hl_category" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString (XcodeSourceTreeTypeExtensions)</a></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span>+ (NSString*)xce_stringFromSourceTreeType:(XcodeSourceTreeType)nodeType;</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span>- (XcodeSourceTreeType)xce_asSourceTreeType;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">@end</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="ttc" id="acategory_n_s_string_07_xcode_source_tree_type_extensions_08_html"><div class="ttname"><a href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a></div><div class="ttdef"><b>Definition:</b> XcodeSourceTreeType.h:20</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:52 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
new file mode 100644
index 0000000..1c6e8ef
--- /dev/null
+++ b/doc/html/annotated.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">Class List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_class_called_janine.html" target="_self">ClassCalledJanine</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_hash_value_m_d5_hash.html" target="_self">HashValueMD5Hash</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_remove_emoji_08.html" target="_self">NSString(RemoveEmoji)</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html" target="_self">NSString(XcodeMemberTypeExtensions)</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html" target="_self">NSString(XcodeSourceTreeTypeExtensions)</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_abstract_definition.html" target="_self">XCAbstractDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="protocol_x_c_build_file-p.html" target="_self">&lt;XCBuildFile&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script.html" target="_self">XCBuildShellScript</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_definition.html" target="_self">XCBuildShellScriptDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_definition_tests.html" target="_self">XCBuildShellScriptDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_tests.html" target="_self">XCBuildShellScriptTests</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_class_definition.html" target="_self">XCClassDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_class_definition_tests.html" target="_self">XCClassDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_file_operation_queue.html" target="_self">XCFileOperationQueue</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_file_operation_queue_07_08.html" target="_self">XCFileOperationQueue()</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_framework_definition.html" target="_self">XCFrameworkDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_framework_path.html" target="_self">XCFrameworkPath</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group.html" target="_self">XCGroup</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group_tests.html" target="_self">XCGroupTests</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_key_builder.html" target="_self">XCKeyBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_key_builder_tests.html" target="_self">XCKeyBuilderTests</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_xcode_file_reference_type_tests.html" target="_self">XcodeFileReferenceTypeTests</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="protocol_xcode_group_member-p.html" target="_self">&lt;XcodeGroupMember&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project.html" target="_self">XCProject</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_project_07_sub_project_08.html" target="_self">XCProject(SubProject)</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project_build_config.html" target="_self">XCProjectBuildConfig</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project_tests.html" target="_self">XCProjectTests</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file.html" target="_self">XCSourceFile</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file_definition.html" target="_self">XCSourceFileDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_sub_project_definition.html" target="_self">XCSubProjectDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_sub_project_definition_07_08.html" target="_self">XCSubProjectDefinition()</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_sub_project_definition_tests.html" target="_self">XCSubProjectDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_target.html" target="_self">XCTarget</a></td><td class="desc"></td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_target_tests.html" target="_self">XCTargetTests</a></td><td class="desc"></td></tr>
+<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_version_group.html" target="_self">XCVersionGroup</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_xib_definition.html" target="_self">XCXibDefinition</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png
new file mode 100644
index 0000000..224b29a
Binary files /dev/null and b/doc/html/bc_s.png differ
diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
Binary files /dev/null and b/doc/html/bdwn.png differ
diff --git a/doc/html/category_n_s_string_07_remove_emoji_08-members.html b/doc/html/category_n_s_string_07_remove_emoji_08-members.html
new file mode 100644
index 0000000..e84fc33
--- /dev/null
+++ b/doc/html/category_n_s_string_07_remove_emoji_08-members.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">NSString(RemoveEmoji) Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>__attribute__</b> (defined in <a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isIncludingEmoji</b> (defined in <a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>stringByRemovingEmoji</b> (defined in <a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_n_s_string_07_remove_emoji_08.html b/doc/html/category_n_s_string_07_remove_emoji_08.html
new file mode 100644
index 0000000..9061cf8
--- /dev/null
+++ b/doc/html/category_n_s_string_07_remove_emoji_08.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: NSString(RemoveEmoji) Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="category_n_s_string_07_remove_emoji_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">NSString(RemoveEmoji) Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:ac1f0436d5d2e1c710f616b4d7acd1253"><td class="memItemLeft" align="right" valign="top"><a id="ac1f0436d5d2e1c710f616b4d7acd1253" name="ac1f0436d5d2e1c710f616b4d7acd1253"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isIncludingEmoji</b></td></tr>
+<tr class="separator:ac1f0436d5d2e1c710f616b4d7acd1253"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac8e33ce5dacdfbed2811f341b69bf5d"><td class="memItemLeft" align="right" valign="top"><a id="aac8e33ce5dacdfbed2811f341b69bf5d" name="aac8e33ce5dacdfbed2811f341b69bf5d"></a>
+(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <b>stringByRemovingEmoji</b></td></tr>
+<tr class="separator:aac8e33ce5dacdfbed2811f341b69bf5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a595b600cfebed475788feed38314af98"><td class="memItemLeft" align="right" valign="top"><a id="a595b600cfebed475788feed38314af98" name="a595b600cfebed475788feed38314af98"></a>
+((deprecated)&#160;</td><td class="memItemRight" valign="bottom">- <b>__attribute__</b></td></tr>
+<tr class="separator:a595b600cfebed475788feed38314af98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following files:<ul>
+<li><a class="el" href="_n_s_string_09_remove_emoji_8h_source.html">NSString+RemoveEmoji.h</a></li>
+<li>NSString+RemoveEmoji.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_n_s_string_07_xcode_member_type_extensions_08-members.html b/doc/html/category_n_s_string_07_xcode_member_type_extensions_08-members.html
new file mode 100644
index 0000000..a5b5c86
--- /dev/null
+++ b/doc/html/category_n_s_string_07_xcode_member_type_extensions_08-members.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">NSString(XcodeMemberTypeExtensions) Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_asMemberType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasBuildConfigurationType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasBuildFileType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasContainerItemProxyType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasFileReferenceOrReferenceProxyType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasFileReferenceType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasGroupType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasNativeTargetType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasProjectType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasReferenceProxyType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasResourcesBuildPhaseType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasShellScriptBuildPhase</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasSourcesOrFrameworksBuildPhaseType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>xce_hasVersionedGroupType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>xce_stringFromMemberType:</b> (defined in <a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_n_s_string_07_xcode_member_type_extensions_08.html b/doc/html/category_n_s_string_07_xcode_member_type_extensions_08.html
new file mode 100644
index 0000000..888aef6
--- /dev/null
+++ b/doc/html/category_n_s_string_07_xcode_member_type_extensions_08.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: NSString(XcodeMemberTypeExtensions) Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="category_n_s_string_07_xcode_member_type_extensions_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">NSString(XcodeMemberTypeExtensions) Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a0c30a5f2fc5ed808d39e891adac90ff9"><td class="memItemLeft" align="right" valign="top"><a id="a0c30a5f2fc5ed808d39e891adac90ff9" name="a0c30a5f2fc5ed808d39e891adac90ff9"></a>
+(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_asMemberType</b></td></tr>
+<tr class="separator:a0c30a5f2fc5ed808d39e891adac90ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b444d0eae9e7674658e29211fca06f5"><td class="memItemLeft" align="right" valign="top"><a id="a0b444d0eae9e7674658e29211fca06f5" name="a0b444d0eae9e7674658e29211fca06f5"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasFileReferenceType</b></td></tr>
+<tr class="separator:a0b444d0eae9e7674658e29211fca06f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41c8558315a1d3d047c602c9652aef29"><td class="memItemLeft" align="right" valign="top"><a id="a41c8558315a1d3d047c602c9652aef29" name="a41c8558315a1d3d047c602c9652aef29"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasFileReferenceOrReferenceProxyType</b></td></tr>
+<tr class="separator:a41c8558315a1d3d047c602c9652aef29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3eeec7f57fdd88445b67fbf5eea8781"><td class="memItemLeft" align="right" valign="top"><a id="af3eeec7f57fdd88445b67fbf5eea8781" name="af3eeec7f57fdd88445b67fbf5eea8781"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasReferenceProxyType</b></td></tr>
+<tr class="separator:af3eeec7f57fdd88445b67fbf5eea8781"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a553f49f087f00e05f0024b5bb2ce07ad"><td class="memItemLeft" align="right" valign="top"><a id="a553f49f087f00e05f0024b5bb2ce07ad" name="a553f49f087f00e05f0024b5bb2ce07ad"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasGroupType</b></td></tr>
+<tr class="separator:a553f49f087f00e05f0024b5bb2ce07ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affaa14881d029e9644e50f8fe96628ef"><td class="memItemLeft" align="right" valign="top"><a id="affaa14881d029e9644e50f8fe96628ef" name="affaa14881d029e9644e50f8fe96628ef"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasProjectType</b></td></tr>
+<tr class="separator:affaa14881d029e9644e50f8fe96628ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bc59a1e064c62006a7f1bd467bbc992"><td class="memItemLeft" align="right" valign="top"><a id="a5bc59a1e064c62006a7f1bd467bbc992" name="a5bc59a1e064c62006a7f1bd467bbc992"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasNativeTargetType</b></td></tr>
+<tr class="separator:a5bc59a1e064c62006a7f1bd467bbc992"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab15ac44a708d7a74e5592f9f2d1d68b5"><td class="memItemLeft" align="right" valign="top"><a id="ab15ac44a708d7a74e5592f9f2d1d68b5" name="ab15ac44a708d7a74e5592f9f2d1d68b5"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasBuildFileType</b></td></tr>
+<tr class="separator:ab15ac44a708d7a74e5592f9f2d1d68b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7096c70200be48fb242b415e1259eed5"><td class="memItemLeft" align="right" valign="top"><a id="a7096c70200be48fb242b415e1259eed5" name="a7096c70200be48fb242b415e1259eed5"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasBuildConfigurationType</b></td></tr>
+<tr class="separator:a7096c70200be48fb242b415e1259eed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6db284b9e8daaf259b37b07f649ada65"><td class="memItemLeft" align="right" valign="top"><a id="a6db284b9e8daaf259b37b07f649ada65" name="a6db284b9e8daaf259b37b07f649ada65"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasContainerItemProxyType</b></td></tr>
+<tr class="separator:a6db284b9e8daaf259b37b07f649ada65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65f54f96e843f92b4a526e65830dd40c"><td class="memItemLeft" align="right" valign="top"><a id="a65f54f96e843f92b4a526e65830dd40c" name="a65f54f96e843f92b4a526e65830dd40c"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasResourcesBuildPhaseType</b></td></tr>
+<tr class="separator:a65f54f96e843f92b4a526e65830dd40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa39eee81b980302915f10668e1d7c335"><td class="memItemLeft" align="right" valign="top"><a id="aa39eee81b980302915f10668e1d7c335" name="aa39eee81b980302915f10668e1d7c335"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasShellScriptBuildPhase</b></td></tr>
+<tr class="separator:aa39eee81b980302915f10668e1d7c335"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ac1e9fe2793c1c373250a69985389bc"><td class="memItemLeft" align="right" valign="top"><a id="a0ac1e9fe2793c1c373250a69985389bc" name="a0ac1e9fe2793c1c373250a69985389bc"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasSourcesOrFrameworksBuildPhaseType</b></td></tr>
+<tr class="separator:a0ac1e9fe2793c1c373250a69985389bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22a500d93bd9c4384231a96f5eab8f30"><td class="memItemLeft" align="right" valign="top"><a id="a22a500d93bd9c4384231a96f5eab8f30" name="a22a500d93bd9c4384231a96f5eab8f30"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_hasVersionedGroupType</b></td></tr>
+<tr class="separator:a22a500d93bd9c4384231a96f5eab8f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a6aa90897bd9f233574611c83969d8d78"><td class="memItemLeft" align="right" valign="top"><a id="a6aa90897bd9f233574611c83969d8d78" name="a6aa90897bd9f233574611c83969d8d78"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>xce_stringFromMemberType:</b></td></tr>
+<tr class="separator:a6aa90897bd9f233574611c83969d8d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following files:<ul>
+<li><a class="el" href="_xcode_member_type_8h_source.html">XcodeMemberType.h</a></li>
+<li>XcodeMemberType.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08-members.html b/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08-members.html
new file mode 100644
index 0000000..a1221ba
--- /dev/null
+++ b/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">NSString(XcodeSourceTreeTypeExtensions) Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xce_asSourceTreeType</b> (defined in <a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>xce_stringFromSourceTreeType:</b> (defined in <a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a>)</td><td class="entry"><a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08.html b/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08.html
new file mode 100644
index 0000000..7426537
--- /dev/null
+++ b/doc/html/category_n_s_string_07_xcode_source_tree_type_extensions_08.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: NSString(XcodeSourceTreeTypeExtensions) Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="category_n_s_string_07_xcode_source_tree_type_extensions_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">NSString(XcodeSourceTreeTypeExtensions) Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:aa71895eb3611dc52402d8c5e2d34908f"><td class="memItemLeft" align="right" valign="top"><a id="aa71895eb3611dc52402d8c5e2d34908f" name="aa71895eb3611dc52402d8c5e2d34908f"></a>
+(XcodeSourceTreeType)&#160;</td><td class="memItemRight" valign="bottom">- <b>xce_asSourceTreeType</b></td></tr>
+<tr class="separator:aa71895eb3611dc52402d8c5e2d34908f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a6c173a5ecd5deaf2d62a25c6dd34eb9e"><td class="memItemLeft" align="right" valign="top"><a id="a6c173a5ecd5deaf2d62a25c6dd34eb9e" name="a6c173a5ecd5deaf2d62a25c6dd34eb9e"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>xce_stringFromSourceTreeType:</b></td></tr>
+<tr class="separator:a6c173a5ecd5deaf2d62a25c6dd34eb9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following files:<ul>
+<li><a class="el" href="_xcode_source_tree_type_8h_source.html">XcodeSourceTreeType.h</a></li>
+<li>XcodeSourceTreeType.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_file_operation_queue_07_08-members.html b/doc/html/category_x_c_file_operation_queue_07_08-members.html
new file mode 100644
index 0000000..6644af2
--- /dev/null
+++ b/doc/html/category_x_c_file_operation_queue_07_08-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFileOperationQueue() Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>destinationPathFor:inProjectDirectory:</b> (defined in <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>)</td><td class="entry"><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>performCopyFrameworks</b> (defined in <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>)</td><td class="entry"><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>performCreateDirectories</b> (defined in <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>)</td><td class="entry"><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>performFileDeletions</b> (defined in <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>)</td><td class="entry"><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>performFileWrites</b> (defined in <a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a>)</td><td class="entry"><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_file_operation_queue_07_08.html b/doc/html/category_x_c_file_operation_queue_07_08.html
new file mode 100644
index 0000000..2667ec8
--- /dev/null
+++ b/doc/html/category_x_c_file_operation_queue_07_08.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFileOperationQueue() Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="category_x_c_file_operation_queue_07_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCFileOperationQueue() Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a396b8a6bac40903a81e88f18556990af"><td class="memItemLeft" align="right" valign="top"><a id="a396b8a6bac40903a81e88f18556990af" name="a396b8a6bac40903a81e88f18556990af"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>destinationPathFor:inProjectDirectory:</b></td></tr>
+<tr class="separator:a396b8a6bac40903a81e88f18556990af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae251327e851f8d879613e4fca9945405"><td class="memItemLeft" align="right" valign="top"><a id="ae251327e851f8d879613e4fca9945405" name="ae251327e851f8d879613e4fca9945405"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>performFileWrites</b></td></tr>
+<tr class="separator:ae251327e851f8d879613e4fca9945405"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88abc5ec02d89e5ab47d424064d2196d"><td class="memItemLeft" align="right" valign="top"><a id="a88abc5ec02d89e5ab47d424064d2196d" name="a88abc5ec02d89e5ab47d424064d2196d"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>performCopyFrameworks</b></td></tr>
+<tr class="separator:a88abc5ec02d89e5ab47d424064d2196d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a971eb0149ad8ed21e35c493bd06296ec"><td class="memItemLeft" align="right" valign="top"><a id="a971eb0149ad8ed21e35c493bd06296ec" name="a971eb0149ad8ed21e35c493bd06296ec"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>performFileDeletions</b></td></tr>
+<tr class="separator:a971eb0149ad8ed21e35c493bd06296ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93c6820e8b055ed6415773b64a6bf1d7"><td class="memItemLeft" align="right" valign="top"><a id="a93c6820e8b055ed6415773b64a6bf1d7" name="a93c6820e8b055ed6415773b64a6bf1d7"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>performCreateDirectories</b></td></tr>
+<tr class="separator:a93c6820e8b055ed6415773b64a6bf1d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following file:<ul>
+<li>XCFileOperationQueue.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_project_07_sub_project_08-members.html b/doc/html/category_x_c_project_07_sub_project_08-members.html
new file mode 100644
index 0000000..c30b7eb
--- /dev/null
+++ b/doc/html/category_x_c_project_07_sub_project_08-members.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProject(SubProject) Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>addAsTargetDependency:toTargets:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>addProxies:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildProductsForTargets:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>containerItemProxyKeyForName:proxyType:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>keysForProjectObjectsOfType:withIdentifier:singleton:required:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>PBXProjectDict</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>productsGroupKeyForKey:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>referenceProxyKeyForName:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeFromProjectReferences:forProductsGroup:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeProxies:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeTargetDependencies:</b> (defined in <a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a>)</td><td class="entry"><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_project_07_sub_project_08.html b/doc/html/category_x_c_project_07_sub_project_08.html
new file mode 100644
index 0000000..2e311bf
--- /dev/null
+++ b/doc/html/category_x_c_project_07_sub_project_08.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProject(SubProject) Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="category_x_c_project_07_sub_project_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCProject(SubProject) Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a92dd68dc215dfed3ee2fcaab5b72346e"><td class="memItemLeft" align="right" valign="top"><a id="a92dd68dc215dfed3ee2fcaab5b72346e" name="a92dd68dc215dfed3ee2fcaab5b72346e"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>referenceProxyKeyForName:</b></td></tr>
+<tr class="separator:a92dd68dc215dfed3ee2fcaab5b72346e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1909100224b2527bc609caf8eab7a5f0"><td class="memItemLeft" align="right" valign="top"><a id="a1909100224b2527bc609caf8eab7a5f0" name="a1909100224b2527bc609caf8eab7a5f0"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildProductsForTargets:</b></td></tr>
+<tr class="separator:a1909100224b2527bc609caf8eab7a5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca0d762dbf21a7515beb0cf49f636fbc"><td class="memItemLeft" align="right" valign="top"><a id="aca0d762dbf21a7515beb0cf49f636fbc" name="aca0d762dbf21a7515beb0cf49f636fbc"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addAsTargetDependency:toTargets:</b></td></tr>
+<tr class="separator:aca0d762dbf21a7515beb0cf49f636fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1f47cda658191013bd6184356255d1f"><td class="memItemLeft" align="right" valign="top"><a id="ac1f47cda658191013bd6184356255d1f" name="ac1f47cda658191013bd6184356255d1f"></a>
+(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>keysForProjectObjectsOfType:withIdentifier:singleton:required:</b></td></tr>
+<tr class="separator:ac1f47cda658191013bd6184356255d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54669d671dac484cf5d207657f7c92a2"><td class="memItemLeft" align="right" valign="top"><a id="a54669d671dac484cf5d207657f7c92a2" name="a54669d671dac484cf5d207657f7c92a2"></a>
+(NSMutableDictionary *)&#160;</td><td class="memItemRight" valign="bottom">- <b>PBXProjectDict</b></td></tr>
+<tr class="separator:a54669d671dac484cf5d207657f7c92a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa724f5876db3d4f5f82c4a5d9a48ae3"><td class="memItemLeft" align="right" valign="top"><a id="aaa724f5876db3d4f5f82c4a5d9a48ae3" name="aaa724f5876db3d4f5f82c4a5d9a48ae3"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeProxies:</b></td></tr>
+<tr class="separator:aaa724f5876db3d4f5f82c4a5d9a48ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a235e112109c93d5987e2b29c836000a6"><td class="memItemLeft" align="right" valign="top"><a id="a235e112109c93d5987e2b29c836000a6" name="a235e112109c93d5987e2b29c836000a6"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addProxies:</b></td></tr>
+<tr class="separator:a235e112109c93d5987e2b29c836000a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9caf756e7c08abe60d82258f251c0c8e"><td class="memItemLeft" align="right" valign="top"><a id="a9caf756e7c08abe60d82258f251c0c8e" name="a9caf756e7c08abe60d82258f251c0c8e"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromProjectReferences:forProductsGroup:</b></td></tr>
+<tr class="separator:a9caf756e7c08abe60d82258f251c0c8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17db0fff9e79f69dd267d5a6474625dc"><td class="memItemLeft" align="right" valign="top"><a id="a17db0fff9e79f69dd267d5a6474625dc" name="a17db0fff9e79f69dd267d5a6474625dc"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeTargetDependencies:</b></td></tr>
+<tr class="separator:a17db0fff9e79f69dd267d5a6474625dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05186f24cbaeca02ae5a78dbddf9ab7e"><td class="memItemLeft" align="right" valign="top"><a id="a05186f24cbaeca02ae5a78dbddf9ab7e" name="a05186f24cbaeca02ae5a78dbddf9ab7e"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>containerItemProxyKeyForName:proxyType:</b></td></tr>
+<tr class="separator:a05186f24cbaeca02ae5a78dbddf9ab7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fbbe1cda07f9e1d543abef4b1f251d4"><td class="memItemLeft" align="right" valign="top"><a id="a1fbbe1cda07f9e1d543abef4b1f251d4" name="a1fbbe1cda07f9e1d543abef4b1f251d4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>productsGroupKeyForKey:</b></td></tr>
+<tr class="separator:a1fbbe1cda07f9e1d543abef4b1f251d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following files:<ul>
+<li><a class="el" href="_x_c_project_09_sub_project_8h_source.html">XCProject+SubProject.h</a></li>
+<li>XCProject+SubProject.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_sub_project_definition_07_08-members.html b/doc/html/category_x_c_sub_project_definition_07_08-members.html
new file mode 100644
index 0000000..26da2be
--- /dev/null
+++ b/doc/html/category_x_c_sub_project_definition_07_08-members.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSubProjectDefinition() Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="category_x_c_sub_project_definition_07_08.html">XCSubProjectDefinition()</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>relativePath</b> (defined in <a class="el" href="category_x_c_sub_project_definition_07_08.html">XCSubProjectDefinition()</a>)</td><td class="entry"><a class="el" href="category_x_c_sub_project_definition_07_08.html">XCSubProjectDefinition()</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/category_x_c_sub_project_definition_07_08.html b/doc/html/category_x_c_sub_project_definition_07_08.html
new file mode 100644
index 0000000..e05063b
--- /dev/null
+++ b/doc/html/category_x_c_sub_project_definition_07_08.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSubProjectDefinition() Category Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#properties">Properties</a> &#124;
+<a href="category_x_c_sub_project_definition_07_08-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCSubProjectDefinition() Category Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a72acb788ea0676c7704f138b533a3a77"><td class="memItemLeft" align="right" valign="top"><a id="a72acb788ea0676c7704f138b533a3a77" name="a72acb788ea0676c7704f138b533a3a77"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>relativePath</b></td></tr>
+<tr class="separator:a72acb788ea0676c7704f138b533a3a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this category was generated from the following file:<ul>
+<li>XCSubProjectDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classes.html b/doc/html/classes.html
new file mode 100644
index 0000000..6d4a09c
--- /dev/null
+++ b/doc/html/classes.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">Class Index</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_X">X</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
+<dd><a class="el" href="interface_class_called_janine.html">ClassCalledJanine</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
+<dd><a class="el" href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_N" name="letter_N">N</a></dt>
+<dd><a class="el" href="category_n_s_string_07_remove_emoji_08.html">NSString(RemoveEmoji)</a></dd><dd><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html">NSString(XcodeMemberTypeExtensions)</a></dd><dd><a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html">NSString(XcodeSourceTreeTypeExtensions)</a></dd></dl>
+<dl class="classindex odd">
+<dt class="alphachar"><a id="letter_X" name="letter_X">X</a></dt>
+<dd><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></dd><dd><a class="el" href="protocol_x_c_build_file-p.html">XCBuildFile</a></dd><dd><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></dd><dd><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></dd><dd><a class="el" href="interface_x_c_build_shell_script_definition_tests.html">XCBuildShellScriptDefinitionTests</a></dd><dd><a class="el" href="interface_x_c_build_shell_script_tests.html">XCBuildShellScriptTests</a></dd><dd><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></dd><dd><a class="el" href="interface_x_c_class_definition_tests.html">XCClassDefinitionTests</a></dd><dd><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></dd><dd><a class="el" href="category_x_c_file_operation_queue_07_08.html">XCFileOperationQueue()</a></dd><dd><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></dd><dd><a class="el" href="interface_x_c_framework_path.html">XCFrameworkPath</a></dd><dd><a class="el" href="interface_x_c_group.html">XCGroup</a></dd><dd><a class="el" href="interface_x_c_group_tests.html">XCGroupTests</a></dd><dd><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></dd><dd><a class="el" href="interface_x_c_key_builder_tests.html">XCKeyBuilderTests</a></dd><dd><a class="el" href="interface_xcode_file_reference_type_tests.html">XcodeFileReferenceTypeTests</a></dd><dd><a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a></dd><dd><a class="el" href="interface_x_c_project.html">XCProject</a></dd><dd><a class="el" href="category_x_c_project_07_sub_project_08.html">XCProject(SubProject)</a></dd><dd><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></dd><dd><a class="el" href="interface_x_c_project_tests.html">XCProjectTests</a></dd><dd><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></dd><dd><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></dd><dd><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></dd><dd><a class="el" href="category_x_c_sub_project_definition_07_08.html">XCSubProjectDefinition()</a></dd><dd><a class="el" href="interface_x_c_sub_project_definition_tests.html">XCSubProjectDefinitionTests</a></dd><dd><a class="el" href="interface_x_c_target.html">XCTarget</a></dd><dd><a class="el" href="interface_x_c_target_tests.html">XCTargetTests</a></dd><dd><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></dd><dd><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></dd></dl>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/closed.png b/doc/html/closed.png
new file mode 100644
index 0000000..98cc2c9
Binary files /dev/null and b/doc/html/closed.png differ
diff --git a/doc/html/dir_065956337e6c02b6f80bb625f1ddb37d.html b/doc/html/dir_065956337e6c02b6f80bb625f1ddb37d.html
new file mode 100644
index 0000000..8fcf384
--- /dev/null
+++ b/doc/html/dir_065956337e6c02b6f80bb625f1ddb37d.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeEditorTests Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeEditorTests Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9410f5602cc653cc9d7588bd1ca72908.html">Utils</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_0713b2bab752f4da4697c3a41b1a4c29.html b/doc/html/dir_0713b2bab752f4da4697c3a41b1a4c29.html
new file mode 100644
index 0000000..5bbaca0
--- /dev/null
+++ b/doc/html/dir_0713b2bab752f4da4697c3a41b1a4c29.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Resources Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li><li class="navelem"><a class="el" href="dir_0713b2bab752f4da4697c3a41b1a4c29.html">Resources</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Resources Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_533f0ac04c4a2073642b0a2c15ebb302.html">Files</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_533f0ac04c4a2073642b0a2c15ebb302.html b/doc/html/dir_533f0ac04c4a2073642b0a2c15ebb302.html
new file mode 100644
index 0000000..6d0f744
--- /dev/null
+++ b/doc/html/dir_533f0ac04c4a2073642b0a2c15ebb302.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Files Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li><li class="navelem"><a class="el" href="dir_0713b2bab752f4da4697c3a41b1a4c29.html">Resources</a></li><li class="navelem"><a class="el" href="dir_533f0ac04c4a2073642b0a2c15ebb302.html">Files</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Files Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ClassCalledJanine.h</b> <a href="_class_called_janine_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_5c09e96eccedf512ae411d636afd2712.html b/doc/html/dir_5c09e96eccedf512ae411d636afd2712.html
new file mode 100644
index 0000000..c3bd6fb
--- /dev/null
+++ b/doc/html/dir_5c09e96eccedf512ae411d636afd2712.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Utils Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_5c09e96eccedf512ae411d636afd2712.html">Utils</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Utils Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_74389ed8173ad57b461b9d623a1f3867.html b/doc/html/dir_74389ed8173ad57b461b9d623a1f3867.html
new file mode 100644
index 0000000..d8950e3
--- /dev/null
+++ b/doc/html/dir_74389ed8173ad57b461b9d623a1f3867.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Source Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Source Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_5c09e96eccedf512ae411d636afd2712.html">Utils</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_855050ae6c7dc05f24a2b806a4f40243.html b/doc/html/dir_855050ae6c7dc05f24a2b806a4f40243.html
new file mode 100644
index 0000000..59f177d
--- /dev/null
+++ b/doc/html/dir_855050ae6c7dc05f24a2b806a4f40243.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Include Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html">Source</a></li><li class="navelem"><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html">Include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Include Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>NSString+RemoveEmoji.h</b> <a href="_n_s_string_09_remove_emoji_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCAbstractDefinition.h</b> <a href="_x_c_abstract_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCBuildFile.h</b> <a href="_x_c_build_file_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCBuildShellScript.h</b> <a href="_x_c_build_shell_script_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCBuildShellScriptDefinition.h</b> <a href="_x_c_build_shell_script_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCClassDefinition.h</b> <a href="_x_c_class_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCFileOperationQueue.h</b> <a href="_x_c_file_operation_queue_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCFrameworkDefinition.h</b> <a href="_x_c_framework_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCGroup.h</b> <a href="_x_c_group_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCKeyBuilder.h</b> <a href="_x_c_key_builder_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XcodeEditor.h</b> <a href="_xcode_editor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XcodeGroupMember.h</b> <a href="_xcode_group_member_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XcodeMemberType.h</b> <a href="_xcode_member_type_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XcodeSourceFileType.h</b> <a href="_xcode_source_file_type_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XcodeSourceTreeType.h</b> <a href="_xcode_source_tree_type_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCProject+SubProject.h</b> <a href="_x_c_project_09_sub_project_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCProject.h</b> <a href="_x_c_project_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCProjectBuildConfig.h</b> <a href="_x_c_project_build_config_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCSourceFile.h</b> <a href="_x_c_source_file_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCSourceFileDefinition.h</b> <a href="_x_c_source_file_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCSubProjectDefinition.h</b> <a href="_x_c_sub_project_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCTarget.h</b> <a href="_x_c_target_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCVersionGroup.h</b> <a href="_x_c_version_group_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCXibDefinition.h</b> <a href="_x_c_xib_definition_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_9410f5602cc653cc9d7588bd1ca72908.html b/doc/html/dir_9410f5602cc653cc9d7588bd1ca72908.html
new file mode 100644
index 0000000..796e489
--- /dev/null
+++ b/doc/html/dir_9410f5602cc653cc9d7588bd1ca72908.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Utils Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html">XcodeEditorTests</a></li><li class="navelem"><a class="el" href="dir_9410f5602cc653cc9d7588bd1ca72908.html">Utils</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">Utils Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>XCTestResourceUtils.h</b> <a href="_x_c_test_resource_utils_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/doc.png b/doc/html/doc.png
new file mode 100644
index 0000000..17edabf
Binary files /dev/null and b/doc/html/doc.png differ
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
new file mode 100644
index 0000000..9036737
--- /dev/null
+++ b/doc/html/doxygen.css
@@ -0,0 +1,1841 @@
+/* The standard CSS for doxygen 1.9.3 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+ul.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+	column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+th p.starttd, th p.intertd, th p.endtd {
+        font-size: 100%;
+        font-weight: 700;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+	font-size: 70%;
+	text-align: center;
+}
+
+h3.version {
+	font-size: 90%;
+	text-align: center;
+}
+
+div.navtab {
+	border-right: 1px solid #A3B4D7;
+	padding-right: 15px;
+	text-align: right;
+	line-height: 110%;
+}
+
+div.navtab table {
+	border-spacing: 0;
+}
+
+td.navtab {
+	padding-right: 6px;
+	padding-left: 6px;
+}
+td.navtabHL {
+	background-image: url('tab_a.png');
+	background-repeat:repeat-x;
+	padding-right: 6px;
+	padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+	color: #fff;
+	text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+	font-weight: bold;
+}
+
+div.qindex{
+	text-align: center;
+	width: 100%;
+	line-height: 140%;
+	font-size: 130%;
+	color: #A0A0A0;
+}
+
+dt.alphachar{
+	font-size: 180%;
+	font-weight: bold;
+}
+
+.alphachar a{
+	color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+	text-decoration: none;
+}
+
+.classindex dl {
+	padding: 25px;
+	column-count:1
+}
+
+.classindex dd {
+	display:inline-block;
+	margin-left: 50px;
+	width: 90%;
+	line-height: 1.15em;
+}
+
+.classindex dl.odd {
+	background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+	.classindex dl {
+		column-count:2
+	}
+}
+
+@media(min-width: 1320px) {
+	.classindex dl {
+		column-count:3
+	}
+}
+
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: visible;
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+  margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+        margin-right: 9px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #FFFFFF;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+.compoundTemplParams {
+	color: #4665A2;
+	font-size: 80%;
+	line-height: 120%;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+  text-align: right;
+  direction: rtl;
+}
+
+dl {
+        padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+  margin-right: 0px;
+  padding-right: 0px;
+}
+
+dl.note {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00D000;
+}
+
+dl.deprecated {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #505050;
+}
+
+dl.todo {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.test {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.bug {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectrow
+{
+	height: 56px;
+}
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+        padding-left: 0.5em;
+}
+
+#projectname
+{
+	font: 200% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 90% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+        text-align:right;
+        width:52px;
+}
+
+dl.citelist dd {
+        margin:2px 0 2px 72px;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+span.emoji {
+        /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+         * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+         */
+}
+
+span.obfuscator {
+  display: none;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+  margin-left: 0 !important;
+  margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+  margin-left: 0 !important;
+  margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+  margin-left: 0 !important;
+  margin-right: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	/*white-space: nowrap;*/
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+code.JavaDocCode
+  direction:ltr;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+	text-decoration: underline;
+}
+
diff --git a/doc/html/doxygen.svg b/doc/html/doxygen.svg
new file mode 100644
index 0000000..d42dad5
--- /dev/null
+++ b/doc/html/doxygen.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="a">
+   <stop stop-color="#5373B4" offset="0"/>
+   <stop stop-color="#7C95C6" offset="1"/>
+  </linearGradient>
+  <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+   <stop stop-color="#C0CCE3" offset="0"/>
+   <stop stop-color="#EEF1F7" offset="1"/>
+  </linearGradient>
+  <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+   <feGaussianBlur stdDeviation="0.45293203"/>
+  </filter>
+ </defs>
+ <g>
+  <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+  <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+  <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
+  <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+  <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js
new file mode 100644
index 0000000..3174bd7
--- /dev/null
+++ b/doc/html/dynsections.js
@@ -0,0 +1,121 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
diff --git a/doc/html/files.html b/doc/html/files.html
new file mode 100644
index 0000000..cdc8713
--- /dev/null
+++ b/doc/html/files.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">File List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_74389ed8173ad57b461b9d623a1f3867.html" target="_self">Source</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_855050ae6c7dc05f24a2b806a4f40243.html" target="_self">Include</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_n_s_string_09_remove_emoji_8h_source.html"><span class="icondoc"></span></a><b>NSString+RemoveEmoji.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_abstract_definition_8h_source.html"><span class="icondoc"></span></a><b>XCAbstractDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_build_file_8h_source.html"><span class="icondoc"></span></a><b>XCBuildFile.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_build_shell_script_8h_source.html"><span class="icondoc"></span></a><b>XCBuildShellScript.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_build_shell_script_definition_8h_source.html"><span class="icondoc"></span></a><b>XCBuildShellScriptDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_class_definition_8h_source.html"><span class="icondoc"></span></a><b>XCClassDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_file_operation_queue_8h_source.html"><span class="icondoc"></span></a><b>XCFileOperationQueue.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_framework_definition_8h_source.html"><span class="icondoc"></span></a><b>XCFrameworkDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_group_8h_source.html"><span class="icondoc"></span></a><b>XCGroup.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_key_builder_8h_source.html"><span class="icondoc"></span></a><b>XCKeyBuilder.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_xcode_editor_8h_source.html"><span class="icondoc"></span></a><b>XcodeEditor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_xcode_group_member_8h_source.html"><span class="icondoc"></span></a><b>XcodeGroupMember.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_xcode_member_type_8h_source.html"><span class="icondoc"></span></a><b>XcodeMemberType.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_xcode_source_file_type_8h_source.html"><span class="icondoc"></span></a><b>XcodeSourceFileType.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_xcode_source_tree_type_8h_source.html"><span class="icondoc"></span></a><b>XcodeSourceTreeType.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_project_09_sub_project_8h_source.html"><span class="icondoc"></span></a><b>XCProject+SubProject.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_project_8h_source.html"><span class="icondoc"></span></a><b>XCProject.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_project_build_config_8h_source.html"><span class="icondoc"></span></a><b>XCProjectBuildConfig.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_source_file_8h_source.html"><span class="icondoc"></span></a><b>XCSourceFile.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_19_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_source_file_definition_8h_source.html"><span class="icondoc"></span></a><b>XCSourceFileDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_20_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_sub_project_definition_8h_source.html"><span class="icondoc"></span></a><b>XCSubProjectDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_21_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_target_8h_source.html"><span class="icondoc"></span></a><b>XCTarget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_22_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_version_group_8h_source.html"><span class="icondoc"></span></a><b>XCVersionGroup.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_23_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_xib_definition_8h_source.html"><span class="icondoc"></span></a><b>XCXibDefinition.h</b></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_065956337e6c02b6f80bb625f1ddb37d.html" target="_self">XcodeEditorTests</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span id="img_1_0_" class="iconfopen" onclick="toggleFolder('1_0_')">&#160;</span><a class="el" href="dir_0713b2bab752f4da4697c3a41b1a4c29.html" target="_self">Resources</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_0_" class="arrow" onclick="toggleFolder('1_0_0_')">&#9660;</span><span id="img_1_0_0_" class="iconfopen" onclick="toggleFolder('1_0_0_')">&#160;</span><a class="el" href="dir_533f0ac04c4a2073642b0a2c15ebb302.html" target="_self">Files</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="_class_called_janine_8h_source.html"><span class="icondoc"></span></a><b>ClassCalledJanine.h</b></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">&#9660;</span><span id="img_1_1_" class="iconfopen" onclick="toggleFolder('1_1_')">&#160;</span><a class="el" href="dir_9410f5602cc653cc9d7588bd1ca72908.html" target="_self">Utils</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_x_c_test_resource_utils_8h_source.html"><span class="icondoc"></span></a><b>XCTestResourceUtils.h</b></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/folderclosed.png b/doc/html/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
Binary files /dev/null and b/doc/html/folderclosed.png differ
diff --git a/doc/html/folderopen.png b/doc/html/folderopen.png
new file mode 100644
index 0000000..d6c7f67
Binary files /dev/null and b/doc/html/folderopen.png differ
diff --git a/doc/html/functions.html b/doc/html/functions.html
new file mode 100644
index 0000000..73d9d20
--- /dev/null
+++ b/doc/html/functions.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>addClass:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">XCGroup</a></li>
+<li>addClass:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a122394632f69a66216a83cf4465827f5">XCGroup</a></li>
+<li>addDataModelSource:&#160;:&#160;<a class="el" href="interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37">XCVersionGroup</a></li>
+<li>addFolderReference:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575">XCGroup</a></li>
+<li>addFramework:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11">XCGroup</a></li>
+<li>addFramework:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">XCGroup</a></li>
+<li>addGroupWithAlias:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88">XCGroup</a></li>
+<li>addGroupWithAlias:groupType:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4">XCGroup</a></li>
+<li>addGroupWithPath:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55">XCGroup</a></li>
+<li>addSourceFile:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">XCGroup</a></li>
+<li>addSubProject:&#160;:&#160;<a class="el" href="interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5">XCGroup</a></li>
+<li>addSubProject:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">XCGroup</a></li>
+<li>addVersionGroupWithPath:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec">XCGroup</a></li>
+<li>addXib:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267">XCGroup</a></li>
+<li>addXib:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">XCGroup</a></li>
+<li>alias&#160;:&#160;<a class="el" href="interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885">XCVersionGroup</a></li>
+<li>applicationTargets&#160;:&#160;<a class="el" href="interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>becomeBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37">XCSourceFile</a></li>
+<li>buildFileKeys&#160;:&#160;<a class="el" href="interface_x_c_group.html#a856ec674626d75d10c61383860ef211a">XCGroup</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>children&#160;:&#160;<a class="el" href="interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db">XCGroup</a></li>
+<li>configurations&#160;:&#160;<a class="el" href="interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff">XCProject</a></li>
+<li>configurationWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>files&#160;:&#160;<a class="el" href="interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0">XCProject</a></li>
+<li>fileWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a">XCProject</a></li>
+<li>fileWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>groupForGroupMemberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17">XCProject</a></li>
+<li>groupMemberType&#160;:&#160;<a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">&lt;XcodeGroupMember&gt;</a></li>
+<li>groups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101">XCProject</a></li>
+<li>groupWithDisplayName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6">XCProject</a></li>
+<li>groupWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8">XCProject</a></li>
+<li>groupWithPathFromRoot:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">XCProject</a></li>
+<li>groupWithSourceFile:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>headerFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>initWithFilePath:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c">XCProject</a></li>
+<li>initWithName:&#160;:&#160;<a class="el" href="interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4">XCClassDefinition</a></li>
+<li>initWithName:language:&#160;:&#160;<a class="el" href="interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8">XCClassDefinition</a></li>
+<li>isBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10">XCSourceFile</a></li>
+</ul>
+
+
+<h3><a id="index_k" name="index_k"></a>- k -</h3><ul>
+<li>key&#160;:&#160;<a class="el" href="interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c">XCVersionGroup</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>mainGroup&#160;:&#160;<a class="el" href="interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e">XCProject</a></li>
+<li>members&#160;:&#160;<a class="el" href="interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b">XCGroup</a></li>
+<li>memberWithDisplayName:&#160;:&#160;<a class="el" href="interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6">XCVersionGroup</a></li>
+<li>memberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd">XCVersionGroup</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>objectiveCFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e">XCProject</a></li>
+<li>objectiveCPlusPlusFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487">XCProject</a></li>
+<li>objects&#160;:&#160;<a class="el" href="interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>pathRelativeToParent&#160;:&#160;<a class="el" href="interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b">XCVersionGroup</a></li>
+<li>pruneEmptyGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>recursiveMembers&#160;:&#160;<a class="el" href="interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495">XCGroup</a></li>
+<li>removeBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356">XCSourceFile</a></li>
+<li>removeClass:fromTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25">XCGroup</a></li>
+<li>removeFramework:fromTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c">XCGroup</a></li>
+<li>removeHeader:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1">XCGroup</a></li>
+<li>removeMemberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a">XCGroup</a></li>
+<li>rootGroup&#160;:&#160;<a class="el" href="interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c">XCProject</a></li>
+<li>rootGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>save&#160;:&#160;<a class="el" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">XCProject</a></li>
+<li>setCompilerFlags:&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3">XCSourceFile</a></li>
+<li>setWeakReference&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87">XCSourceFile</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>targets&#160;:&#160;<a class="el" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">XCProject</a></li>
+<li>targetWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
+<li>versionGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7">XCProject</a></li>
+<li>versionGroupWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee">XCProject</a></li>
+<li>versionGroupWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc">XCProject</a></li>
+<li>versions&#160;:&#160;<a class="el" href="interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c">XCVersionGroup</a></li>
+</ul>
+
+
+<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
+<li>xibFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec">XCProject</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
new file mode 100644
index 0000000..083048f
--- /dev/null
+++ b/doc/html/functions_func.html
@@ -0,0 +1,191 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>addClass:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">XCGroup</a></li>
+<li>addClass:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a122394632f69a66216a83cf4465827f5">XCGroup</a></li>
+<li>addDataModelSource:&#160;:&#160;<a class="el" href="interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37">XCVersionGroup</a></li>
+<li>addFolderReference:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575">XCGroup</a></li>
+<li>addFramework:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11">XCGroup</a></li>
+<li>addFramework:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">XCGroup</a></li>
+<li>addGroupWithAlias:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88">XCGroup</a></li>
+<li>addGroupWithAlias:groupType:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4">XCGroup</a></li>
+<li>addGroupWithPath:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55">XCGroup</a></li>
+<li>addSourceFile:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">XCGroup</a></li>
+<li>addSubProject:&#160;:&#160;<a class="el" href="interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5">XCGroup</a></li>
+<li>addSubProject:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">XCGroup</a></li>
+<li>addVersionGroupWithPath:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec">XCGroup</a></li>
+<li>addXib:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267">XCGroup</a></li>
+<li>addXib:toTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">XCGroup</a></li>
+<li>applicationTargets&#160;:&#160;<a class="el" href="interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>becomeBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37">XCSourceFile</a></li>
+<li>buildFileKeys&#160;:&#160;<a class="el" href="interface_x_c_group.html#a856ec674626d75d10c61383860ef211a">XCGroup</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>configurations&#160;:&#160;<a class="el" href="interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff">XCProject</a></li>
+<li>configurationWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>files&#160;:&#160;<a class="el" href="interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0">XCProject</a></li>
+<li>fileWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a">XCProject</a></li>
+<li>fileWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
+<li>groupForGroupMemberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17">XCProject</a></li>
+<li>groupMemberType&#160;:&#160;<a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">&lt;XcodeGroupMember&gt;</a></li>
+<li>groups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101">XCProject</a></li>
+<li>groupWithDisplayName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6">XCProject</a></li>
+<li>groupWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8">XCProject</a></li>
+<li>groupWithPathFromRoot:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">XCProject</a></li>
+<li>groupWithSourceFile:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>headerFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>initWithFilePath:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c">XCProject</a></li>
+<li>initWithName:&#160;:&#160;<a class="el" href="interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4">XCClassDefinition</a></li>
+<li>initWithName:language:&#160;:&#160;<a class="el" href="interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8">XCClassDefinition</a></li>
+<li>isBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10">XCSourceFile</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>mainGroup&#160;:&#160;<a class="el" href="interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e">XCProject</a></li>
+<li>members&#160;:&#160;<a class="el" href="interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b">XCGroup</a></li>
+<li>memberWithDisplayName:&#160;:&#160;<a class="el" href="interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6">XCVersionGroup</a></li>
+<li>memberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd">XCVersionGroup</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>objectiveCFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e">XCProject</a></li>
+<li>objectiveCPlusPlusFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487">XCProject</a></li>
+<li>objects&#160;:&#160;<a class="el" href="interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>pruneEmptyGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>recursiveMembers&#160;:&#160;<a class="el" href="interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495">XCGroup</a></li>
+<li>removeBuildFile&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356">XCSourceFile</a></li>
+<li>removeClass:fromTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25">XCGroup</a></li>
+<li>removeFramework:fromTargets:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c">XCGroup</a></li>
+<li>removeHeader:&#160;:&#160;<a class="el" href="interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1">XCGroup</a></li>
+<li>removeMemberWithKey:&#160;:&#160;<a class="el" href="interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a">XCGroup</a></li>
+<li>rootGroup&#160;:&#160;<a class="el" href="interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c">XCProject</a></li>
+<li>rootGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>save&#160;:&#160;<a class="el" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">XCProject</a></li>
+<li>setCompilerFlags:&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3">XCSourceFile</a></li>
+<li>setWeakReference&#160;:&#160;<a class="el" href="interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87">XCSourceFile</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>targets&#160;:&#160;<a class="el" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">XCProject</a></li>
+<li>targetWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
+<li>versionGroups&#160;:&#160;<a class="el" href="interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7">XCProject</a></li>
+<li>versionGroupWithKey:&#160;:&#160;<a class="el" href="interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee">XCProject</a></li>
+<li>versionGroupWithName:&#160;:&#160;<a class="el" href="interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc">XCProject</a></li>
+</ul>
+
+
+<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
+<li>xibFiles&#160;:&#160;<a class="el" href="interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec">XCProject</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/functions_prop.html b/doc/html/functions_prop.html
new file mode 100644
index 0000000..d141f60
--- /dev/null
+++ b/doc/html/functions_prop.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class Members - Properties</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>alias&#160;:&#160;<a class="el" href="interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885">XCVersionGroup</a></li>
+<li>children&#160;:&#160;<a class="el" href="interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db">XCGroup</a></li>
+<li>key&#160;:&#160;<a class="el" href="interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c">XCVersionGroup</a></li>
+<li>pathRelativeToParent&#160;:&#160;<a class="el" href="interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a">XCGroup</a>, <a class="el" href="interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b">XCVersionGroup</a></li>
+<li>versions&#160;:&#160;<a class="el" href="interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c">XCVersionGroup</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
new file mode 100644
index 0000000..11e1cd5
--- /dev/null
+++ b/doc/html/hierarchy.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">Class Hierarchy</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_hash_value_m_d5_hash.html" target="_self">HashValueMD5Hash</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>NSObject</b></td><td class="desc"></td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_class_called_janine.html" target="_self">ClassCalledJanine</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_abstract_definition.html" target="_self">XCAbstractDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_definition.html" target="_self">XCBuildShellScriptDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_class_definition.html" target="_self">XCClassDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_framework_definition.html" target="_self">XCFrameworkDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file_definition.html" target="_self">XCSourceFileDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_sub_project_definition.html" target="_self">XCSubProjectDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_xib_definition.html" target="_self">XCXibDefinition</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script.html" target="_self">XCBuildShellScript</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_file_operation_queue.html" target="_self">XCFileOperationQueue</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_framework_path.html" target="_self">XCFrameworkPath</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group.html" target="_self">XCGroup</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_key_builder.html" target="_self">XCKeyBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project.html" target="_self">XCProject</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project_build_config.html" target="_self">XCProjectBuildConfig</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file.html" target="_self">XCSourceFile</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_target.html" target="_self">XCTarget</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_version_group.html" target="_self">XCVersionGroup</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>&lt;NSObject&gt;</b></td><td class="desc"></td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_0_" class="arrow" onclick="toggleFolder('2_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="protocol_x_c_build_file-p.html" target="_self">&lt;XCBuildFile&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group.html" target="_self">XCGroup</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file.html" target="_self">XCSourceFile</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_version_group.html" target="_self">XCVersionGroup</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_2_1_" class="arrow" onclick="toggleFolder('2_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="protocol_xcode_group_member-p.html" target="_self">&lt;XcodeGroupMember&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group.html" target="_self">XCGroup</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_source_file.html" target="_self">XCSourceFile</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_version_group.html" target="_self">XCVersionGroup</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_remove_emoji_08.html" target="_self">NSString(RemoveEmoji)</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_xcode_member_type_extensions_08.html" target="_self">NSString(XcodeMemberTypeExtensions)</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_n_s_string_07_xcode_source_tree_type_extensions_08.html" target="_self">NSString(XcodeSourceTreeTypeExtensions)</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_file_operation_queue_07_08.html" target="_self">XCFileOperationQueue()</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_project_07_sub_project_08.html" target="_self">XCProject(SubProject)</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="category_x_c_sub_project_definition_07_08.html" target="_self">XCSubProjectDefinition()</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_9_" class="arrow" onclick="toggleFolder('9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>XCTestCase</b></td><td class="desc"></td></tr>
+<tr id="row_9_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_definition_tests.html" target="_self">XCBuildShellScriptDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_build_shell_script_tests.html" target="_self">XCBuildShellScriptTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_class_definition_tests.html" target="_self">XCClassDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_group_tests.html" target="_self">XCGroupTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_key_builder_tests.html" target="_self">XCKeyBuilderTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_project_tests.html" target="_self">XCProjectTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_sub_project_definition_tests.html" target="_self">XCSubProjectDefinitionTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_x_c_target_tests.html" target="_self">XCTargetTests</a></td><td class="desc"></td></tr>
+<tr id="row_9_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interface_xcode_file_reference_type_tests.html" target="_self">XcodeFileReferenceTypeTests</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000..807be9c
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeEditor-master Documentation</div></div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_class_called_janine.html b/doc/html/interface_class_called_janine.html
new file mode 100644
index 0000000..3c3e629
--- /dev/null
+++ b/doc/html/interface_class_called_janine.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: ClassCalledJanine Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">ClassCalledJanine Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ClassCalledJanine:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_class_called_janine.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_class_called_janine_8h_source.html">ClassCalledJanine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_class_called_janine.png b/doc/html/interface_class_called_janine.png
new file mode 100644
index 0000000..a83a4aa
Binary files /dev/null and b/doc/html/interface_class_called_janine.png differ
diff --git a/doc/html/interface_x_c_abstract_definition-members.html b/doc/html/interface_x_c_abstract_definition-members.html
new file mode 100644
index 0000000..b7c8746
--- /dev/null
+++ b/doc/html/interface_x_c_abstract_definition-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCAbstractDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_abstract_definition.html b/doc/html/interface_x_c_abstract_definition.html
new file mode 100644
index 0000000..e1cc815
--- /dev/null
+++ b/doc/html/interface_x_c_abstract_definition.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCAbstractDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_abstract_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCAbstractDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#import &lt;<a class="el" href="_x_c_abstract_definition_8h_source.html">XCAbstractDefinition.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for XCAbstractDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_abstract_definition.png" usemap="#XCAbstractDefinition_map" alt=""/>
+  <map id="XCAbstractDefinition_map" name="XCAbstractDefinition_map">
+<area href="interface_x_c_build_shell_script_definition.html" alt="XCBuildShellScriptDefinition" shape="rect" coords="0,112,172,136"/>
+<area href="interface_x_c_class_definition.html" alt="XCClassDefinition" shape="rect" coords="182,112,354,136"/>
+<area href="interface_x_c_framework_definition.html" alt="XCFrameworkDefinition" shape="rect" coords="364,112,536,136"/>
+<area href="interface_x_c_source_file_definition.html" alt="XCSourceFileDefinition" shape="rect" coords="546,112,718,136"/>
+<area href="interface_x_c_sub_project_definition.html" alt="XCSubProjectDefinition" shape="rect" coords="728,112,900,136"/>
+<area href="interface_x_c_xib_definition.html" alt="XCXibDefinition" shape="rect" coords="910,112,1082,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Holds properties to all types of resource that can be added to an Xcode project. </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_x_c_abstract_definition_8h_source.html">XCAbstractDefinition.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_abstract_definition.png b/doc/html/interface_x_c_abstract_definition.png
new file mode 100644
index 0000000..15dca55
Binary files /dev/null and b/doc/html/interface_x_c_abstract_definition.png differ
diff --git a/doc/html/interface_x_c_build_shell_script-members.html b/doc/html/interface_x_c_build_shell_script-members.html
new file mode 100644
index 0000000..afb66c3
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script-members.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScript Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>files</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>inputPaths</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>outputPaths</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>runOnlyForDeploymentPostprocessing</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>shellPath</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>shellScript</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>shellScriptWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b> (defined in <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script.html b/doc/html/interface_x_c_build_shell_script.html
new file mode 100644
index 0000000..1ac1418
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScript Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_build_shell_script-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCBuildShellScript Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCBuildShellScript:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_build_shell_script.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a776869cb5f3534f0123649c5d43fc27a"><td class="memItemLeft" align="right" valign="top"><a id="a776869cb5f3534f0123649c5d43fc27a" name="a776869cb5f3534f0123649c5d43fc27a"></a>
+(instancetype _Nonnull)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b></td></tr>
+<tr class="separator:a776869cb5f3534f0123649c5d43fc27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a546240e131ef3113050edaedd1c02c40"><td class="memItemLeft" align="right" valign="top"><a id="a546240e131ef3113050edaedd1c02c40" name="a546240e131ef3113050edaedd1c02c40"></a>
+(<a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a> *_Nonnull)&#160;</td><td class="memItemRight" valign="bottom">+ <b>shellScriptWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b></td></tr>
+<tr class="separator:a546240e131ef3113050edaedd1c02c40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a8395d31f9049a538bb94c0e4cb5277ea"><td class="memItemLeft" align="right" valign="top"><a id="a8395d31f9049a538bb94c0e4cb5277ea" name="a8395d31f9049a538bb94c0e4cb5277ea"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:a8395d31f9049a538bb94c0e4cb5277ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:ab88419d2cd8525883ff6ccbe1cde2389"><td class="memItemLeft" align="right" valign="top"><a id="ab88419d2cd8525883ff6ccbe1cde2389" name="ab88419d2cd8525883ff6ccbe1cde2389"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:ab88419d2cd8525883ff6ccbe1cde2389"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae21f51288e30e5baae9c194ccad324b1"><td class="memItemLeft" align="right" valign="top"><a id="ae21f51288e30e5baae9c194ccad324b1" name="ae21f51288e30e5baae9c194ccad324b1"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:ae21f51288e30e5baae9c194ccad324b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a818e40adfaf4f36b0f6346c4927f6ace"><td class="memItemLeft" align="right" valign="top"><a id="a818e40adfaf4f36b0f6346c4927f6ace" name="a818e40adfaf4f36b0f6346c4927f6ace"></a>
+BOOL&#160;</td><td class="memItemRight" valign="bottom"><b>runOnlyForDeploymentPostprocessing</b></td></tr>
+<tr class="separator:a818e40adfaf4f36b0f6346c4927f6ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2044c2e23e49807d91108a69331d4318"><td class="memItemLeft" align="right" valign="top"><a id="a2044c2e23e49807d91108a69331d4318" name="a2044c2e23e49807d91108a69331d4318"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>shellScript</b></td></tr>
+<tr class="separator:a2044c2e23e49807d91108a69331d4318"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e707035e5735b970423bb741cabc4dc"><td class="memItemLeft" align="right" valign="top"><a id="a4e707035e5735b970423bb741cabc4dc" name="a4e707035e5735b970423bb741cabc4dc"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>shellPath</b></td></tr>
+<tr class="separator:a4e707035e5735b970423bb741cabc4dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ea0a64850dca73c9192601168512396"><td class="memItemLeft" align="right" valign="top"><a id="a1ea0a64850dca73c9192601168512396" name="a1ea0a64850dca73c9192601168512396"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>files</b></td></tr>
+<tr class="separator:a1ea0a64850dca73c9192601168512396"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f3cb1af62fd6c58709e19f4010d82e1"><td class="memItemLeft" align="right" valign="top"><a id="a2f3cb1af62fd6c58709e19f4010d82e1" name="a2f3cb1af62fd6c58709e19f4010d82e1"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>inputPaths</b></td></tr>
+<tr class="separator:a2f3cb1af62fd6c58709e19f4010d82e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09f1f7340392b62f808b4b71fab11c60"><td class="memItemLeft" align="right" valign="top"><a id="a09f1f7340392b62f808b4b71fab11c60" name="a09f1f7340392b62f808b4b71fab11c60"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>outputPaths</b></td></tr>
+<tr class="separator:a09f1f7340392b62f808b4b71fab11c60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_x_c_build_shell_script_8h_source.html">XCBuildShellScript.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script.png b/doc/html/interface_x_c_build_shell_script.png
new file mode 100644
index 0000000..7661d21
Binary files /dev/null and b/doc/html/interface_x_c_build_shell_script.png differ
diff --git a/doc/html/interface_x_c_build_shell_script_definition-members.html b/doc/html/interface_x_c_build_shell_script_definition-members.html
new file mode 100644
index 0000000..3192659
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script_definition-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScriptDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>files</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>inputPaths</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>outputPaths</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>runOnlyForDeploymentPostprocessing</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>shellPath</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>shellScript</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>shellScriptDefinitionWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b> (defined in <a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script_definition.html b/doc/html/interface_x_c_build_shell_script_definition.html
new file mode 100644
index 0000000..7c8897c
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script_definition.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScriptDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_build_shell_script_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCBuildShellScriptDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCBuildShellScriptDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_build_shell_script_definition.png" usemap="#XCBuildShellScriptDefinition_map" alt=""/>
+  <map id="XCBuildShellScriptDefinition_map" name="XCBuildShellScriptDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,172,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a6da6cb540f62b4f60daa622f583319b0"><td class="memItemLeft" align="right" valign="top"><a id="a6da6cb540f62b4f60daa622f583319b0" name="a6da6cb540f62b4f60daa622f583319b0"></a>
+(instancetype _Nonnull)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b></td></tr>
+<tr class="separator:a6da6cb540f62b4f60daa622f583319b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:ae61f52f8e27e373b73de4d5a813ace74"><td class="memItemLeft" align="right" valign="top"><a id="ae61f52f8e27e373b73de4d5a813ace74" name="ae61f52f8e27e373b73de4d5a813ace74"></a>
+(<a class="el" href="interface_x_c_build_shell_script_definition.html">XCBuildShellScriptDefinition</a> *_Nonnull)&#160;</td><td class="memItemRight" valign="bottom">+ <b>shellScriptDefinitionWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:</b></td></tr>
+<tr class="separator:ae61f52f8e27e373b73de4d5a813ace74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a78d2a6ce6dfc4f239454e4707f029a0b"><td class="memItemLeft" align="right" valign="top"><a id="a78d2a6ce6dfc4f239454e4707f029a0b" name="a78d2a6ce6dfc4f239454e4707f029a0b"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:a78d2a6ce6dfc4f239454e4707f029a0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a72b0cd7e8ea5bf38cb548992d82244ef"><td class="memItemLeft" align="right" valign="top"><a id="a72b0cd7e8ea5bf38cb548992d82244ef" name="a72b0cd7e8ea5bf38cb548992d82244ef"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:a72b0cd7e8ea5bf38cb548992d82244ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f1a1003dcc7451ef27d39b0d911d176"><td class="memItemLeft" align="right" valign="top"><a id="a1f1a1003dcc7451ef27d39b0d911d176" name="a1f1a1003dcc7451ef27d39b0d911d176"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:a1f1a1003dcc7451ef27d39b0d911d176"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0d83a2385278ec41184c5002185483f"><td class="memItemLeft" align="right" valign="top"><a id="aa0d83a2385278ec41184c5002185483f" name="aa0d83a2385278ec41184c5002185483f"></a>
+BOOL&#160;</td><td class="memItemRight" valign="bottom"><b>runOnlyForDeploymentPostprocessing</b></td></tr>
+<tr class="separator:aa0d83a2385278ec41184c5002185483f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9dd4e3c901959f29d3bd67e67626e34"><td class="memItemLeft" align="right" valign="top"><a id="ab9dd4e3c901959f29d3bd67e67626e34" name="ab9dd4e3c901959f29d3bd67e67626e34"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>shellScript</b></td></tr>
+<tr class="separator:ab9dd4e3c901959f29d3bd67e67626e34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdfb1ba09449fd3caaf3370f2f106fb4"><td class="memItemLeft" align="right" valign="top"><a id="acdfb1ba09449fd3caaf3370f2f106fb4" name="acdfb1ba09449fd3caaf3370f2f106fb4"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>shellPath</b></td></tr>
+<tr class="separator:acdfb1ba09449fd3caaf3370f2f106fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa04c6111c3736016c391fb39681d6cd7"><td class="memItemLeft" align="right" valign="top"><a id="aa04c6111c3736016c391fb39681d6cd7" name="aa04c6111c3736016c391fb39681d6cd7"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>files</b></td></tr>
+<tr class="separator:aa04c6111c3736016c391fb39681d6cd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22dc77450412e8c1422344c5719938c8"><td class="memItemLeft" align="right" valign="top"><a id="a22dc77450412e8c1422344c5719938c8" name="a22dc77450412e8c1422344c5719938c8"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>inputPaths</b></td></tr>
+<tr class="separator:a22dc77450412e8c1422344c5719938c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a404e502b97fa0ee9f62a7a2fbda4ced5"><td class="memItemLeft" align="right" valign="top"><a id="a404e502b97fa0ee9f62a7a2fbda4ced5" name="a404e502b97fa0ee9f62a7a2fbda4ced5"></a>
+NSArray&lt; NSString * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>outputPaths</b></td></tr>
+<tr class="separator:a404e502b97fa0ee9f62a7a2fbda4ced5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_build_shell_script_definition_8h_source.html">XCBuildShellScriptDefinition.h</a></li>
+<li>XCBuildShellScriptDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script_definition.png b/doc/html/interface_x_c_build_shell_script_definition.png
new file mode 100644
index 0000000..96f5c8b
Binary files /dev/null and b/doc/html/interface_x_c_build_shell_script_definition.png differ
diff --git a/doc/html/interface_x_c_build_shell_script_definition_tests.html b/doc/html/interface_x_c_build_shell_script_definition_tests.html
new file mode 100644
index 0000000..fef472d
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script_definition_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScriptDefinitionTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScriptDefinitionTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCBuildShellScriptDefinitionTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_build_shell_script_definition_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCBuildShellScriptDefinitionTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script_definition_tests.png b/doc/html/interface_x_c_build_shell_script_definition_tests.png
new file mode 100644
index 0000000..511f313
Binary files /dev/null and b/doc/html/interface_x_c_build_shell_script_definition_tests.png differ
diff --git a/doc/html/interface_x_c_build_shell_script_tests.html b/doc/html/interface_x_c_build_shell_script_tests.html
new file mode 100644
index 0000000..a12865a
--- /dev/null
+++ b/doc/html/interface_x_c_build_shell_script_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCBuildShellScriptTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCBuildShellScriptTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCBuildShellScriptTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_build_shell_script_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCBuildShellScriptTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_build_shell_script_tests.png b/doc/html/interface_x_c_build_shell_script_tests.png
new file mode 100644
index 0000000..34882cb
Binary files /dev/null and b/doc/html/interface_x_c_build_shell_script_tests.png differ
diff --git a/doc/html/interface_x_c_class_definition-members.html b/doc/html/interface_x_c_class_definition-members.html
new file mode 100644
index 0000000..ba90983
--- /dev/null
+++ b/doc/html/interface_x_c_class_definition-members.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCClassDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_className</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_header</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_source</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>classDefinitionWithName:</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>classDefinitionWithName:language:</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>className</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>header</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>headerFileName</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4">initWithName:</a></td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8">initWithName:language:</a></td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>isCPlusPlus</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isObjectiveC</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>isObjectiveCPlusPlus</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>source</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>sourceFileName</b> (defined in <a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_class_definition.html b/doc/html/interface_x_c_class_definition.html
new file mode 100644
index 0000000..a9cdb1d
--- /dev/null
+++ b/doc/html/interface_x_c_class_definition.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCClassDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_class_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCClassDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCClassDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_class_definition.png" usemap="#XCClassDefinition_map" alt=""/>
+  <map id="XCClassDefinition_map" name="XCClassDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,130,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a23690152051fe1b9faae85328a0b01e4"><td class="memItemLeft" align="right" valign="top">(id)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4">initWithName:</a></td></tr>
+<tr class="separator:a23690152051fe1b9faae85328a0b01e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ac63d73ba9eb0cc41124a86a13960c8"><td class="memItemLeft" align="right" valign="top">(id)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8">initWithName:language:</a></td></tr>
+<tr class="separator:a5ac63d73ba9eb0cc41124a86a13960c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8057794678ce18938d74712647cd768f"><td class="memItemLeft" align="right" valign="top"><a id="a8057794678ce18938d74712647cd768f" name="a8057794678ce18938d74712647cd768f"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isObjectiveC</b></td></tr>
+<tr class="separator:a8057794678ce18938d74712647cd768f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae16be8fde4a4a4220c6304a7af843e62"><td class="memItemLeft" align="right" valign="top"><a id="ae16be8fde4a4a4220c6304a7af843e62" name="ae16be8fde4a4a4220c6304a7af843e62"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isObjectiveCPlusPlus</b></td></tr>
+<tr class="separator:ae16be8fde4a4a4220c6304a7af843e62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac55b847a41c97cebdae6129f97c04411"><td class="memItemLeft" align="right" valign="top"><a id="ac55b847a41c97cebdae6129f97c04411" name="ac55b847a41c97cebdae6129f97c04411"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isCPlusPlus</b></td></tr>
+<tr class="separator:ac55b847a41c97cebdae6129f97c04411"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab581631959c4a311b08cef8795db19f4"><td class="memItemLeft" align="right" valign="top"><a id="ab581631959c4a311b08cef8795db19f4" name="ab581631959c4a311b08cef8795db19f4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>headerFileName</b></td></tr>
+<tr class="separator:ab581631959c4a311b08cef8795db19f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2151047dda92fc08060f5db5f0870c5a"><td class="memItemLeft" align="right" valign="top"><a id="a2151047dda92fc08060f5db5f0870c5a" name="a2151047dda92fc08060f5db5f0870c5a"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>sourceFileName</b></td></tr>
+<tr class="separator:a2151047dda92fc08060f5db5f0870c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:abd37214c1044249cf596305989375513"><td class="memItemLeft" align="right" valign="top"><a id="abd37214c1044249cf596305989375513" name="abd37214c1044249cf596305989375513"></a>
+(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>classDefinitionWithName:</b></td></tr>
+<tr class="separator:abd37214c1044249cf596305989375513"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa06c00d77cf6fd2e47574b0f25525b9a"><td class="memItemLeft" align="right" valign="top"><a id="aa06c00d77cf6fd2e47574b0f25525b9a" name="aa06c00d77cf6fd2e47574b0f25525b9a"></a>
+(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>classDefinitionWithName:language:</b></td></tr>
+<tr class="separator:aa06c00d77cf6fd2e47574b0f25525b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:aca0cfdcf71ca0882755e48f8cf7fa2e6"><td class="memItemLeft" align="right" valign="top"><a id="aca0cfdcf71ca0882755e48f8cf7fa2e6" name="aca0cfdcf71ca0882755e48f8cf7fa2e6"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_className</b></td></tr>
+<tr class="separator:aca0cfdcf71ca0882755e48f8cf7fa2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f8877a914b3beb805895f8d9479721f"><td class="memItemLeft" align="right" valign="top"><a id="a7f8877a914b3beb805895f8d9479721f" name="a7f8877a914b3beb805895f8d9479721f"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_header</b></td></tr>
+<tr class="separator:a7f8877a914b3beb805895f8d9479721f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a049ddbd9b0c9b5db631bff86739a4563"><td class="memItemLeft" align="right" valign="top"><a id="a049ddbd9b0c9b5db631bff86739a4563" name="a049ddbd9b0c9b5db631bff86739a4563"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_source</b></td></tr>
+<tr class="separator:a049ddbd9b0c9b5db631bff86739a4563"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a2546319b3a49afb05aeff8edb307e426"><td class="memItemLeft" align="right" valign="top"><a id="a2546319b3a49afb05aeff8edb307e426" name="a2546319b3a49afb05aeff8edb307e426"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>className</b></td></tr>
+<tr class="separator:a2546319b3a49afb05aeff8edb307e426"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5aa654cae2860ce584f409bfcc3c34b1"><td class="memItemLeft" align="right" valign="top"><a id="a5aa654cae2860ce584f409bfcc3c34b1" name="a5aa654cae2860ce584f409bfcc3c34b1"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>header</b></td></tr>
+<tr class="separator:a5aa654cae2860ce584f409bfcc3c34b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acab09962126ebae52ec5bc9eb4e9c261"><td class="memItemLeft" align="right" valign="top"><a id="acab09962126ebae52ec5bc9eb4e9c261" name="acab09962126ebae52ec5bc9eb4e9c261"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>source</b></td></tr>
+<tr class="separator:acab09962126ebae52ec5bc9eb4e9c261"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Method Documentation</h2>
+<a id="a23690152051fe1b9faae85328a0b01e4" name="a23690152051fe1b9faae85328a0b01e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23690152051fe1b9faae85328a0b01e4">&#9670;&nbsp;</a></span>initWithName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id) initWithName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>fileName</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Initializes a new objective-c class definition. </p>
+
+</div>
+</div>
+<a id="a5ac63d73ba9eb0cc41124a86a13960c8" name="a5ac63d73ba9eb0cc41124a86a13960c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ac63d73ba9eb0cc41124a86a13960c8">&#9670;&nbsp;</a></span>initWithName:language:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id) <a class="el" href="interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4">initWithName:</a> </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>className</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">language:</td>
+          <td></td>
+          <td class="paramtype">(ClassDefinitionLanguage)&#160;</td>
+          <td class="paramname"><em>language</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Initializes a new class definition with the specified language. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_class_definition_8h_source.html">XCClassDefinition.h</a></li>
+<li>XCClassDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_class_definition.png b/doc/html/interface_x_c_class_definition.png
new file mode 100644
index 0000000..41a2b2b
Binary files /dev/null and b/doc/html/interface_x_c_class_definition.png differ
diff --git a/doc/html/interface_x_c_class_definition_tests.html b/doc/html/interface_x_c_class_definition_tests.html
new file mode 100644
index 0000000..2c13c20
--- /dev/null
+++ b/doc/html/interface_x_c_class_definition_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCClassDefinitionTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCClassDefinitionTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCClassDefinitionTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_class_definition_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCClassDefinitionTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_class_definition_tests.png b/doc/html/interface_x_c_class_definition_tests.png
new file mode 100644
index 0000000..2ac4bb5
Binary files /dev/null and b/doc/html/interface_x_c_class_definition_tests.png differ
diff --git a/doc/html/interface_x_c_file_operation_queue-members.html b/doc/html/interface_x_c_file_operation_queue-members.html
new file mode 100644
index 0000000..15e6654
--- /dev/null
+++ b/doc/html/interface_x_c_file_operation_queue-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFileOperationQueue Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>commitFileOperations</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>fileWithName:existsInProjectDirectory:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithBaseDirectory:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>queueDataFile:inDirectory:withContents:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>queueDeletion:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>queueDirectory:inDirectory:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>queueFrameworkWithFilePath:inDirectory:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>queueTextFile:inDirectory:withContents:</b> (defined in <a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a>)</td><td class="entry"><a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_file_operation_queue.html b/doc/html/interface_x_c_file_operation_queue.html
new file mode 100644
index 0000000..3bd8092
--- /dev/null
+++ b/doc/html/interface_x_c_file_operation_queue.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFileOperationQueue Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="interface_x_c_file_operation_queue-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCFileOperationQueue Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCFileOperationQueue:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_file_operation_queue.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a580ee6b6c0df85cb533376feb0dcf470"><td class="memItemLeft" align="right" valign="top"><a id="a580ee6b6c0df85cb533376feb0dcf470" name="a580ee6b6c0df85cb533376feb0dcf470"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithBaseDirectory:</b></td></tr>
+<tr class="separator:a580ee6b6c0df85cb533376feb0dcf470"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa77e6c7278dffdf5c0d1a9895ea696b7"><td class="memItemLeft" align="right" valign="top"><a id="aa77e6c7278dffdf5c0d1a9895ea696b7" name="aa77e6c7278dffdf5c0d1a9895ea696b7"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>fileWithName:existsInProjectDirectory:</b></td></tr>
+<tr class="separator:aa77e6c7278dffdf5c0d1a9895ea696b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa988e09a85dfc39ee594c16c3791d17"><td class="memItemLeft" align="right" valign="top"><a id="afa988e09a85dfc39ee594c16c3791d17" name="afa988e09a85dfc39ee594c16c3791d17"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>queueTextFile:inDirectory:withContents:</b></td></tr>
+<tr class="separator:afa988e09a85dfc39ee594c16c3791d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d89200d1ae0025c2033419225a6e8a9"><td class="memItemLeft" align="right" valign="top"><a id="a4d89200d1ae0025c2033419225a6e8a9" name="a4d89200d1ae0025c2033419225a6e8a9"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>queueDataFile:inDirectory:withContents:</b></td></tr>
+<tr class="separator:a4d89200d1ae0025c2033419225a6e8a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad190028004951117f463ddb5d5484b74"><td class="memItemLeft" align="right" valign="top"><a id="ad190028004951117f463ddb5d5484b74" name="ad190028004951117f463ddb5d5484b74"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>queueFrameworkWithFilePath:inDirectory:</b></td></tr>
+<tr class="separator:ad190028004951117f463ddb5d5484b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acee5306e88d22c322134064724a1227d"><td class="memItemLeft" align="right" valign="top"><a id="acee5306e88d22c322134064724a1227d" name="acee5306e88d22c322134064724a1227d"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>queueDeletion:</b></td></tr>
+<tr class="separator:acee5306e88d22c322134064724a1227d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7143342f5652922181dc982ce0a5ed71"><td class="memItemLeft" align="right" valign="top"><a id="a7143342f5652922181dc982ce0a5ed71" name="a7143342f5652922181dc982ce0a5ed71"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>queueDirectory:inDirectory:</b></td></tr>
+<tr class="separator:a7143342f5652922181dc982ce0a5ed71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3cda6fb196b8a4ccc377e06c5fbafb9"><td class="memItemLeft" align="right" valign="top"><a id="af3cda6fb196b8a4ccc377e06c5fbafb9" name="af3cda6fb196b8a4ccc377e06c5fbafb9"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>commitFileOperations</b></td></tr>
+<tr class="separator:af3cda6fb196b8a4ccc377e06c5fbafb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_file_operation_queue_8h_source.html">XCFileOperationQueue.h</a></li>
+<li>XCFileOperationQueue.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_file_operation_queue.png b/doc/html/interface_x_c_file_operation_queue.png
new file mode 100644
index 0000000..f0077d6
Binary files /dev/null and b/doc/html/interface_x_c_file_operation_queue.png differ
diff --git a/doc/html/interface_x_c_framework_definition-members.html b/doc/html/interface_x_c_framework_definition-members.html
new file mode 100644
index 0000000..2923bb1
--- /dev/null
+++ b/doc/html/interface_x_c_framework_definition-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFrameworkDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_copyToDestination</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_filePath</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_sourceTree</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>copyToDestination</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>fileName</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>filePath</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>frameworkDefinitionWithFilePath:copyToDestination:</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>frameworkDefinitionWithFilePath:copyToDestination:sourceTree:</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithFilePath:copyToDestination:</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>initWithFilePath:copyToDestination:sourceTree:</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>sourceTree</b> (defined in <a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_framework_definition.html b/doc/html/interface_x_c_framework_definition.html
new file mode 100644
index 0000000..1fe2c42
--- /dev/null
+++ b/doc/html/interface_x_c_framework_definition.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFrameworkDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_framework_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCFrameworkDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCFrameworkDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_framework_definition.png" usemap="#XCFrameworkDefinition_map" alt=""/>
+  <map id="XCFrameworkDefinition_map" name="XCFrameworkDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,146,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a692f07320b6a66e6aa2619a28d483b32"><td class="memItemLeft" align="right" valign="top"><a id="a692f07320b6a66e6aa2619a28d483b32" name="a692f07320b6a66e6aa2619a28d483b32"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithFilePath:copyToDestination:</b></td></tr>
+<tr class="separator:a692f07320b6a66e6aa2619a28d483b32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae42e50ae4ba4243aa0d89d695a8b4636"><td class="memItemLeft" align="right" valign="top"><a id="ae42e50ae4ba4243aa0d89d695a8b4636" name="ae42e50ae4ba4243aa0d89d695a8b4636"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithFilePath:copyToDestination:sourceTree:</b></td></tr>
+<tr class="separator:ae42e50ae4ba4243aa0d89d695a8b4636"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41770c4aa2b37b67210cd35070b4bc3d"><td class="memItemLeft" align="right" valign="top"><a id="a41770c4aa2b37b67210cd35070b4bc3d" name="a41770c4aa2b37b67210cd35070b4bc3d"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>fileName</b></td></tr>
+<tr class="separator:a41770c4aa2b37b67210cd35070b4bc3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a13f96181b5df04e26f308cbc0122422a"><td class="memItemLeft" align="right" valign="top"><a id="a13f96181b5df04e26f308cbc0122422a" name="a13f96181b5df04e26f308cbc0122422a"></a>
+(<a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>frameworkDefinitionWithFilePath:copyToDestination:</b></td></tr>
+<tr class="separator:a13f96181b5df04e26f308cbc0122422a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adacb9b07bba827484466795a8d6228ce"><td class="memItemLeft" align="right" valign="top"><a id="adacb9b07bba827484466795a8d6228ce" name="adacb9b07bba827484466795a8d6228ce"></a>
+(<a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>frameworkDefinitionWithFilePath:copyToDestination:sourceTree:</b></td></tr>
+<tr class="separator:adacb9b07bba827484466795a8d6228ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a4ec0180484e50df85802881a4e890862"><td class="memItemLeft" align="right" valign="top"><a id="a4ec0180484e50df85802881a4e890862" name="a4ec0180484e50df85802881a4e890862"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_filePath</b></td></tr>
+<tr class="separator:a4ec0180484e50df85802881a4e890862"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a635f330365c99e5806d51f44fc8ac10d"><td class="memItemLeft" align="right" valign="top"><a id="a635f330365c99e5806d51f44fc8ac10d" name="a635f330365c99e5806d51f44fc8ac10d"></a>
+BOOL&#160;</td><td class="memItemRight" valign="bottom"><b>_copyToDestination</b></td></tr>
+<tr class="separator:a635f330365c99e5806d51f44fc8ac10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add132a619414714f9571ccf77891d19a"><td class="memItemLeft" align="right" valign="top"><a id="add132a619414714f9571ccf77891d19a" name="add132a619414714f9571ccf77891d19a"></a>
+XcodeSourceTreeType&#160;</td><td class="memItemRight" valign="bottom"><b>_sourceTree</b></td></tr>
+<tr class="separator:add132a619414714f9571ccf77891d19a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a62cb2edda93699a7b7d2690762deb1c4"><td class="memItemLeft" align="right" valign="top"><a id="a62cb2edda93699a7b7d2690762deb1c4" name="a62cb2edda93699a7b7d2690762deb1c4"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>filePath</b></td></tr>
+<tr class="separator:a62cb2edda93699a7b7d2690762deb1c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a788efd231c23735b89e508849a708544"><td class="memItemLeft" align="right" valign="top"><a id="a788efd231c23735b89e508849a708544" name="a788efd231c23735b89e508849a708544"></a>
+BOOL&#160;</td><td class="memItemRight" valign="bottom"><b>copyToDestination</b></td></tr>
+<tr class="separator:a788efd231c23735b89e508849a708544"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e8261e7bd47602a002aa966405054be"><td class="memItemLeft" align="right" valign="top"><a id="a1e8261e7bd47602a002aa966405054be" name="a1e8261e7bd47602a002aa966405054be"></a>
+XcodeSourceTreeType&#160;</td><td class="memItemRight" valign="bottom"><b>sourceTree</b></td></tr>
+<tr class="separator:a1e8261e7bd47602a002aa966405054be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_framework_definition_8h_source.html">XCFrameworkDefinition.h</a></li>
+<li>XCFrameworkDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_framework_definition.png b/doc/html/interface_x_c_framework_definition.png
new file mode 100644
index 0000000..104d3fd
Binary files /dev/null and b/doc/html/interface_x_c_framework_definition.png differ
diff --git a/doc/html/interface_x_c_framework_path.html b/doc/html/interface_x_c_framework_path.html
new file mode 100644
index 0000000..28ccb9f
--- /dev/null
+++ b/doc/html/interface_x_c_framework_path.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCFrameworkPath Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCFrameworkPath Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCFrameworkPath:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_framework_path.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCGroupTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_framework_path.png b/doc/html/interface_x_c_framework_path.png
new file mode 100644
index 0000000..5e2ab95
Binary files /dev/null and b/doc/html/interface_x_c_framework_path.png differ
diff --git a/doc/html/interface_x_c_group-members.html b/doc/html/interface_x_c_group-members.html
new file mode 100644
index 0000000..5c09669
--- /dev/null
+++ b/doc/html/interface_x_c_group-members.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCGroup Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_group.html">XCGroup</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_alias</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_pathRelativeToParent</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">addClass:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a122394632f69a66216a83cf4465827f5">addClass:toTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>addFileReference:withType:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575">addFolderReference:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11">addFramework:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">addFramework:toTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88">addGroupWithAlias:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4">addGroupWithAlias:groupType:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55">addGroupWithPath:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">addSourceFile:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5">addSubProject:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">addSubProject:toTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec">addVersionGroupWithPath:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267">addXib:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">addXib:toTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac">alias</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>becomeBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildFileKey</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a856ec674626d75d10c61383860ef211a">buildFileKeys</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildPhase</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db">children</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>displayName</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>groupWithProject:key:alias:path:children:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>groupWithProject:key:alias:path:children:memberType:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:alias:path:children:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:alias:path:children:memberType:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>isBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isEmpty</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>isRootGroup</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb">key</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b">members</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70">memberWithDisplayName:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849">memberWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>parentGroup</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a">pathRelativeToParent</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>pathRelativeToProjectRoot</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495">recursiveMembers</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25">removeClass:fromTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c">removeFramework:fromTargets:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeFromParentDeletingChildren:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeFromParentGroup</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1">removeHeader:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a">removeMemberWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeSubProject:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeSubProject:fromTargets:</b> (defined in <a class="el" href="interface_x_c_group.html">XCGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_group.html">XCGroup</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_group.html b/doc/html/interface_x_c_group.html
new file mode 100644
index 0000000..cb649d0
--- /dev/null
+++ b/doc/html/interface_x_c_group.html
@@ -0,0 +1,833 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCGroup Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_group-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCGroup Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#import &lt;<a class="el" href="_x_c_group_8h_source.html">XCGroup.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for XCGroup:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_group.png" usemap="#XCGroup_map" alt=""/>
+  <map id="XCGroup_map" name="XCGroup_map">
+<area href="protocol_xcode_group_member-p.html" alt="&lt;XcodeGroupMember&gt;" shape="rect" coords="154,56,298,80"/>
+<area href="protocol_x_c_build_file-p.html" alt="&lt;XCBuildFile&gt;" shape="rect" coords="308,56,452,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a944113b8b5a60f8271417f1edba1887f"><td class="memItemLeft" align="right" valign="top"><a id="a944113b8b5a60f8271417f1edba1887f" name="a944113b8b5a60f8271417f1edba1887f"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:alias:path:children:</b></td></tr>
+<tr class="separator:a944113b8b5a60f8271417f1edba1887f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97417d5f55cf08cac488121496de1e7a"><td class="memItemLeft" align="right" valign="top"><a id="a97417d5f55cf08cac488121496de1e7a" name="a97417d5f55cf08cac488121496de1e7a"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:alias:path:children:memberType:</b></td></tr>
+<tr class="separator:a97417d5f55cf08cac488121496de1e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37732de928d286e0ab6260108f7e3c40"><td class="memItemLeft" align="right" valign="top"><a id="a37732de928d286e0ab6260108f7e3c40" name="a37732de928d286e0ab6260108f7e3c40"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromParentGroup</b></td></tr>
+<tr class="separator:a37732de928d286e0ab6260108f7e3c40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cf68d8e18c04115a66f89230b6f9897"><td class="memItemLeft" align="right" valign="top"><a id="a2cf68d8e18c04115a66f89230b6f9897" name="a2cf68d8e18c04115a66f89230b6f9897"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromParentDeletingChildren:</b></td></tr>
+<tr class="separator:a2cf68d8e18c04115a66f89230b6f9897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77e2963f8e9aebd04895c0c89ecc900f"><td class="memItemLeft" align="right" valign="top"><a id="a77e2963f8e9aebd04895c0c89ecc900f" name="a77e2963f8e9aebd04895c0c89ecc900f"></a>
+(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <b>parentGroup</b></td></tr>
+<tr class="separator:a77e2963f8e9aebd04895c0c89ecc900f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ef355eeeb1f342ab13a64d0cc3b81e1"><td class="memItemLeft" align="right" valign="top"><a id="a9ef355eeeb1f342ab13a64d0cc3b81e1" name="a9ef355eeeb1f342ab13a64d0cc3b81e1"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isRootGroup</b></td></tr>
+<tr class="separator:a9ef355eeeb1f342ab13a64d0cc3b81e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a205d13347d777b1c0b9ac78bb9806ceb"><td class="memItemLeft" align="right" valign="top"><a id="a205d13347d777b1c0b9ac78bb9806ceb" name="a205d13347d777b1c0b9ac78bb9806ceb"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isEmpty</b></td></tr>
+<tr class="separator:a205d13347d777b1c0b9ac78bb9806ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96411d3bbbc3575f8ec054e248f6ccc0"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">addClass:</a></td></tr>
+<tr class="separator:a96411d3bbbc3575f8ec054e248f6ccc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a122394632f69a66216a83cf4465827f5"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a122394632f69a66216a83cf4465827f5">addClass:toTargets:</a></td></tr>
+<tr class="separator:a122394632f69a66216a83cf4465827f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5359c55dbe6dec38410f04e11f23a25"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25">removeClass:fromTargets:</a></td></tr>
+<tr class="separator:ad5359c55dbe6dec38410f04e11f23a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff6d0325233590013bf94605cdd33ca1"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1">removeHeader:</a></td></tr>
+<tr class="separator:aff6d0325233590013bf94605cdd33ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05d334241ef5aaebd085ee12346edf11"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11">addFramework:</a></td></tr>
+<tr class="separator:a05d334241ef5aaebd085ee12346edf11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb47434275327c36d755a4abc0a7086c"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c">removeFramework:fromTargets:</a></td></tr>
+<tr class="separator:aeb47434275327c36d755a4abc0a7086c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fae9599b5eeb8790891e970c5f1dd55"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55">addGroupWithPath:</a></td></tr>
+<tr class="separator:a9fae9599b5eeb8790891e970c5f1dd55"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77fc9f047b4f38476a40314c1d1b2e88"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88">addGroupWithAlias:</a></td></tr>
+<tr class="separator:a77fc9f047b4f38476a40314c1d1b2e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c7c7ad2a6a0f8d1cfa197b75b3790d4"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4">addGroupWithAlias:groupType:</a></td></tr>
+<tr class="separator:a9c7c7ad2a6a0f8d1cfa197b75b3790d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace1128bb049a7ffe3a5ac0ff2aafa1ec"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec">addVersionGroupWithPath:</a></td></tr>
+<tr class="separator:ace1128bb049a7ffe3a5ac0ff2aafa1ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a014d95b76b0ee5602bfd471a54971575"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575">addFolderReference:</a></td></tr>
+<tr class="separator:a014d95b76b0ee5602bfd471a54971575"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93ec3ff78841c682e75be9c771f1e71f"><td class="memItemLeft" align="right" valign="top"><a id="a93ec3ff78841c682e75be9c771f1e71f" name="a93ec3ff78841c682e75be9c771f1e71f"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addFileReference:withType:</b></td></tr>
+<tr class="separator:a93ec3ff78841c682e75be9c771f1e71f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6793e5b2fa198356d31caa41cb5ca5f3"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">addFramework:toTargets:</a></td></tr>
+<tr class="separator:a6793e5b2fa198356d31caa41cb5ca5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa24878ffd2dab62c58da17e65c03d686"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">addSourceFile:</a></td></tr>
+<tr class="separator:aa24878ffd2dab62c58da17e65c03d686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5c97eeb00aa9ba0fbfebe2b19b5c267"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267">addXib:</a></td></tr>
+<tr class="separator:ae5c97eeb00aa9ba0fbfebe2b19b5c267"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a497ac4da2c0dec3353e9880d824251bb"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">addXib:toTargets:</a></td></tr>
+<tr class="separator:a497ac4da2c0dec3353e9880d824251bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af59bed33844ce3577749f4bcae7236e5"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5">addSubProject:</a></td></tr>
+<tr class="separator:af59bed33844ce3577749f4bcae7236e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52dfc0c60614fb215954921c492a8674"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">addSubProject:toTargets:</a></td></tr>
+<tr class="separator:a52dfc0c60614fb215954921c492a8674"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a973da6798e2dfb279835131d4f51fb2a"><td class="memItemLeft" align="right" valign="top"><a id="a973da6798e2dfb279835131d4f51fb2a" name="a973da6798e2dfb279835131d4f51fb2a"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeSubProject:</b></td></tr>
+<tr class="separator:a973da6798e2dfb279835131d4f51fb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b0198d7635634e59d34ea08fad82d47"><td class="memItemLeft" align="right" valign="top"><a id="a0b0198d7635634e59d34ea08fad82d47" name="a0b0198d7635634e59d34ea08fad82d47"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeSubProject:fromTargets:</b></td></tr>
+<tr class="separator:a0b0198d7635634e59d34ea08fad82d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ac6b60f770672010f50003340f9631b"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt; &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b">members</a></td></tr>
+<tr class="separator:a5ac6b60f770672010f50003340f9631b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a138ba369f7336fc0373416529e1d2495"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495">recursiveMembers</a></td></tr>
+<tr class="separator:a138ba369f7336fc0373416529e1d2495"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a856ec674626d75d10c61383860ef211a"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a856ec674626d75d10c61383860ef211a">buildFileKeys</a></td></tr>
+<tr class="separator:a856ec674626d75d10c61383860ef211a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2010863a994ab2c9ba4b080b9fd8b849"><td class="memItemLeft" align="right" valign="top">(id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849">memberWithKey:</a></td></tr>
+<tr class="separator:a2010863a994ab2c9ba4b080b9fd8b849"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af791799b15771786d1c1ed77a4218a70"><td class="memItemLeft" align="right" valign="top">(id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70">memberWithDisplayName:</a></td></tr>
+<tr class="separator:af791799b15771786d1c1ed77a4218a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a194d2b1f72d393aa045aa96bd72ff77a"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a">removeMemberWithKey:</a></td></tr>
+<tr class="separator:a194d2b1f72d393aa045aa96bd72ff77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_protocol_xcode_group_member-p"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_protocol_xcode_group_member-p')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td></tr>
+<tr class="memitem:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="a9c26d7fb8e5b8e9a70514cd82f17a753" name="a9c26d7fb8e5b8e9a70514cd82f17a753"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>key</b></td></tr>
+<tr class="separator:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="aaa904107027b7f93f9770816ee6e9af4" name="aaa904107027b7f93f9770816ee6e9af4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>displayName</b></td></tr>
+<tr class="separator:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="ace875c36516c8431fa545cdbd7539247" name="ace875c36516c8431fa545cdbd7539247"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>pathRelativeToProjectRoot</b></td></tr>
+<tr class="separator:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top">(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td></tr>
+<tr class="separator:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_protocol_x_c_build_file-p"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_protocol_x_c_build_file-p')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td></tr>
+<tr class="memitem:ab4cbac9982b3dc37e3444779c88eecbe inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ab4cbac9982b3dc37e3444779c88eecbe">becomeBuildFile</a></td></tr>
+<tr class="separator:ab4cbac9982b3dc37e3444779c88eecbe inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe34a94cd11ba7fcd1b3c27cb837548b inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top"><a id="afe34a94cd11ba7fcd1b3c27cb837548b" name="afe34a94cd11ba7fcd1b3c27cb837548b"></a>
+(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildPhase</b></td></tr>
+<tr class="separator:afe34a94cd11ba7fcd1b3c27cb837548b inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d481e73a986d781537c68e3be24bdf4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top"><a id="a8d481e73a986d781537c68e3be24bdf4" name="a8d481e73a986d781537c68e3be24bdf4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildFileKey</b></td></tr>
+<tr class="separator:a8d481e73a986d781537c68e3be24bdf4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5882d46671f3891d484f6f5d293b4b4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ae5882d46671f3891d484f6f5d293b4b4">isBuildFile</a></td></tr>
+<tr class="separator:ae5882d46671f3891d484f6f5d293b4b4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:ace4dbba41ce3b9493a9d009456049e2c"><td class="memItemLeft" align="right" valign="top"><a id="ace4dbba41ce3b9493a9d009456049e2c" name="ace4dbba41ce3b9493a9d009456049e2c"></a>
+(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>groupWithProject:key:alias:path:children:</b></td></tr>
+<tr class="separator:ace4dbba41ce3b9493a9d009456049e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a654ffe67ec06ba30e525c95f33dad1d0"><td class="memItemLeft" align="right" valign="top"><a id="a654ffe67ec06ba30e525c95f33dad1d0" name="a654ffe67ec06ba30e525c95f33dad1d0"></a>
+(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>groupWithProject:key:alias:path:children:memberType:</b></td></tr>
+<tr class="separator:a654ffe67ec06ba30e525c95f33dad1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a341022b2ba331f01eeddc6c1e00aab23"><td class="memItemLeft" align="right" valign="top"><a id="a341022b2ba331f01eeddc6c1e00aab23" name="a341022b2ba331f01eeddc6c1e00aab23"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_pathRelativeToParent</b></td></tr>
+<tr class="separator:a341022b2ba331f01eeddc6c1e00aab23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab00a6117f46b3c4ffbaaa7bbfe871f76"><td class="memItemLeft" align="right" valign="top"><a id="ab00a6117f46b3c4ffbaaa7bbfe871f76" name="ab00a6117f46b3c4ffbaaa7bbfe871f76"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:ab00a6117f46b3c4ffbaaa7bbfe871f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26b3260d1cc2d6fe3e0711d48e161854"><td class="memItemLeft" align="right" valign="top"><a id="a26b3260d1cc2d6fe3e0711d48e161854" name="a26b3260d1cc2d6fe3e0711d48e161854"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_alias</b></td></tr>
+<tr class="separator:a26b3260d1cc2d6fe3e0711d48e161854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a5e85f49148d25f0a01f5149231d41cac"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac">alias</a></td></tr>
+<tr class="separator:a5e85f49148d25f0a01f5149231d41cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8baa1a967bff74d9fb8ef6dc6e7fb13a"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a">pathRelativeToParent</a></td></tr>
+<tr class="separator:a8baa1a967bff74d9fb8ef6dc6e7fb13a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afeb7627acb0907d9c3672653eca8b6eb"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb">key</a></td></tr>
+<tr class="separator:afeb7627acb0907d9c3672653eca8b6eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3456b071207ed8d3b79e66024d53a7db"><td class="memItemLeft" align="right" valign="top">NSMutableArray&lt; id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db">children</a></td></tr>
+<tr class="separator:a3456b071207ed8d3b79e66024d53a7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Represents a _group container in an Xcode project. A group can contain members of type <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> or other groups. </p>
+</div><h2 class="groupheader">Method Documentation</h2>
+<a id="a96411d3bbbc3575f8ec054e248f6ccc0" name="a96411d3bbbc3575f8ec054e248f6ccc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96411d3bbbc3575f8ec054e248f6ccc0">&#9670;&nbsp;</a></span>addClass:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addClass: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>classDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a class to the _group, as specified by the ClassDefinition. If the _group already contains a class by the same name, the contents will be updated. </p>
+
+</div>
+</div>
+<a id="a122394632f69a66216a83cf4465827f5" name="a122394632f69a66216a83cf4465827f5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a122394632f69a66216a83cf4465827f5">&#9670;&nbsp;</a></span>addClass:toTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) <a class="el" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">addClass:</a> </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a> *)&#160;</td>
+          <td class="paramname"><em>classDefinition</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">toTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray&lt; <a class="el" href="interface_x_c_target.html">XCTarget</a> * &gt; *)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a class to the _group, making it a member of the specified [targets](<a class="el" href="interface_x_c_target.html">XCTarget</a>). </p>
+
+</div>
+</div>
+<a id="a014d95b76b0ee5602bfd471a54971575" name="a014d95b76b0ee5602bfd471a54971575"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a014d95b76b0ee5602bfd471a54971575">&#9670;&nbsp;</a></span>addFolderReference:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addFolderReference: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>sourceFolder</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a reference to a folder </p>
+
+</div>
+</div>
+<a id="a05d334241ef5aaebd085ee12346edf11" name="a05d334241ef5aaebd085ee12346edf11"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05d334241ef5aaebd085ee12346edf11">&#9670;&nbsp;</a></span>addFramework:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addFramework: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>frameworkDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a framework to the _group. If the _group already contains the framework, the contents will be updated if the framework definition's copyToDestination flag is yes, otherwise it will be ignored. </p>
+
+</div>
+</div>
+<a id="a6793e5b2fa198356d31caa41cb5ca5f3" name="a6793e5b2fa198356d31caa41cb5ca5f3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6793e5b2fa198356d31caa41cb5ca5f3">&#9670;&nbsp;</a></span>addFramework:toTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *) <a class="el" href="interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11">addFramework:</a> </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> *)&#160;</td>
+          <td class="paramname"><em>framework</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">toTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray&lt; <a class="el" href="interface_x_c_target.html">XCTarget</a> * &gt; *)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a framework to the _group, making it a member of the specified targets. </p>
+
+</div>
+</div>
+<a id="a77fc9f047b4f38476a40314c1d1b2e88" name="a77fc9f047b4f38476a40314c1d1b2e88"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77fc9f047b4f38476a40314c1d1b2e88">&#9670;&nbsp;</a></span>addGroupWithAlias:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) addGroupWithAlias: </td>
+          <td></td>
+          <td class="paramtype">(NSString *)&#160;</td>
+          <td class="paramname"><em>alias</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a _group with an alias to this _group. </p>
+
+</div>
+</div>
+<a id="a9c7c7ad2a6a0f8d1cfa197b75b3790d4" name="a9c7c7ad2a6a0f8d1cfa197b75b3790d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c7c7ad2a6a0f8d1cfa197b75b3790d4">&#9670;&nbsp;</a></span>addGroupWithAlias:groupType:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) <a class="el" href="interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88">addGroupWithAlias:</a> </td>
+          <td></td>
+          <td class="paramtype">(NSString *)&#160;</td>
+          <td class="paramname"><em>alias</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">groupType:</td>
+          <td></td>
+          <td class="paramtype">(XcodeMemberType)&#160;</td>
+          <td class="paramname"><em>type</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a _group with an alias to this _group and a particular type (only PBXGroupType and PBXVariantGroupType are valid) </p>
+
+</div>
+</div>
+<a id="a9fae9599b5eeb8790891e970c5f1dd55" name="a9fae9599b5eeb8790891e970c5f1dd55"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9fae9599b5eeb8790891e970c5f1dd55">&#9670;&nbsp;</a></span>addGroupWithPath:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) addGroupWithPath: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>path</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a _group with a path relative to this _group. </p>
+
+</div>
+</div>
+<a id="aa24878ffd2dab62c58da17e65c03d686" name="aa24878ffd2dab62c58da17e65c03d686"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa24878ffd2dab62c58da17e65c03d686">&#9670;&nbsp;</a></span>addSourceFile:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addSourceFile: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>sourceFileDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a source file of arbitrary type - image resource, header, etc. </p>
+
+</div>
+</div>
+<a id="af59bed33844ce3577749f4bcae7236e5" name="af59bed33844ce3577749f4bcae7236e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af59bed33844ce3577749f4bcae7236e5">&#9670;&nbsp;</a></span>addSubProject:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addSubProject: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>projectDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a sub-project to the _group. If the _group already contains a sub-project by the same name, the contents will be updated. Returns boolean success/fail; if method fails, caller should assume that project file is corrupt (or file format has changed). </p>
+
+</div>
+</div>
+<a id="a52dfc0c60614fb215954921c492a8674" name="a52dfc0c60614fb215954921c492a8674"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a52dfc0c60614fb215954921c492a8674">&#9670;&nbsp;</a></span>addSubProject:toTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) <a class="el" href="interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5">addSubProject:</a> </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> *)&#160;</td>
+          <td class="paramname"><em>projectDefinition</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">toTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray&lt; <a class="el" href="interface_x_c_target.html">XCTarget</a> * &gt; *)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a sub-project to the _group, making it a member of the specified [targets](<a class="el" href="interface_x_c_target.html">XCTarget</a>). </p>
+
+</div>
+</div>
+<a id="ace1128bb049a7ffe3a5ac0ff2aafa1ec" name="ace1128bb049a7ffe3a5ac0ff2aafa1ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace1128bb049a7ffe3a5ac0ff2aafa1ec">&#9670;&nbsp;</a></span>addVersionGroupWithPath:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *) addVersionGroupWithPath: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>path</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a version group with a path relative to this group. </p>
+
+</div>
+</div>
+<a id="ae5c97eeb00aa9ba0fbfebe2b19b5c267" name="ae5c97eeb00aa9ba0fbfebe2b19b5c267"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5c97eeb00aa9ba0fbfebe2b19b5c267">&#9670;&nbsp;</a></span>addXib:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addXib: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>xibDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a xib file to the _group. If the _group already contains a class by the same name, the contents will be updated. </p>
+
+</div>
+</div>
+<a id="a497ac4da2c0dec3353e9880d824251bb" name="a497ac4da2c0dec3353e9880d824251bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a497ac4da2c0dec3353e9880d824251bb">&#9670;&nbsp;</a></span>addXib:toTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) <a class="el" href="interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267">addXib:</a> </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a> *)&#160;</td>
+          <td class="paramname"><em>xibDefinition</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">toTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray&lt; <a class="el" href="interface_x_c_target.html">XCTarget</a> * &gt; *)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a xib to the _group, making it a member of the specified [targets](<a class="el" href="interface_x_c_target.html">XCTarget</a>). </p>
+
+</div>
+</div>
+<a id="a856ec674626d75d10c61383860ef211a" name="a856ec674626d75d10c61383860ef211a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a856ec674626d75d10c61383860ef211a">&#9670;&nbsp;</a></span>buildFileKeys</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) buildFileKeys </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Keys of members from this group </p>
+
+</div>
+</div>
+<a id="a5ac6b60f770672010f50003340f9631b" name="a5ac6b60f770672010f50003340f9631b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ac6b60f770672010f50003340f9631b">&#9670;&nbsp;</a></span>members</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray&lt; id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt; &gt; *) members </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Instances of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> and <code><a class="el" href="interface_x_c_group.html">XCGroup</a></code> returned as the type <code><a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a></code>. </p>
+
+</div>
+</div>
+<a id="af791799b15771786d1c1ed77a4218a70" name="af791799b15771786d1c1ed77a4218a70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af791799b15771786d1c1ed77a4218a70">&#9670;&nbsp;</a></span>memberWithDisplayName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;) memberWithDisplayName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the child with the specified name, or nil. </p>
+
+</div>
+</div>
+<a id="a2010863a994ab2c9ba4b080b9fd8b849" name="a2010863a994ab2c9ba4b080b9fd8b849"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2010863a994ab2c9ba4b080b9fd8b849">&#9670;&nbsp;</a></span>memberWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;) memberWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the child with the specified key, or nil. </p>
+
+</div>
+</div>
+<a id="a138ba369f7336fc0373416529e1d2495" name="a138ba369f7336fc0373416529e1d2495"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a138ba369f7336fc0373416529e1d2495">&#9670;&nbsp;</a></span>recursiveMembers</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) recursiveMembers </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Keys of members from this group and any child groups. </p>
+
+</div>
+</div>
+<a id="ad5359c55dbe6dec38410f04e11f23a25" name="ad5359c55dbe6dec38410f04e11f23a25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad5359c55dbe6dec38410f04e11f23a25">&#9670;&nbsp;</a></span>removeClass:fromTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) removeClass: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>classDefinition</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">fromTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray*)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Removes a class from the _group </p>
+
+</div>
+</div>
+<a id="aeb47434275327c36d755a4abc0a7086c" name="aeb47434275327c36d755a4abc0a7086c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeb47434275327c36d755a4abc0a7086c">&#9670;&nbsp;</a></span>removeFramework:fromTargets:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) removeFramework: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> *)&#160;</td>
+          <td class="paramname"><em>frameworkDefinition</em></td>
+        </tr>
+        <tr>
+          <td class="paramkey">fromTargets:</td>
+          <td></td>
+          <td class="paramtype">(NSArray *)&#160;</td>
+          <td class="paramname"><em>targets</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Removes a framework from the _group </p>
+
+</div>
+</div>
+<a id="aff6d0325233590013bf94605cdd33ca1" name="aff6d0325233590013bf94605cdd33ca1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aff6d0325233590013bf94605cdd33ca1">&#9670;&nbsp;</a></span>removeHeader:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) removeHeader: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_class_definition.html">XCClassDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>classDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Removes a header from the _group </p>
+
+</div>
+</div>
+<a id="a194d2b1f72d393aa045aa96bd72ff77a" name="a194d2b1f72d393aa045aa96bd72ff77a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a194d2b1f72d393aa045aa96bd72ff77a">&#9670;&nbsp;</a></span>removeMemberWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) removeMemberWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Remove the member with the specified key </p>
+
+</div>
+</div>
+<h2 class="groupheader">Property Documentation</h2>
+<a id="a5e85f49148d25f0a01f5149231d41cac" name="a5e85f49148d25f0a01f5149231d41cac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5e85f49148d25f0a01f5149231d41cac">&#9670;&nbsp;</a></span>alias</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) alias</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The alias of the group, which can be used to give the group a name other than the last path component.</p>
+<p >See: [<a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> displayName] </p>
+
+</div>
+</div>
+<a id="a3456b071207ed8d3b79e66024d53a7db" name="a3456b071207ed8d3b79e66024d53a7db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3456b071207ed8d3b79e66024d53a7db">&#9670;&nbsp;</a></span>children</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSMutableArray&lt;id&lt;<a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a>&gt; &gt;*) children</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >An array containing the groups members as <code><a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a></code> types. </p>
+
+</div>
+</div>
+<a id="afeb7627acb0907d9c3672653eca8b6eb" name="afeb7627acb0907d9c3672653eca8b6eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afeb7627acb0907d9c3672653eca8b6eb">&#9670;&nbsp;</a></span>key</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) key</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The group's unique key. </p>
+
+</div>
+</div>
+<a id="a8baa1a967bff74d9fb8ef6dc6e7fb13a" name="a8baa1a967bff74d9fb8ef6dc6e7fb13a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8baa1a967bff74d9fb8ef6dc6e7fb13a">&#9670;&nbsp;</a></span>pathRelativeToParent</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) pathRelativeToParent</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The path of the group relative to the group's parent.</p>
+<p >See: [<a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> displayName] </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_group_8h_source.html">XCGroup.h</a></li>
+<li>XCGroup.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_group.png b/doc/html/interface_x_c_group.png
new file mode 100644
index 0000000..602ecff
Binary files /dev/null and b/doc/html/interface_x_c_group.png differ
diff --git a/doc/html/interface_x_c_group_tests.html b/doc/html/interface_x_c_group_tests.html
new file mode 100644
index 0000000..883ebc8
--- /dev/null
+++ b/doc/html/interface_x_c_group_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCGroupTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCGroupTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCGroupTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_group_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCGroupTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_group_tests.png b/doc/html/interface_x_c_group_tests.png
new file mode 100644
index 0000000..585fd04
Binary files /dev/null and b/doc/html/interface_x_c_group_tests.png differ
diff --git a/doc/html/interface_x_c_key_builder-members.html b/doc/html/interface_x_c_key_builder-members.html
new file mode 100644
index 0000000..879fbfc
--- /dev/null
+++ b/doc/html/interface_x_c_key_builder-members.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCKeyBuilder Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_value</b> (defined in <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>)</td><td class="entry"><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>build</b> (defined in <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>)</td><td class="entry"><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>createUnique</b> (defined in <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>)</td><td class="entry"><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>forItemNamed:</b> (defined in <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>)</td><td class="entry"><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initHashValueMD5HashWithBytes:length:</b> (defined in <a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a>)</td><td class="entry"><a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_key_builder.html b/doc/html/interface_x_c_key_builder.html
new file mode 100644
index 0000000..ba7c456
--- /dev/null
+++ b/doc/html/interface_x_c_key_builder.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCKeyBuilder Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="interface_x_c_key_builder-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCKeyBuilder Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCKeyBuilder:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_key_builder.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:aca64c85e90a00e1234b3909d32db8c15"><td class="memItemLeft" align="right" valign="top"><a id="aca64c85e90a00e1234b3909d32db8c15" name="aca64c85e90a00e1234b3909d32db8c15"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initHashValueMD5HashWithBytes:length:</b></td></tr>
+<tr class="separator:aca64c85e90a00e1234b3909d32db8c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a809ff460ab0e01ab7b8912d202ba2f01"><td class="memItemLeft" align="right" valign="top"><a id="a809ff460ab0e01ab7b8912d202ba2f01" name="a809ff460ab0e01ab7b8912d202ba2f01"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>build</b></td></tr>
+<tr class="separator:a809ff460ab0e01ab7b8912d202ba2f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a5811a756cdef15206a69eff593046138"><td class="memItemLeft" align="right" valign="top"><a id="a5811a756cdef15206a69eff593046138" name="a5811a756cdef15206a69eff593046138"></a>
+(<a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>forItemNamed:</b></td></tr>
+<tr class="separator:a5811a756cdef15206a69eff593046138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef0933f07779c85c0304a844aeef9828"><td class="memItemLeft" align="right" valign="top"><a id="aef0933f07779c85c0304a844aeef9828" name="aef0933f07779c85c0304a844aeef9828"></a>
+(<a class="el" href="interface_x_c_key_builder.html">XCKeyBuilder</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>createUnique</b></td></tr>
+<tr class="separator:aef0933f07779c85c0304a844aeef9828"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a8b47ac1c493fd0e6a31a5e60c18ced63"><td class="memItemLeft" align="right" valign="top"><a id="a8b47ac1c493fd0e6a31a5e60c18ced63" name="a8b47ac1c493fd0e6a31a5e60c18ced63"></a>
+unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>_value</b> [HASH_VALUE_STORAGE_SIZE]</td></tr>
+<tr class="separator:a8b47ac1c493fd0e6a31a5e60c18ced63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_key_builder_8h_source.html">XCKeyBuilder.h</a></li>
+<li>XCKeyBuilder.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_key_builder.png b/doc/html/interface_x_c_key_builder.png
new file mode 100644
index 0000000..118524f
Binary files /dev/null and b/doc/html/interface_x_c_key_builder.png differ
diff --git a/doc/html/interface_x_c_key_builder_tests.html b/doc/html/interface_x_c_key_builder_tests.html
new file mode 100644
index 0000000..cc7f620
--- /dev/null
+++ b/doc/html/interface_x_c_key_builder_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCKeyBuilderTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCKeyBuilderTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCKeyBuilderTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_key_builder_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCKeyBuilderTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_key_builder_tests.png b/doc/html/interface_x_c_key_builder_tests.png
new file mode 100644
index 0000000..3525349
Binary files /dev/null and b/doc/html/interface_x_c_key_builder_tests.png differ
diff --git a/doc/html/interface_x_c_project-members.html b/doc/html/interface_x_c_project-members.html
new file mode 100644
index 0000000..a146e87
--- /dev/null
+++ b/doc/html/interface_x_c_project-members.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProject Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_project.html">XCProject</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_configurations</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_dataStore</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_defaultConfigurationName</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fileOperationQueue</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_filePath</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_groups</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_rootObjectKey</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_targets</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_versionGroups</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>addAsTargetDependency:toTargets:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>addProxies:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a">applicationTargets</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildProductsForTargets:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff">configurations</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1">configurationWithName:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>containerItemProxyKeyForName:proxyType:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>dataStore</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>defaultConfiguration</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>dropCache</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>fileOperationQueue</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>filePath</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0">files</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a">fileWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">fileWithName:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17">groupForGroupMemberWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>groupMemberWithKey:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101">groups</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6">groupWithDisplayName:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8">groupWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">groupWithPathFromRoot:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d">groupWithSourceFile:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf">headerFiles</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>imagePNGFiles</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c">initWithFilePath:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>keysForProjectObjectsOfType:withIdentifier:singleton:required:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e">mainGroup</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e">objectiveCFiles</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487">objectiveCPlusPlusFiles</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6">objects</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>PBXProjectDict</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>productsGroupKeyForKey:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>projectWithFilePath:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e">pruneEmptyGroups</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>referenceProxyKeyForName:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeFromProjectReferences:forProductsGroup:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeObjectWithKey:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeProxies:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeTargetDependencies:</b> (defined in <a class="el" href="interface_x_c_project.html">XCProject</a>)</td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject(SubProject)</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c">rootGroup</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1">rootGroups</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">targets</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">targetWithName:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7">versionGroups</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee">versionGroupWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc">versionGroupWithName:</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec">xibFiles</a></td><td class="entry"><a class="el" href="interface_x_c_project.html">XCProject</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_project.html b/doc/html/interface_x_c_project.html
new file mode 100644
index 0000000..5af6039
--- /dev/null
+++ b/doc/html/interface_x_c_project.html
@@ -0,0 +1,763 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProject Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_project-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCProject Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCProject:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_project.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a88eb4b9317a0a1e232f7d1a37eed6b7c"><td class="memItemLeft" align="right" valign="top">(id)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c">initWithFilePath:</a></td></tr>
+<tr class="separator:a88eb4b9317a0a1e232f7d1a37eed6b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96e2f90d957fe6c8200e0af5daad7917"><td class="memItemLeft" align="right" valign="top"><a id="a96e2f90d957fe6c8200e0af5daad7917" name="a96e2f90d957fe6c8200e0af5daad7917"></a>
+(id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;)&#160;</td><td class="memItemRight" valign="bottom">- <b>groupMemberWithKey:</b></td></tr>
+<tr class="separator:a96e2f90d957fe6c8200e0af5daad7917"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a131d039952cd8bbd455fa1a1d4f6f1f0"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0">files</a></td></tr>
+<tr class="separator:a131d039952cd8bbd455fa1a1d4f6f1f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e37d7a871da0916f01ca46be04bd68a"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a">fileWithKey:</a></td></tr>
+<tr class="separator:a8e37d7a871da0916f01ca46be04bd68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0ec1bda5ecf6777521993732e5ce081"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">fileWithName:</a></td></tr>
+<tr class="separator:af0ec1bda5ecf6777521993732e5ce081"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa036faece156d323fd2b52d32eacddcf"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf">headerFiles</a></td></tr>
+<tr class="separator:aa036faece156d323fd2b52d32eacddcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2611412e68a6a85e13aeacb47c27c9e"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e">objectiveCFiles</a></td></tr>
+<tr class="separator:aa2611412e68a6a85e13aeacb47c27c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00a2007e659b99510355a3f0d259c487"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487">objectiveCPlusPlusFiles</a></td></tr>
+<tr class="separator:a00a2007e659b99510355a3f0d259c487"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4e7d3f18d4026fd136e2710ea38f7ec"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec">xibFiles</a></td></tr>
+<tr class="separator:ab4e7d3f18d4026fd136e2710ea38f7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a12420d166e1899d7d864c4e432729b"><td class="memItemLeft" align="right" valign="top"><a id="a0a12420d166e1899d7d864c4e432729b" name="a0a12420d166e1899d7d864c4e432729b"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>imagePNGFiles</b></td></tr>
+<tr class="separator:a0a12420d166e1899d7d864c4e432729b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96bd2795c2056788b54d569fbecfeca8"><td class="memItemLeft" align="right" valign="top"><a id="a96bd2795c2056788b54d569fbecfeca8" name="a96bd2795c2056788b54d569fbecfeca8"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>filePath</b></td></tr>
+<tr class="separator:a96bd2795c2056788b54d569fbecfeca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02c11d0e7e8bd59140d4a1cfc3b07101"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_group.html">XCGroup</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101">groups</a></td></tr>
+<tr class="separator:a02c11d0e7e8bd59140d4a1cfc3b07101"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fff64e311f1a406c25a64191232a36c"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c">rootGroup</a></td></tr>
+<tr class="separator:a6fff64e311f1a406c25a64191232a36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02602c3235f28a5a4a3b175bc79031d1"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_group.html">XCGroup</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1">rootGroups</a></td></tr>
+<tr class="separator:a02602c3235f28a5a4a3b175bc79031d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae92eccb36eef3337d7623ee1d890481e"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e">mainGroup</a></td></tr>
+<tr class="separator:ae92eccb36eef3337d7623ee1d890481e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a612074deba05dbfdc4bd2c8fbfc5a8"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8">groupWithKey:</a></td></tr>
+<tr class="separator:a7a612074deba05dbfdc4bd2c8fbfc5a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42b4f74d42d8554a2d0e967416aa99a6"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6">groupWithDisplayName:</a></td></tr>
+<tr class="separator:a42b4f74d42d8554a2d0e967416aa99a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c29526ae6ec53f9a20b887dbaecff39"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">groupWithPathFromRoot:</a></td></tr>
+<tr class="separator:a5c29526ae6ec53f9a20b887dbaecff39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4c661b07ed8ee9ce5a3c0d256b11f17"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17">groupForGroupMemberWithKey:</a></td></tr>
+<tr class="separator:ab4c661b07ed8ee9ce5a3c0d256b11f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ca26311344e697b5935435d32c76e9d"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d">groupWithSourceFile:</a></td></tr>
+<tr class="separator:a5ca26311344e697b5935435d32c76e9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f240e15a2f922ea6dab7ed67830263e"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e">pruneEmptyGroups</a></td></tr>
+<tr class="separator:a8f240e15a2f922ea6dab7ed67830263e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12a30d4884d3ba06914d711558bb22a7"><td class="memItemLeft" align="right" valign="top">(NSArray *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7">versionGroups</a></td></tr>
+<tr class="separator:a12a30d4884d3ba06914d711558bb22a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6bd0577d0e4c93368961b86ad108fee"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee">versionGroupWithKey:</a></td></tr>
+<tr class="separator:ae6bd0577d0e4c93368961b86ad108fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b2745077b7872bff0979b8f8f772adc"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc">versionGroupWithName:</a></td></tr>
+<tr class="separator:a7b2745077b7872bff0979b8f8f772adc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ee5cb7c9774166ff175e527d95ae61a"><td class="memItemLeft" align="right" valign="top">(NSArray&lt; <a class="el" href="interface_x_c_target.html">XCTarget</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">targets</a></td></tr>
+<tr class="separator:a3ee5cb7c9774166ff175e527d95ae61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abaa9a7968fad5ec90d41f89e63887ed7"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_target.html">XCTarget</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">targetWithName:</a></td></tr>
+<tr class="separator:abaa9a7968fad5ec90d41f89e63887ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4410361e238bd7b0c713904fec310a2a"><td class="memItemLeft" align="right" valign="top">(NSArray *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a">applicationTargets</a></td></tr>
+<tr class="separator:a4410361e238bd7b0c713904fec310a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265cc594ffba012b5bebfc64f301b6ff"><td class="memItemLeft" align="right" valign="top">(NSDictionary&lt; NSString *, <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff">configurations</a></td></tr>
+<tr class="separator:a265cc594ffba012b5bebfc64f301b6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b7d7949bad44777252ac4aa9a1d42a1"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1">configurationWithName:</a></td></tr>
+<tr class="separator:a1b7d7949bad44777252ac4aa9a1d42a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8cd3b721551f90b55b55dc0da39ee9ee"><td class="memItemLeft" align="right" valign="top"><a id="a8cd3b721551f90b55b55dc0da39ee9ee" name="a8cd3b721551f90b55b55dc0da39ee9ee"></a>
+(<a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <b>defaultConfiguration</b></td></tr>
+<tr class="separator:a8cd3b721551f90b55b55dc0da39ee9ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a960203178c72583f5e4ae2d42b60e4f8"><td class="memItemLeft" align="right" valign="top"><a id="a960203178c72583f5e4ae2d42b60e4f8" name="a960203178c72583f5e4ae2d42b60e4f8"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeObjectWithKey:</b></td></tr>
+<tr class="separator:a960203178c72583f5e4ae2d42b60e4f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2802de6cf0bb6e8550d713a188b35d52"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a></td></tr>
+<tr class="separator:a2802de6cf0bb6e8550d713a188b35d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a4c7be71a2f8fd0c5b732bd03ff7fd6"><td class="memItemLeft" align="right" valign="top">(NSMutableDictionary *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6">objects</a></td></tr>
+<tr class="separator:a0a4c7be71a2f8fd0c5b732bd03ff7fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afbfbf5df3134d5fe516c496e543b5abe"><td class="memItemLeft" align="right" valign="top"><a id="afbfbf5df3134d5fe516c496e543b5abe" name="afbfbf5df3134d5fe516c496e543b5abe"></a>
+(NSMutableDictionary *)&#160;</td><td class="memItemRight" valign="bottom">- <b>dataStore</b></td></tr>
+<tr class="separator:afbfbf5df3134d5fe516c496e543b5abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa574f2ab415a7ca5ded893d8f1dc5da"><td class="memItemLeft" align="right" valign="top"><a id="aaa574f2ab415a7ca5ded893d8f1dc5da" name="aaa574f2ab415a7ca5ded893d8f1dc5da"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>dropCache</b></td></tr>
+<tr class="separator:aaa574f2ab415a7ca5ded893d8f1dc5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92dd68dc215dfed3ee2fcaab5b72346e"><td class="memItemLeft" align="right" valign="top"><a id="a92dd68dc215dfed3ee2fcaab5b72346e" name="a92dd68dc215dfed3ee2fcaab5b72346e"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>referenceProxyKeyForName:</b></td></tr>
+<tr class="separator:a92dd68dc215dfed3ee2fcaab5b72346e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1909100224b2527bc609caf8eab7a5f0"><td class="memItemLeft" align="right" valign="top"><a id="a1909100224b2527bc609caf8eab7a5f0" name="a1909100224b2527bc609caf8eab7a5f0"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildProductsForTargets:</b></td></tr>
+<tr class="separator:a1909100224b2527bc609caf8eab7a5f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca0d762dbf21a7515beb0cf49f636fbc"><td class="memItemLeft" align="right" valign="top"><a id="aca0d762dbf21a7515beb0cf49f636fbc" name="aca0d762dbf21a7515beb0cf49f636fbc"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addAsTargetDependency:toTargets:</b></td></tr>
+<tr class="separator:aca0d762dbf21a7515beb0cf49f636fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1f47cda658191013bd6184356255d1f"><td class="memItemLeft" align="right" valign="top"><a id="ac1f47cda658191013bd6184356255d1f" name="ac1f47cda658191013bd6184356255d1f"></a>
+(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>keysForProjectObjectsOfType:withIdentifier:singleton:required:</b></td></tr>
+<tr class="separator:ac1f47cda658191013bd6184356255d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54669d671dac484cf5d207657f7c92a2"><td class="memItemLeft" align="right" valign="top"><a id="a54669d671dac484cf5d207657f7c92a2" name="a54669d671dac484cf5d207657f7c92a2"></a>
+(NSMutableDictionary *)&#160;</td><td class="memItemRight" valign="bottom">- <b>PBXProjectDict</b></td></tr>
+<tr class="separator:a54669d671dac484cf5d207657f7c92a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa724f5876db3d4f5f82c4a5d9a48ae3"><td class="memItemLeft" align="right" valign="top"><a id="aaa724f5876db3d4f5f82c4a5d9a48ae3" name="aaa724f5876db3d4f5f82c4a5d9a48ae3"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeProxies:</b></td></tr>
+<tr class="separator:aaa724f5876db3d4f5f82c4a5d9a48ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a235e112109c93d5987e2b29c836000a6"><td class="memItemLeft" align="right" valign="top"><a id="a235e112109c93d5987e2b29c836000a6" name="a235e112109c93d5987e2b29c836000a6"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addProxies:</b></td></tr>
+<tr class="separator:a235e112109c93d5987e2b29c836000a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9caf756e7c08abe60d82258f251c0c8e"><td class="memItemLeft" align="right" valign="top"><a id="a9caf756e7c08abe60d82258f251c0c8e" name="a9caf756e7c08abe60d82258f251c0c8e"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromProjectReferences:forProductsGroup:</b></td></tr>
+<tr class="separator:a9caf756e7c08abe60d82258f251c0c8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17db0fff9e79f69dd267d5a6474625dc"><td class="memItemLeft" align="right" valign="top"><a id="a17db0fff9e79f69dd267d5a6474625dc" name="a17db0fff9e79f69dd267d5a6474625dc"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeTargetDependencies:</b></td></tr>
+<tr class="separator:a17db0fff9e79f69dd267d5a6474625dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05186f24cbaeca02ae5a78dbddf9ab7e"><td class="memItemLeft" align="right" valign="top"><a id="a05186f24cbaeca02ae5a78dbddf9ab7e" name="a05186f24cbaeca02ae5a78dbddf9ab7e"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>containerItemProxyKeyForName:proxyType:</b></td></tr>
+<tr class="separator:a05186f24cbaeca02ae5a78dbddf9ab7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fbbe1cda07f9e1d543abef4b1f251d4"><td class="memItemLeft" align="right" valign="top"><a id="a1fbbe1cda07f9e1d543abef4b1f251d4" name="a1fbbe1cda07f9e1d543abef4b1f251d4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>productsGroupKeyForKey:</b></td></tr>
+<tr class="separator:a1fbbe1cda07f9e1d543abef4b1f251d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:abf4324ba26ad1e5575aabd9fbdf01a7b"><td class="memItemLeft" align="right" valign="top"><a id="abf4324ba26ad1e5575aabd9fbdf01a7b" name="abf4324ba26ad1e5575aabd9fbdf01a7b"></a>
+(<a class="el" href="interface_x_c_project.html">XCProject</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>projectWithFilePath:</b></td></tr>
+<tr class="separator:abf4324ba26ad1e5575aabd9fbdf01a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a173619eac2f16acb2df97bd260a5fa67"><td class="memItemLeft" align="right" valign="top"><a id="a173619eac2f16acb2df97bd260a5fa67" name="a173619eac2f16acb2df97bd260a5fa67"></a>
+<a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationQueue</b></td></tr>
+<tr class="separator:a173619eac2f16acb2df97bd260a5fa67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6c4a515034b224b14539d41e3ff2ad0"><td class="memItemLeft" align="right" valign="top"><a id="ad6c4a515034b224b14539d41e3ff2ad0" name="ad6c4a515034b224b14539d41e3ff2ad0"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_filePath</b></td></tr>
+<tr class="separator:ad6c4a515034b224b14539d41e3ff2ad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a761fe57b6f262db7a654cc99b7b6953d"><td class="memItemLeft" align="right" valign="top"><a id="a761fe57b6f262db7a654cc99b7b6953d" name="a761fe57b6f262db7a654cc99b7b6953d"></a>
+NSMutableDictionary *&#160;</td><td class="memItemRight" valign="bottom"><b>_dataStore</b></td></tr>
+<tr class="separator:a761fe57b6f262db7a654cc99b7b6953d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a80a0b2e1c4d2056d8f030446d85253"><td class="memItemLeft" align="right" valign="top"><a id="a8a80a0b2e1c4d2056d8f030446d85253" name="a8a80a0b2e1c4d2056d8f030446d85253"></a>
+NSMutableArray *&#160;</td><td class="memItemRight" valign="bottom"><b>_targets</b></td></tr>
+<tr class="separator:a8a80a0b2e1c4d2056d8f030446d85253"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e25dda852501fc14a96e0ca4e5bc23a"><td class="memItemLeft" align="right" valign="top"><a id="a1e25dda852501fc14a96e0ca4e5bc23a" name="a1e25dda852501fc14a96e0ca4e5bc23a"></a>
+NSMutableDictionary *&#160;</td><td class="memItemRight" valign="bottom"><b>_groups</b></td></tr>
+<tr class="separator:a1e25dda852501fc14a96e0ca4e5bc23a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b5b056b0df27bfc0ead818136c357a0"><td class="memItemLeft" align="right" valign="top"><a id="a2b5b056b0df27bfc0ead818136c357a0" name="a2b5b056b0df27bfc0ead818136c357a0"></a>
+NSMutableDictionary *&#160;</td><td class="memItemRight" valign="bottom"><b>_versionGroups</b></td></tr>
+<tr class="separator:a2b5b056b0df27bfc0ead818136c357a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a580f988f798957d8e0c8cb641e3baa1f"><td class="memItemLeft" align="right" valign="top"><a id="a580f988f798957d8e0c8cb641e3baa1f" name="a580f988f798957d8e0c8cb641e3baa1f"></a>
+NSMutableDictionary *&#160;</td><td class="memItemRight" valign="bottom"><b>_configurations</b></td></tr>
+<tr class="separator:a580f988f798957d8e0c8cb641e3baa1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a234f33077598c48ffdf08af4b6cd3395"><td class="memItemLeft" align="right" valign="top"><a id="a234f33077598c48ffdf08af4b6cd3395" name="a234f33077598c48ffdf08af4b6cd3395"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_defaultConfigurationName</b></td></tr>
+<tr class="separator:a234f33077598c48ffdf08af4b6cd3395"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7a8e11957c774711cabfa4821acb053"><td class="memItemLeft" align="right" valign="top"><a id="ac7a8e11957c774711cabfa4821acb053" name="ac7a8e11957c774711cabfa4821acb053"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_rootObjectKey</b></td></tr>
+<tr class="separator:ac7a8e11957c774711cabfa4821acb053"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a695fa34a29d8e9545fcbc45d3f73147e"><td class="memItemLeft" align="right" valign="top"><a id="a695fa34a29d8e9545fcbc45d3f73147e" name="a695fa34a29d8e9545fcbc45d3f73147e"></a>
+<a class="el" href="interface_x_c_file_operation_queue.html">XCFileOperationQueue</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationQueue</b></td></tr>
+<tr class="separator:a695fa34a29d8e9545fcbc45d3f73147e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Method Documentation</h2>
+<a id="a4410361e238bd7b0c713904fec310a2a" name="a4410361e238bd7b0c713904fec310a2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4410361e238bd7b0c713904fec310a2a">&#9670;&nbsp;</a></span>applicationTargets</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) applicationTargets </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Lists the targets which are of application type. </p>
+
+</div>
+</div>
+<a id="a265cc594ffba012b5bebfc64f301b6ff" name="a265cc594ffba012b5bebfc64f301b6ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a265cc594ffba012b5bebfc64f301b6ff">&#9670;&nbsp;</a></span>configurations</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSDictionary *) configurations </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Lists the configurations in an xcode project. </p>
+
+</div>
+</div>
+<a id="a1b7d7949bad44777252ac4aa9a1d42a1" name="a1b7d7949bad44777252ac4aa9a1d42a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b7d7949bad44777252ac4aa9a1d42a1">&#9670;&nbsp;</a></span>configurationWithName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *) configurationWithName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the configuration with the specified name, or nil. </p>
+
+</div>
+</div>
+<a id="a131d039952cd8bbd455fa1a1d4f6f1f0" name="a131d039952cd8bbd455fa1a1d4f6f1f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a131d039952cd8bbd455fa1a1d4f6f1f0">&#9670;&nbsp;</a></span>files</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) files </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns all file resources in the project, as an array of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> objects. </p>
+
+</div>
+</div>
+<a id="a8e37d7a871da0916f01ca46be04bd68a" name="a8e37d7a871da0916f01ca46be04bd68a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e37d7a871da0916f01ca46be04bd68a">&#9670;&nbsp;</a></span>fileWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *) fileWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the project file with the specified key, or nil. </p>
+
+</div>
+</div>
+<a id="af0ec1bda5ecf6777521993732e5ce081" name="af0ec1bda5ecf6777521993732e5ce081"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0ec1bda5ecf6777521993732e5ce081">&#9670;&nbsp;</a></span>fileWithName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *) fileWithName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the project file with the specified name, or nil. If more than one project file matches the specified name, which one is returned is undefined. </p>
+
+</div>
+</div>
+<a id="ab4c661b07ed8ee9ce5a3c0d256b11f17" name="ab4c661b07ed8ee9ce5a3c0d256b11f17"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab4c661b07ed8ee9ce5a3c0d256b11f17">&#9670;&nbsp;</a></span>groupForGroupMemberWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) groupForGroupMemberWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the parent _group for the _group or file with the given key; </p>
+
+</div>
+</div>
+<a id="a02c11d0e7e8bd59140d4a1cfc3b07101" name="a02c11d0e7e8bd59140d4a1cfc3b07101"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02c11d0e7e8bd59140d4a1cfc3b07101">&#9670;&nbsp;</a></span>groups</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) groups </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Lists the groups in an xcode project, returning an array of <code><a class="el" href="interface_x_c_group.html">XCGroup</a></code> objects. </p>
+
+</div>
+</div>
+<a id="a42b4f74d42d8554a2d0e967416aa99a6" name="a42b4f74d42d8554a2d0e967416aa99a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42b4f74d42d8554a2d0e967416aa99a6">&#9670;&nbsp;</a></span>groupWithDisplayName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) groupWithDisplayName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the <em>first</em> group in the project with the given name, or nil. </p>
+
+</div>
+</div>
+<a id="a7a612074deba05dbfdc4bd2c8fbfc5a8" name="a7a612074deba05dbfdc4bd2c8fbfc5a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7a612074deba05dbfdc4bd2c8fbfc5a8">&#9670;&nbsp;</a></span>groupWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) groupWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the group with the given key, or nil. </p>
+
+</div>
+</div>
+<a id="a5c29526ae6ec53f9a20b887dbaecff39" name="a5c29526ae6ec53f9a20b887dbaecff39"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5c29526ae6ec53f9a20b887dbaecff39">&#9670;&nbsp;</a></span>groupWithPathFromRoot:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) groupWithPathFromRoot: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>path</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the _group with the specified display name path - the directory relative to the root _group. Eg Source/Main </p>
+
+</div>
+</div>
+<a id="a5ca26311344e697b5935435d32c76e9d" name="a5ca26311344e697b5935435d32c76e9d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ca26311344e697b5935435d32c76e9d">&#9670;&nbsp;</a></span>groupWithSourceFile:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) groupWithSourceFile: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>*)&#160;</td>
+          <td class="paramname"><em>sourceFile</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the parent group for the group or file with the source file </p>
+
+</div>
+</div>
+<a id="aa036faece156d323fd2b52d32eacddcf" name="aa036faece156d323fd2b52d32eacddcf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa036faece156d323fd2b52d32eacddcf">&#9670;&nbsp;</a></span>headerFiles</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) headerFiles </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns all header files in the project, as an array of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> objects. </p>
+
+</div>
+</div>
+<a id="a88eb4b9317a0a1e232f7d1a37eed6b7c" name="a88eb4b9317a0a1e232f7d1a37eed6b7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88eb4b9317a0a1e232f7d1a37eed6b7c">&#9670;&nbsp;</a></span>initWithFilePath:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id) initWithFilePath: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>filePath</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Creates a new project editor instance with the specified Project.xcodeproj file. </p>
+
+</div>
+</div>
+<a id="ae92eccb36eef3337d7623ee1d890481e" name="ae92eccb36eef3337d7623ee1d890481e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae92eccb36eef3337d7623ee1d890481e">&#9670;&nbsp;</a></span>mainGroup</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) mainGroup </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the main group under root object </p>
+
+</div>
+</div>
+<a id="aa2611412e68a6a85e13aeacb47c27c9e" name="aa2611412e68a6a85e13aeacb47c27c9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa2611412e68a6a85e13aeacb47c27c9e">&#9670;&nbsp;</a></span>objectiveCFiles</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) objectiveCFiles </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns all implementation obj-c implementation files in the project, as an array of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> objects. </p>
+
+</div>
+</div>
+<a id="a00a2007e659b99510355a3f0d259c487" name="a00a2007e659b99510355a3f0d259c487"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00a2007e659b99510355a3f0d259c487">&#9670;&nbsp;</a></span>objectiveCPlusPlusFiles</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) objectiveCPlusPlusFiles </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns all implementation obj-c++ implementation files in the project, as an array of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> objects. </p>
+
+</div>
+</div>
+<a id="a0a4c7be71a2f8fd0c5b732bd03ff7fd6" name="a0a4c7be71a2f8fd0c5b732bd03ff7fd6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a4c7be71a2f8fd0c5b732bd03ff7fd6">&#9670;&nbsp;</a></span>objects</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSMutableDictionary *) objects </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Raw project data. </p>
+
+</div>
+</div>
+<a id="a8f240e15a2f922ea6dab7ed67830263e" name="a8f240e15a2f922ea6dab7ed67830263e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8f240e15a2f922ea6dab7ed67830263e">&#9670;&nbsp;</a></span>pruneEmptyGroups</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) pruneEmptyGroups </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Removes all empty groups from the project. </p>
+
+</div>
+</div>
+<a id="a6fff64e311f1a406c25a64191232a36c" name="a6fff64e311f1a406c25a64191232a36c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6fff64e311f1a406c25a64191232a36c">&#9670;&nbsp;</a></span>rootGroup</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_group.html">XCGroup</a> *) rootGroup </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the root (top-level) _group. </p>
+
+</div>
+</div>
+<a id="a02602c3235f28a5a4a3b175bc79031d1" name="a02602c3235f28a5a4a3b175bc79031d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02602c3235f28a5a4a3b175bc79031d1">&#9670;&nbsp;</a></span>rootGroups</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) rootGroups </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the root (top-level) groups, if there are multiple. An array of rootGroup if there is only one. </p>
+
+</div>
+</div>
+<a id="a2802de6cf0bb6e8550d713a188b35d52" name="a2802de6cf0bb6e8550d713a188b35d52"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2802de6cf0bb6e8550d713a188b35d52">&#9670;&nbsp;</a></span>save</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) save </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Saves a project after editing. </p>
+
+</div>
+</div>
+<a id="a3ee5cb7c9774166ff175e527d95ae61a" name="a3ee5cb7c9774166ff175e527d95ae61a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ee5cb7c9774166ff175e527d95ae61a">&#9670;&nbsp;</a></span>targets</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) targets </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Lists the targets in an xcode project, returning an array of <code><a class="el" href="interface_x_c_target.html">XCTarget</a></code> objects. </p>
+
+</div>
+</div>
+<a id="abaa9a7968fad5ec90d41f89e63887ed7" name="abaa9a7968fad5ec90d41f89e63887ed7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abaa9a7968fad5ec90d41f89e63887ed7">&#9670;&nbsp;</a></span>targetWithName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_target.html">XCTarget</a> *) targetWithName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the target with the specified name, or nil. </p>
+
+</div>
+</div>
+<a id="a12a30d4884d3ba06914d711558bb22a7" name="a12a30d4884d3ba06914d711558bb22a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a12a30d4884d3ba06914d711558bb22a7">&#9670;&nbsp;</a></span>versionGroups</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) versionGroups </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Lists the version groups in an xcode project, returning an array of <code><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></code> objects. </p>
+
+</div>
+</div>
+<a id="ae6bd0577d0e4c93368961b86ad108fee" name="ae6bd0577d0e4c93368961b86ad108fee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae6bd0577d0e4c93368961b86ad108fee">&#9670;&nbsp;</a></span>versionGroupWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *) versionGroupWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the version group with the given key, or nil. </p>
+
+</div>
+</div>
+<a id="a7b2745077b7872bff0979b8f8f772adc" name="a7b2745077b7872bff0979b8f8f772adc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b2745077b7872bff0979b8f8f772adc">&#9670;&nbsp;</a></span>versionGroupWithName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *) versionGroupWithName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the version group with the given file name, or nil. </p>
+
+</div>
+</div>
+<a id="ab4e7d3f18d4026fd136e2710ea38f7ec" name="ab4e7d3f18d4026fd136e2710ea38f7ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab4e7d3f18d4026fd136e2710ea38f7ec">&#9670;&nbsp;</a></span>xibFiles</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSArray *) xibFiles </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns all the xib files in the project, as an array of <code><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></code> objects. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_project_8h_source.html">XCProject.h</a></li>
+<li>XCProject.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_project.png b/doc/html/interface_x_c_project.png
new file mode 100644
index 0000000..8d22f79
Binary files /dev/null and b/doc/html/interface_x_c_project.png differ
diff --git a/doc/html/interface_x_c_project_build_config-members.html b/doc/html/interface_x_c_project_build_config-members.html
new file mode 100644
index 0000000..11ea697
--- /dev/null
+++ b/doc/html/interface_x_c_project_build_config-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProjectBuildConfig Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>addBuildSettings:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>addOrReplaceSetting:forKey:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>buildConfigurationsFromArray:inProject:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>duplicatedBuildConfigurationListWithKey:inProject:withBuildConfigurationVisitor:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeSettingByKey:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>specifiedBuildSettings</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>valueForKey:</b> (defined in <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a>)</td><td class="entry"><a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_project_build_config.html b/doc/html/interface_x_c_project_build_config.html
new file mode 100644
index 0000000..aff8485
--- /dev/null
+++ b/doc/html/interface_x_c_project_build_config.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProjectBuildConfig Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_project_build_config-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCProjectBuildConfig Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCProjectBuildConfig:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_project_build_config.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a6aa3921a24aa1a04ed146d1bc01aa830"><td class="memItemLeft" align="right" valign="top"><a id="a6aa3921a24aa1a04ed146d1bc01aa830" name="a6aa3921a24aa1a04ed146d1bc01aa830"></a>
+(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:</b></td></tr>
+<tr class="separator:a6aa3921a24aa1a04ed146d1bc01aa830"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b31022ad4a5a68e6d78a52fd9cc8b5a"><td class="memItemLeft" align="right" valign="top"><a id="a3b31022ad4a5a68e6d78a52fd9cc8b5a" name="a3b31022ad4a5a68e6d78a52fd9cc8b5a"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addBuildSettings:</b></td></tr>
+<tr class="separator:a3b31022ad4a5a68e6d78a52fd9cc8b5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86561120cb7c5ceefaa2423b50df4aea"><td class="memItemLeft" align="right" valign="top"><a id="a86561120cb7c5ceefaa2423b50df4aea" name="a86561120cb7c5ceefaa2423b50df4aea"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addOrReplaceSetting:forKey:</b></td></tr>
+<tr class="separator:a86561120cb7c5ceefaa2423b50df4aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a314cc154633199f17ba9f0a6abb56fe2"><td class="memItemLeft" align="right" valign="top"><a id="a314cc154633199f17ba9f0a6abb56fe2" name="a314cc154633199f17ba9f0a6abb56fe2"></a>
+(id&lt; NSCopying &gt;)&#160;</td><td class="memItemRight" valign="bottom">- <b>valueForKey:</b></td></tr>
+<tr class="separator:a314cc154633199f17ba9f0a6abb56fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e02f019e67fc5b36444bfcb21fa6886"><td class="memItemLeft" align="right" valign="top"><a id="a7e02f019e67fc5b36444bfcb21fa6886" name="a7e02f019e67fc5b36444bfcb21fa6886"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeSettingByKey:</b></td></tr>
+<tr class="separator:a7e02f019e67fc5b36444bfcb21fa6886"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:ad0f82eebf4648908c2d410dcdbd52149"><td class="memItemLeft" align="right" valign="top"><a id="ad0f82eebf4648908c2d410dcdbd52149" name="ad0f82eebf4648908c2d410dcdbd52149"></a>
+(NSDictionary&lt; NSString *, NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>buildConfigurationsFromArray:inProject:</b></td></tr>
+<tr class="separator:ad0f82eebf4648908c2d410dcdbd52149"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95d856873a021db2c92734a43f86801c"><td class="memItemLeft" align="right" valign="top"><a id="a95d856873a021db2c92734a43f86801c" name="a95d856873a021db2c92734a43f86801c"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>duplicatedBuildConfigurationListWithKey:inProject:withBuildConfigurationVisitor:</b></td></tr>
+<tr class="separator:a95d856873a021db2c92734a43f86801c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a15d0aa4eb48fdb07bde07ba2c5fa42a4"><td class="memItemLeft" align="right" valign="top"><a id="a15d0aa4eb48fdb07bde07ba2c5fa42a4" name="a15d0aa4eb48fdb07bde07ba2c5fa42a4"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:a15d0aa4eb48fdb07bde07ba2c5fa42a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23deb664a0d8ac6dcfca4c9f8f51f44e"><td class="memItemLeft" align="right" valign="top"><a id="a23deb664a0d8ac6dcfca4c9f8f51f44e" name="a23deb664a0d8ac6dcfca4c9f8f51f44e"></a>
+NSDictionary *&#160;</td><td class="memItemRight" valign="bottom"><b>specifiedBuildSettings</b></td></tr>
+<tr class="separator:a23deb664a0d8ac6dcfca4c9f8f51f44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_project_build_config_8h_source.html">XCProjectBuildConfig.h</a></li>
+<li>XCProjectBuildConfig.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_project_build_config.png b/doc/html/interface_x_c_project_build_config.png
new file mode 100644
index 0000000..10112f7
Binary files /dev/null and b/doc/html/interface_x_c_project_build_config.png differ
diff --git a/doc/html/interface_x_c_project_tests.html b/doc/html/interface_x_c_project_tests.html
new file mode 100644
index 0000000..928da14
--- /dev/null
+++ b/doc/html/interface_x_c_project_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCProjectTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCProjectTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCProjectTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_project_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCProjectTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_project_tests.png b/doc/html/interface_x_c_project_tests.png
new file mode 100644
index 0000000..30c58e7
Binary files /dev/null and b/doc/html/interface_x_c_project_tests.png differ
diff --git a/doc/html/interface_x_c_source_file-members.html b/doc/html/interface_x_c_source_file-members.html
new file mode 100644
index 0000000..c2f3ab3
--- /dev/null
+++ b/doc/html/interface_x_c_source_file-members.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSourceFile Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37">becomeBuildFile</a></td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>buildFileKey</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildPhase</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>canBecomeBuildFile</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>displayName</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:type:name:sourceTree:path:</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10">isBuildFile</a></td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>path</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>pathRelativeToProjectRoot</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356">removeBuildFile</a></td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3">setCompilerFlags:</a></td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87">setWeakReference</a></td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>sourceFileWithProject:key:type:name:sourceTree:path:</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>sourceTree</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>type</b> (defined in <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file.html">XCSourceFile</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_source_file.html b/doc/html/interface_x_c_source_file.html
new file mode 100644
index 0000000..40c4334
--- /dev/null
+++ b/doc/html/interface_x_c_source_file.html
@@ -0,0 +1,307 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSourceFile Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_source_file-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCSourceFile Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#import &lt;<a class="el" href="_x_c_source_file_8h_source.html">XCSourceFile.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for XCSourceFile:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_source_file.png" usemap="#XCSourceFile_map" alt=""/>
+  <map id="XCSourceFile_map" name="XCSourceFile_map">
+<area href="protocol_xcode_group_member-p.html" alt="&lt;XcodeGroupMember&gt;" shape="rect" coords="154,56,298,80"/>
+<area href="protocol_x_c_build_file-p.html" alt="&lt;XCBuildFile&gt;" shape="rect" coords="308,56,452,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:ac8615e3a5e8ef18bef470b67499356d2"><td class="memItemLeft" align="right" valign="top"><a id="ac8615e3a5e8ef18bef470b67499356d2" name="ac8615e3a5e8ef18bef470b67499356d2"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:type:name:sourceTree:path:</b></td></tr>
+<tr class="separator:ac8615e3a5e8ef18bef470b67499356d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94f914a09f7abbbf3048a86ced9f7d10"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10">isBuildFile</a></td></tr>
+<tr class="separator:a94f914a09f7abbbf3048a86ced9f7d10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8901719779cfa15805ff292b3b242d07"><td class="memItemLeft" align="right" valign="top"><a id="a8901719779cfa15805ff292b3b242d07" name="a8901719779cfa15805ff292b3b242d07"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>canBecomeBuildFile</b></td></tr>
+<tr class="separator:a8901719779cfa15805ff292b3b242d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32b82cd21f7ce2e00c05c331f5ca922d"><td class="memItemLeft" align="right" valign="top">(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a32b82cd21f7ce2e00c05c331f5ca922d">buildPhase</a></td></tr>
+<tr class="separator:a32b82cd21f7ce2e00c05c331f5ca922d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01b5137080ebdcbfb927e8c541f2ecfe"><td class="memItemLeft" align="right" valign="top">(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a01b5137080ebdcbfb927e8c541f2ecfe">buildFileKey</a></td></tr>
+<tr class="separator:a01b5137080ebdcbfb927e8c541f2ecfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69feb820711a44a5d3adf4bc25669e37"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37">becomeBuildFile</a></td></tr>
+<tr class="separator:a69feb820711a44a5d3adf4bc25669e37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4a6d4d99379dbdb99f8e1214ffed356"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356">removeBuildFile</a></td></tr>
+<tr class="separator:ab4a6d4d99379dbdb99f8e1214ffed356"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9694571d4b026b428a056162f20a6dd3"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3">setCompilerFlags:</a></td></tr>
+<tr class="separator:a9694571d4b026b428a056162f20a6dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a009a3627573419fb5f9cb67c5afa3f87"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87">setWeakReference</a></td></tr>
+<tr class="separator:a009a3627573419fb5f9cb67c5afa3f87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_protocol_xcode_group_member-p"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_protocol_xcode_group_member-p')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td></tr>
+<tr class="memitem:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="a9c26d7fb8e5b8e9a70514cd82f17a753" name="a9c26d7fb8e5b8e9a70514cd82f17a753"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>key</b></td></tr>
+<tr class="separator:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="aaa904107027b7f93f9770816ee6e9af4" name="aaa904107027b7f93f9770816ee6e9af4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>displayName</b></td></tr>
+<tr class="separator:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="ace875c36516c8431fa545cdbd7539247" name="ace875c36516c8431fa545cdbd7539247"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>pathRelativeToProjectRoot</b></td></tr>
+<tr class="separator:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top">(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td></tr>
+<tr class="separator:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4cbac9982b3dc37e3444779c88eecbe"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ab4cbac9982b3dc37e3444779c88eecbe">becomeBuildFile</a></td></tr>
+<tr class="separator:ab4cbac9982b3dc37e3444779c88eecbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe34a94cd11ba7fcd1b3c27cb837548b"><td class="memItemLeft" align="right" valign="top"><a id="afe34a94cd11ba7fcd1b3c27cb837548b" name="afe34a94cd11ba7fcd1b3c27cb837548b"></a>
+(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildPhase</b></td></tr>
+<tr class="separator:afe34a94cd11ba7fcd1b3c27cb837548b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d481e73a986d781537c68e3be24bdf4"><td class="memItemLeft" align="right" valign="top"><a id="a8d481e73a986d781537c68e3be24bdf4" name="a8d481e73a986d781537c68e3be24bdf4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildFileKey</b></td></tr>
+<tr class="separator:a8d481e73a986d781537c68e3be24bdf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5882d46671f3891d484f6f5d293b4b4"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ae5882d46671f3891d484f6f5d293b4b4">isBuildFile</a></td></tr>
+<tr class="separator:ae5882d46671f3891d484f6f5d293b4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a97625fb8853a21d30bf8033fc766859f"><td class="memItemLeft" align="right" valign="top"><a id="a97625fb8853a21d30bf8033fc766859f" name="a97625fb8853a21d30bf8033fc766859f"></a>
+(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>sourceFileWithProject:key:type:name:sourceTree:path:</b></td></tr>
+<tr class="separator:a97625fb8853a21d30bf8033fc766859f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a73402fcd99aa8e97837f1adc998c2304"><td class="memItemLeft" align="right" valign="top"><a id="a73402fcd99aa8e97837f1adc998c2304" name="a73402fcd99aa8e97837f1adc998c2304"></a>
+XcodeSourceFileType&#160;</td><td class="memItemRight" valign="bottom"><b>type</b></td></tr>
+<tr class="separator:a73402fcd99aa8e97837f1adc998c2304"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82cbd166469f86d7b92ebd970a9e148b"><td class="memItemLeft" align="right" valign="top"><a id="a82cbd166469f86d7b92ebd970a9e148b" name="a82cbd166469f86d7b92ebd970a9e148b"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:a82cbd166469f86d7b92ebd970a9e148b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a8feb4272e7439f072411462f82911f"><td class="memItemLeft" align="right" valign="top"><a id="a2a8feb4272e7439f072411462f82911f" name="a2a8feb4272e7439f072411462f82911f"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:a2a8feb4272e7439f072411462f82911f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a135b3d0390f10bcd740055081e65524a"><td class="memItemLeft" align="right" valign="top"><a id="a135b3d0390f10bcd740055081e65524a" name="a135b3d0390f10bcd740055081e65524a"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>sourceTree</b></td></tr>
+<tr class="separator:a135b3d0390f10bcd740055081e65524a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f8c01b546123f88b839bdbb14138d4d"><td class="memItemLeft" align="right" valign="top"><a id="a0f8c01b546123f88b839bdbb14138d4d" name="a0f8c01b546123f88b839bdbb14138d4d"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>path</b></td></tr>
+<tr class="separator:a0f8c01b546123f88b839bdbb14138d4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Represents a file resource in an xcode project. </p>
+</div><h2 class="groupheader">Method Documentation</h2>
+<a id="a69feb820711a44a5d3adf4bc25669e37" name="a69feb820711a44a5d3adf4bc25669e37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69feb820711a44a5d3adf4bc25669e37">&#9670;&nbsp;</a></span>becomeBuildFile</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) becomeBuildFile </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds this file to the project as an <code>xcode_BuildFile</code>, ready to be included in targets. </p>
+
+<p>Reimplemented from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>.</p>
+
+</div>
+</div>
+<a id="a01b5137080ebdcbfb927e8c541f2ecfe" name="a01b5137080ebdcbfb927e8c541f2ecfe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a01b5137080ebdcbfb927e8c541f2ecfe">&#9670;&nbsp;</a></span>buildFileKey</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString *) buildFileKey </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reimplemented from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>.</p>
+
+</div>
+</div>
+<a id="a32b82cd21f7ce2e00c05c331f5ca922d" name="a32b82cd21f7ce2e00c05c331f5ca922d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a32b82cd21f7ce2e00c05c331f5ca922d">&#9670;&nbsp;</a></span>buildPhase</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (XcodeMemberType) buildPhase </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reimplemented from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>.</p>
+
+</div>
+</div>
+<a id="a94f914a09f7abbbf3048a86ced9f7d10" name="a94f914a09f7abbbf3048a86ced9f7d10"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94f914a09f7abbbf3048a86ced9f7d10">&#9670;&nbsp;</a></span>isBuildFile</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (BOOL) isBuildFile </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >If yes, indicates the file is able to be included for compilation in an <code><a class="el" href="interface_x_c_target.html">XCTarget</a></code>. </p>
+
+<p>Reimplemented from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>.</p>
+
+</div>
+</div>
+<a id="ab4a6d4d99379dbdb99f8e1214ffed356" name="ab4a6d4d99379dbdb99f8e1214ffed356"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab4a6d4d99379dbdb99f8e1214ffed356">&#9670;&nbsp;</a></span>removeBuildFile</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) removeBuildFile </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Removes this file as an <code>xcode_BuildFile</code> from the project. </p>
+
+</div>
+</div>
+<a id="a9694571d4b026b428a056162f20a6dd3" name="a9694571d4b026b428a056162f20a6dd3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9694571d4b026b428a056162f20a6dd3">&#9670;&nbsp;</a></span>setCompilerFlags:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) setCompilerFlags: </td>
+          <td></td>
+          <td class="paramtype">(NSString *)&#160;</td>
+          <td class="paramname"><em>value</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Method for setting Compiler Flags for individual build files</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">value</td><td>String value to set in Compiler Flags </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a009a3627573419fb5f9cb67c5afa3f87" name="a009a3627573419fb5f9cb67c5afa3f87"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a009a3627573419fb5f9cb67c5afa3f87">&#9670;&nbsp;</a></span>setWeakReference</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) setWeakReference </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Method for setting the build file is a weak reference </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_source_file_8h_source.html">XCSourceFile.h</a></li>
+<li>XCSourceFile.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_source_file.png b/doc/html/interface_x_c_source_file.png
new file mode 100644
index 0000000..2cab42e
Binary files /dev/null and b/doc/html/interface_x_c_source_file.png differ
diff --git a/doc/html/interface_x_c_source_file_definition-members.html b/doc/html/interface_x_c_source_file_definition-members.html
new file mode 100644
index 0000000..73e195c
--- /dev/null
+++ b/doc/html/interface_x_c_source_file_definition-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSourceFileDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_data</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_sourceFileName</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_type</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>data</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:data:type:</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:text:type:</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>sourceDefinitionWithAssetCatalogName:</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>sourceDefinitionWithName:data:type:</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>sourceDefinitionWithName:text:type:</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>sourceFileName</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>type</b> (defined in <a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_source_file_definition.html b/doc/html/interface_x_c_source_file_definition.html
new file mode 100644
index 0000000..5d089d9
--- /dev/null
+++ b/doc/html/interface_x_c_source_file_definition.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSourceFileDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_source_file_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCSourceFileDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCSourceFileDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_source_file_definition.png" usemap="#XCSourceFileDefinition_map" alt=""/>
+  <map id="XCSourceFileDefinition_map" name="XCSourceFileDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,145,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:ab0ce23ddeb76786ea11d5baee28cb608"><td class="memItemLeft" align="right" valign="top"><a id="ab0ce23ddeb76786ea11d5baee28cb608" name="ab0ce23ddeb76786ea11d5baee28cb608"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:text:type:</b></td></tr>
+<tr class="separator:ab0ce23ddeb76786ea11d5baee28cb608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e77fb8abd13a719d8e2ebb02fdc8d7a"><td class="memItemLeft" align="right" valign="top"><a id="a8e77fb8abd13a719d8e2ebb02fdc8d7a" name="a8e77fb8abd13a719d8e2ebb02fdc8d7a"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:data:type:</b></td></tr>
+<tr class="separator:a8e77fb8abd13a719d8e2ebb02fdc8d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a91c12cde86894c007a0f1995e44ac7c1"><td class="memItemLeft" align="right" valign="top"><a id="a91c12cde86894c007a0f1995e44ac7c1" name="a91c12cde86894c007a0f1995e44ac7c1"></a>
+(<a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>sourceDefinitionWithName:text:type:</b></td></tr>
+<tr class="separator:a91c12cde86894c007a0f1995e44ac7c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79e91c49704ce9504a94e9e1b0307760"><td class="memItemLeft" align="right" valign="top"><a id="a79e91c49704ce9504a94e9e1b0307760" name="a79e91c49704ce9504a94e9e1b0307760"></a>
+(<a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>sourceDefinitionWithName:data:type:</b></td></tr>
+<tr class="separator:a79e91c49704ce9504a94e9e1b0307760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a387acd3e10ac68b221f2e96aa811453b"><td class="memItemLeft" align="right" valign="top"><a id="a387acd3e10ac68b221f2e96aa811453b" name="a387acd3e10ac68b221f2e96aa811453b"></a>
+(<a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>sourceDefinitionWithAssetCatalogName:</b></td></tr>
+<tr class="separator:a387acd3e10ac68b221f2e96aa811453b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:aa603abd339463d91dce002f8e0c8b5e8"><td class="memItemLeft" align="right" valign="top"><a id="aa603abd339463d91dce002f8e0c8b5e8" name="aa603abd339463d91dce002f8e0c8b5e8"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_sourceFileName</b></td></tr>
+<tr class="separator:aa603abd339463d91dce002f8e0c8b5e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bbeb08f884f2b7d973dcf43e80cc4b4"><td class="memItemLeft" align="right" valign="top"><a id="a1bbeb08f884f2b7d973dcf43e80cc4b4" name="a1bbeb08f884f2b7d973dcf43e80cc4b4"></a>
+XcodeSourceFileType&#160;</td><td class="memItemRight" valign="bottom"><b>_type</b></td></tr>
+<tr class="separator:a1bbeb08f884f2b7d973dcf43e80cc4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8a4564b2d6ac56857b949450bad909a"><td class="memItemLeft" align="right" valign="top"><a id="ae8a4564b2d6ac56857b949450bad909a" name="ae8a4564b2d6ac56857b949450bad909a"></a>
+NSData *&#160;</td><td class="memItemRight" valign="bottom"><b>_data</b></td></tr>
+<tr class="separator:ae8a4564b2d6ac56857b949450bad909a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:aa178243081bf2ea2bfbd23528a413180"><td class="memItemLeft" align="right" valign="top"><a id="aa178243081bf2ea2bfbd23528a413180" name="aa178243081bf2ea2bfbd23528a413180"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>sourceFileName</b></td></tr>
+<tr class="separator:aa178243081bf2ea2bfbd23528a413180"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e16359e1c3b2f3f07b1c87b056a24a7"><td class="memItemLeft" align="right" valign="top"><a id="a4e16359e1c3b2f3f07b1c87b056a24a7" name="a4e16359e1c3b2f3f07b1c87b056a24a7"></a>
+NSData *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
+<tr class="separator:a4e16359e1c3b2f3f07b1c87b056a24a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89ca94c0a2b6bf90b7c181ed8614c584"><td class="memItemLeft" align="right" valign="top"><a id="a89ca94c0a2b6bf90b7c181ed8614c584" name="a89ca94c0a2b6bf90b7c181ed8614c584"></a>
+XcodeSourceFileType&#160;</td><td class="memItemRight" valign="bottom"><b>type</b></td></tr>
+<tr class="separator:a89ca94c0a2b6bf90b7c181ed8614c584"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_source_file_definition_8h_source.html">XCSourceFileDefinition.h</a></li>
+<li>XCSourceFileDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_source_file_definition.png b/doc/html/interface_x_c_source_file_definition.png
new file mode 100644
index 0000000..8261c6c
Binary files /dev/null and b/doc/html/interface_x_c_source_file_definition.png differ
diff --git a/doc/html/interface_x_c_sub_project_definition-members.html b/doc/html/interface_x_c_sub_project_definition-members.html
new file mode 100644
index 0000000..733e502
--- /dev/null
+++ b/doc/html/interface_x_c_sub_project_definition-members.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSubProjectDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fullProjectPath</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_name</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_parentProject</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_path</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_relativePath</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_subProject</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_type</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>buildProductNames</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>fullPathName</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>fullProjectPath</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>initFullProjectPath:groupPath:</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:path:parentProject:</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>parentProject</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>path</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>pathRelativeToProjectRoot</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>projectFileName</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>projectKey</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>subProject</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>type</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>withName:path:parentProject:</b> (defined in <a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_sub_project_definition.html b/doc/html/interface_x_c_sub_project_definition.html
new file mode 100644
index 0000000..8266020
--- /dev/null
+++ b/doc/html/interface_x_c_sub_project_definition.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSubProjectDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_sub_project_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCSubProjectDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCSubProjectDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_sub_project_definition.png" usemap="#XCSubProjectDefinition_map" alt=""/>
+  <map id="XCSubProjectDefinition_map" name="XCSubProjectDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,145,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a53d521ea7fae7db7e9aedcb38b7ae801"><td class="memItemLeft" align="right" valign="top"><a id="a53d521ea7fae7db7e9aedcb38b7ae801" name="a53d521ea7fae7db7e9aedcb38b7ae801"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:path:parentProject:</b></td></tr>
+<tr class="separator:a53d521ea7fae7db7e9aedcb38b7ae801"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6547ce2981677bb48ada29f755578bab"><td class="memItemLeft" align="right" valign="top"><a id="a6547ce2981677bb48ada29f755578bab" name="a6547ce2981677bb48ada29f755578bab"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>projectFileName</b></td></tr>
+<tr class="separator:a6547ce2981677bb48ada29f755578bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae86cd94d3b946147cf9f85aa232fc48d"><td class="memItemLeft" align="right" valign="top"><a id="ae86cd94d3b946147cf9f85aa232fc48d" name="ae86cd94d3b946147cf9f85aa232fc48d"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>fullPathName</b></td></tr>
+<tr class="separator:ae86cd94d3b946147cf9f85aa232fc48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f1306be6f728cee5fff0a227965adfa"><td class="memItemLeft" align="right" valign="top"><a id="a7f1306be6f728cee5fff0a227965adfa" name="a7f1306be6f728cee5fff0a227965adfa"></a>
+(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildProductNames</b></td></tr>
+<tr class="separator:a7f1306be6f728cee5fff0a227965adfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fef8b1017918476188ac37e4ef35c8a"><td class="memItemLeft" align="right" valign="top"><a id="a4fef8b1017918476188ac37e4ef35c8a" name="a4fef8b1017918476188ac37e4ef35c8a"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>projectKey</b></td></tr>
+<tr class="separator:a4fef8b1017918476188ac37e4ef35c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac77271ef0fb480fef436edec4da52e38"><td class="memItemLeft" align="right" valign="top"><a id="ac77271ef0fb480fef436edec4da52e38" name="ac77271ef0fb480fef436edec4da52e38"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>pathRelativeToProjectRoot</b></td></tr>
+<tr class="separator:ac77271ef0fb480fef436edec4da52e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1665e46fec97cc08298b7e1da0ead41"><td class="memItemLeft" align="right" valign="top"><a id="ab1665e46fec97cc08298b7e1da0ead41" name="ab1665e46fec97cc08298b7e1da0ead41"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>initFullProjectPath:groupPath:</b></td></tr>
+<tr class="separator:ab1665e46fec97cc08298b7e1da0ead41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a0caa409f6624fff4c7ccfa725700320b"><td class="memItemLeft" align="right" valign="top"><a id="a0caa409f6624fff4c7ccfa725700320b" name="a0caa409f6624fff4c7ccfa725700320b"></a>
+(<a class="el" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>withName:path:parentProject:</b></td></tr>
+<tr class="separator:a0caa409f6624fff4c7ccfa725700320b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a072b5d3edfc113540ae2b3eae0013599"><td class="memItemLeft" align="right" valign="top"><a id="a072b5d3edfc113540ae2b3eae0013599" name="a072b5d3edfc113540ae2b3eae0013599"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_name</b></td></tr>
+<tr class="separator:a072b5d3edfc113540ae2b3eae0013599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a584269eeb584b4420ff0ffa069696ac1"><td class="memItemLeft" align="right" valign="top"><a id="a584269eeb584b4420ff0ffa069696ac1" name="a584269eeb584b4420ff0ffa069696ac1"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_path</b></td></tr>
+<tr class="separator:a584269eeb584b4420ff0ffa069696ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa37c5dedcbb833305484f4f6d044d740"><td class="memItemLeft" align="right" valign="top"><a id="aa37c5dedcbb833305484f4f6d044d740" name="aa37c5dedcbb833305484f4f6d044d740"></a>
+XcodeSourceFileType&#160;</td><td class="memItemRight" valign="bottom"><b>_type</b></td></tr>
+<tr class="separator:aa37c5dedcbb833305484f4f6d044d740"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33a8195d958daadb4246fae77f06996e"><td class="memItemLeft" align="right" valign="top"><a id="a33a8195d958daadb4246fae77f06996e" name="a33a8195d958daadb4246fae77f06996e"></a>
+<a class="el" href="interface_x_c_project.html">XCProject</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_subProject</b></td></tr>
+<tr class="separator:a33a8195d958daadb4246fae77f06996e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1523a192c4e777b49e99c1917510e15c"><td class="memItemLeft" align="right" valign="top"><a id="a1523a192c4e777b49e99c1917510e15c" name="a1523a192c4e777b49e99c1917510e15c"></a>
+<a class="el" href="interface_x_c_project.html">XCProject</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_parentProject</b></td></tr>
+<tr class="separator:a1523a192c4e777b49e99c1917510e15c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f6c5012222b6a82ab7b8cbeab37a26c"><td class="memItemLeft" align="right" valign="top"><a id="a4f6c5012222b6a82ab7b8cbeab37a26c" name="a4f6c5012222b6a82ab7b8cbeab37a26c"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:a4f6c5012222b6a82ab7b8cbeab37a26c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c3a4943f32b50b230a1d9be0a8e219f"><td class="memItemLeft" align="right" valign="top"><a id="a4c3a4943f32b50b230a1d9be0a8e219f" name="a4c3a4943f32b50b230a1d9be0a8e219f"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_fullProjectPath</b></td></tr>
+<tr class="separator:a4c3a4943f32b50b230a1d9be0a8e219f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a551d51ffe95bc16877bcfdcdc1a7d5e0"><td class="memItemLeft" align="right" valign="top"><a id="a551d51ffe95bc16877bcfdcdc1a7d5e0" name="a551d51ffe95bc16877bcfdcdc1a7d5e0"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_relativePath</b></td></tr>
+<tr class="separator:a551d51ffe95bc16877bcfdcdc1a7d5e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a67afe67729dc553562b66a7651650e98"><td class="memItemLeft" align="right" valign="top"><a id="a67afe67729dc553562b66a7651650e98" name="a67afe67729dc553562b66a7651650e98"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:a67afe67729dc553562b66a7651650e98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a655b86f19b418a200951fca36d82f3de"><td class="memItemLeft" align="right" valign="top"><a id="a655b86f19b418a200951fca36d82f3de" name="a655b86f19b418a200951fca36d82f3de"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>path</b></td></tr>
+<tr class="separator:a655b86f19b418a200951fca36d82f3de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5394747200ae66dd78766930d478d96"><td class="memItemLeft" align="right" valign="top"><a id="ae5394747200ae66dd78766930d478d96" name="ae5394747200ae66dd78766930d478d96"></a>
+XcodeSourceFileType&#160;</td><td class="memItemRight" valign="bottom"><b>type</b></td></tr>
+<tr class="separator:ae5394747200ae66dd78766930d478d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab011e26759fe6f64e2a0ed31d830ecad"><td class="memItemLeft" align="right" valign="top"><a id="ab011e26759fe6f64e2a0ed31d830ecad" name="ab011e26759fe6f64e2a0ed31d830ecad"></a>
+<a class="el" href="interface_x_c_project.html">XCProject</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>subProject</b></td></tr>
+<tr class="separator:ab011e26759fe6f64e2a0ed31d830ecad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4d922689ef099b044a05842d6f93e9b"><td class="memItemLeft" align="right" valign="top"><a id="ad4d922689ef099b044a05842d6f93e9b" name="ad4d922689ef099b044a05842d6f93e9b"></a>
+<a class="el" href="interface_x_c_project.html">XCProject</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>parentProject</b></td></tr>
+<tr class="separator:ad4d922689ef099b044a05842d6f93e9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acce7c006ddf1978a968ec9a9e49be358"><td class="memItemLeft" align="right" valign="top"><a id="acce7c006ddf1978a968ec9a9e49be358" name="acce7c006ddf1978a968ec9a9e49be358"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:acce7c006ddf1978a968ec9a9e49be358"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76bb73ad50d92eb16225b774428b1723"><td class="memItemLeft" align="right" valign="top"><a id="a76bb73ad50d92eb16225b774428b1723" name="a76bb73ad50d92eb16225b774428b1723"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>fullProjectPath</b></td></tr>
+<tr class="separator:a76bb73ad50d92eb16225b774428b1723"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_sub_project_definition_8h_source.html">XCSubProjectDefinition.h</a></li>
+<li>XCSubProjectDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_sub_project_definition.png b/doc/html/interface_x_c_sub_project_definition.png
new file mode 100644
index 0000000..d41b122
Binary files /dev/null and b/doc/html/interface_x_c_sub_project_definition.png differ
diff --git a/doc/html/interface_x_c_sub_project_definition_tests.html b/doc/html/interface_x_c_sub_project_definition_tests.html
new file mode 100644
index 0000000..34efbe4
--- /dev/null
+++ b/doc/html/interface_x_c_sub_project_definition_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCSubProjectDefinitionTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCSubProjectDefinitionTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCSubProjectDefinitionTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_sub_project_definition_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCSubProjectDefinitionTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_sub_project_definition_tests.png b/doc/html/interface_x_c_sub_project_definition_tests.png
new file mode 100644
index 0000000..0cddc38
Binary files /dev/null and b/doc/html/interface_x_c_sub_project_definition_tests.png differ
diff --git a/doc/html/interface_x_c_target-members.html b/doc/html/interface_x_c_target-members.html
new file mode 100644
index 0000000..f9faef4
--- /dev/null
+++ b/doc/html/interface_x_c_target-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCTarget Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_target.html">XCTarget</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_defaultConfigurationName</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_name</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_productName</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_productReference</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_productType</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_project</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>addDependency:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>addMember:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>buildShellScripts</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>configurations</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>configurationWithName:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>defaultConfiguration</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>duplicateWithTargetName:productName:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:name:productName:productReference:productType:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isApplicationType</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>key</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>makeAndAddShellScript:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>members</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>productName</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>productReference</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>productType</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeMembersWithKeys:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeMemberWithKey:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeResourcesWithKeys:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeResourceWithKey:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeShellScriptByName:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>resources</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>targetWithProject:key:name:productName:productReference:productType:</b> (defined in <a class="el" href="interface_x_c_target.html">XCTarget</a>)</td><td class="entry"><a class="el" href="interface_x_c_target.html">XCTarget</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_target.html b/doc/html/interface_x_c_target.html
new file mode 100644
index 0000000..ad7ec0c
--- /dev/null
+++ b/doc/html/interface_x_c_target.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCTarget Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_target-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCTarget Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#import &lt;<a class="el" href="_x_c_target_8h_source.html">XCTarget.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for XCTarget:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_target.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:afad674edc98884edb24f090b5d378e31"><td class="memItemLeft" align="right" valign="top"><a id="afad674edc98884edb24f090b5d378e31" name="afad674edc98884edb24f090b5d378e31"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:name:productName:productReference:productType:</b></td></tr>
+<tr class="separator:afad674edc98884edb24f090b5d378e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8e51f2d194a3e5d49cfe21b1a4f2988"><td class="memItemLeft" align="right" valign="top"><a id="ab8e51f2d194a3e5d49cfe21b1a4f2988" name="ab8e51f2d194a3e5d49cfe21b1a4f2988"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>resources</b></td></tr>
+<tr class="separator:ab8e51f2d194a3e5d49cfe21b1a4f2988"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abeef4fa09df4f49cf068688fada18f36"><td class="memItemLeft" align="right" valign="top"><a id="abeef4fa09df4f49cf068688fada18f36" name="abeef4fa09df4f49cf068688fada18f36"></a>
+(NSArray&lt; id&lt; <a class="el" href="protocol_x_c_build_file-p.html">XCBuildFile</a> &gt; &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>members</b></td></tr>
+<tr class="separator:abeef4fa09df4f49cf068688fada18f36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f874868fd7f7abec6f901abe9b360fc"><td class="memItemLeft" align="right" valign="top"><a id="a8f874868fd7f7abec6f901abe9b360fc" name="a8f874868fd7f7abec6f901abe9b360fc"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_build_shell_script.html">XCBuildShellScript</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildShellScripts</b></td></tr>
+<tr class="separator:a8f874868fd7f7abec6f901abe9b360fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca1ec28004d29928d3eac511e25da744"><td class="memItemLeft" align="right" valign="top"><a id="aca1ec28004d29928d3eac511e25da744" name="aca1ec28004d29928d3eac511e25da744"></a>
+(NSDictionary&lt; NSString *, <a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>configurations</b></td></tr>
+<tr class="separator:aca1ec28004d29928d3eac511e25da744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37f0c80efa42c78224b6b3e802e2dfc3"><td class="memItemLeft" align="right" valign="top"><a id="a37f0c80efa42c78224b6b3e802e2dfc3" name="a37f0c80efa42c78224b6b3e802e2dfc3"></a>
+(<a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <b>configurationWithName:</b></td></tr>
+<tr class="separator:a37f0c80efa42c78224b6b3e802e2dfc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8de328b2d78a913fe647eeae916e6953"><td class="memItemLeft" align="right" valign="top"><a id="a8de328b2d78a913fe647eeae916e6953" name="a8de328b2d78a913fe647eeae916e6953"></a>
+(<a class="el" href="interface_x_c_project_build_config.html">XCProjectBuildConfig</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <b>defaultConfiguration</b></td></tr>
+<tr class="separator:a8de328b2d78a913fe647eeae916e6953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4772a23624ec530a93df654bd898cb64"><td class="memItemLeft" align="right" valign="top"><a id="a4772a23624ec530a93df654bd898cb64" name="a4772a23624ec530a93df654bd898cb64"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addMember:</b></td></tr>
+<tr class="separator:a4772a23624ec530a93df654bd898cb64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cf3b7f36adbe8f3fc8dd025fcb4f439"><td class="memItemLeft" align="right" valign="top"><a id="a7cf3b7f36adbe8f3fc8dd025fcb4f439" name="a7cf3b7f36adbe8f3fc8dd025fcb4f439"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>makeAndAddShellScript:</b></td></tr>
+<tr class="separator:a7cf3b7f36adbe8f3fc8dd025fcb4f439"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f33f5bdc159aa797a75b93af71d4365"><td class="memItemLeft" align="right" valign="top"><a id="a6f33f5bdc159aa797a75b93af71d4365" name="a6f33f5bdc159aa797a75b93af71d4365"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeShellScriptByName:</b></td></tr>
+<tr class="separator:a6f33f5bdc159aa797a75b93af71d4365"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3aaed35866dc400d4b88e79ee9717b36"><td class="memItemLeft" align="right" valign="top"><a id="a3aaed35866dc400d4b88e79ee9717b36" name="a3aaed35866dc400d4b88e79ee9717b36"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeMemberWithKey:</b></td></tr>
+<tr class="separator:a3aaed35866dc400d4b88e79ee9717b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a8fb69f0caceadc054e6826465fecf7"><td class="memItemLeft" align="right" valign="top"><a id="a1a8fb69f0caceadc054e6826465fecf7" name="a1a8fb69f0caceadc054e6826465fecf7"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeMembersWithKeys:</b></td></tr>
+<tr class="separator:a1a8fb69f0caceadc054e6826465fecf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0c91f3ee07278742e9a0a7fa3374db7"><td class="memItemLeft" align="right" valign="top"><a id="af0c91f3ee07278742e9a0a7fa3374db7" name="af0c91f3ee07278742e9a0a7fa3374db7"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeResourceWithKey:</b></td></tr>
+<tr class="separator:af0c91f3ee07278742e9a0a7fa3374db7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7762ceb98c4f5f8005988378cb03bb6e"><td class="memItemLeft" align="right" valign="top"><a id="a7762ceb98c4f5f8005988378cb03bb6e" name="a7762ceb98c4f5f8005988378cb03bb6e"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeResourcesWithKeys:</b></td></tr>
+<tr class="separator:a7762ceb98c4f5f8005988378cb03bb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa9f6565fa69e8f456312435903816f5"><td class="memItemLeft" align="right" valign="top"><a id="afa9f6565fa69e8f456312435903816f5" name="afa9f6565fa69e8f456312435903816f5"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>addDependency:</b></td></tr>
+<tr class="separator:afa9f6565fa69e8f456312435903816f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afec49a376a2f4856cda389ab5ad3e604"><td class="memItemLeft" align="right" valign="top"><a id="afec49a376a2f4856cda389ab5ad3e604" name="afec49a376a2f4856cda389ab5ad3e604"></a>
+(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <b>duplicateWithTargetName:productName:</b></td></tr>
+<tr class="separator:afec49a376a2f4856cda389ab5ad3e604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b89d4c5550b832921fc5efc52ff41cd"><td class="memItemLeft" align="right" valign="top"><a id="a3b89d4c5550b832921fc5efc52ff41cd" name="a3b89d4c5550b832921fc5efc52ff41cd"></a>
+(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <b>isApplicationType</b></td></tr>
+<tr class="separator:a3b89d4c5550b832921fc5efc52ff41cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:ae48bbab918d1fe83afb0abac701224ab"><td class="memItemLeft" align="right" valign="top"><a id="ae48bbab918d1fe83afb0abac701224ab" name="ae48bbab918d1fe83afb0abac701224ab"></a>
+(<a class="el" href="interface_x_c_target.html">XCTarget</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>targetWithProject:key:name:productName:productReference:productType:</b></td></tr>
+<tr class="separator:ae48bbab918d1fe83afb0abac701224ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a1eb6b30e6683e053774fe99e71467263"><td class="memItemLeft" align="right" valign="top"><a id="a1eb6b30e6683e053774fe99e71467263" name="a1eb6b30e6683e053774fe99e71467263"></a>
+<a class="el" href="interface_x_c_project.html">XCProject</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>_project</b></td></tr>
+<tr class="separator:a1eb6b30e6683e053774fe99e71467263"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8150da4d6b50ee82d9c34069560c0755"><td class="memItemLeft" align="right" valign="top"><a id="a8150da4d6b50ee82d9c34069560c0755" name="a8150da4d6b50ee82d9c34069560c0755"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:a8150da4d6b50ee82d9c34069560c0755"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0d40c5cb0fe2d9495fd07d7575cb3c9"><td class="memItemLeft" align="right" valign="top"><a id="ad0d40c5cb0fe2d9495fd07d7575cb3c9" name="ad0d40c5cb0fe2d9495fd07d7575cb3c9"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_name</b></td></tr>
+<tr class="separator:ad0d40c5cb0fe2d9495fd07d7575cb3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95f516c6e639d53e399d2f1453017ed0"><td class="memItemLeft" align="right" valign="top"><a id="a95f516c6e639d53e399d2f1453017ed0" name="a95f516c6e639d53e399d2f1453017ed0"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_productName</b></td></tr>
+<tr class="separator:a95f516c6e639d53e399d2f1453017ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e35f7e1a3b65198b62d8e7b9cd43bcf"><td class="memItemLeft" align="right" valign="top"><a id="a6e35f7e1a3b65198b62d8e7b9cd43bcf" name="a6e35f7e1a3b65198b62d8e7b9cd43bcf"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_productReference</b></td></tr>
+<tr class="separator:a6e35f7e1a3b65198b62d8e7b9cd43bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6e0170a3c489e63b073d1f273e26c36"><td class="memItemLeft" align="right" valign="top"><a id="ad6e0170a3c489e63b073d1f273e26c36" name="ad6e0170a3c489e63b073d1f273e26c36"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_productType</b></td></tr>
+<tr class="separator:ad6e0170a3c489e63b073d1f273e26c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2630c299a5e77c0dcc9d9f134d98e40"><td class="memItemLeft" align="right" valign="top"><a id="ab2630c299a5e77c0dcc9d9f134d98e40" name="ab2630c299a5e77c0dcc9d9f134d98e40"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_defaultConfigurationName</b></td></tr>
+<tr class="separator:ab2630c299a5e77c0dcc9d9f134d98e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a72e25adbcc07cf3df26734321465d926"><td class="memItemLeft" align="right" valign="top"><a id="a72e25adbcc07cf3df26734321465d926" name="a72e25adbcc07cf3df26734321465d926"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>key</b></td></tr>
+<tr class="separator:a72e25adbcc07cf3df26734321465d926"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a5f548eb9e5dd17334bce543ce76a20"><td class="memItemLeft" align="right" valign="top"><a id="a7a5f548eb9e5dd17334bce543ce76a20" name="a7a5f548eb9e5dd17334bce543ce76a20"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:a7a5f548eb9e5dd17334bce543ce76a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5dc8a5b6b476e7adacd0d7d3b57e3660"><td class="memItemLeft" align="right" valign="top"><a id="a5dc8a5b6b476e7adacd0d7d3b57e3660" name="a5dc8a5b6b476e7adacd0d7d3b57e3660"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>productName</b></td></tr>
+<tr class="separator:a5dc8a5b6b476e7adacd0d7d3b57e3660"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc530e4c19cd4a6a73595cdd3d5ec4cb"><td class="memItemLeft" align="right" valign="top"><a id="acc530e4c19cd4a6a73595cdd3d5ec4cb" name="acc530e4c19cd4a6a73595cdd3d5ec4cb"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>productReference</b></td></tr>
+<tr class="separator:acc530e4c19cd4a6a73595cdd3d5ec4cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a132365ae8379582e0f5ee3b45f9849f9"><td class="memItemLeft" align="right" valign="top"><a id="a132365ae8379582e0f5ee3b45f9849f9" name="a132365ae8379582e0f5ee3b45f9849f9"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>productType</b></td></tr>
+<tr class="separator:a132365ae8379582e0f5ee3b45f9849f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p >Represents a target in an xcode project. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_target_8h_source.html">XCTarget.h</a></li>
+<li>XCTarget.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_target.png b/doc/html/interface_x_c_target.png
new file mode 100644
index 0000000..551c399
Binary files /dev/null and b/doc/html/interface_x_c_target.png differ
diff --git a/doc/html/interface_x_c_target_tests.html b/doc/html/interface_x_c_target_tests.html
new file mode 100644
index 0000000..514f926
--- /dev/null
+++ b/doc/html/interface_x_c_target_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCTargetTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCTargetTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCTargetTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_target_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XCTargetTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_target_tests.png b/doc/html/interface_x_c_target_tests.png
new file mode 100644
index 0000000..61c2d1a
Binary files /dev/null and b/doc/html/interface_x_c_target_tests.png differ
diff --git a/doc/html/interface_x_c_version_group-members.html b/doc/html/interface_x_c_version_group-members.html
new file mode 100644
index 0000000..498a89f
--- /dev/null
+++ b/doc/html/interface_x_c_version_group-members.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCVersionGroup Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_key</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_pathRelativeToParent</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37">addDataModelSource:</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885">alias</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>asDictionary</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>becomeBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildFileKey</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>buildFileKeys</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildPhase</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>currentVersion</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>displayName</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithProject:key:path:children:currentVersion:</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c">key</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>members</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6">memberWithDisplayName:</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd">memberWithKey:</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>parentGroup</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b">pathRelativeToParent</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>pathRelativeToProjectRoot</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>removeFromParentDeletingChildren:</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>removeFromParentGroup</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>versionGroupWithProject:key:path:children:currentVersion:</b> (defined in <a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a>)</td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"></td><td class="entry"><a class="el" href="interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c">versions</a></td><td class="entry"><a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_version_group.html b/doc/html/interface_x_c_version_group.html
new file mode 100644
index 0000000..3da225f
--- /dev/null
+++ b/doc/html/interface_x_c_version_group.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCVersionGroup Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_version_group-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCVersionGroup Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCVersionGroup:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_version_group.png" usemap="#XCVersionGroup_map" alt=""/>
+  <map id="XCVersionGroup_map" name="XCVersionGroup_map">
+<area href="protocol_xcode_group_member-p.html" alt="&lt;XcodeGroupMember&gt;" shape="rect" coords="154,56,298,80"/>
+<area href="protocol_x_c_build_file-p.html" alt="&lt;XCBuildFile&gt;" shape="rect" coords="308,56,452,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:af213f9c00a675f35026b80085ad94aa0"><td class="memItemLeft" align="right" valign="top"><a id="af213f9c00a675f35026b80085ad94aa0" name="af213f9c00a675f35026b80085ad94aa0"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithProject:key:path:children:currentVersion:</b></td></tr>
+<tr class="separator:af213f9c00a675f35026b80085ad94aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13ebb5e30e489a4fa4740b2f34c8883f"><td class="memItemLeft" align="right" valign="top"><a id="a13ebb5e30e489a4fa4740b2f34c8883f" name="a13ebb5e30e489a4fa4740b2f34c8883f"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromParentGroup</b></td></tr>
+<tr class="separator:a13ebb5e30e489a4fa4740b2f34c8883f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a661019987c21b0b3d8d65710ab25f5ec"><td class="memItemLeft" align="right" valign="top"><a id="a661019987c21b0b3d8d65710ab25f5ec" name="a661019987c21b0b3d8d65710ab25f5ec"></a>
+(void)&#160;</td><td class="memItemRight" valign="bottom">- <b>removeFromParentDeletingChildren:</b></td></tr>
+<tr class="separator:a661019987c21b0b3d8d65710ab25f5ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98addd255bf7c092b89e278d2a872dee"><td class="memItemLeft" align="right" valign="top"><a id="a98addd255bf7c092b89e278d2a872dee" name="a98addd255bf7c092b89e278d2a872dee"></a>
+(<a class="el" href="interface_x_c_group.html">XCGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <b>parentGroup</b></td></tr>
+<tr class="separator:a98addd255bf7c092b89e278d2a872dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95f29cd0630223ec7273c3c98c669b37"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37">addDataModelSource:</a></td></tr>
+<tr class="separator:a95f29cd0630223ec7273c3c98c669b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03df67da6147478982e1b1cf7b8f8f41"><td class="memItemLeft" align="right" valign="top"><a id="a03df67da6147478982e1b1cf7b8f8f41" name="a03df67da6147478982e1b1cf7b8f8f41"></a>
+(NSArray&lt; <a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>members</b></td></tr>
+<tr class="separator:a03df67da6147478982e1b1cf7b8f8f41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fb5d4fe976d45f1c31dde0f8bd635fa"><td class="memItemLeft" align="right" valign="top"><a id="a3fb5d4fe976d45f1c31dde0f8bd635fa" name="a3fb5d4fe976d45f1c31dde0f8bd635fa"></a>
+(NSArray&lt; NSString * &gt; *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildFileKeys</b></td></tr>
+<tr class="separator:a3fb5d4fe976d45f1c31dde0f8bd635fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80b556d4c32df75d842e15ca1e64b2cd"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd">memberWithKey:</a></td></tr>
+<tr class="separator:a80b556d4c32df75d842e15ca1e64b2cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a162fb995f778781d25e2c94cd242a1d6"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6">memberWithDisplayName:</a></td></tr>
+<tr class="separator:a162fb995f778781d25e2c94cd242a1d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21f2d321fdfbde3a982db53bac486a25"><td class="memItemLeft" align="right" valign="top"><a id="a21f2d321fdfbde3a982db53bac486a25" name="a21f2d321fdfbde3a982db53bac486a25"></a>
+(NSDictionary *)&#160;</td><td class="memItemRight" valign="bottom">- <b>asDictionary</b></td></tr>
+<tr class="separator:a21f2d321fdfbde3a982db53bac486a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_protocol_xcode_group_member-p"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_protocol_xcode_group_member-p')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td></tr>
+<tr class="memitem:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="a9c26d7fb8e5b8e9a70514cd82f17a753" name="a9c26d7fb8e5b8e9a70514cd82f17a753"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>key</b></td></tr>
+<tr class="separator:a9c26d7fb8e5b8e9a70514cd82f17a753 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="aaa904107027b7f93f9770816ee6e9af4" name="aaa904107027b7f93f9770816ee6e9af4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>displayName</b></td></tr>
+<tr class="separator:aaa904107027b7f93f9770816ee6e9af4 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top"><a id="ace875c36516c8431fa545cdbd7539247" name="ace875c36516c8431fa545cdbd7539247"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>pathRelativeToProjectRoot</b></td></tr>
+<tr class="separator:ace875c36516c8431fa545cdbd7539247 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memItemLeft" align="right" valign="top">(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td></tr>
+<tr class="separator:a37e9e9f28d597028f66ae694b3efd1d8 inherit pub_methods_protocol_xcode_group_member-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_protocol_x_c_build_file-p"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_protocol_x_c_build_file-p')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td></tr>
+<tr class="memitem:ab4cbac9982b3dc37e3444779c88eecbe inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ab4cbac9982b3dc37e3444779c88eecbe">becomeBuildFile</a></td></tr>
+<tr class="separator:ab4cbac9982b3dc37e3444779c88eecbe inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe34a94cd11ba7fcd1b3c27cb837548b inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top"><a id="afe34a94cd11ba7fcd1b3c27cb837548b" name="afe34a94cd11ba7fcd1b3c27cb837548b"></a>
+(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildPhase</b></td></tr>
+<tr class="separator:afe34a94cd11ba7fcd1b3c27cb837548b inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d481e73a986d781537c68e3be24bdf4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top"><a id="a8d481e73a986d781537c68e3be24bdf4" name="a8d481e73a986d781537c68e3be24bdf4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildFileKey</b></td></tr>
+<tr class="separator:a8d481e73a986d781537c68e3be24bdf4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5882d46671f3891d484f6f5d293b4b4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ae5882d46671f3891d484f6f5d293b4b4">isBuildFile</a></td></tr>
+<tr class="separator:ae5882d46671f3891d484f6f5d293b4b4 inherit pub_methods_protocol_x_c_build_file-p"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a54ef892c65df40da1bdde4642d2a3dc1"><td class="memItemLeft" align="right" valign="top"><a id="a54ef892c65df40da1bdde4642d2a3dc1" name="a54ef892c65df40da1bdde4642d2a3dc1"></a>
+(<a class="el" href="interface_x_c_version_group.html">XCVersionGroup</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>versionGroupWithProject:key:path:children:currentVersion:</b></td></tr>
+<tr class="separator:a54ef892c65df40da1bdde4642d2a3dc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a80e4bc62286f79aee7dd98295d5df963"><td class="memItemLeft" align="right" valign="top"><a id="a80e4bc62286f79aee7dd98295d5df963" name="a80e4bc62286f79aee7dd98295d5df963"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_pathRelativeToParent</b></td></tr>
+<tr class="separator:a80e4bc62286f79aee7dd98295d5df963"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17f1e0eb958b4c0501480fa138ba8aed"><td class="memItemLeft" align="right" valign="top"><a id="a17f1e0eb958b4c0501480fa138ba8aed" name="a17f1e0eb958b4c0501480fa138ba8aed"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_key</b></td></tr>
+<tr class="separator:a17f1e0eb958b4c0501480fa138ba8aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:afd3e95e73e576b608f6f5e2416898885"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885">alias</a></td></tr>
+<tr class="separator:afd3e95e73e576b608f6f5e2416898885"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af93e68eb50e9c368f2f94b1e3e81ef5b"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b">pathRelativeToParent</a></td></tr>
+<tr class="separator:af93e68eb50e9c368f2f94b1e3e81ef5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf4f1652b83fc6cc7fc3165d65c7655c"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c">key</a></td></tr>
+<tr class="separator:acf4f1652b83fc6cc7fc3165d65c7655c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac094cb0b196c580cbac574781a642d0c"><td class="memItemLeft" align="right" valign="top">NSMutableArray *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c">versions</a></td></tr>
+<tr class="separator:ac094cb0b196c580cbac574781a642d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a338bab4567342ddc6ff152304876a5c2"><td class="memItemLeft" align="right" valign="top"><a id="a338bab4567342ddc6ff152304876a5c2" name="a338bab4567342ddc6ff152304876a5c2"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>currentVersion</b></td></tr>
+<tr class="separator:a338bab4567342ddc6ff152304876a5c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Method Documentation</h2>
+<a id="a95f29cd0630223ec7273c3c98c669b37" name="a95f29cd0630223ec7273c3c98c669b37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a95f29cd0630223ec7273c3c98c669b37">&#9670;&nbsp;</a></span>addDataModelSource:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) addDataModelSource: </td>
+          <td></td>
+          <td class="paramtype">(<a class="el" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>*)&#160;</td>
+          <td class="paramname"><em>sourceFileDefinition</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Adds a source file. The only valid file type is XCDataModel </p>
+
+</div>
+</div>
+<a id="a162fb995f778781d25e2c94cd242a1d6" name="a162fb995f778781d25e2c94cd242a1d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a162fb995f778781d25e2c94cd242a1d6">&#9670;&nbsp;</a></span>memberWithDisplayName:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (id&lt; <a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> &gt;) memberWithDisplayName: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>name</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the child with the specified name, or nil. </p>
+
+</div>
+</div>
+<a id="a80b556d4c32df75d842e15ca1e64b2cd" name="a80b556d4c32df75d842e15ca1e64b2cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80b556d4c32df75d842e15ca1e64b2cd">&#9670;&nbsp;</a></span>memberWithKey:</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (<a class="el" href="interface_x_c_source_file.html">XCSourceFile</a> *) memberWithKey: </td>
+          <td></td>
+          <td class="paramtype">(NSString*)&#160;</td>
+          <td class="paramname"><em>key</em></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Returns the child with the specified key, or nil. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Property Documentation</h2>
+<a id="afd3e95e73e576b608f6f5e2416898885" name="afd3e95e73e576b608f6f5e2416898885"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd3e95e73e576b608f6f5e2416898885">&#9670;&nbsp;</a></span>alias</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) alias</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The alias of the group, which can be used to give the group a name other than the last path component.</p>
+<p >See: [<a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> displayName] </p>
+
+</div>
+</div>
+<a id="acf4f1652b83fc6cc7fc3165d65c7655c" name="acf4f1652b83fc6cc7fc3165d65c7655c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf4f1652b83fc6cc7fc3165d65c7655c">&#9670;&nbsp;</a></span>key</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) key</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The group's unique key. </p>
+
+</div>
+</div>
+<a id="af93e68eb50e9c368f2f94b1e3e81ef5b" name="af93e68eb50e9c368f2f94b1e3e81ef5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af93e68eb50e9c368f2f94b1e3e81ef5b">&#9670;&nbsp;</a></span>pathRelativeToParent</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSString*) pathRelativeToParent</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >The path of the group relative to the group's parent.</p>
+<p >See: [<a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a> displayName] </p>
+
+</div>
+</div>
+<a id="ac094cb0b196c580cbac574781a642d0c" name="ac094cb0b196c580cbac574781a642d0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac094cb0b196c580cbac574781a642d0c">&#9670;&nbsp;</a></span>versions</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (NSMutableArray*) versions</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p >An array containing the groups members as <code><a class="el" href="protocol_xcode_group_member-p.html">XcodeGroupMember</a></code> types. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_version_group_8h_source.html">XCVersionGroup.h</a></li>
+<li>XCVersionGroup.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_version_group.png b/doc/html/interface_x_c_version_group.png
new file mode 100644
index 0000000..51380cc
Binary files /dev/null and b/doc/html/interface_x_c_version_group.png differ
diff --git a/doc/html/interface_x_c_xib_definition-members.html b/doc/html/interface_x_c_xib_definition-members.html
new file mode 100644
index 0000000..6f0b331
--- /dev/null
+++ b/doc/html/interface_x_c_xib_definition-members.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XCXibDefinition Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_content</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>_fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>_name</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>content</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"></td><td class="entry"><b>fileOperationType</b> (defined in <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>initWithName:content:</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry"></td><td class="entry"><b>name</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">+&#160;</td><td class="entry"><b>xibDefinitionWithName:</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">+&#160;</td><td class="entry"><b>xibDefinitionWithName:content:</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>xibFileName</b> (defined in <a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a>)</td><td class="entry"><a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_xib_definition.html b/doc/html/interface_x_c_xib_definition.html
new file mode 100644
index 0000000..dbc459e
--- /dev/null
+++ b/doc/html/interface_x_c_xib_definition.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XCXibDefinition Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="#pub-static-methods">Class Methods</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="#properties">Properties</a> &#124;
+<a href="interface_x_c_xib_definition-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">XCXibDefinition Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XCXibDefinition:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_x_c_xib_definition.png" usemap="#XCXibDefinition_map" alt=""/>
+  <map id="XCXibDefinition_map" name="XCXibDefinition_map">
+<area href="interface_x_c_abstract_definition.html" alt="XCAbstractDefinition" shape="rect" coords="0,56,130,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a71e9133c2f6014f5154f6b41429e394f"><td class="memItemLeft" align="right" valign="top"><a id="a71e9133c2f6014f5154f6b41429e394f" name="a71e9133c2f6014f5154f6b41429e394f"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:</b></td></tr>
+<tr class="separator:a71e9133c2f6014f5154f6b41429e394f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f4cc949c68e9f1a392c81c59584af50"><td class="memItemLeft" align="right" valign="top"><a id="a6f4cc949c68e9f1a392c81c59584af50" name="a6f4cc949c68e9f1a392c81c59584af50"></a>
+(id)&#160;</td><td class="memItemRight" valign="bottom">- <b>initWithName:content:</b></td></tr>
+<tr class="separator:a6f4cc949c68e9f1a392c81c59584af50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95d72d783aeb130c4a97cfe47c242d9f"><td class="memItemLeft" align="right" valign="top"><a id="a95d72d783aeb130c4a97cfe47c242d9f" name="a95d72d783aeb130c4a97cfe47c242d9f"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>xibFileName</b></td></tr>
+<tr class="separator:a95d72d783aeb130c4a97cfe47c242d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
+Class Methods</h2></td></tr>
+<tr class="memitem:a0f0fed96387cac92a17a6f96cee1ae07"><td class="memItemLeft" align="right" valign="top"><a id="a0f0fed96387cac92a17a6f96cee1ae07" name="a0f0fed96387cac92a17a6f96cee1ae07"></a>
+(<a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>xibDefinitionWithName:</b></td></tr>
+<tr class="separator:a0f0fed96387cac92a17a6f96cee1ae07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad004842851fa976f83f8fadbdb15ed2a"><td class="memItemLeft" align="right" valign="top"><a id="ad004842851fa976f83f8fadbdb15ed2a" name="ad004842851fa976f83f8fadbdb15ed2a"></a>
+(<a class="el" href="interface_x_c_xib_definition.html">XCXibDefinition</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <b>xibDefinitionWithName:content:</b></td></tr>
+<tr class="separator:ad004842851fa976f83f8fadbdb15ed2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ac1fd23a99294381d23b2ae23e3844e20"><td class="memItemLeft" align="right" valign="top"><a id="ac1fd23a99294381d23b2ae23e3844e20" name="ac1fd23a99294381d23b2ae23e3844e20"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_name</b></td></tr>
+<tr class="separator:ac1fd23a99294381d23b2ae23e3844e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2364849c0ed680d1f30c2c2b9b93171"><td class="memItemLeft" align="right" valign="top"><a id="ac2364849c0ed680d1f30c2c2b9b93171" name="ac2364849c0ed680d1f30c2c2b9b93171"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>_content</b></td></tr>
+<tr class="separator:ac2364849c0ed680d1f30c2c2b9b93171"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a7403687ee4cd520f5a67743965744c07" name="a7403687ee4cd520f5a67743965744c07"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>_fileOperationType</b></td></tr>
+<tr class="separator:a7403687ee4cd520f5a67743965744c07 inherit pro_attribs_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="properties" name="properties"></a>
+Properties</h2></td></tr>
+<tr class="memitem:a2e3bf501465d4879ea9f64d32d10ac08"><td class="memItemLeft" align="right" valign="top"><a id="a2e3bf501465d4879ea9f64d32d10ac08" name="a2e3bf501465d4879ea9f64d32d10ac08"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:a2e3bf501465d4879ea9f64d32d10ac08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac58c8587af4f2f984114c2da51abd825"><td class="memItemLeft" align="right" valign="top"><a id="ac58c8587af4f2f984114c2da51abd825" name="ac58c8587af4f2f984114c2da51abd825"></a>
+NSString *&#160;</td><td class="memItemRight" valign="bottom"><b>content</b></td></tr>
+<tr class="separator:ac58c8587af4f2f984114c2da51abd825"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header properties_interface_x_c_abstract_definition"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_x_c_abstract_definition')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_x_c_abstract_definition.html">XCAbstractDefinition</a></td></tr>
+<tr class="memitem:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memItemLeft" align="right" valign="top"><a id="a1d6a905c3233209a6557aa3d730dfa84" name="a1d6a905c3233209a6557aa3d730dfa84"></a>
+XCFileOperationType&#160;</td><td class="memItemRight" valign="bottom"><b>fileOperationType</b></td></tr>
+<tr class="separator:a1d6a905c3233209a6557aa3d730dfa84 inherit properties_interface_x_c_abstract_definition"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="_x_c_xib_definition_8h_source.html">XCXibDefinition.h</a></li>
+<li>XCXibDefinition.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_x_c_xib_definition.png b/doc/html/interface_x_c_xib_definition.png
new file mode 100644
index 0000000..4e4c450
Binary files /dev/null and b/doc/html/interface_x_c_xib_definition.png differ
diff --git a/doc/html/interface_xcode_file_reference_type_tests.html b/doc/html/interface_xcode_file_reference_type_tests.html
new file mode 100644
index 0000000..b697caf
--- /dev/null
+++ b/doc/html/interface_xcode_file_reference_type_tests.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: XcodeFileReferenceTypeTests Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">XcodeFileReferenceTypeTests Class Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for XcodeFileReferenceTypeTests:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="interface_xcode_file_reference_type_tests.png" alt=""/>
+ </div></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>XcodeFileReferenceTypeTests.m</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/interface_xcode_file_reference_type_tests.png b/doc/html/interface_xcode_file_reference_type_tests.png
new file mode 100644
index 0000000..2a87738
Binary files /dev/null and b/doc/html/interface_xcode_file_reference_type_tests.png differ
diff --git a/doc/html/jquery.js b/doc/html/jquery.js
new file mode 100644
index 0000000..c9ed3d9
--- /dev/null
+++ b/doc/html/jquery.js
@@ -0,0 +1,35 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+/*!
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
+ * http://www.smartmenus.org/
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
\ No newline at end of file
diff --git a/doc/html/md__r_e_a_d_m_e.html b/doc/html/md__r_e_a_d_m_e.html
new file mode 100644
index 0000000..2053855
--- /dev/null
+++ b/doc/html/md__r_e_a_d_m_e.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Description</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div><div class="header">
+  <div class="headertitle"><div class="title">Description </div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p >An API for manipulating Xcode project files.</p>
+<h1><a class="anchor" id="autotoc_md1"></a>
+Usage</h1>
+<h3><a class="anchor" id="autotoc_md2"></a>
+Adding Source Files to a Project</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_project.html">XCProject</a>* project = [[<a class="code hl_class" href="interface_x_c_project.html">XCProject</a> alloc] initWithFilePath:@&quot;MyProject.xcodeproj&quot;];</div>
+<div class="line"><a class="code hl_class" href="interface_x_c_group.html">XCGroup</a>* group = [project <a class="code hl_function" href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">groupWithPathFromRoot</a>:@&quot;Main&quot;];</div>
+<div class="line"><a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a>* classDefinition = [[<a class="code hl_class" href="interface_x_c_class_definition.html">XCClassDefinition</a> alloc] initWithName:@&quot;MyNewClass&quot;];</div>
+<div class="line">[classDefinition setHeader:@&quot;&lt;some-header-text&gt;&quot;];</div>
+<div class="line">[classDefinition setSource:@&quot;&lt;some-impl-text&gt;&quot;];</div>
+<div class="line"> </div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">addClass</a>:classDefinition];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+<div class="ttc" id="ainterface_x_c_class_definition_html"><div class="ttname"><a href="interface_x_c_class_definition.html">XCClassDefinition</a></div><div class="ttdef"><b>Definition:</b> XCClassDefinition.h:24</div></div>
+<div class="ttc" id="ainterface_x_c_group_html"><div class="ttname"><a href="interface_x_c_group.html">XCGroup</a></div><div class="ttdef"><b>Definition:</b> XCGroup.h:35</div></div>
+<div class="ttc" id="ainterface_x_c_group_html_a96411d3bbbc3575f8ec054e248f6ccc0"><div class="ttname"><a href="interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0">-[XCGroup addClass:]</a></div><div class="ttdeci">void addClass:(XCClassDefinition *classDefinition)</div><div class="ttdef"><b>Definition:</b> XCGroup.m:134</div></div>
+<div class="ttc" id="ainterface_x_c_project_html"><div class="ttname"><a href="interface_x_c_project.html">XCProject</a></div><div class="ttdef"><b>Definition:</b> XCProject.h:27</div></div>
+<div class="ttc" id="ainterface_x_c_project_html_a2802de6cf0bb6e8550d713a188b35d52"><div class="ttname"><a href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">-[XCProject save]</a></div><div class="ttdeci">void save()</div><div class="ttdef"><b>Definition:</b> XCProject.m:429</div></div>
+<div class="ttc" id="ainterface_x_c_project_html_a5c29526ae6ec53f9a20b887dbaecff39"><div class="ttname"><a href="interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39">-[XCProject groupWithPathFromRoot:]</a></div><div class="ttdeci">XCGroup * groupWithPathFromRoot:(NSString *path)</div><div class="ttdef"><b>Definition:</b> XCProject.m:286</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md3"></a>
+Duplicating Targets</h3>
+<p >It will be added to project as well.</p>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>* target = [project <a class="code hl_function" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">targetWithName</a>:@&quot;SomeTarget&quot;];</div>
+<div class="line"><a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>* duplicated = [target duplicateWithTargetName:@&quot;DuplicatedTarget&quot; productName:@&quot;NewProduct&quot;];</div>
+<div class="ttc" id="ainterface_x_c_project_html_abaa9a7968fad5ec90d41f89e63887ed7"><div class="ttname"><a href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">-[XCProject targetWithName:]</a></div><div class="ttdeci">XCTarget * targetWithName:(NSString *name)</div><div class="ttdef"><b>Definition:</b> XCProject.m:393</div></div>
+<div class="ttc" id="ainterface_x_c_target_html"><div class="ttname"><a href="interface_x_c_target.html">XCTarget</a></div><div class="ttdef"><b>Definition:</b> XCTarget.h:26</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md4"></a>
+Specifying Source File Belongs to Target</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_source_file.html">XCSourceFile</a>* sourceFile = [project <a class="code hl_function" href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">fileWithName</a>:@&quot;MyNewClass.m&quot;];</div>
+<div class="line"><a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>* examples = [project <a class="code hl_function" href="interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7">targetWithName</a>:@&quot;Examples&quot;];</div>
+<div class="line">[examples addMember:sourceFile];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+<div class="ttc" id="ainterface_x_c_project_html_af0ec1bda5ecf6777521993732e5ce081"><div class="ttname"><a href="interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081">-[XCProject fileWithName:]</a></div><div class="ttdeci">XCSourceFile * fileWithName:(NSString *name)</div><div class="ttdef"><b>Definition:</b> XCProject.m:124</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_html"><div class="ttname"><a href="interface_x_c_source_file.html">XCSourceFile</a></div><div class="ttdef"><b>Definition:</b> XCSourceFile.h:26</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md5"></a>
+Adding a Xib File</h3>
+<p >This time, we'll use a convenience method on <a class="el" href="interface_x_c_group.html">XCGroup</a> to specify the targets at the same time:</p>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a>* xibDefinition = [[<a class="code hl_class" href="interface_x_c_xib_definition.html">XCXibDefinition</a> alloc] initWithName:@&quot;MyXibFile&quot; content:@&quot;&lt;xibXml&gt;&quot;];</div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">addXib</a>:xibDefinition <a class="code hl_function" href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">toTargets</a>:[project <a class="code hl_function" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">targets</a>]];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+<div class="ttc" id="ainterface_x_c_group_html_a497ac4da2c0dec3353e9880d824251bb"><div class="ttname"><a href="interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb">-[XCGroup addXib:toTargets:]</a></div><div class="ttdeci">void addXib:toTargets:(XCXibDefinition *xibDefinition,[toTargets] NSArray&lt; XCTarget * &gt; *targets)</div></div>
+<div class="ttc" id="ainterface_x_c_project_html_a3ee5cb7c9774166ff175e527d95ae61a"><div class="ttname"><a href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">-[XCProject targets]</a></div><div class="ttdeci">NSArray&lt; XCTarget * &gt; * targets()</div><div class="ttdef"><b>Definition:</b> XCProject.m:376</div></div>
+<div class="ttc" id="ainterface_x_c_xib_definition_html"><div class="ttname"><a href="interface_x_c_xib_definition.html">XCXibDefinition</a></div><div class="ttdef"><b>Definition:</b> XCXibDefinition.h:19</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md6"></a>
+Adding a Framework</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a>* frameworkDefinition =</div>
+<div class="line">    [[<a class="code hl_class" href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a> alloc] initWithFilePath:@&quot;&lt;framework path&gt;&quot; copyToDestination:NO];</div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">addFramework</a>:frameworkDefinition <a class="code hl_function" href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">toTargets</a>:[project <a class="code hl_function" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">targets</a>]];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+<div class="ttc" id="ainterface_x_c_framework_definition_html"><div class="ttname"><a href="interface_x_c_framework_definition.html">XCFrameworkDefinition</a></div><div class="ttdef"><b>Definition:</b> XCFrameworkDefinition.h:19</div></div>
+<div class="ttc" id="ainterface_x_c_group_html_a6793e5b2fa198356d31caa41cb5ca5f3"><div class="ttname"><a href="interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3">-[XCGroup addFramework:toTargets:]</a></div><div class="ttdeci">XCSourceFile * addFramework:toTargets:(XCFrameworkDefinition *framework,[toTargets] NSArray&lt; XCTarget * &gt; *targets)</div></div>
+</div><!-- fragment --><p> Setting copyToDestination to YES, will cause the framework to be first copied to the group's directory within the project, and subsequently linked from there.</p>
+<h3><a class="anchor" id="autotoc_md7"></a>
+Adding an Image Resource</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>* sourceFileDefinition = [[<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> alloc]</div>
+<div class="line">    initWithName:@&quot;MyImageFile.png&quot; data:[NSData dataWithContentsOfFile:&lt;your image file name&gt;]</div>
+<div class="line">    type:ImageResourcePNG];</div>
+<div class="line"> </div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">addSourceFile</a>:sourceFileDefinition];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+<div class="ttc" id="ainterface_x_c_group_html_aa24878ffd2dab62c58da17e65c03d686"><div class="ttname"><a href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">-[XCGroup addSourceFile:]</a></div><div class="ttdeci">void addSourceFile:(XCSourceFileDefinition *sourceFileDefinition)</div><div class="ttdef"><b>Definition:</b> XCGroup.m:367</div></div>
+<div class="ttc" id="ainterface_x_c_source_file_definition_html"><div class="ttname"><a href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSourceFileDefinition.h:19</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md8"></a>
+Adding Asset Catalog (ImageSet)</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>* sourceFileDefinition = [<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> sourceDefinitionWithAssetCatalogName:&lt;path to asset catalog&gt;];</div>
+<div class="line"> </div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">addSourceFile</a>:sourceFileDefinition];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md9"></a>
+Adding a Header</h3>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a>* header = [[<a class="code hl_class" href="interface_x_c_source_file_definition.html">XCSourceFileDefinition</a> alloc]</div>
+<div class="line">    initWithName:@&quot;SomeHeader.h&quot; text:&lt;your header text&gt; type:SourceCodeHeader];</div>
+<div class="line"> </div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686">addSourceFile</a>:header];</div>
+<div class="line">[project <a class="code hl_function" href="interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52">save</a>];</div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md10"></a>
+Adding a sub-project</h3>
+<div class="fragment"><div class="line">subProjectDefinition = [<a class="code hl_class" href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a> withName:@&quot;mySubproject&quot; projPath=@&quot;/Path/To/Subproject&quot; type:XcodeProject];</div>
+<div class="line">[group <a class="code hl_function" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">addSubProject</a>:subProjectDefinition <a class="code hl_function" href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">toTargets</a>:[project <a class="code hl_function" href="interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a">targets</a>]];</div>
+<div class="ttc" id="ainterface_x_c_group_html_a52dfc0c60614fb215954921c492a8674"><div class="ttname"><a href="interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674">-[XCGroup addSubProject:toTargets:]</a></div><div class="ttdeci">void addSubProject:toTargets:(XCSubProjectDefinition *projectDefinition,[toTargets] NSArray&lt; XCTarget * &gt; *targets)</div></div>
+<div class="ttc" id="ainterface_x_c_sub_project_definition_html"><div class="ttname"><a href="interface_x_c_sub_project_definition.html">XCSubProjectDefinition</a></div><div class="ttdef"><b>Definition:</b> XCSubProjectDefinition.h:22</div></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md11"></a>
+Removing a sub-project</h3>
+<div class="fragment"><div class="line">[group removeSubProject:subProjectDefinition];  <span class="comment">//TODO: project should be able to remove itself from parent.</span></div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md12"></a>
+Configuring targets</h3>
+<p >We can add/update linker flags, header search paths, C-flags, etc to a target. Here we'll add header search paths:</p>
+<div class="fragment"><div class="line"><a class="code hl_class" href="interface_x_c_target.html">XCTarget</a>* target = [_project targetWithName:_projectName];</div>
+<div class="line"><span class="keywordflow">for</span> (NSString* configName in [target configurations])</div>
+<div class="line">{</div>
+<div class="line">    XCBuildConfiguration* configuration = [target configurationWithName:configName];</div>
+<div class="line">    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];</div>
+<div class="line">    [headerPaths addObject:@&quot;$(inherited)&quot;];</div>
+<div class="line">    [headerPaths addObject:@&quot;$(SRCROOT)/include&quot;];        </div>
+<div class="line">    [configuration addOrReplaceSetting:headerPaths forKey:@&quot;HEADER_SEARCH_PATHS&quot;];</div>
+<div class="line">}</div>
+</div><!-- fragment --><p >. . . these settings are added by key, as they would appear in a make file. (Xcode provides more human friendly descriptions). To find the key for a given build setting, consult the compiler docs. Common settings are:</p>
+<ul>
+<li>HEADER_SEARCH_PATHS</li>
+<li>OTHER_LD_FLAGS</li>
+<li>CLANG_CXX_LANGUAGE_STANDARD</li>
+<li>CODE_SIGN_IDENTITY</li>
+<li>GCC_C_LANGUAGE_STANDARD</li>
+<li>INFOPLIST_FILE</li>
+<li>LIBRARY_SEARCH_PATHS</li>
+<li>PRODUCT_NAME</li>
+<li>PROVISIONING_PROFILE</li>
+</ul>
+<h3><a class="anchor" id="autotoc_md13"></a>
+Adding a Library</h3>
+<div class="fragment"><div class="line">XCSourceFile * libSourceFile = [project fileWithName:@&quot;libAmazing.a&quot;];</div>
+<div class="line"> </div>
+<div class="line">XCTarget* target = [project targetWithName:self.mProject.projectName];</div>
+<div class="line">[target addMember:libSourceFile];</div>
+<div class="line"> </div>
+<div class="line">for (NSString* configName in [target configurations]) {</div>
+<div class="line">    XCProjectBuildConfig* configuration = [target configurationWithName:configName];</div>
+<div class="line">    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];</div>
+<div class="line">    [headerPaths addObject:@&quot;$(inherited)&quot;];</div>
+<div class="line">    [headerPaths addObject:@&quot;$(PROJECT_DIR)/Amazing&quot;];</div>
+<div class="line">    [configuration addOrReplaceSetting:headerPaths forKey:@&quot;LIBRARY_SEARCH_PATHS&quot;];</div>
+<div class="line">}</div>
+</div><!-- fragment --><h3><a class="anchor" id="autotoc_md14"></a>
+File write behavior</h3>
+<div class="fragment"><div class="line"><span class="comment">//Creates the reference in the project and writes the contents to disk. If a file already exists at the </span></div>
+<div class="line"><span class="comment">//specified location, its contents will be updated.</span></div>
+<div class="line">[definition setFileOperationStyle:FileOperationStyleOverwrite]; </div>
+</div><!-- fragment --><div class="fragment"><div class="line"><span class="comment">//Creates the reference in the project. If a file already exists at the specified location, the contents will </span></div>
+<div class="line"><span class="comment">//not be updated.</span></div>
+<div class="line">[definition setFileOperationStyle:FileOperationStyleAcceptExisting]; </div>
+</div><!-- fragment --><div class="fragment"><div class="line"><span class="comment">//Creates the reference in the project, but does not write to disk. The filesystem is expected to be updated </span></div>
+<div class="line"><span class="comment">//through some other means.</span></div>
+<div class="line">[definition setFileOperationStyle:FileOperationStyleReferenceOnly]; </div>
+</div><!-- fragment --><h1><a class="anchor" id="autotoc_md15"></a>
+Building</h1>
+<p >Open the project in XCode and choose Product/Build. Alternatively install with CocoaPods.</p>
+<h1><a class="anchor" id="autotoc_md16"></a>
+Feature Requests and Contributions</h1>
+<p >. . . are very welcome.</p>
+<p >If you're using the API shoot me an email and tell me what you're doing with it.</p>
+<h1><a class="anchor" id="autotoc_md17"></a>
+Compatibility</h1>
+<ul>
+<li>Xcode-editor has been tested on Xcode 4+. It should also work on earlier versions of Xcode.</li>
+<li>The AppCode IDE from JetBrains is now supported too!</li>
+<li>Supports both ARC and MRR modes of memory management.</li>
+</ul>
+<h1><a class="anchor" id="autotoc_md18"></a>
+Who's using it?</h1>
+<ul>
+<li><a href="http://www.apportable.com">Apportable</a> : Develop Android applications using Xcode, Objective-C and Cocoa APIs</li>
+<li><a href="https://github.com/calabash/calabash-ios">Xamarin</a>: The Calabash automated functional testing for mobile applications.</li>
+<li><a href="https://github.com/markohlebar/Peckham">Peckham</a> : A great plugin for managing Xcode imports</li>
+<li><a href="http://www.levelhelper.org">Level Helper</a>: A RAD framework for developing 2D games on iOS &amp; Android.</li>
+<li><a href="http://macromates.com/">Text Mate</a>: The missing Text Editor for OSX.</li>
+</ul>
+<h1><a class="anchor" id="autotoc_md19"></a>
+Authors</h1>
+<ul>
+<li><a href="http://ph.linkedin.com/pub/jasper-blues/8/163/778">Jasper Blues</a> - <a href="#" onclick="location.href='mai'+'lto:'+'jas'+'pe'+'r@a'+'pp'+'squ'+'ic'+'k.l'+'y?'+'Sub'+'je'+'ct='+'xc'+'ode'+'-e'+'dit'+'or'; return false;">jasper@appsquick.ly</a></li>
+</ul>
+<h3><a class="anchor" id="autotoc_md20"></a>
+With contributions from:</h3>
+<ul>
+<li><a href="https://github.com/cncool">Connor Duggan</a> - lots of bug fixes, maintenance and enhancements.</li>
+<li><a href="https://github.com/smirn0v">Alexander Smirnov</a> - Cleaned up, generalized and contributed back the changes from the Calabash fork.</li>
+<li>Zach Drayer - lots of fixes and features to support TextMate.</li>
+<li>Janine Ohmer - support adding and removing sub-projects (<a href="http://www.synapticats.com">http://www.synapticats.com</a>).</li>
+<li>Bogdan Vladu - support adding and removing groups (www.levelhelper.org).</li>
+<li>Chris Ross of Hidden Memory (<a href="http://www.hiddenmemory.co.uk/">http://www.hiddenmemory.co.uk/</a>)</li>
+<li>Paul Taykalo</li>
+<li>Vladislav Alekseev</li>
+<li>Felix Schneider - bug fixes.</li>
+<li>Isak Sky - mutable XCSourceFiles.</li>
+<li><a href="https://github.com/hartman">Derk-Jan Hartman</a> : Adding folder references, by-file compiler flags.</li>
+<li><a href="https://github.com/StoneSpb">StoneSpb</a> : Speed improvements</li>
+<li><a href="https://github.com/cezheng">Ce Zheng</a> : Fixes relating to Xcode 7, xcconfig support and others.</li>
+</ul>
+<p >Thanks!</p>
+<h1><a class="anchor" id="autotoc_md21"></a>
+LICENSE</h1>
+<p >Apache License, Version 2.0, January 2004, <a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a></p>
+<ul>
+<li>© 2011 - 2012 Jasper Blues and contributors. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- PageDoc -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/menu.js b/doc/html/menu.js
new file mode 100644
index 0000000..54e81cf
--- /dev/null
+++ b/doc/html/menu.js
@@ -0,0 +1,127 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+  var searchBox;
+  if (searchEnabled) {
+    if (serverSide) {
+      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<div class="left">'+
+                  '<form id="FSearchBox" action="'+relPath+searchPage+
+                    '" method="get"><img id="MSearchSelect" src="'+
+                    relPath+'search/mag.svg" alt=""/>'+
+                  '<input type="text" id="MSearchField" name="query" value="'+search+
+                    '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+                    ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+                  '</form>'+
+                 '</div>'+
+                 '<div class="right"></div>'+
+                '</div>';
+    } else {
+      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<span class="left">'+
+                  '<img id="MSearchSelect" src="'+relPath+
+                     'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+                     ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+                  '<input type="text" id="MSearchField" value="'+search+
+                    '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+                    'onblur="searchBox.OnSearchFieldFocus(false)" '+
+                    'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+                 '</span>'+
+                 '<span class="right"><a id="MSearchClose" '+
+                  'href="javascript:searchBox.CloseResultsWindow()">'+
+                  '<img id="MSearchCloseImg" border="0" src="'+relPath+
+                  'search/close.svg" alt=""/></a>'
+                 '</span>'
+                '</div>';
+    }
+  }
+
+  $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+                        '<label class="main-menu-btn" for="main-menu-state">'+
+                        '<span class="main-menu-btn-icon"></span> '+
+                        'Toggle main menu visibility</label>'+
+                        '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+                        '</div>');
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchBox) {
+    $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+  }
+  var $mainMenuState = $('#main-menu-state');
+  var prevWidth = 0;
+  if ($mainMenuState.length) {
+    function initResizableIfExists() {
+      if (typeof initResizable==='function') initResizable();
+    }
+    // animate mobile menu
+    $mainMenuState.change(function(e) {
+      var $menu = $('#main-menu');
+      var options = { duration: 250, step: initResizableIfExists };
+      if (this.checked) {
+        options['complete'] = function() { $menu.css('display', 'block') };
+        $menu.hide().slideDown(options);
+      } else {
+        options['complete'] = function() { $menu.css('display', 'none') };
+        $menu.show().slideUp(options);
+      }
+    });
+    // set default menu visibility
+    function resetState() {
+      var $menu = $('#main-menu');
+      var $mainMenuState = $('#main-menu-state');
+      var newWidth = $(window).outerWidth();
+      if (newWidth!=prevWidth) {
+        if ($(window).outerWidth()<768) {
+          $mainMenuState.prop('checked',false); $menu.hide();
+          $('#searchBoxPos1').html(searchBox);
+          $('#searchBoxPos2').hide();
+        } else {
+          $menu.show();
+          $('#searchBoxPos1').empty();
+          $('#searchBoxPos2').html(searchBox);
+          $('#searchBoxPos2').show();
+        }
+        prevWidth = newWidth;
+      }
+    }
+    $(window).ready(function() { resetState(); initResizableIfExists(); });
+    $(window).resize(resetState);
+  }
+  $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/doc/html/menudata.js b/doc/html/menudata.js
new file mode 100644
index 0000000..d506e81
--- /dev/null
+++ b/doc/html/menudata.js
@@ -0,0 +1,68 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Classes",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"c",url:"functions.html#index_c"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"h",url:"functions.html#index_h"},
+{text:"i",url:"functions.html#index_i"},
+{text:"k",url:"functions.html#index_k"},
+{text:"m",url:"functions.html#index_m"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"v",url:"functions.html#index_v"},
+{text:"x",url:"functions.html#index_x"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"a",url:"functions_func.html#index_a"},
+{text:"b",url:"functions_func.html#index_b"},
+{text:"c",url:"functions_func.html#index_c"},
+{text:"f",url:"functions_func.html#index_f"},
+{text:"g",url:"functions_func.html#index_g"},
+{text:"h",url:"functions_func.html#index_h"},
+{text:"i",url:"functions_func.html#index_i"},
+{text:"m",url:"functions_func.html#index_m"},
+{text:"o",url:"functions_func.html#index_o"},
+{text:"p",url:"functions_func.html#index_p"},
+{text:"r",url:"functions_func.html#index_r"},
+{text:"s",url:"functions_func.html#index_s"},
+{text:"t",url:"functions_func.html#index_t"},
+{text:"v",url:"functions_func.html#index_v"},
+{text:"x",url:"functions_func.html#index_x"}]},
+{text:"Properties",url:"functions_prop.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"}]}]}
diff --git a/doc/html/nav_f.png b/doc/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
Binary files /dev/null and b/doc/html/nav_f.png differ
diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png
new file mode 100644
index 0000000..2093a23
Binary files /dev/null and b/doc/html/nav_g.png differ
diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png
new file mode 100644
index 0000000..33389b1
Binary files /dev/null and b/doc/html/nav_h.png differ
diff --git a/doc/html/open.png b/doc/html/open.png
new file mode 100644
index 0000000..30f75c7
Binary files /dev/null and b/doc/html/open.png differ
diff --git a/doc/html/pages.html b/doc/html/pages.html
new file mode 100644
index 0000000..1bef774
--- /dev/null
+++ b/doc/html/pages.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">Related Pages</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__r_e_a_d_m_e.html" target="_self">Description</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/protocol_x_c_build_file-p-members.html b/doc/html/protocol_x_c_build_file-p-members.html
new file mode 100644
index 0000000..2c9bb96
--- /dev/null
+++ b/doc/html/protocol_x_c_build_file-p-members.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">&lt;XCBuildFile&gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>becomeBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>buildFileKey</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>buildPhase</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>isBuildFile</b> (defined in <a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a>)</td><td class="entry"><a class="el" href="protocol_x_c_build_file-p.html">&lt;XCBuildFile&gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/protocol_x_c_build_file-p.html b/doc/html/protocol_x_c_build_file-p.html
new file mode 100644
index 0000000..b5160f5
--- /dev/null
+++ b/doc/html/protocol_x_c_build_file-p.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: &lt;XCBuildFile&gt; Protocol Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="protocol_x_c_build_file-p-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">&lt;XCBuildFile&gt; Protocol Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for &lt;XCBuildFile&gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="protocol_x_c_build_file-p.png" usemap="#_3CXCBuildFile_3E_map" alt=""/>
+  <map id="_3CXCBuildFile_3E_map" name="_3CXCBuildFile_3E_map">
+<area href="interface_x_c_group.html" alt="XCGroup" shape="rect" coords="0,112,109,136"/>
+<area href="interface_x_c_source_file.html" alt="XCSourceFile" shape="rect" coords="119,112,228,136"/>
+<area href="interface_x_c_version_group.html" alt="XCVersionGroup" shape="rect" coords="238,112,347,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:ab4cbac9982b3dc37e3444779c88eecbe"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ab4cbac9982b3dc37e3444779c88eecbe">becomeBuildFile</a></td></tr>
+<tr class="separator:ab4cbac9982b3dc37e3444779c88eecbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe34a94cd11ba7fcd1b3c27cb837548b"><td class="memItemLeft" align="right" valign="top"><a id="afe34a94cd11ba7fcd1b3c27cb837548b" name="afe34a94cd11ba7fcd1b3c27cb837548b"></a>
+(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildPhase</b></td></tr>
+<tr class="separator:afe34a94cd11ba7fcd1b3c27cb837548b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d481e73a986d781537c68e3be24bdf4"><td class="memItemLeft" align="right" valign="top"><a id="a8d481e73a986d781537c68e3be24bdf4" name="a8d481e73a986d781537c68e3be24bdf4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>buildFileKey</b></td></tr>
+<tr class="separator:a8d481e73a986d781537c68e3be24bdf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5882d46671f3891d484f6f5d293b4b4"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_x_c_build_file-p.html#ae5882d46671f3891d484f6f5d293b4b4">isBuildFile</a></td></tr>
+<tr class="separator:ae5882d46671f3891d484f6f5d293b4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Method Documentation</h2>
+<a id="ab4cbac9982b3dc37e3444779c88eecbe" name="ab4cbac9982b3dc37e3444779c88eecbe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab4cbac9982b3dc37e3444779c88eecbe">&#9670;&nbsp;</a></span>becomeBuildFile</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (void) becomeBuildFile </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reimplemented in <a class="el" href="interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37">XCSourceFile</a>.</p>
+
+</div>
+</div>
+<a id="ae5882d46671f3891d484f6f5d293b4b4" name="ae5882d46671f3891d484f6f5d293b4b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5882d46671f3891d484f6f5d293b4b4">&#9670;&nbsp;</a></span>isBuildFile</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (BOOL) isBuildFile </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reimplemented in <a class="el" href="interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10">XCSourceFile</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this protocol was generated from the following file:<ul>
+<li><a class="el" href="_x_c_build_file_8h_source.html">XCBuildFile.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/protocol_x_c_build_file-p.png b/doc/html/protocol_x_c_build_file-p.png
new file mode 100644
index 0000000..8386d9e
Binary files /dev/null and b/doc/html/protocol_x_c_build_file-p.png differ
diff --git a/doc/html/protocol_xcode_group_member-p-members.html b/doc/html/protocol_xcode_group_member-p-members.html
new file mode 100644
index 0000000..1959a92
--- /dev/null
+++ b/doc/html/protocol_xcode_group_member-p-members.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">&lt;XcodeGroupMember&gt; Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>displayName</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr class="odd"><td class="entry">-&#160;</td><td><a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry">-&#160;</td><td class="entry"><b>key</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="odd"><td class="entry">-&#160;</td><td class="entry"><b>pathRelativeToProjectRoot</b> (defined in <a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a>)</td><td class="entry"><a class="el" href="protocol_xcode_group_member-p.html">&lt;XcodeGroupMember&gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/protocol_xcode_group_member-p.html b/doc/html/protocol_xcode_group_member-p.html
new file mode 100644
index 0000000..d8f0632
--- /dev/null
+++ b/doc/html/protocol_xcode_group_member-p.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: &lt;XcodeGroupMember&gt; Protocol Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Instance Methods</a> &#124;
+<a href="protocol_xcode_group_member-p-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">&lt;XcodeGroupMember&gt; Protocol Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for &lt;XcodeGroupMember&gt;:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="protocol_xcode_group_member-p.png" usemap="#_3CXcodeGroupMember_3E_map" alt=""/>
+  <map id="_3CXcodeGroupMember_3E_map" name="_3CXcodeGroupMember_3E_map">
+<area href="interface_x_c_group.html" alt="XCGroup" shape="rect" coords="0,112,144,136"/>
+<area href="interface_x_c_source_file.html" alt="XCSourceFile" shape="rect" coords="154,112,298,136"/>
+<area href="interface_x_c_version_group.html" alt="XCVersionGroup" shape="rect" coords="308,112,452,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
+Instance Methods</h2></td></tr>
+<tr class="memitem:a9c26d7fb8e5b8e9a70514cd82f17a753"><td class="memItemLeft" align="right" valign="top"><a id="a9c26d7fb8e5b8e9a70514cd82f17a753" name="a9c26d7fb8e5b8e9a70514cd82f17a753"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>key</b></td></tr>
+<tr class="separator:a9c26d7fb8e5b8e9a70514cd82f17a753"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa904107027b7f93f9770816ee6e9af4"><td class="memItemLeft" align="right" valign="top"><a id="aaa904107027b7f93f9770816ee6e9af4" name="aaa904107027b7f93f9770816ee6e9af4"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>displayName</b></td></tr>
+<tr class="separator:aaa904107027b7f93f9770816ee6e9af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace875c36516c8431fa545cdbd7539247"><td class="memItemLeft" align="right" valign="top"><a id="ace875c36516c8431fa545cdbd7539247" name="ace875c36516c8431fa545cdbd7539247"></a>
+(NSString *)&#160;</td><td class="memItemRight" valign="bottom">- <b>pathRelativeToProjectRoot</b></td></tr>
+<tr class="separator:ace875c36516c8431fa545cdbd7539247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37e9e9f28d597028f66ae694b3efd1d8"><td class="memItemLeft" align="right" valign="top">(XcodeMemberType)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8">groupMemberType</a></td></tr>
+<tr class="separator:a37e9e9f28d597028f66ae694b3efd1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Method Documentation</h2>
+<a id="a37e9e9f28d597028f66ae694b3efd1d8" name="a37e9e9f28d597028f66ae694b3efd1d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37e9e9f28d597028f66ae694b3efd1d8">&#9670;&nbsp;</a></span>groupMemberType</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">- (XcodeMemberType) groupMemberType </td>
+          <td></td>
+          <td class="paramname"></td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p >Group members can either be other groups (PBXGroup) or source files (PBXFileReference). </p>
+
+</div>
+</div>
+<hr/>The documentation for this protocol was generated from the following file:<ul>
+<li><a class="el" href="_xcode_group_member_8h_source.html">XcodeGroupMember.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/protocol_xcode_group_member-p.png b/doc/html/protocol_xcode_group_member-p.png
new file mode 100644
index 0000000..d34a9e6
Binary files /dev/null and b/doc/html/protocol_xcode_group_member-p.png differ
diff --git a/doc/html/search/all_0.html b/doc/html/search/all_0.html
new file mode 100644
index 0000000..c36c9af
--- /dev/null
+++ b/doc/html/search/all_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_0.js b/doc/html/search/all_0.js
new file mode 100644
index 0000000..ce84b5d
--- /dev/null
+++ b/doc/html/search/all_0.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+  ['addclass_3a_0',['addClass:',['../interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0',1,'XCGroup']]],
+  ['addclass_3atotargets_3a_1',['addClass:toTargets:',['../interface_x_c_group.html#a122394632f69a66216a83cf4465827f5',1,'XCGroup']]],
+  ['adddatamodelsource_3a_2',['addDataModelSource:',['../interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37',1,'XCVersionGroup']]],
+  ['addfolderreference_3a_3',['addFolderReference:',['../interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575',1,'XCGroup']]],
+  ['addframework_3a_4',['addFramework:',['../interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11',1,'XCGroup']]],
+  ['addframework_3atotargets_3a_5',['addFramework:toTargets:',['../interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3',1,'XCGroup']]],
+  ['addgroupwithalias_3a_6',['addGroupWithAlias:',['../interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88',1,'XCGroup']]],
+  ['addgroupwithalias_3agrouptype_3a_7',['addGroupWithAlias:groupType:',['../interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4',1,'XCGroup']]],
+  ['addgroupwithpath_3a_8',['addGroupWithPath:',['../interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55',1,'XCGroup']]],
+  ['addsourcefile_3a_9',['addSourceFile:',['../interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686',1,'XCGroup']]],
+  ['addsubproject_3a_10',['addSubProject:',['../interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5',1,'XCGroup']]],
+  ['addsubproject_3atotargets_3a_11',['addSubProject:toTargets:',['../interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674',1,'XCGroup']]],
+  ['addversiongroupwithpath_3a_12',['addVersionGroupWithPath:',['../interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec',1,'XCGroup']]],
+  ['addxib_3a_13',['addXib:',['../interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267',1,'XCGroup']]],
+  ['addxib_3atotargets_3a_14',['addXib:toTargets:',['../interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb',1,'XCGroup']]],
+  ['alias_15',['alias',['../interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac',1,'XCGroup::alias()'],['../interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885',1,'XCVersionGroup::alias()']]],
+  ['applicationtargets_16',['applicationTargets',['../interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_1.html b/doc/html/search/all_1.html
new file mode 100644
index 0000000..91cfe8a
--- /dev/null
+++ b/doc/html/search/all_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js
new file mode 100644
index 0000000..f0ea1ee
--- /dev/null
+++ b/doc/html/search/all_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['becomebuildfile_0',['becomeBuildFile',['../interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37',1,'XCSourceFile']]],
+  ['buildfilekeys_1',['buildFileKeys',['../interface_x_c_group.html#a856ec674626d75d10c61383860ef211a',1,'XCGroup']]]
+];
diff --git a/doc/html/search/all_10.html b/doc/html/search/all_10.html
new file mode 100644
index 0000000..765f584
--- /dev/null
+++ b/doc/html/search/all_10.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_10.js b/doc/html/search/all_10.js
new file mode 100644
index 0000000..91953d9
--- /dev/null
+++ b/doc/html/search/all_10.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['versiongroups_0',['versionGroups',['../interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7',1,'XCProject']]],
+  ['versiongroupwithkey_3a_1',['versionGroupWithKey:',['../interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee',1,'XCProject']]],
+  ['versiongroupwithname_3a_2',['versionGroupWithName:',['../interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc',1,'XCProject']]],
+  ['versions_3',['versions',['../interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c',1,'XCVersionGroup']]]
+];
diff --git a/doc/html/search/all_11.html b/doc/html/search/all_11.html
new file mode 100644
index 0000000..e2183ee
--- /dev/null
+++ b/doc/html/search/all_11.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_11.js b/doc/html/search/all_11.js
new file mode 100644
index 0000000..9d339c7
--- /dev/null
+++ b/doc/html/search/all_11.js
@@ -0,0 +1,35 @@
+var searchData=
+[
+  ['xcabstractdefinition_0',['XCAbstractDefinition',['../interface_x_c_abstract_definition.html',1,'']]],
+  ['xcbuildfile_2dp_1',['XCBuildFile-p',['../protocol_x_c_build_file-p.html',1,'']]],
+  ['xcbuildshellscript_2',['XCBuildShellScript',['../interface_x_c_build_shell_script.html',1,'']]],
+  ['xcbuildshellscriptdefinition_3',['XCBuildShellScriptDefinition',['../interface_x_c_build_shell_script_definition.html',1,'']]],
+  ['xcbuildshellscriptdefinitiontests_4',['XCBuildShellScriptDefinitionTests',['../interface_x_c_build_shell_script_definition_tests.html',1,'']]],
+  ['xcbuildshellscripttests_5',['XCBuildShellScriptTests',['../interface_x_c_build_shell_script_tests.html',1,'']]],
+  ['xcclassdefinition_6',['XCClassDefinition',['../interface_x_c_class_definition.html',1,'']]],
+  ['xcclassdefinitiontests_7',['XCClassDefinitionTests',['../interface_x_c_class_definition_tests.html',1,'']]],
+  ['xcfileoperationqueue_8',['XCFileOperationQueue',['../interface_x_c_file_operation_queue.html',1,'']]],
+  ['xcfileoperationqueue_28_29_9',['XCFileOperationQueue()',['../category_x_c_file_operation_queue_07_08.html',1,'']]],
+  ['xcframeworkdefinition_10',['XCFrameworkDefinition',['../interface_x_c_framework_definition.html',1,'']]],
+  ['xcframeworkpath_11',['XCFrameworkPath',['../interface_x_c_framework_path.html',1,'']]],
+  ['xcgroup_12',['XCGroup',['../interface_x_c_group.html',1,'']]],
+  ['xcgrouptests_13',['XCGroupTests',['../interface_x_c_group_tests.html',1,'']]],
+  ['xckeybuilder_14',['XCKeyBuilder',['../interface_x_c_key_builder.html',1,'']]],
+  ['xckeybuildertests_15',['XCKeyBuilderTests',['../interface_x_c_key_builder_tests.html',1,'']]],
+  ['xcodefilereferencetypetests_16',['XcodeFileReferenceTypeTests',['../interface_xcode_file_reference_type_tests.html',1,'']]],
+  ['xcodegroupmember_2dp_17',['XcodeGroupMember-p',['../protocol_xcode_group_member-p.html',1,'']]],
+  ['xcproject_18',['XCProject',['../interface_x_c_project.html',1,'']]],
+  ['xcproject_28subproject_29_19',['XCProject(SubProject)',['../category_x_c_project_07_sub_project_08.html',1,'']]],
+  ['xcprojectbuildconfig_20',['XCProjectBuildConfig',['../interface_x_c_project_build_config.html',1,'']]],
+  ['xcprojecttests_21',['XCProjectTests',['../interface_x_c_project_tests.html',1,'']]],
+  ['xcsourcefile_22',['XCSourceFile',['../interface_x_c_source_file.html',1,'']]],
+  ['xcsourcefiledefinition_23',['XCSourceFileDefinition',['../interface_x_c_source_file_definition.html',1,'']]],
+  ['xcsubprojectdefinition_24',['XCSubProjectDefinition',['../interface_x_c_sub_project_definition.html',1,'']]],
+  ['xcsubprojectdefinition_28_29_25',['XCSubProjectDefinition()',['../category_x_c_sub_project_definition_07_08.html',1,'']]],
+  ['xcsubprojectdefinitiontests_26',['XCSubProjectDefinitionTests',['../interface_x_c_sub_project_definition_tests.html',1,'']]],
+  ['xctarget_27',['XCTarget',['../interface_x_c_target.html',1,'']]],
+  ['xctargettests_28',['XCTargetTests',['../interface_x_c_target_tests.html',1,'']]],
+  ['xcversiongroup_29',['XCVersionGroup',['../interface_x_c_version_group.html',1,'']]],
+  ['xcxibdefinition_30',['XCXibDefinition',['../interface_x_c_xib_definition.html',1,'']]],
+  ['xibfiles_31',['xibFiles',['../interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_2.html b/doc/html/search/all_2.html
new file mode 100644
index 0000000..259dde4
--- /dev/null
+++ b/doc/html/search/all_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js
new file mode 100644
index 0000000..78588c0
--- /dev/null
+++ b/doc/html/search/all_2.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['children_0',['children',['../interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db',1,'XCGroup']]],
+  ['classcalledjanine_1',['ClassCalledJanine',['../interface_class_called_janine.html',1,'']]],
+  ['configurations_2',['configurations',['../interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff',1,'XCProject']]],
+  ['configurationwithname_3a_3',['configurationWithName:',['../interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_3.html b/doc/html/search/all_3.html
new file mode 100644
index 0000000..1e60c94
--- /dev/null
+++ b/doc/html/search/all_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js
new file mode 100644
index 0000000..9ce7e10
--- /dev/null
+++ b/doc/html/search/all_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['description_0',['Description',['../md__r_e_a_d_m_e.html',1,'']]]
+];
diff --git a/doc/html/search/all_4.html b/doc/html/search/all_4.html
new file mode 100644
index 0000000..08f1aed
--- /dev/null
+++ b/doc/html/search/all_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js
new file mode 100644
index 0000000..374c748
--- /dev/null
+++ b/doc/html/search/all_4.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['files_0',['files',['../interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0',1,'XCProject']]],
+  ['filewithkey_3a_1',['fileWithKey:',['../interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a',1,'XCProject']]],
+  ['filewithname_3a_2',['fileWithName:',['../interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_5.html b/doc/html/search/all_5.html
new file mode 100644
index 0000000..0d85fcc
--- /dev/null
+++ b/doc/html/search/all_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js
new file mode 100644
index 0000000..7cd1002
--- /dev/null
+++ b/doc/html/search/all_5.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['groupforgroupmemberwithkey_3a_0',['groupForGroupMemberWithKey:',['../interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17',1,'XCProject']]],
+  ['groupmembertype_1',['groupMemberType',['../protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8',1,'XcodeGroupMember-p']]],
+  ['groups_2',['groups',['../interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101',1,'XCProject']]],
+  ['groupwithdisplayname_3a_3',['groupWithDisplayName:',['../interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6',1,'XCProject']]],
+  ['groupwithkey_3a_4',['groupWithKey:',['../interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8',1,'XCProject']]],
+  ['groupwithpathfromroot_3a_5',['groupWithPathFromRoot:',['../interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39',1,'XCProject']]],
+  ['groupwithsourcefile_3a_6',['groupWithSourceFile:',['../interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_6.html b/doc/html/search/all_6.html
new file mode 100644
index 0000000..7e088b8
--- /dev/null
+++ b/doc/html/search/all_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6.js b/doc/html/search/all_6.js
new file mode 100644
index 0000000..399776d
--- /dev/null
+++ b/doc/html/search/all_6.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['hashvaluemd5hash_0',['HashValueMD5Hash',['../struct_hash_value_m_d5_hash.html',1,'']]],
+  ['headerfiles_1',['headerFiles',['../interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_7.html b/doc/html/search/all_7.html
new file mode 100644
index 0000000..d2b1825
--- /dev/null
+++ b/doc/html/search/all_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js
new file mode 100644
index 0000000..dab5c18
--- /dev/null
+++ b/doc/html/search/all_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['initwithfilepath_3a_0',['initWithFilePath:',['../interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c',1,'XCProject']]],
+  ['initwithname_3a_1',['initWithName:',['../interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4',1,'XCClassDefinition']]],
+  ['initwithname_3alanguage_3a_2',['initWithName:language:',['../interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8',1,'XCClassDefinition']]],
+  ['isbuildfile_3',['isBuildFile',['../interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10',1,'XCSourceFile']]]
+];
diff --git a/doc/html/search/all_8.html b/doc/html/search/all_8.html
new file mode 100644
index 0000000..f4e3a2a
--- /dev/null
+++ b/doc/html/search/all_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_8.js b/doc/html/search/all_8.js
new file mode 100644
index 0000000..17e4579
--- /dev/null
+++ b/doc/html/search/all_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_0',['key',['../interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb',1,'XCGroup::key()'],['../interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c',1,'XCVersionGroup::key()']]]
+];
diff --git a/doc/html/search/all_9.html b/doc/html/search/all_9.html
new file mode 100644
index 0000000..89177a8
--- /dev/null
+++ b/doc/html/search/all_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_9.js b/doc/html/search/all_9.js
new file mode 100644
index 0000000..6c10199
--- /dev/null
+++ b/doc/html/search/all_9.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['maingroup_0',['mainGroup',['../interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e',1,'XCProject']]],
+  ['members_1',['members',['../interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b',1,'XCGroup']]],
+  ['memberwithdisplayname_3a_2',['memberWithDisplayName:',['../interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70',1,'XCGroup::memberWithDisplayName:()'],['../interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6',1,'XCVersionGroup::memberWithDisplayName:()']]],
+  ['memberwithkey_3a_3',['memberWithKey:',['../interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849',1,'XCGroup::memberWithKey:()'],['../interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd',1,'XCVersionGroup::memberWithKey:()']]]
+];
diff --git a/doc/html/search/all_a.html b/doc/html/search/all_a.html
new file mode 100644
index 0000000..1f90b7a
--- /dev/null
+++ b/doc/html/search/all_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_a.js b/doc/html/search/all_a.js
new file mode 100644
index 0000000..9afad34
--- /dev/null
+++ b/doc/html/search/all_a.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['nsstring_28removeemoji_29_0',['NSString(RemoveEmoji)',['../category_n_s_string_07_remove_emoji_08.html',1,'']]],
+  ['nsstring_28xcodemembertypeextensions_29_1',['NSString(XcodeMemberTypeExtensions)',['../category_n_s_string_07_xcode_member_type_extensions_08.html',1,'']]],
+  ['nsstring_28xcodesourcetreetypeextensions_29_2',['NSString(XcodeSourceTreeTypeExtensions)',['../category_n_s_string_07_xcode_source_tree_type_extensions_08.html',1,'']]]
+];
diff --git a/doc/html/search/all_b.html b/doc/html/search/all_b.html
new file mode 100644
index 0000000..b7ad6e6
--- /dev/null
+++ b/doc/html/search/all_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_b.js b/doc/html/search/all_b.js
new file mode 100644
index 0000000..ad0daee
--- /dev/null
+++ b/doc/html/search/all_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['objectivecfiles_0',['objectiveCFiles',['../interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e',1,'XCProject']]],
+  ['objectivecplusplusfiles_1',['objectiveCPlusPlusFiles',['../interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487',1,'XCProject']]],
+  ['objects_2',['objects',['../interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_c.html b/doc/html/search/all_c.html
new file mode 100644
index 0000000..829c917
--- /dev/null
+++ b/doc/html/search/all_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_c.js b/doc/html/search/all_c.js
new file mode 100644
index 0000000..3b3f98e
--- /dev/null
+++ b/doc/html/search/all_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['pathrelativetoparent_0',['pathRelativeToParent',['../interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a',1,'XCGroup::pathRelativeToParent()'],['../interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b',1,'XCVersionGroup::pathRelativeToParent()']]],
+  ['pruneemptygroups_1',['pruneEmptyGroups',['../interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_d.html b/doc/html/search/all_d.html
new file mode 100644
index 0000000..d32b28e
--- /dev/null
+++ b/doc/html/search/all_d.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_d.js b/doc/html/search/all_d.js
new file mode 100644
index 0000000..a8aa152
--- /dev/null
+++ b/doc/html/search/all_d.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['recursivemembers_0',['recursiveMembers',['../interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495',1,'XCGroup']]],
+  ['removebuildfile_1',['removeBuildFile',['../interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356',1,'XCSourceFile']]],
+  ['removeclass_3afromtargets_3a_2',['removeClass:fromTargets:',['../interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25',1,'XCGroup']]],
+  ['removeframework_3afromtargets_3a_3',['removeFramework:fromTargets:',['../interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c',1,'XCGroup']]],
+  ['removeheader_3a_4',['removeHeader:',['../interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1',1,'XCGroup']]],
+  ['removememberwithkey_3a_5',['removeMemberWithKey:',['../interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a',1,'XCGroup']]],
+  ['rootgroup_6',['rootGroup',['../interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c',1,'XCProject']]],
+  ['rootgroups_7',['rootGroups',['../interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1',1,'XCProject']]]
+];
diff --git a/doc/html/search/all_e.html b/doc/html/search/all_e.html
new file mode 100644
index 0000000..ce450a2
--- /dev/null
+++ b/doc/html/search/all_e.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_e.js b/doc/html/search/all_e.js
new file mode 100644
index 0000000..bf23af2
--- /dev/null
+++ b/doc/html/search/all_e.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['save_0',['save',['../interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52',1,'XCProject']]],
+  ['setcompilerflags_3a_1',['setCompilerFlags:',['../interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3',1,'XCSourceFile']]],
+  ['setweakreference_2',['setWeakReference',['../interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87',1,'XCSourceFile']]]
+];
diff --git a/doc/html/search/all_f.html b/doc/html/search/all_f.html
new file mode 100644
index 0000000..59cfe49
--- /dev/null
+++ b/doc/html/search/all_f.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_f.js b/doc/html/search/all_f.js
new file mode 100644
index 0000000..127596d
--- /dev/null
+++ b/doc/html/search/all_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['targets_0',['targets',['../interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a',1,'XCProject']]],
+  ['targetwithname_3a_1',['targetWithName:',['../interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7',1,'XCProject']]]
+];
diff --git a/doc/html/search/classes_0.html b/doc/html/search/classes_0.html
new file mode 100644
index 0000000..8361bcd
--- /dev/null
+++ b/doc/html/search/classes_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_0.js b/doc/html/search/classes_0.js
new file mode 100644
index 0000000..b36ba10
--- /dev/null
+++ b/doc/html/search/classes_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['classcalledjanine_0',['ClassCalledJanine',['../interface_class_called_janine.html',1,'']]]
+];
diff --git a/doc/html/search/classes_1.html b/doc/html/search/classes_1.html
new file mode 100644
index 0000000..3c668de
--- /dev/null
+++ b/doc/html/search/classes_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_1.js b/doc/html/search/classes_1.js
new file mode 100644
index 0000000..da27301
--- /dev/null
+++ b/doc/html/search/classes_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hashvaluemd5hash_0',['HashValueMD5Hash',['../struct_hash_value_m_d5_hash.html',1,'']]]
+];
diff --git a/doc/html/search/classes_2.html b/doc/html/search/classes_2.html
new file mode 100644
index 0000000..868c172
--- /dev/null
+++ b/doc/html/search/classes_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_2.js b/doc/html/search/classes_2.js
new file mode 100644
index 0000000..9afad34
--- /dev/null
+++ b/doc/html/search/classes_2.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['nsstring_28removeemoji_29_0',['NSString(RemoveEmoji)',['../category_n_s_string_07_remove_emoji_08.html',1,'']]],
+  ['nsstring_28xcodemembertypeextensions_29_1',['NSString(XcodeMemberTypeExtensions)',['../category_n_s_string_07_xcode_member_type_extensions_08.html',1,'']]],
+  ['nsstring_28xcodesourcetreetypeextensions_29_2',['NSString(XcodeSourceTreeTypeExtensions)',['../category_n_s_string_07_xcode_source_tree_type_extensions_08.html',1,'']]]
+];
diff --git a/doc/html/search/classes_3.html b/doc/html/search/classes_3.html
new file mode 100644
index 0000000..995d5d2
--- /dev/null
+++ b/doc/html/search/classes_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_3.js b/doc/html/search/classes_3.js
new file mode 100644
index 0000000..93fca0b
--- /dev/null
+++ b/doc/html/search/classes_3.js
@@ -0,0 +1,34 @@
+var searchData=
+[
+  ['xcabstractdefinition_0',['XCAbstractDefinition',['../interface_x_c_abstract_definition.html',1,'']]],
+  ['xcbuildfile_2dp_1',['XCBuildFile-p',['../protocol_x_c_build_file-p.html',1,'']]],
+  ['xcbuildshellscript_2',['XCBuildShellScript',['../interface_x_c_build_shell_script.html',1,'']]],
+  ['xcbuildshellscriptdefinition_3',['XCBuildShellScriptDefinition',['../interface_x_c_build_shell_script_definition.html',1,'']]],
+  ['xcbuildshellscriptdefinitiontests_4',['XCBuildShellScriptDefinitionTests',['../interface_x_c_build_shell_script_definition_tests.html',1,'']]],
+  ['xcbuildshellscripttests_5',['XCBuildShellScriptTests',['../interface_x_c_build_shell_script_tests.html',1,'']]],
+  ['xcclassdefinition_6',['XCClassDefinition',['../interface_x_c_class_definition.html',1,'']]],
+  ['xcclassdefinitiontests_7',['XCClassDefinitionTests',['../interface_x_c_class_definition_tests.html',1,'']]],
+  ['xcfileoperationqueue_8',['XCFileOperationQueue',['../interface_x_c_file_operation_queue.html',1,'']]],
+  ['xcfileoperationqueue_28_29_9',['XCFileOperationQueue()',['../category_x_c_file_operation_queue_07_08.html',1,'']]],
+  ['xcframeworkdefinition_10',['XCFrameworkDefinition',['../interface_x_c_framework_definition.html',1,'']]],
+  ['xcframeworkpath_11',['XCFrameworkPath',['../interface_x_c_framework_path.html',1,'']]],
+  ['xcgroup_12',['XCGroup',['../interface_x_c_group.html',1,'']]],
+  ['xcgrouptests_13',['XCGroupTests',['../interface_x_c_group_tests.html',1,'']]],
+  ['xckeybuilder_14',['XCKeyBuilder',['../interface_x_c_key_builder.html',1,'']]],
+  ['xckeybuildertests_15',['XCKeyBuilderTests',['../interface_x_c_key_builder_tests.html',1,'']]],
+  ['xcodefilereferencetypetests_16',['XcodeFileReferenceTypeTests',['../interface_xcode_file_reference_type_tests.html',1,'']]],
+  ['xcodegroupmember_2dp_17',['XcodeGroupMember-p',['../protocol_xcode_group_member-p.html',1,'']]],
+  ['xcproject_18',['XCProject',['../interface_x_c_project.html',1,'']]],
+  ['xcproject_28subproject_29_19',['XCProject(SubProject)',['../category_x_c_project_07_sub_project_08.html',1,'']]],
+  ['xcprojectbuildconfig_20',['XCProjectBuildConfig',['../interface_x_c_project_build_config.html',1,'']]],
+  ['xcprojecttests_21',['XCProjectTests',['../interface_x_c_project_tests.html',1,'']]],
+  ['xcsourcefile_22',['XCSourceFile',['../interface_x_c_source_file.html',1,'']]],
+  ['xcsourcefiledefinition_23',['XCSourceFileDefinition',['../interface_x_c_source_file_definition.html',1,'']]],
+  ['xcsubprojectdefinition_24',['XCSubProjectDefinition',['../interface_x_c_sub_project_definition.html',1,'']]],
+  ['xcsubprojectdefinition_28_29_25',['XCSubProjectDefinition()',['../category_x_c_sub_project_definition_07_08.html',1,'']]],
+  ['xcsubprojectdefinitiontests_26',['XCSubProjectDefinitionTests',['../interface_x_c_sub_project_definition_tests.html',1,'']]],
+  ['xctarget_27',['XCTarget',['../interface_x_c_target.html',1,'']]],
+  ['xctargettests_28',['XCTargetTests',['../interface_x_c_target_tests.html',1,'']]],
+  ['xcversiongroup_29',['XCVersionGroup',['../interface_x_c_version_group.html',1,'']]],
+  ['xcxibdefinition_30',['XCXibDefinition',['../interface_x_c_xib_definition.html',1,'']]]
+];
diff --git a/doc/html/search/close.svg b/doc/html/search/close.svg
new file mode 100644
index 0000000..a933eea
--- /dev/null
+++ b/doc/html/search/close.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   viewBox="0 0 11 11"
+   height="11"
+   width="11"
+   id="svg2"
+   version="1.1">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <path
+     id="path12"
+     d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
+     style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
+</svg>
diff --git a/doc/html/search/functions_0.html b/doc/html/search/functions_0.html
new file mode 100644
index 0000000..2d2d950
--- /dev/null
+++ b/doc/html/search/functions_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js
new file mode 100644
index 0000000..02c3e38
--- /dev/null
+++ b/doc/html/search/functions_0.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+  ['addclass_3a_0',['addClass:',['../interface_x_c_group.html#a96411d3bbbc3575f8ec054e248f6ccc0',1,'XCGroup']]],
+  ['addclass_3atotargets_3a_1',['addClass:toTargets:',['../interface_x_c_group.html#a122394632f69a66216a83cf4465827f5',1,'XCGroup']]],
+  ['adddatamodelsource_3a_2',['addDataModelSource:',['../interface_x_c_version_group.html#a95f29cd0630223ec7273c3c98c669b37',1,'XCVersionGroup']]],
+  ['addfolderreference_3a_3',['addFolderReference:',['../interface_x_c_group.html#a014d95b76b0ee5602bfd471a54971575',1,'XCGroup']]],
+  ['addframework_3a_4',['addFramework:',['../interface_x_c_group.html#a05d334241ef5aaebd085ee12346edf11',1,'XCGroup']]],
+  ['addframework_3atotargets_3a_5',['addFramework:toTargets:',['../interface_x_c_group.html#a6793e5b2fa198356d31caa41cb5ca5f3',1,'XCGroup']]],
+  ['addgroupwithalias_3a_6',['addGroupWithAlias:',['../interface_x_c_group.html#a77fc9f047b4f38476a40314c1d1b2e88',1,'XCGroup']]],
+  ['addgroupwithalias_3agrouptype_3a_7',['addGroupWithAlias:groupType:',['../interface_x_c_group.html#a9c7c7ad2a6a0f8d1cfa197b75b3790d4',1,'XCGroup']]],
+  ['addgroupwithpath_3a_8',['addGroupWithPath:',['../interface_x_c_group.html#a9fae9599b5eeb8790891e970c5f1dd55',1,'XCGroup']]],
+  ['addsourcefile_3a_9',['addSourceFile:',['../interface_x_c_group.html#aa24878ffd2dab62c58da17e65c03d686',1,'XCGroup']]],
+  ['addsubproject_3a_10',['addSubProject:',['../interface_x_c_group.html#af59bed33844ce3577749f4bcae7236e5',1,'XCGroup']]],
+  ['addsubproject_3atotargets_3a_11',['addSubProject:toTargets:',['../interface_x_c_group.html#a52dfc0c60614fb215954921c492a8674',1,'XCGroup']]],
+  ['addversiongroupwithpath_3a_12',['addVersionGroupWithPath:',['../interface_x_c_group.html#ace1128bb049a7ffe3a5ac0ff2aafa1ec',1,'XCGroup']]],
+  ['addxib_3a_13',['addXib:',['../interface_x_c_group.html#ae5c97eeb00aa9ba0fbfebe2b19b5c267',1,'XCGroup']]],
+  ['addxib_3atotargets_3a_14',['addXib:toTargets:',['../interface_x_c_group.html#a497ac4da2c0dec3353e9880d824251bb',1,'XCGroup']]],
+  ['applicationtargets_15',['applicationTargets',['../interface_x_c_project.html#a4410361e238bd7b0c713904fec310a2a',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_1.html b/doc/html/search/functions_1.html
new file mode 100644
index 0000000..3b96b90
--- /dev/null
+++ b/doc/html/search/functions_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_1.js b/doc/html/search/functions_1.js
new file mode 100644
index 0000000..f0ea1ee
--- /dev/null
+++ b/doc/html/search/functions_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['becomebuildfile_0',['becomeBuildFile',['../interface_x_c_source_file.html#a69feb820711a44a5d3adf4bc25669e37',1,'XCSourceFile']]],
+  ['buildfilekeys_1',['buildFileKeys',['../interface_x_c_group.html#a856ec674626d75d10c61383860ef211a',1,'XCGroup']]]
+];
diff --git a/doc/html/search/functions_2.html b/doc/html/search/functions_2.html
new file mode 100644
index 0000000..1f16d2a
--- /dev/null
+++ b/doc/html/search/functions_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_2.js b/doc/html/search/functions_2.js
new file mode 100644
index 0000000..bd59eea
--- /dev/null
+++ b/doc/html/search/functions_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['configurations_0',['configurations',['../interface_x_c_project.html#a265cc594ffba012b5bebfc64f301b6ff',1,'XCProject']]],
+  ['configurationwithname_3a_1',['configurationWithName:',['../interface_x_c_project.html#a1b7d7949bad44777252ac4aa9a1d42a1',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_3.html b/doc/html/search/functions_3.html
new file mode 100644
index 0000000..0b37ee2
--- /dev/null
+++ b/doc/html/search/functions_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_3.js b/doc/html/search/functions_3.js
new file mode 100644
index 0000000..374c748
--- /dev/null
+++ b/doc/html/search/functions_3.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['files_0',['files',['../interface_x_c_project.html#a131d039952cd8bbd455fa1a1d4f6f1f0',1,'XCProject']]],
+  ['filewithkey_3a_1',['fileWithKey:',['../interface_x_c_project.html#a8e37d7a871da0916f01ca46be04bd68a',1,'XCProject']]],
+  ['filewithname_3a_2',['fileWithName:',['../interface_x_c_project.html#af0ec1bda5ecf6777521993732e5ce081',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_4.html b/doc/html/search/functions_4.html
new file mode 100644
index 0000000..0eaf2b4
--- /dev/null
+++ b/doc/html/search/functions_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_4.js b/doc/html/search/functions_4.js
new file mode 100644
index 0000000..7cd1002
--- /dev/null
+++ b/doc/html/search/functions_4.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['groupforgroupmemberwithkey_3a_0',['groupForGroupMemberWithKey:',['../interface_x_c_project.html#ab4c661b07ed8ee9ce5a3c0d256b11f17',1,'XCProject']]],
+  ['groupmembertype_1',['groupMemberType',['../protocol_xcode_group_member-p.html#a37e9e9f28d597028f66ae694b3efd1d8',1,'XcodeGroupMember-p']]],
+  ['groups_2',['groups',['../interface_x_c_project.html#a02c11d0e7e8bd59140d4a1cfc3b07101',1,'XCProject']]],
+  ['groupwithdisplayname_3a_3',['groupWithDisplayName:',['../interface_x_c_project.html#a42b4f74d42d8554a2d0e967416aa99a6',1,'XCProject']]],
+  ['groupwithkey_3a_4',['groupWithKey:',['../interface_x_c_project.html#a7a612074deba05dbfdc4bd2c8fbfc5a8',1,'XCProject']]],
+  ['groupwithpathfromroot_3a_5',['groupWithPathFromRoot:',['../interface_x_c_project.html#a5c29526ae6ec53f9a20b887dbaecff39',1,'XCProject']]],
+  ['groupwithsourcefile_3a_6',['groupWithSourceFile:',['../interface_x_c_project.html#a5ca26311344e697b5935435d32c76e9d',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_5.html b/doc/html/search/functions_5.html
new file mode 100644
index 0000000..eaa2769
--- /dev/null
+++ b/doc/html/search/functions_5.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_5.js b/doc/html/search/functions_5.js
new file mode 100644
index 0000000..aae7c03
--- /dev/null
+++ b/doc/html/search/functions_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['headerfiles_0',['headerFiles',['../interface_x_c_project.html#aa036faece156d323fd2b52d32eacddcf',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_6.html b/doc/html/search/functions_6.html
new file mode 100644
index 0000000..25d1cc8
--- /dev/null
+++ b/doc/html/search/functions_6.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_6.js b/doc/html/search/functions_6.js
new file mode 100644
index 0000000..dab5c18
--- /dev/null
+++ b/doc/html/search/functions_6.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['initwithfilepath_3a_0',['initWithFilePath:',['../interface_x_c_project.html#a88eb4b9317a0a1e232f7d1a37eed6b7c',1,'XCProject']]],
+  ['initwithname_3a_1',['initWithName:',['../interface_x_c_class_definition.html#a23690152051fe1b9faae85328a0b01e4',1,'XCClassDefinition']]],
+  ['initwithname_3alanguage_3a_2',['initWithName:language:',['../interface_x_c_class_definition.html#a5ac63d73ba9eb0cc41124a86a13960c8',1,'XCClassDefinition']]],
+  ['isbuildfile_3',['isBuildFile',['../interface_x_c_source_file.html#a94f914a09f7abbbf3048a86ced9f7d10',1,'XCSourceFile']]]
+];
diff --git a/doc/html/search/functions_7.html b/doc/html/search/functions_7.html
new file mode 100644
index 0000000..b6392ea
--- /dev/null
+++ b/doc/html/search/functions_7.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_7.js b/doc/html/search/functions_7.js
new file mode 100644
index 0000000..6c10199
--- /dev/null
+++ b/doc/html/search/functions_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['maingroup_0',['mainGroup',['../interface_x_c_project.html#ae92eccb36eef3337d7623ee1d890481e',1,'XCProject']]],
+  ['members_1',['members',['../interface_x_c_group.html#a5ac6b60f770672010f50003340f9631b',1,'XCGroup']]],
+  ['memberwithdisplayname_3a_2',['memberWithDisplayName:',['../interface_x_c_group.html#af791799b15771786d1c1ed77a4218a70',1,'XCGroup::memberWithDisplayName:()'],['../interface_x_c_version_group.html#a162fb995f778781d25e2c94cd242a1d6',1,'XCVersionGroup::memberWithDisplayName:()']]],
+  ['memberwithkey_3a_3',['memberWithKey:',['../interface_x_c_group.html#a2010863a994ab2c9ba4b080b9fd8b849',1,'XCGroup::memberWithKey:()'],['../interface_x_c_version_group.html#a80b556d4c32df75d842e15ca1e64b2cd',1,'XCVersionGroup::memberWithKey:()']]]
+];
diff --git a/doc/html/search/functions_8.html b/doc/html/search/functions_8.html
new file mode 100644
index 0000000..ecf6a89
--- /dev/null
+++ b/doc/html/search/functions_8.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_8.js b/doc/html/search/functions_8.js
new file mode 100644
index 0000000..ad0daee
--- /dev/null
+++ b/doc/html/search/functions_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['objectivecfiles_0',['objectiveCFiles',['../interface_x_c_project.html#aa2611412e68a6a85e13aeacb47c27c9e',1,'XCProject']]],
+  ['objectivecplusplusfiles_1',['objectiveCPlusPlusFiles',['../interface_x_c_project.html#a00a2007e659b99510355a3f0d259c487',1,'XCProject']]],
+  ['objects_2',['objects',['../interface_x_c_project.html#a0a4c7be71a2f8fd0c5b732bd03ff7fd6',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_9.html b/doc/html/search/functions_9.html
new file mode 100644
index 0000000..cd70e2b
--- /dev/null
+++ b/doc/html/search/functions_9.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_9.js b/doc/html/search/functions_9.js
new file mode 100644
index 0000000..6369d50
--- /dev/null
+++ b/doc/html/search/functions_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pruneemptygroups_0',['pruneEmptyGroups',['../interface_x_c_project.html#a8f240e15a2f922ea6dab7ed67830263e',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_a.html b/doc/html/search/functions_a.html
new file mode 100644
index 0000000..d2a3de9
--- /dev/null
+++ b/doc/html/search/functions_a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_a.js b/doc/html/search/functions_a.js
new file mode 100644
index 0000000..a8aa152
--- /dev/null
+++ b/doc/html/search/functions_a.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['recursivemembers_0',['recursiveMembers',['../interface_x_c_group.html#a138ba369f7336fc0373416529e1d2495',1,'XCGroup']]],
+  ['removebuildfile_1',['removeBuildFile',['../interface_x_c_source_file.html#ab4a6d4d99379dbdb99f8e1214ffed356',1,'XCSourceFile']]],
+  ['removeclass_3afromtargets_3a_2',['removeClass:fromTargets:',['../interface_x_c_group.html#ad5359c55dbe6dec38410f04e11f23a25',1,'XCGroup']]],
+  ['removeframework_3afromtargets_3a_3',['removeFramework:fromTargets:',['../interface_x_c_group.html#aeb47434275327c36d755a4abc0a7086c',1,'XCGroup']]],
+  ['removeheader_3a_4',['removeHeader:',['../interface_x_c_group.html#aff6d0325233590013bf94605cdd33ca1',1,'XCGroup']]],
+  ['removememberwithkey_3a_5',['removeMemberWithKey:',['../interface_x_c_group.html#a194d2b1f72d393aa045aa96bd72ff77a',1,'XCGroup']]],
+  ['rootgroup_6',['rootGroup',['../interface_x_c_project.html#a6fff64e311f1a406c25a64191232a36c',1,'XCProject']]],
+  ['rootgroups_7',['rootGroups',['../interface_x_c_project.html#a02602c3235f28a5a4a3b175bc79031d1',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_b.html b/doc/html/search/functions_b.html
new file mode 100644
index 0000000..e6f34bb
--- /dev/null
+++ b/doc/html/search/functions_b.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_b.js b/doc/html/search/functions_b.js
new file mode 100644
index 0000000..bf23af2
--- /dev/null
+++ b/doc/html/search/functions_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['save_0',['save',['../interface_x_c_project.html#a2802de6cf0bb6e8550d713a188b35d52',1,'XCProject']]],
+  ['setcompilerflags_3a_1',['setCompilerFlags:',['../interface_x_c_source_file.html#a9694571d4b026b428a056162f20a6dd3',1,'XCSourceFile']]],
+  ['setweakreference_2',['setWeakReference',['../interface_x_c_source_file.html#a009a3627573419fb5f9cb67c5afa3f87',1,'XCSourceFile']]]
+];
diff --git a/doc/html/search/functions_c.html b/doc/html/search/functions_c.html
new file mode 100644
index 0000000..87b4ce2
--- /dev/null
+++ b/doc/html/search/functions_c.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_c.js b/doc/html/search/functions_c.js
new file mode 100644
index 0000000..127596d
--- /dev/null
+++ b/doc/html/search/functions_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['targets_0',['targets',['../interface_x_c_project.html#a3ee5cb7c9774166ff175e527d95ae61a',1,'XCProject']]],
+  ['targetwithname_3a_1',['targetWithName:',['../interface_x_c_project.html#abaa9a7968fad5ec90d41f89e63887ed7',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_d.html b/doc/html/search/functions_d.html
new file mode 100644
index 0000000..ada2b81
--- /dev/null
+++ b/doc/html/search/functions_d.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_d.js b/doc/html/search/functions_d.js
new file mode 100644
index 0000000..908566c
--- /dev/null
+++ b/doc/html/search/functions_d.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['versiongroups_0',['versionGroups',['../interface_x_c_project.html#a12a30d4884d3ba06914d711558bb22a7',1,'XCProject']]],
+  ['versiongroupwithkey_3a_1',['versionGroupWithKey:',['../interface_x_c_project.html#ae6bd0577d0e4c93368961b86ad108fee',1,'XCProject']]],
+  ['versiongroupwithname_3a_2',['versionGroupWithName:',['../interface_x_c_project.html#a7b2745077b7872bff0979b8f8f772adc',1,'XCProject']]]
+];
diff --git a/doc/html/search/functions_e.html b/doc/html/search/functions_e.html
new file mode 100644
index 0000000..1297715
--- /dev/null
+++ b/doc/html/search/functions_e.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_e.js b/doc/html/search/functions_e.js
new file mode 100644
index 0000000..22fcb75
--- /dev/null
+++ b/doc/html/search/functions_e.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['xibfiles_0',['xibFiles',['../interface_x_c_project.html#ab4e7d3f18d4026fd136e2710ea38f7ec',1,'XCProject']]]
+];
diff --git a/doc/html/search/mag_sel.svg b/doc/html/search/mag_sel.svg
new file mode 100644
index 0000000..03626f6
--- /dev/null
+++ b/doc/html/search/mag_sel.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg2"
+   width="20"
+   height="19"
+   viewBox="0 0 20 19"
+   sodipodi:docname="mag_sel.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="2096"
+     id="namedview4"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="32"
+     inkscape:cx="5.9792688"
+     inkscape:cy="1.1436277"
+     inkscape:window-x="1920"
+     inkscape:window-y="27"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <circle
+     style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4611"
+     cx="5.5"
+     cy="8.5"
+     r="3.5" />
+  <path
+     style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 11,7 13.5,10 16,7 Z"
+     id="path4609"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+  <path
+     style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 8.1085854,11.109059 2.7823556,2.782356"
+     id="path4630"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html
new file mode 100644
index 0000000..2b9360b
--- /dev/null
+++ b/doc/html/search/nomatches.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_0.html b/doc/html/search/pages_0.html
new file mode 100644
index 0000000..e53c280
--- /dev/null
+++ b/doc/html/search/pages_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js
new file mode 100644
index 0000000..9ce7e10
--- /dev/null
+++ b/doc/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['description_0',['Description',['../md__r_e_a_d_m_e.html',1,'']]]
+];
diff --git a/doc/html/search/properties_0.html b/doc/html/search/properties_0.html
new file mode 100644
index 0000000..bd1f64c
--- /dev/null
+++ b/doc/html/search/properties_0.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="properties_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/properties_0.js b/doc/html/search/properties_0.js
new file mode 100644
index 0000000..bc1ac45
--- /dev/null
+++ b/doc/html/search/properties_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['alias_0',['alias',['../interface_x_c_group.html#a5e85f49148d25f0a01f5149231d41cac',1,'XCGroup::alias()'],['../interface_x_c_version_group.html#afd3e95e73e576b608f6f5e2416898885',1,'XCVersionGroup::alias()']]]
+];
diff --git a/doc/html/search/properties_1.html b/doc/html/search/properties_1.html
new file mode 100644
index 0000000..08147de
--- /dev/null
+++ b/doc/html/search/properties_1.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="properties_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/properties_1.js b/doc/html/search/properties_1.js
new file mode 100644
index 0000000..093d4da
--- /dev/null
+++ b/doc/html/search/properties_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['children_0',['children',['../interface_x_c_group.html#a3456b071207ed8d3b79e66024d53a7db',1,'XCGroup']]]
+];
diff --git a/doc/html/search/properties_2.html b/doc/html/search/properties_2.html
new file mode 100644
index 0000000..b6fa9bd
--- /dev/null
+++ b/doc/html/search/properties_2.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="properties_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/properties_2.js b/doc/html/search/properties_2.js
new file mode 100644
index 0000000..17e4579
--- /dev/null
+++ b/doc/html/search/properties_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_0',['key',['../interface_x_c_group.html#afeb7627acb0907d9c3672653eca8b6eb',1,'XCGroup::key()'],['../interface_x_c_version_group.html#acf4f1652b83fc6cc7fc3165d65c7655c',1,'XCVersionGroup::key()']]]
+];
diff --git a/doc/html/search/properties_3.html b/doc/html/search/properties_3.html
new file mode 100644
index 0000000..9b1ffa0
--- /dev/null
+++ b/doc/html/search/properties_3.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="properties_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/properties_3.js b/doc/html/search/properties_3.js
new file mode 100644
index 0000000..7d96302
--- /dev/null
+++ b/doc/html/search/properties_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pathrelativetoparent_0',['pathRelativeToParent',['../interface_x_c_group.html#a8baa1a967bff74d9fb8ef6dc6e7fb13a',1,'XCGroup::pathRelativeToParent()'],['../interface_x_c_version_group.html#af93e68eb50e9c368f2f94b1e3e81ef5b',1,'XCVersionGroup::pathRelativeToParent()']]]
+];
diff --git a/doc/html/search/properties_4.html b/doc/html/search/properties_4.html
new file mode 100644
index 0000000..7837b50
--- /dev/null
+++ b/doc/html/search/properties_4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="properties_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+createResults();
+/* @license-end */
+</script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+</script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/properties_4.js b/doc/html/search/properties_4.js
new file mode 100644
index 0000000..241744c
--- /dev/null
+++ b/doc/html/search/properties_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['versions_0',['versions',['../interface_x_c_version_group.html#ac094cb0b196c580cbac574781a642d0c',1,'XCVersionGroup']]]
+];
diff --git a/doc/html/search/search.css b/doc/html/search/search.css
new file mode 100644
index 0000000..648a792
--- /dev/null
+++ b/doc/html/search/search.css
@@ -0,0 +1,263 @@
+/*---------------- Search Box */
+
+#MSearchBox {
+    white-space : nowrap;
+    background: white;
+    border-radius: 0.65em;
+    box-shadow: inset 0.5px 0.5px 3px 0px #555;
+    z-index: 102;
+}
+
+#MSearchBox .left {
+    display: inline-block;
+    vertical-align: middle;
+    height: 1.4em;
+}
+
+#MSearchSelect {
+    display: inline-block;
+    vertical-align: middle;
+    height: 19px;
+    padding: 0 0 0 0.3em;
+    margin: 0;
+}
+
+#MSearchField {
+    display: inline-block;
+    vertical-align: middle;
+    width: 7.5em;
+    height: 19px;
+    margin: 0 0.15em;
+    padding: 0;
+    line-height: 1em;
+    border:none;
+    color: #909090;
+    outline: none;
+    font-family: Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
+    border-radius: 0px;
+    background: none;
+}
+
+@media(hover: none) {
+    /* to avoid zooming on iOS */
+    #MSearchField {
+        font-size: 16px;
+    }
+}
+
+#MSearchBox .right {
+    display: inline-block;
+    vertical-align: middle;
+    width: 1.4em;
+    height: 1.4em;
+}
+
+#MSearchClose {
+    display: none;
+    font-size: inherit;
+    background : none;
+    border: none;
+    margin: 0;
+    padding: 0;
+    outline: none;
+
+}
+
+#MSearchCloseImg {
+    height: 1.4em;
+    padding: 0.3em;
+    margin: 0;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+#main-menu > li:last-child {
+    /* This <li> object is the parent of the search bar */
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 36px;
+    margin-right: 1em;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 10001;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    /*width: 60ex;*/
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+    z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+    font-family: Arial, Verdana, sans-serif;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+    font-family: Arial, Verdana, sans-serif;
+}
+
+.SRResult {
+    display: none;
+}
+
+div.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doc/html/search/search.js b/doc/html/search/search.js
new file mode 100644
index 0000000..ac8055d
--- /dev/null
+++ b/doc/html/search/search.js
@@ -0,0 +1,794 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, label, extension)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+  if (!extension || extension == "") { extension = ".html"; }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.searchLabel           = label;
+  this.extension             = extension;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    var left = getXPos(searchField);
+    var top  = getYPos(searchField);
+    top += searchField.offsetHeight;
+
+    // show search selection popup
+    searchSelectWindow.style.display='block';
+    searchSelectWindow.style.left =  left + 'px';
+    searchSelectWindow.style.top  =  top  + 'px';
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else
+      {
+        window.frames.MSearchResults.postMessage("take_focus", "*");
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches' + this.extension;
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline-block';
+       var domPopupSearchResults = this.DOMPopupSearchResults();
+       var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+       var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+       domPopupSearchResultsWindow.style.display = 'block';
+       left -= domPopupSearchResults.offsetWidth;
+       var maxWidth = document.body.clientWidth;
+       var width = 400;
+       if (left<10) left=10;
+       if (width+left+8>maxWidth) width=maxWidth-left-8;
+       domPopupSearchResultsWindow.style.top     = top  + 'px';
+       domPopupSearchResultsWindow.style.left    = left + 'px';
+       domPopupSearchResultsWindow.style.width   = width + 'px';
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/doc/html/search/search_l.png b/doc/html/search/search_l.png
new file mode 100644
index 0000000..fd5f7da
Binary files /dev/null and b/doc/html/search/search_l.png differ
diff --git a/doc/html/search/search_m.png b/doc/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
Binary files /dev/null and b/doc/html/search/search_m.png differ
diff --git a/doc/html/search/search_r.png b/doc/html/search/search_r.png
new file mode 100644
index 0000000..1af5d21
Binary files /dev/null and b/doc/html/search/search_r.png differ
diff --git a/doc/html/search/searchdata.js b/doc/html/search/searchdata.js
new file mode 100644
index 0000000..34e27f5
--- /dev/null
+++ b/doc/html/search/searchdata.js
@@ -0,0 +1,27 @@
+var indexSectionsWithContent =
+{
+  0: "abcdfghikmnoprstvx",
+  1: "chnx",
+  2: "abcfghimoprstvx",
+  3: "ackpv",
+  4: "d"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "functions",
+  3: "properties",
+  4: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Classes",
+  2: "Functions",
+  3: "Properties",
+  4: "Pages"
+};
+
diff --git a/doc/html/splitbar.png b/doc/html/splitbar.png
new file mode 100644
index 0000000..fe895f2
Binary files /dev/null and b/doc/html/splitbar.png differ
diff --git a/doc/html/struct_hash_value_m_d5_hash-members.html b/doc/html/struct_hash_value_m_d5_hash-members.html
new file mode 100644
index 0000000..2b71ddc
--- /dev/null
+++ b/doc/html/struct_hash_value_m_d5_hash-members.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle"><div class="title">HashValueMD5Hash Member List</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a>)</td><td class="entry"><a class="el" href="struct_hash_value_m_d5_hash.html">HashValueMD5Hash</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/struct_hash_value_m_d5_hash.html b/doc/html/struct_hash_value_m_d5_hash.html
new file mode 100644
index 0000000..2ac3206
--- /dev/null
+++ b/doc/html/struct_hash_value_m_d5_hash.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>XcodeEditor-master: HashValueMD5Hash Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectalign">
+   <div id="projectname">XcodeEditor-master<span id="projectnumber">&#160;1.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.3 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="struct_hash_value_m_d5_hash-members.html">List of all members</a>  </div>
+  <div class="headertitle"><div class="title">HashValueMD5Hash Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:adc99db30c947c996c6e20aaed14e5a7b"><td class="memItemLeft" align="right" valign="top"><a id="adc99db30c947c996c6e20aaed14e5a7b" name="adc99db30c947c996c6e20aaed14e5a7b"></a>
+char&#160;</td><td class="memItemRight" valign="bottom"><b>value</b> [MD5_DIGEST_LENGTH]</td></tr>
+<tr class="separator:adc99db30c947c996c6e20aaed14e5a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="_x_c_key_builder_8h_source.html">XCKeyBuilder.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Fri Mar 4 2022 19:48:53 for XcodeEditor-master by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
+</small></address>
+</body>
+</html>
diff --git a/doc/html/sync_off.png b/doc/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
Binary files /dev/null and b/doc/html/sync_off.png differ
diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png
new file mode 100644
index 0000000..e08320f
Binary files /dev/null and b/doc/html/sync_on.png differ
diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
Binary files /dev/null and b/doc/html/tab_a.png differ
diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png
new file mode 100644
index 0000000..e2b4a86
Binary files /dev/null and b/doc/html/tab_b.png differ
diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
Binary files /dev/null and b/doc/html/tab_h.png differ
diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
Binary files /dev/null and b/doc/html/tab_s.png differ
diff --git a/doc/html/tabs.css b/doc/html/tabs.css
new file mode 100644
index 0000000..00d1c60
--- /dev/null
+++ b/doc/html/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doc/latex/Makefile b/doc/latex/Makefile
new file mode 100644
index 0000000..877c9cc
--- /dev/null
+++ b/doc/latex/Makefile
@@ -0,0 +1,23 @@
+LATEX_CMD=pdflatex
+
+all: refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: clean refman.tex
+	$(LATEX_CMD) refman
+	makeindex refman.idx
+	$(LATEX_CMD) refman
+	latex_count=8 ; \
+	while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+	    do \
+	      echo "Rerunning latex...." ;\
+	      $(LATEX_CMD) refman ;\
+	      latex_count=`expr $$latex_count - 1` ;\
+	    done
+	makeindex refman.idx
+	$(LATEX_CMD) refman
+
+
+clean:
+	rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/doc/latex/_class_called_janine_8h_source.tex b/doc/latex/_class_called_janine_8h_source.tex
new file mode 100644
index 0000000..db6fe36
--- /dev/null
+++ b/doc/latex/_class_called_janine_8h_source.tex
@@ -0,0 +1,11 @@
+\hypertarget{_class_called_janine_8h_source}{}\doxysection{Class\+Called\+Janine.\+h}
+\label{_class_called_janine_8h_source}\index{ClassCalledJanine.h@{ClassCalledJanine.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{2 }
+\DoxyCodeLine{3 }
+\DoxyCodeLine{4 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_class_called_janine}{ClassCalledJanine}} : NSObject}
+\DoxyCodeLine{5 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_n_s_string_09_remove_emoji_8h_source.tex b/doc/latex/_n_s_string_09_remove_emoji_8h_source.tex
new file mode 100644
index 0000000..3657a1b
--- /dev/null
+++ b/doc/latex/_n_s_string_09_remove_emoji_8h_source.tex
@@ -0,0 +1,17 @@
+\hypertarget{_n_s_string_09_remove_emoji_8h_source}{}\doxysection{NSString+\+Remove\+Emoji.h}
+\label{_n_s_string_09_remove_emoji_8h_source}\index{NSString+RemoveEmoji.h@{NSString+RemoveEmoji.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{2 }
+\DoxyCodeLine{3 \textcolor{keyword}{@interface }\mbox{\hyperlink{category_n_s_string_07_remove_emoji_08}{NSString (RemoveEmoji)}}}
+\DoxyCodeLine{4 }
+\DoxyCodeLine{5 -\/ (BOOL)isIncludingEmoji;}
+\DoxyCodeLine{6 }
+\DoxyCodeLine{7 -\/ (instancetype)stringByRemovingEmoji;}
+\DoxyCodeLine{8 }
+\DoxyCodeLine{9 -\/ (instancetype)removedEmojiString \_\_attribute\_\_((deprecated));}
+\DoxyCodeLine{10 }
+\DoxyCodeLine{11 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_abstract_definition_8h_source.tex b/doc/latex/_x_c_abstract_definition_8h_source.tex
new file mode 100644
index 0000000..8e6b2bc
--- /dev/null
+++ b/doc/latex/_x_c_abstract_definition_8h_source.tex
@@ -0,0 +1,38 @@
+\hypertarget{_x_c_abstract_definition_8h_source}{}\doxysection{XCAbstract\+Definition.\+h}
+\label{_x_c_abstract_definition_8h_source}\index{XCAbstractDefinition.h@{XCAbstractDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 -\/ 2013 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 \textcolor{keyword}{typedef} \textcolor{keyword}{enum}}
+\DoxyCodeLine{16 \{}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{22         XCFileOperationTypeOverwrite,}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{28         XCFileOperationTypeAcceptExisting,}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{34         XCFileOperationTypeReferenceOnly}
+\DoxyCodeLine{35 \} XCFileOperationType;}
+\DoxyCodeLine{36 }
+\DoxyCodeLine{40 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}} : NSObject}
+\DoxyCodeLine{41 \{}
+\DoxyCodeLine{42     XCFileOperationType \_fileOperationType;}
+\DoxyCodeLine{43 \}}
+\DoxyCodeLine{44 }
+\DoxyCodeLine{45 \textcolor{keyword}{@property}(nonatomic) XCFileOperationType fileOperationType;}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{47 }
+\DoxyCodeLine{48 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_build_file_8h_source.tex b/doc/latex/_x_c_build_file_8h_source.tex
new file mode 100644
index 0000000..9d315d7
--- /dev/null
+++ b/doc/latex/_x_c_build_file_8h_source.tex
@@ -0,0 +1,25 @@
+\hypertarget{_x_c_build_file_8h_source}{}\doxysection{XCBuild\+File.\+h}
+\label{_x_c_build_file_8h_source}\index{XCBuildFile.h@{XCBuildFile.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{comment}{//}}
+\DoxyCodeLine{2 \textcolor{comment}{//  XCBuildFile.h}}
+\DoxyCodeLine{3 \textcolor{comment}{//  XcodeEditor}}
+\DoxyCodeLine{4 \textcolor{comment}{//}}
+\DoxyCodeLine{5 \textcolor{comment}{//  Created by joel on 01/02/16.}}
+\DoxyCodeLine{6 \textcolor{comment}{//  Copyright © 2016 appsquickly. All rights reserved.}}
+\DoxyCodeLine{7 \textcolor{comment}{//}}
+\DoxyCodeLine{8 }
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{10 \textcolor{comment}{//\#import "{}XcodeMemberType.h"{}}}
+\DoxyCodeLine{11 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeMemberType.h>}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{keyword}{@protocol }\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}} <NSObject>}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 -\/ (void)becomeBuildFile;}
+\DoxyCodeLine{16 -\/ (XcodeMemberType)buildPhase;}
+\DoxyCodeLine{17 -\/ (NSString *)buildFileKey;}
+\DoxyCodeLine{18 -\/ (BOOL)isBuildFile;}
+\DoxyCodeLine{19 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_build_shell_script_8h_source.tex b/doc/latex/_x_c_build_shell_script_8h_source.tex
new file mode 100644
index 0000000..97cda10
--- /dev/null
+++ b/doc/latex/_x_c_build_shell_script_8h_source.tex
@@ -0,0 +1,71 @@
+\hypertarget{_x_c_build_shell_script_8h_source}{}\doxysection{XCBuild\+Shell\+Script.\+h}
+\label{_x_c_build_shell_script_8h_source}\index{XCBuildShellScript.h@{XCBuildShellScript.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{comment}{//}}
+\DoxyCodeLine{2 \textcolor{comment}{//  XCBuildShellScript.h}}
+\DoxyCodeLine{3 \textcolor{comment}{//  xcode-\/editor}}
+\DoxyCodeLine{4 \textcolor{comment}{//}}
+\DoxyCodeLine{5 \textcolor{comment}{//  Created by joel on 03/02/16.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//}}
+\DoxyCodeLine{8 }
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeGroupMember.h>}}
+\DoxyCodeLine{11 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuildShellScript}} : NSObject}
+\DoxyCodeLine{16 \{}
+\DoxyCodeLine{17     NSString* \_key;}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keyword}{@private}}
+\DoxyCodeLine{20     \mbox{\hyperlink{interface_x_c_project}{XCProject}}*\_project;}
+\DoxyCodeLine{21     BOOL \_runOnlyForDeploymentPostprocessing;}
+\DoxyCodeLine{22     NSArray*\_files;}
+\DoxyCodeLine{23     NSArray*\_inputPaths;}
+\DoxyCodeLine{24     NSArray*\_outputPaths;}
+\DoxyCodeLine{25     NSString*\_name;}
+\DoxyCodeLine{26     NSString*\_shellPath;}
+\DoxyCodeLine{27     NSString*\_shellScript;}
+\DoxyCodeLine{28 \}}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 \textcolor{keyword}{@property}(nonatomic, strong, readonly,nonnull) NSString* key;}
+\DoxyCodeLine{31 \textcolor{keyword}{@property}(nonatomic, strong, readonly,nonnull) NSString* name;}
+\DoxyCodeLine{32 \textcolor{keyword}{@property}(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;}
+\DoxyCodeLine{33 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSString*shellScript;}
+\DoxyCodeLine{34 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSString*shellPath;}
+\DoxyCodeLine{35 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*files;}
+\DoxyCodeLine{36 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*inputPaths;}
+\DoxyCodeLine{37 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*outputPaths;}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{40 \textcolor{preprocessor}{\#pragma mark -\/ Initialization \& Destruction}}
+\DoxyCodeLine{41 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 + (\mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuildShellScript}}*\_Nonnull)shellScriptWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*\_Nonnull)project}
+\DoxyCodeLine{44                                                   key:(NSString *\_Nonnull)key}
+\DoxyCodeLine{45                                                  name:( NSString* \_Nullable )name}
+\DoxyCodeLine{46                          files: (NSArray<NSString*>* \_Nullable)files}
+\DoxyCodeLine{47                     inputPaths:(NSArray<NSString*>* \_Nullable)inputPaths}
+\DoxyCodeLine{48                    outputPaths:(NSArray<NSString*>* \_Nullable)outputPaths}
+\DoxyCodeLine{49 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing}
+\DoxyCodeLine{50                      shellPath:(NSString*\_Nullable)shellPath}
+\DoxyCodeLine{51                    shellScript:(NSString*\_Nonnull)shellScript;}
+\DoxyCodeLine{52 }
+\DoxyCodeLine{53 -\/ (instancetype \_Nonnull)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*\_Nonnull)project}
+\DoxyCodeLine{54                                     key:(NSString *\_Nonnull)key}
+\DoxyCodeLine{55                                     name:( NSString* \_Nullable )name}
+\DoxyCodeLine{56                        files: (NSArray<NSString*>* \_Nullable)files}
+\DoxyCodeLine{57                   inputPaths:(NSArray<NSString*>* \_Nullable)inputPaths}
+\DoxyCodeLine{58                  outputPaths:(NSArray<NSString*>* \_Nullable)outputPaths}
+\DoxyCodeLine{59 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing}
+\DoxyCodeLine{60                    shellPath:(NSString*\_Nullable)shellPath}
+\DoxyCodeLine{61                  shellScript:(NSString*\_Nonnull)shellScript;}
+\DoxyCodeLine{62 }
+\DoxyCodeLine{63 }
+\DoxyCodeLine{64 }
+\DoxyCodeLine{65 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_build_shell_script_definition_8h_source.tex b/doc/latex/_x_c_build_shell_script_definition_8h_source.tex
new file mode 100644
index 0000000..d7341f2
--- /dev/null
+++ b/doc/latex/_x_c_build_shell_script_definition_8h_source.tex
@@ -0,0 +1,61 @@
+\hypertarget{_x_c_build_shell_script_definition_8h_source}{}\doxysection{XCBuild\+Shell\+Script\+Definition.\+h}
+\label{_x_c_build_shell_script_definition_8h_source}\index{XCBuildShellScriptDefinition.h@{XCBuildShellScriptDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{comment}{//}}
+\DoxyCodeLine{2 \textcolor{comment}{//  XCBuildShellScriptDefinition.h}}
+\DoxyCodeLine{3 \textcolor{comment}{//  xcode-\/editor}}
+\DoxyCodeLine{4 \textcolor{comment}{//}}
+\DoxyCodeLine{5 \textcolor{comment}{//  Created by joel on 03/02/16.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//}}
+\DoxyCodeLine{8 }
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{11 }
+\DoxyCodeLine{12 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuildShellScriptDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{13 \{}
+\DoxyCodeLine{14     NSString* \_key;}
+\DoxyCodeLine{15     }
+\DoxyCodeLine{16 \textcolor{keyword}{@private}}
+\DoxyCodeLine{17     BOOL \_runOnlyForDeploymentPostprocessing;}
+\DoxyCodeLine{18     NSArray*\_files;}
+\DoxyCodeLine{19     NSArray*\_inputPaths;}
+\DoxyCodeLine{20     NSArray*\_outputPaths;}
+\DoxyCodeLine{21     NSString*\_name;}
+\DoxyCodeLine{22     NSString*\_shellPath;}
+\DoxyCodeLine{23     NSString*\_shellScript;}
+\DoxyCodeLine{24 \}}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 \textcolor{keyword}{@property}(nonatomic, strong, readonly,nonnull) NSString* key;}
+\DoxyCodeLine{27 \textcolor{keyword}{@property}(nonatomic, strong, readonly,nonnull) NSString* name;}
+\DoxyCodeLine{28 \textcolor{keyword}{@property}(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;}
+\DoxyCodeLine{29 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSString*shellScript;}
+\DoxyCodeLine{30 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSString*shellPath;}
+\DoxyCodeLine{31 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*files;}
+\DoxyCodeLine{32 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*inputPaths;}
+\DoxyCodeLine{33 \textcolor{keyword}{@property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*outputPaths;}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{36 \textcolor{preprocessor}{\#pragma mark -\/ Initialization \& Destruction}}
+\DoxyCodeLine{37 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39 + (\mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuildShellScriptDefinition}}*\_Nonnull)shellScriptDefinitionWithName:( NSString* \_Nullable )name}
+\DoxyCodeLine{40                                              files: (NSArray<NSString*>* \_Nullable)files}
+\DoxyCodeLine{41                                         inputPaths:(NSArray<NSString*>* \_Nullable)inputPaths}
+\DoxyCodeLine{42                                        outputPaths:(NSArray<NSString*>* \_Nullable)outputPaths}
+\DoxyCodeLine{43                 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing}
+\DoxyCodeLine{44                                          shellPath:(NSString*\_Nullable)shellPath}
+\DoxyCodeLine{45                                        shellScript:(NSString*\_Nonnull)shellScript;}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{47 -\/ (instancetype \_Nonnull)initWithName:( NSString* \_Nullable )name}
+\DoxyCodeLine{48                                 files: (NSArray<NSString*>* \_Nullable)files}
+\DoxyCodeLine{49                            inputPaths:(NSArray<NSString*>* \_Nullable)inputPaths}
+\DoxyCodeLine{50                           outputPaths:(NSArray<NSString*>* \_Nullable)outputPaths}
+\DoxyCodeLine{51    runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing}
+\DoxyCodeLine{52                             shellPath:(NSString*\_Nullable)shellPath}
+\DoxyCodeLine{53                           shellScript:(NSString*\_Nonnull)shellScript;}
+\DoxyCodeLine{54 }
+\DoxyCodeLine{55 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_class_definition_8h_source.tex b/doc/latex/_x_c_class_definition_8h_source.tex
new file mode 100644
index 0000000..cec55b4
--- /dev/null
+++ b/doc/latex/_x_c_class_definition_8h_source.tex
@@ -0,0 +1,61 @@
+\hypertarget{_x_c_class_definition_8h_source}{}\doxysection{XCClass\+Definition.\+h}
+\label{_x_c_class_definition_8h_source}\index{XCClassDefinition.h@{XCClassDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 -\/ 2013 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{keyword}{typedef} \textcolor{keyword}{enum}}
+\DoxyCodeLine{17 \{}
+\DoxyCodeLine{18     ObjectiveC,}
+\DoxyCodeLine{19     ObjectiveCPlusPlus,}
+\DoxyCodeLine{20     CPlusPlus,}
+\DoxyCodeLine{21 \} ClassDefinitionLanguage;}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{24 \{}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26     NSString* \_className;}
+\DoxyCodeLine{27     NSString* \_header;}
+\DoxyCodeLine{28     NSString* \_source;}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 \textcolor{keyword}{@private}}
+\DoxyCodeLine{31     ClassDefinitionLanguage \_language;}
+\DoxyCodeLine{32 \}}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 \textcolor{keyword}{@property}(strong, nonatomic, readonly) NSString* className;}
+\DoxyCodeLine{35 \textcolor{keyword}{@property}(nonatomic, strong) NSString* header;}
+\DoxyCodeLine{36 \textcolor{keyword}{@property}(nonatomic, strong) NSString* source;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 + (\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinitionWithName:(NSString*)fileName;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 + (\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinitionWithName:(NSString*)className language:(ClassDefinitionLanguage)language;}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{45 -\/ (id)initWithName:(NSString*)fileName;}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{50 -\/ (id)initWithName:(NSString*)className language:(ClassDefinitionLanguage)language;}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{52 -\/ (BOOL)isObjectiveC;}
+\DoxyCodeLine{53 }
+\DoxyCodeLine{54 -\/ (BOOL)isObjectiveCPlusPlus;}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{56 -\/ (BOOL)isCPlusPlus;}
+\DoxyCodeLine{57 }
+\DoxyCodeLine{58 -\/ (NSString*)headerFileName;}
+\DoxyCodeLine{59 }
+\DoxyCodeLine{60 -\/ (NSString*)sourceFileName;}
+\DoxyCodeLine{61 }
+\DoxyCodeLine{62 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_file_operation_queue_8h_source.tex b/doc/latex/_x_c_file_operation_queue_8h_source.tex
new file mode 100644
index 0000000..e71f2db
--- /dev/null
+++ b/doc/latex/_x_c_file_operation_queue_8h_source.tex
@@ -0,0 +1,50 @@
+\hypertarget{_x_c_file_operation_queue_8h_source}{}\doxysection{XCFile\+Operation\+Queue.\+h}
+\label{_x_c_file_operation_queue_8h_source}\index{XCFileOperationQueue.h@{XCFileOperationQueue.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}} : NSObject}
+\DoxyCodeLine{17 \{}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keyword}{@private}}
+\DoxyCodeLine{20     NSString* \_baseDirectory;}
+\DoxyCodeLine{21     NSMutableDictionary* \_filesToWrite;}
+\DoxyCodeLine{22     NSMutableDictionary* \_frameworksToCopy;}
+\DoxyCodeLine{23     NSMutableArray* \_filesToDelete;}
+\DoxyCodeLine{24     NSMutableArray* \_directoriesToCreate;}
+\DoxyCodeLine{25 \}}
+\DoxyCodeLine{26 }
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28 -\/ (id)initWithBaseDirectory:(NSString*)baseDirectory;}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 -\/ (BOOL)fileWithName:(NSString*)name existsInProjectDirectory:(NSString*)directory;}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 -\/ (void)queueTextFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSString*)contents;}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 -\/ (void)queueDataFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSData*)contents;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 -\/ (void)queueFrameworkWithFilePath:(NSString*)filePath inDirectory:(NSString*)directory;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 -\/ (void)queueDeletion:(NSString*)filePath;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 -\/ (void)queueDirectory:(NSString*)withName inDirectory:(NSString*)parentDirectory;}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{42 -\/ (void)commitFileOperations;}
+\DoxyCodeLine{43 }
+\DoxyCodeLine{44 \textcolor{keyword}{@end}}
+\DoxyCodeLine{45 }
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_framework_definition_8h_source.tex b/doc/latex/_x_c_framework_definition_8h_source.tex
new file mode 100644
index 0000000..4480e80
--- /dev/null
+++ b/doc/latex/_x_c_framework_definition_8h_source.tex
@@ -0,0 +1,45 @@
+\hypertarget{_x_c_framework_definition_8h_source}{}\doxysection{XCFramework\+Definition.\+h}
+\label{_x_c_framework_definition_8h_source}\index{XCFrameworkDefinition.h@{XCFrameworkDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceTreeType.h>}}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{19 \{}
+\DoxyCodeLine{20     NSString* \_filePath;}
+\DoxyCodeLine{21     BOOL \_copyToDestination;}
+\DoxyCodeLine{22     XcodeSourceTreeType \_sourceTree;}
+\DoxyCodeLine{23 \}}
+\DoxyCodeLine{24 }
+\DoxyCodeLine{25 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* filePath;}
+\DoxyCodeLine{26 \textcolor{keyword}{@property}(nonatomic, readonly) BOOL copyToDestination;}
+\DoxyCodeLine{27 \textcolor{keyword}{@property}(nonatomic, readonly) XcodeSourceTreeType sourceTree;}
+\DoxyCodeLine{28 }
+\DoxyCodeLine{29 + (\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}}*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;}
+\DoxyCodeLine{30 + (\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}}*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination sourceTree:(XcodeSourceTreeType)sourceTree;}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 -\/ (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;}
+\DoxyCodeLine{33 -\/ (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination}
+\DoxyCodeLine{34             sourceTree:(XcodeSourceTreeType)sourceTree;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 -\/ (NSString*)fileName;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_group_8h_source.tex b/doc/latex/_x_c_group_8h_source.tex
new file mode 100644
index 0000000..f493849
--- /dev/null
+++ b/doc/latex/_x_c_group_8h_source.tex
@@ -0,0 +1,144 @@
+\hypertarget{_x_c_group_8h_source}{}\doxysection{XCGroup.\+h}
+\label{_x_c_group_8h_source}\index{XCGroup.h@{XCGroup.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeGroupMember.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#import <XcodeEditor/XCBuildFile.h>}}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{19 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}};}
+\DoxyCodeLine{20 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}};}
+\DoxyCodeLine{21 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}};}
+\DoxyCodeLine{22 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}};}
+\DoxyCodeLine{23 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}};}
+\DoxyCodeLine{24 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}};}
+\DoxyCodeLine{25 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}};}
+\DoxyCodeLine{26 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_target}{XCTarget}};}
+\DoxyCodeLine{27 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}};}
+\DoxyCodeLine{28 }
+\DoxyCodeLine{33 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_group}{XCGroup}} : NSObject <\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}, \mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}}>}
+\DoxyCodeLine{34 \{}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36     NSString* \_pathRelativeToParent;}
+\DoxyCodeLine{37     NSString* \_key;}
+\DoxyCodeLine{38     NSString* \_alias;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 }
+\DoxyCodeLine{41 \textcolor{keyword}{@private}}
+\DoxyCodeLine{42     NSString* \_pathRelativeToProjectRoot;}
+\DoxyCodeLine{43     NSMutableArray* \_children;}
+\DoxyCodeLine{44     NSMutableArray* \_members;}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{46     NSNumber *\_isBuildFile;}
+\DoxyCodeLine{47     NSString *\_buildFileKey;}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{49     \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}}* \_fileOperationQueue;}
+\DoxyCodeLine{50     \mbox{\hyperlink{interface_x_c_project}{XCProject}}* \_project;}
+\DoxyCodeLine{51     XcodeMemberType \_memberType;}
+\DoxyCodeLine{52 }
+\DoxyCodeLine{53 \}}
+\DoxyCodeLine{54 }
+\DoxyCodeLine{55 }
+\DoxyCodeLine{61 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* alias;}
+\DoxyCodeLine{62 }
+\DoxyCodeLine{68 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* pathRelativeToParent;}
+\DoxyCodeLine{69 }
+\DoxyCodeLine{73 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* key;}
+\DoxyCodeLine{74 }
+\DoxyCodeLine{78 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSMutableArray<id<XcodeGroupMember>>* children;}
+\DoxyCodeLine{79 }
+\DoxyCodeLine{80 }
+\DoxyCodeLine{81 \textcolor{preprocessor}{\#pragma mark Initializers}}
+\DoxyCodeLine{82 }
+\DoxyCodeLine{83 + (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<\textcolor{keywordtype}{id}<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>>*)children;}
+\DoxyCodeLine{84 }
+\DoxyCodeLine{85 + (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<\textcolor{keywordtype}{id}<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>>*)children memberType:(XcodeMemberType)groupType;}
+\DoxyCodeLine{86 }
+\DoxyCodeLine{87 -\/ (id)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<\textcolor{keywordtype}{id}<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>>*)children;}
+\DoxyCodeLine{88 }
+\DoxyCodeLine{89 -\/ (id)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<\textcolor{keywordtype}{id}<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>>*)children memberType:(XcodeMemberType)groupType;}
+\DoxyCodeLine{90 }
+\DoxyCodeLine{91 \textcolor{preprocessor}{\#pragma mark Parent group}}
+\DoxyCodeLine{92 }
+\DoxyCodeLine{93 -\/ (void)removeFromParentGroup;}
+\DoxyCodeLine{94 }
+\DoxyCodeLine{95 -\/ (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;}
+\DoxyCodeLine{96 }
+\DoxyCodeLine{97 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)parentGroup;}
+\DoxyCodeLine{98 }
+\DoxyCodeLine{99 -\/ (BOOL)isRootGroup;}
+\DoxyCodeLine{100 }
+\DoxyCodeLine{101 -\/ (BOOL)isEmpty;}
+\DoxyCodeLine{102 }
+\DoxyCodeLine{103 \textcolor{preprocessor}{\#pragma mark Adding children}}
+\DoxyCodeLine{108 -\/ (void)addClass:(\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinition;}
+\DoxyCodeLine{109 }
+\DoxyCodeLine{113 -\/ (void)addClass:(\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinition toTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{114 }
+\DoxyCodeLine{118 -\/ (void)removeClass:(\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinition fromTargets:(NSArray*)targets;}
+\DoxyCodeLine{119 }
+\DoxyCodeLine{123 -\/ (void)removeHeader:(\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}*)classDefinition;}
+\DoxyCodeLine{124 }
+\DoxyCodeLine{129 -\/ (void)addFramework:(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}}*)frameworkDefinition;}
+\DoxyCodeLine{130 }
+\DoxyCodeLine{134 -\/ (void) removeFramework:(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}} *)frameworkDefinition fromTargets:(NSArray *)targets;}
+\DoxyCodeLine{135 }
+\DoxyCodeLine{139 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)addGroupWithPath:(NSString*)path;}
+\DoxyCodeLine{140 }
+\DoxyCodeLine{144 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)addGroupWithAlias:(NSString *)alias;}
+\DoxyCodeLine{145 }
+\DoxyCodeLine{149 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)addGroupWithAlias:(NSString *)alias groupType:(XcodeMemberType)type;}
+\DoxyCodeLine{150 }
+\DoxyCodeLine{154 -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}}*)addVersionGroupWithPath:(NSString*)path;}
+\DoxyCodeLine{155 }
+\DoxyCodeLine{159 -\/ (void)addFolderReference:(NSString*)sourceFolder;}
+\DoxyCodeLine{160 }
+\DoxyCodeLine{161 -\/ (void)addFileReference:(NSString *)filePath withType:(XcodeSourceFileType)type;}
+\DoxyCodeLine{162 }
+\DoxyCodeLine{166 -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)addFramework:(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}}*)framework toTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{167 }
+\DoxyCodeLine{171 -\/ (void)addSourceFile:(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}*)sourceFileDefinition;}
+\DoxyCodeLine{172 }
+\DoxyCodeLine{173 }
+\DoxyCodeLine{177 -\/ (void)addXib:(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}}*)xibDefinition;}
+\DoxyCodeLine{178 }
+\DoxyCodeLine{182 -\/ (void)addXib:(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}}*)xibDefinition toTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{183 }
+\DoxyCodeLine{190 -\/ (void)addSubProject:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}}*)projectDefinition;}
+\DoxyCodeLine{191 }
+\DoxyCodeLine{195 -\/ (void)addSubProject:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}}*)projectDefinition toTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{196 }
+\DoxyCodeLine{197 -\/ (void)removeSubProject:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}}*)projectDefinition;}
+\DoxyCodeLine{198 }
+\DoxyCodeLine{199 -\/ (void)removeSubProject:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}}*)projectDefinition fromTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{200 }
+\DoxyCodeLine{201 }
+\DoxyCodeLine{202 \textcolor{preprocessor}{\#pragma mark Locating children}}
+\DoxyCodeLine{206 -\/ (NSArray<id<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>>*)members;}
+\DoxyCodeLine{207 }
+\DoxyCodeLine{211 -\/ (NSArray<NSString*>*)recursiveMembers;}
+\DoxyCodeLine{212 }
+\DoxyCodeLine{216 -\/ (NSArray<NSString*>*)buildFileKeys;}
+\DoxyCodeLine{217 }
+\DoxyCodeLine{221 -\/ (\textcolor{keywordtype}{id} <\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>)memberWithKey:(NSString*)key;}
+\DoxyCodeLine{222 }
+\DoxyCodeLine{226 -\/ (\textcolor{keywordtype}{id} <\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>)memberWithDisplayName:(NSString*)name;}
+\DoxyCodeLine{227 }
+\DoxyCodeLine{231 -\/ (void)removeMemberWithKey:(NSString*)key;}
+\DoxyCodeLine{232 }
+\DoxyCodeLine{233 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_key_builder_8h_source.tex b/doc/latex/_x_c_key_builder_8h_source.tex
new file mode 100644
index 0000000..5e62519
--- /dev/null
+++ b/doc/latex/_x_c_key_builder_8h_source.tex
@@ -0,0 +1,44 @@
+\hypertarget{_x_c_key_builder_8h_source}{}\doxysection{XCKey\+Builder.\+h}
+\label{_x_c_key_builder_8h_source}\index{XCKeyBuilder.h@{XCKeyBuilder.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 -\/ 2013 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#define HASH\_VALUE\_STORAGE\_SIZE 48}}
+\DoxyCodeLine{17 \textcolor{preprocessor}{\#define MD5\_DIGEST\_LENGTH 16}}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keyword}{typedef} \textcolor{keyword}{struct}}
+\DoxyCodeLine{20 \{}
+\DoxyCodeLine{21     \textcolor{keywordtype}{char} value[MD5\_DIGEST\_LENGTH];}
+\DoxyCodeLine{22 \} \mbox{\hyperlink{struct_hash_value_m_d5_hash}{HashValueMD5Hash}};}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24 }
+\DoxyCodeLine{25 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_key_builder}{XCKeyBuilder}} : NSObject}
+\DoxyCodeLine{26 \{}
+\DoxyCodeLine{27     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \_value[HASH\_VALUE\_STORAGE\_SIZE];}
+\DoxyCodeLine{28 \}}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 + (\mbox{\hyperlink{interface_x_c_key_builder}{XCKeyBuilder}}*)forItemNamed:(NSString*)name;}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 + (\mbox{\hyperlink{interface_x_c_key_builder}{XCKeyBuilder}}*)createUnique;}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 -\/ (id)initHashValueMD5HashWithBytes:(const \textcolor{keywordtype}{void}*)bytes length:(NSUInteger)length;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 -\/ (NSString*)build;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 \textcolor{keyword}{@end}}
+\DoxyCodeLine{39 }
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_project_09_sub_project_8h_source.tex b/doc/latex/_x_c_project_09_sub_project_8h_source.tex
new file mode 100644
index 0000000..cf4bc71
--- /dev/null
+++ b/doc/latex/_x_c_project_09_sub_project_8h_source.tex
@@ -0,0 +1,48 @@
+\hypertarget{_x_c_project_09_sub_project_8h_source}{}\doxysection{XCProject+\+Sub\+Project.h}
+\label{_x_c_project_09_sub_project_8h_source}\index{XCProject+SubProject.h@{XCProject+SubProject.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XCProject.h>}}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 \textcolor{keyword}{@interface }\mbox{\hyperlink{category_x_c_project_07_sub_project_08}{XCProject (SubProject)}}}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 -\/ (NSString *)referenceProxyKeyForName:(NSString *)name;}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*> *)buildProductsForTargets:(NSString *)xcodeprojKey;}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24 -\/ (void)addAsTargetDependency:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}} *)xcodeprojDefinition toTargets:(NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 -\/ (NSArray<NSString*> *)keysForProjectObjectsOfType:(XcodeMemberType)memberType withIdentifier:(NSString *)identifier}
+\DoxyCodeLine{27     singleton:(BOOL)singleton required:(BOOL)required;}
+\DoxyCodeLine{28 }
+\DoxyCodeLine{29 -\/ (NSMutableDictionary *)PBXProjectDict;}
+\DoxyCodeLine{30 }
+\DoxyCodeLine{31 -\/ (void)removeProxies:(NSString *)xcodeprojKey;}
+\DoxyCodeLine{32 }
+\DoxyCodeLine{33 -\/ (void)addProxies:(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}} *)xcodeproj;}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35 -\/ (void)removeFromProjectReferences:(NSString *)key forProductsGroup:(NSString *)productsGroupKey;}
+\DoxyCodeLine{36 }
+\DoxyCodeLine{37 -\/ (void)removeTargetDependencies:(NSString *)name;}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39 -\/ (NSString *)containerItemProxyKeyForName:(NSString *)name proxyType:(NSString *)proxyType;}
+\DoxyCodeLine{40 }
+\DoxyCodeLine{41 -\/ (NSString *)productsGroupKeyForKey:(NSString *)key;}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_project_8h_source.tex b/doc/latex/_x_c_project_8h_source.tex
new file mode 100644
index 0000000..ac631ee
--- /dev/null
+++ b/doc/latex/_x_c_project_8h_source.tex
@@ -0,0 +1,145 @@
+\hypertarget{_x_c_project_8h_source}{}\doxysection{XCProject.\+h}
+\label{_x_c_project_8h_source}\index{XCProject.h@{XCProject.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 -\/ 2013 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeMemberType.h>}}
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeGroupMember.h>}}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}};}
+\DoxyCodeLine{18 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_group}{XCGroup}};}
+\DoxyCodeLine{19 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}};}
+\DoxyCodeLine{20 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}};}
+\DoxyCodeLine{21 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_target}{XCTarget}};}
+\DoxyCodeLine{22 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}};}
+\DoxyCodeLine{23 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}};}
+\DoxyCodeLine{24 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}};}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_project}{XCProject}} : NSObject}
+\DoxyCodeLine{27 \{}
+\DoxyCodeLine{28 \textcolor{keyword}{@protected}}
+\DoxyCodeLine{29     \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}}* \_fileOperationQueue;}
+\DoxyCodeLine{30 }
+\DoxyCodeLine{31     NSString* \_filePath;}
+\DoxyCodeLine{32     NSMutableDictionary* \_dataStore;}
+\DoxyCodeLine{33     NSMutableArray* \_targets;}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35     NSMutableDictionary* \_groups;}
+\DoxyCodeLine{36     NSMutableDictionary* \_versionGroups;}
+\DoxyCodeLine{37     NSMutableDictionary* \_configurations;}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39     NSString* \_defaultConfigurationName;}
+\DoxyCodeLine{40     NSString* \_rootObjectKey;}
+\DoxyCodeLine{41 \}}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 \textcolor{keyword}{@property}(nonatomic, strong, readonly) \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}}* fileOperationQueue;}
+\DoxyCodeLine{44 }
+\DoxyCodeLine{45 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{46 \textcolor{preprocessor}{\#pragma mark -\/ Initialization \& Destruction}}
+\DoxyCodeLine{47 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{49 }
+\DoxyCodeLine{50 + (\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)projectWithFilePath:(NSString*)filePath;}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{55 -\/ (id)initWithFilePath:(NSString*)filePath;}
+\DoxyCodeLine{56 }
+\DoxyCodeLine{57 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{58 \textcolor{preprocessor}{\#pragma mark Groupd Member}}
+\DoxyCodeLine{59 -\/ (id<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}}>)groupMemberWithKey:(NSString *)key;}
+\DoxyCodeLine{60 }
+\DoxyCodeLine{61 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{62 \textcolor{preprocessor}{\#pragma mark Files}}
+\DoxyCodeLine{66 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)files;}
+\DoxyCodeLine{67 }
+\DoxyCodeLine{71 -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)fileWithKey:(NSString*)key;}
+\DoxyCodeLine{72 }
+\DoxyCodeLine{77 -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)fileWithName:(NSString*)name;}
+\DoxyCodeLine{78 }
+\DoxyCodeLine{82 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)headerFiles;}
+\DoxyCodeLine{83 }
+\DoxyCodeLine{87 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)objectiveCFiles;}
+\DoxyCodeLine{88 }
+\DoxyCodeLine{92 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)objectiveCPlusPlusFiles;}
+\DoxyCodeLine{93 }
+\DoxyCodeLine{97 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)xibFiles;}
+\DoxyCodeLine{98 }
+\DoxyCodeLine{99 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)imagePNGFiles;}
+\DoxyCodeLine{100 }
+\DoxyCodeLine{101 -\/ (NSString*)filePath;}
+\DoxyCodeLine{102 }
+\DoxyCodeLine{103 }
+\DoxyCodeLine{104 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{105 \textcolor{preprocessor}{\#pragma mark Groups}}
+\DoxyCodeLine{109 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*>*)groups;}
+\DoxyCodeLine{110 }
+\DoxyCodeLine{114 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)rootGroup;}
+\DoxyCodeLine{115 }
+\DoxyCodeLine{119 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*>*)rootGroups;}
+\DoxyCodeLine{120 }
+\DoxyCodeLine{124 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} *)mainGroup;}
+\DoxyCodeLine{125 }
+\DoxyCodeLine{129 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithKey:(NSString*)key;}
+\DoxyCodeLine{130 }
+\DoxyCodeLine{134 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithDisplayName:(NSString*)name;}
+\DoxyCodeLine{135 }
+\DoxyCodeLine{139 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithPathFromRoot:(NSString*)path;}
+\DoxyCodeLine{140 }
+\DoxyCodeLine{144 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupForGroupMemberWithKey:(NSString*)key;}
+\DoxyCodeLine{145 }
+\DoxyCodeLine{149 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)groupWithSourceFile:(\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)sourceFile;}
+\DoxyCodeLine{150 }
+\DoxyCodeLine{154 -\/ (void)pruneEmptyGroups;}
+\DoxyCodeLine{155 }
+\DoxyCodeLine{156 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{157 \textcolor{preprocessor}{\#pragma mark VersionGroups}}
+\DoxyCodeLine{161 -\/ (NSArray*)versionGroups;}
+\DoxyCodeLine{162 }
+\DoxyCodeLine{166 -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}}*)versionGroupWithKey:(NSString*)key;}
+\DoxyCodeLine{167 }
+\DoxyCodeLine{171 -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}}*)versionGroupWithName:(NSString*)name;}
+\DoxyCodeLine{172 }
+\DoxyCodeLine{173 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{174 \textcolor{preprocessor}{\#pragma mark Targets}}
+\DoxyCodeLine{178 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*>*)targets;}
+\DoxyCodeLine{179 }
+\DoxyCodeLine{183 -\/ (\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*)targetWithName:(NSString*)name;}
+\DoxyCodeLine{184 }
+\DoxyCodeLine{188 -\/ (NSArray*)applicationTargets;}
+\DoxyCodeLine{189 }
+\DoxyCodeLine{190 \textcolor{preprocessor}{\#pragma mark Configurations}}
+\DoxyCodeLine{194 -\/ (NSDictionary<NSString*,\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}}*>*)configurations;}
+\DoxyCodeLine{198 -\/ (\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}}*)configurationWithName:(NSString*)name;}
+\DoxyCodeLine{199 }
+\DoxyCodeLine{200 -\/ (\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}} *)defaultConfiguration;}
+\DoxyCodeLine{201 }
+\DoxyCodeLine{202 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{203 \textcolor{preprocessor}{\#pragma mark Deletion}}
+\DoxyCodeLine{204 }
+\DoxyCodeLine{205 -\/ (void)removeObjectWithKey:(NSString*)key;}
+\DoxyCodeLine{206 }
+\DoxyCodeLine{207 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{208 \textcolor{preprocessor}{\#pragma mark Saving}}
+\DoxyCodeLine{212 -\/ (void)save;}
+\DoxyCodeLine{213 }
+\DoxyCodeLine{214 }
+\DoxyCodeLine{215 \textcolor{comment}{//-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
+\DoxyCodeLine{219 \textcolor{comment}{}-\/ (NSMutableDictionary*)objects;}
+\DoxyCodeLine{220 }
+\DoxyCodeLine{221 -\/ (NSMutableDictionary*)dataStore;}
+\DoxyCodeLine{222 }
+\DoxyCodeLine{223 -\/ (void)dropCache;}
+\DoxyCodeLine{224 }
+\DoxyCodeLine{225 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_project_build_config_8h_source.tex b/doc/latex/_x_c_project_build_config_8h_source.tex
new file mode 100644
index 0000000..172857e
--- /dev/null
+++ b/doc/latex/_x_c_project_build_config_8h_source.tex
@@ -0,0 +1,48 @@
+\hypertarget{_x_c_project_build_config_8h_source}{}\doxysection{XCProject\+Build\+Config.\+h}
+\label{_x_c_project_build_config_8h_source}\index{XCProjectBuildConfig.h@{XCProjectBuildConfig.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}} : NSObject}
+\DoxyCodeLine{17 \{}
+\DoxyCodeLine{18 \textcolor{keyword}{@private}}
+\DoxyCodeLine{19     \_\_weak \mbox{\hyperlink{interface_x_c_project}{XCProject}}* \_project;}
+\DoxyCodeLine{20     NSString* \_key;}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22     NSMutableDictionary* \_buildSettings;}
+\DoxyCodeLine{23     NSMutableDictionary* \_xcconfigSettings;}
+\DoxyCodeLine{24 \}}
+\DoxyCodeLine{25 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* key;}
+\DoxyCodeLine{26 \textcolor{keyword}{@property}(nonatomic, readonly) NSDictionary* specifiedBuildSettings;}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28 + (NSDictionary<NSString*,NSString*>*)buildConfigurationsFromArray:(NSArray<\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}}*>*)array inProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project;}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 -\/ (instancetype)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key;}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 -\/ (void)addBuildSettings:(NSDictionary*)buildSettings;}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 -\/ (void)addOrReplaceSetting:(\textcolor{keywordtype}{id} <NSCopying>)setting forKey:(NSString*)key;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 -\/ (\textcolor{keywordtype}{id} <NSCopying>)valueForKey:(NSString*)key;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 -\/(void)removeSettingByKey:(NSString*)key;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 + (NSString*)duplicatedBuildConfigurationListWithKey:(NSString*)buildConfigurationListKey inProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project}
+\DoxyCodeLine{41     withBuildConfigurationVisitor:(\textcolor{keywordtype}{void} (\string^)(NSMutableDictionary*))buildConfigurationVisitor;}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_source_file_8h_source.tex b/doc/latex/_x_c_source_file_8h_source.tex
new file mode 100644
index 0000000..550cfe2
--- /dev/null
+++ b/doc/latex/_x_c_source_file_8h_source.tex
@@ -0,0 +1,69 @@
+\hypertarget{_x_c_source_file_8h_source}{}\doxysection{XCSource\+File.\+h}
+\label{_x_c_source_file_8h_source}\index{XCSourceFile.h@{XCSourceFile.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeGroupMember.h>}}
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{17 \textcolor{preprocessor}{\#import <XcodeEditor/XCBuildFile.h>}}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{24 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}} : NSObject<\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}},\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}}>}
+\DoxyCodeLine{25 \{}
+\DoxyCodeLine{26     }
+\DoxyCodeLine{27 \textcolor{keyword}{@private}}
+\DoxyCodeLine{28     \mbox{\hyperlink{interface_x_c_project}{XCProject}} *\_project;}
+\DoxyCodeLine{29     }
+\DoxyCodeLine{30     NSNumber *\_isBuildFile;}
+\DoxyCodeLine{31     NSString *\_buildFileKey;}
+\DoxyCodeLine{32     NSString *\_name;}
+\DoxyCodeLine{33     NSString *\_sourceTree;}
+\DoxyCodeLine{34     NSString *\_key;}
+\DoxyCodeLine{35     NSString *\_path;}
+\DoxyCodeLine{36     XcodeSourceFileType \_type;}
+\DoxyCodeLine{37 \}}
+\DoxyCodeLine{38 }
+\DoxyCodeLine{39 \textcolor{keyword}{@property} (nonatomic, readonly) XcodeSourceFileType type;}
+\DoxyCodeLine{40 \textcolor{keyword}{@property} (nonatomic, strong, readonly) NSString *key;}
+\DoxyCodeLine{41 \textcolor{keyword}{@property} (nonatomic, strong) NSString *name;}
+\DoxyCodeLine{42 \textcolor{keyword}{@property} (nonatomic, strong, readonly) NSString *sourceTree;}
+\DoxyCodeLine{43 \textcolor{keyword}{@property} (nonatomic, strong) NSString *path;}
+\DoxyCodeLine{44 }
+\DoxyCodeLine{45 + (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}} *)sourceFileWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}} *)project key:(NSString *)key type:(XcodeSourceFileType)type}
+\DoxyCodeLine{46                                    name:(NSString *)name sourceTree:(NSString *)tree path:(NSString *)path;}
+\DoxyCodeLine{47 }
+\DoxyCodeLine{48 -\/ (id)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}} *)project key:(NSString *)key type:(XcodeSourceFileType)type name:(NSString *)name}
+\DoxyCodeLine{49            sourceTree:(NSString *)tree path:(NSString *)path;}
+\DoxyCodeLine{50 }
+\DoxyCodeLine{54 -\/ (BOOL)isBuildFile;}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{56 -\/ (BOOL)canBecomeBuildFile;}
+\DoxyCodeLine{57 }
+\DoxyCodeLine{58 -\/ (XcodeMemberType)buildPhase;}
+\DoxyCodeLine{59 }
+\DoxyCodeLine{60 -\/ (NSString *)buildFileKey;}
+\DoxyCodeLine{61 }
+\DoxyCodeLine{65 -\/ (void)becomeBuildFile;}
+\DoxyCodeLine{66 }
+\DoxyCodeLine{70 -\/ (void)removeBuildFile;}
+\DoxyCodeLine{71 }
+\DoxyCodeLine{77 -\/ (void)setCompilerFlags:(NSString *)value;}
+\DoxyCodeLine{78 }
+\DoxyCodeLine{82 -\/ (void)setWeakReference;}
+\DoxyCodeLine{83 }
+\DoxyCodeLine{84 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_source_file_definition_8h_source.tex b/doc/latex/_x_c_source_file_definition_8h_source.tex
new file mode 100644
index 0000000..e022c6f
--- /dev/null
+++ b/doc/latex/_x_c_source_file_definition_8h_source.tex
@@ -0,0 +1,48 @@
+\hypertarget{_x_c_source_file_definition_8h_source}{}\doxysection{XCSource\+File\+Definition.\+h}
+\label{_x_c_source_file_definition_8h_source}\index{XCSourceFileDefinition.h@{XCSourceFileDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{19 \{}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21     NSString* \_sourceFileName;}
+\DoxyCodeLine{22     XcodeSourceFileType \_type;}
+\DoxyCodeLine{23     NSData* \_data;}
+\DoxyCodeLine{24 }
+\DoxyCodeLine{25 \}}
+\DoxyCodeLine{26 }
+\DoxyCodeLine{27 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* sourceFileName;}
+\DoxyCodeLine{28 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSData* data;}
+\DoxyCodeLine{29 \textcolor{keyword}{@property}(nonatomic, readonly) XcodeSourceFileType type;}
+\DoxyCodeLine{30 }
+\DoxyCodeLine{31 + (\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}*)sourceDefinitionWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;}
+\DoxyCodeLine{32 }
+\DoxyCodeLine{33 + (\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}*)sourceDefinitionWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;}
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35 \textcolor{comment}{// For now you can add Asset Catalog only as reference}}
+\DoxyCodeLine{36 + (\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}*)sourceDefinitionWithAssetCatalogName:(NSString*)name;}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 -\/ (id)initWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 -\/ (id)initWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_sub_project_definition_8h_source.tex b/doc/latex/_x_c_sub_project_definition_8h_source.tex
new file mode 100644
index 0000000..a2fed87
--- /dev/null
+++ b/doc/latex/_x_c_sub_project_definition_8h_source.tex
@@ -0,0 +1,64 @@
+\hypertarget{_x_c_sub_project_definition_8h_source}{}\doxysection{XCSub\+Project\+Definition.\+h}
+\label{_x_c_sub_project_definition_8h_source}\index{XCSubProjectDefinition.h@{XCSubProjectDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{16 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeSourceFileType.h>}}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{22 \{}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24     NSString *\_name;}
+\DoxyCodeLine{25     NSString *\_path;}
+\DoxyCodeLine{26     XcodeSourceFileType \_type;}
+\DoxyCodeLine{27     \mbox{\hyperlink{interface_x_c_project}{XCProject}} *\_subProject;}
+\DoxyCodeLine{28     \mbox{\hyperlink{interface_x_c_project}{XCProject}} *\_parentProject;}
+\DoxyCodeLine{29     NSString *\_key;}
+\DoxyCodeLine{30     NSString *\_fullProjectPath;}
+\DoxyCodeLine{31     NSString *\_relativePath;}
+\DoxyCodeLine{32 \}}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 }
+\DoxyCodeLine{35 \textcolor{keyword}{@property} (nonatomic, strong, readonly) NSString *name;}
+\DoxyCodeLine{36 \textcolor{keyword}{@property} (nonatomic, strong, readonly) NSString *path;}
+\DoxyCodeLine{37 \textcolor{keyword}{@property} (nonatomic, readonly) XcodeSourceFileType type;}
+\DoxyCodeLine{38 \textcolor{keyword}{@property} (nonatomic, strong, readonly) \mbox{\hyperlink{interface_x_c_project}{XCProject}} *subProject;}
+\DoxyCodeLine{39 \textcolor{keyword}{@property} (nonatomic, strong, readonly) \mbox{\hyperlink{interface_x_c_project}{XCProject}} *parentProject;}
+\DoxyCodeLine{40 \textcolor{keyword}{@property} (nonatomic, strong, readonly) NSString *key;}
+\DoxyCodeLine{41 \textcolor{keyword}{@property} (nonatomic, strong, readwrite) NSString *fullProjectPath;}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 + (\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}} *)withName:(NSString *)name path:(NSString *)path parentProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}} *)parentProject;}
+\DoxyCodeLine{44 }
+\DoxyCodeLine{45 -\/ (id)initWithName:(NSString *)name path:(NSString *)path parentProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}} *)parentProject;}
+\DoxyCodeLine{46 }
+\DoxyCodeLine{47 -\/ (NSString *)projectFileName;}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{49 -\/ (NSString *)fullPathName;}
+\DoxyCodeLine{50 }
+\DoxyCodeLine{51 -\/ (NSArray<NSString*> *)buildProductNames;}
+\DoxyCodeLine{52 }
+\DoxyCodeLine{53 -\/ (NSString *)projectKey;}
+\DoxyCodeLine{54 }
+\DoxyCodeLine{55 -\/ (NSString *)pathRelativeToProjectRoot;}
+\DoxyCodeLine{56 }
+\DoxyCodeLine{57 -\/ (void)initFullProjectPath:(NSString *)fullProjectPath groupPath:(NSString *)groupPath;}
+\DoxyCodeLine{58 }
+\DoxyCodeLine{59 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_target_8h_source.tex b/doc/latex/_x_c_target_8h_source.tex
new file mode 100644
index 0000000..30a8cba
--- /dev/null
+++ b/doc/latex/_x_c_target_8h_source.tex
@@ -0,0 +1,90 @@
+\hypertarget{_x_c_target_8h_source}{}\doxysection{XCTarget.\+h}
+\label{_x_c_target_8h_source}\index{XCTarget.h@{XCTarget.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{16 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}};}
+\DoxyCodeLine{17 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}};}
+\DoxyCodeLine{18 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuildShellScript}};}
+\DoxyCodeLine{19 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuildShellScriptDefinition}};}
+\DoxyCodeLine{20 \textcolor{keyword}{@protocol }\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}};}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{25 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_target}{XCTarget}} : NSObject}
+\DoxyCodeLine{26 \{}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28     \mbox{\hyperlink{interface_x_c_project}{XCProject}}* \_project;}
+\DoxyCodeLine{29     NSString* \_key;}
+\DoxyCodeLine{30     NSString* \_name;}
+\DoxyCodeLine{31     NSString* \_productName;}
+\DoxyCodeLine{32     NSString* \_productReference;}
+\DoxyCodeLine{33     NSString* \_productType;}
+\DoxyCodeLine{34     NSString* \_defaultConfigurationName;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 \textcolor{keyword}{@private}}
+\DoxyCodeLine{37     NSMutableArray* \_members;}
+\DoxyCodeLine{38     NSMutableArray* \_resources;}
+\DoxyCodeLine{39     NSMutableDictionary* \_configurations;}
+\DoxyCodeLine{40     NSMutableArray *\_buildShellScripts;}
+\DoxyCodeLine{41 \}}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* key;}
+\DoxyCodeLine{44 \textcolor{keyword}{@property}(nonatomic, strong) NSString* name;}
+\DoxyCodeLine{45 \textcolor{keyword}{@property}(nonatomic, strong) NSString* productName;}
+\DoxyCodeLine{46 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* productReference;}
+\DoxyCodeLine{47 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* productType;}
+\DoxyCodeLine{48 }
+\DoxyCodeLine{49 + (\mbox{\hyperlink{interface_x_c_target}{XCTarget}}*)targetWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName}
+\DoxyCodeLine{50     productReference:(NSString*)productReference productType:(NSString*)productType;}
+\DoxyCodeLine{51 }
+\DoxyCodeLine{52 -\/ (id)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName}
+\DoxyCodeLine{53     productReference:(NSString*)productReference productType:(NSString*)productType;}
+\DoxyCodeLine{54 }
+\DoxyCodeLine{55 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)resources;}
+\DoxyCodeLine{56 }
+\DoxyCodeLine{57 -\/ (NSArray<id<\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}}>>*)members;}
+\DoxyCodeLine{58 }
+\DoxyCodeLine{59 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuildShellScript}}*>*)buildShellScripts;}
+\DoxyCodeLine{60 }
+\DoxyCodeLine{61 -\/ (NSDictionary<NSString*,\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}}*>*)configurations;}
+\DoxyCodeLine{62 }
+\DoxyCodeLine{63 -\/ (\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}} *)configurationWithName:(NSString*)name;}
+\DoxyCodeLine{64 }
+\DoxyCodeLine{65 -\/ (\mbox{\hyperlink{interface_x_c_project_build_config}{XCProjectBuildConfig}} *)defaultConfiguration;}
+\DoxyCodeLine{66 }
+\DoxyCodeLine{67 -\/ (void)addMember:(\textcolor{keywordtype}{id}<\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}}>)member;}
+\DoxyCodeLine{68 }
+\DoxyCodeLine{69 -\/ (void)makeAndAddShellScript:(\mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuildShellScriptDefinition}}*)shellScript;}
+\DoxyCodeLine{70 }
+\DoxyCodeLine{71 -\/ (void)removeShellScriptByName:(NSString*)name;}
+\DoxyCodeLine{72 }
+\DoxyCodeLine{73 -\/ (void)removeMemberWithKey:(NSString*)key;}
+\DoxyCodeLine{74 }
+\DoxyCodeLine{75 -\/ (void)removeMembersWithKeys:(NSArray<NSString*>*)keys;}
+\DoxyCodeLine{76 }
+\DoxyCodeLine{77 -\/ (void)removeResourceWithKey:(NSString*)key;}
+\DoxyCodeLine{78 }
+\DoxyCodeLine{79 -\/ (void)removeResourcesWithKeys:(NSArray<NSString*>*)keys;}
+\DoxyCodeLine{80 }
+\DoxyCodeLine{81 -\/ (void)addDependency:(NSString*)key;}
+\DoxyCodeLine{82 }
+\DoxyCodeLine{83 -\/ (instancetype)duplicateWithTargetName:(NSString*)targetName productName:(NSString*)productName;}
+\DoxyCodeLine{84 }
+\DoxyCodeLine{85 -\/ (BOOL)isApplicationType;}
+\DoxyCodeLine{86 }
+\DoxyCodeLine{87 \textcolor{keyword}{@end}}
+\DoxyCodeLine{88 }
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_test_resource_utils_8h_source.tex b/doc/latex/_x_c_test_resource_utils_8h_source.tex
new file mode 100644
index 0000000..5b8c2e3
--- /dev/null
+++ b/doc/latex/_x_c_test_resource_utils_8h_source.tex
@@ -0,0 +1,39 @@
+\hypertarget{_x_c_test_resource_utils_8h_source}{}\doxysection{XCTest\+Resource\+Utils.\+h}
+\label{_x_c_test_resource_utils_8h_source}\index{XCTestResourceUtils.h@{XCTestResourceUtils.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{14 }
+\DoxyCodeLine{15 \textcolor{comment}{//TODO: Just use one sample project}}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 NSString *XCTestResourcePath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{18 }
+\DoxyCodeLine{19 NSString *XCSample1FolderPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{20 }
+\DoxyCodeLine{21 NSString *XCSample1XcodeProjectPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 NSString *XCBox2dSampleContainingFolderPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{24 }
+\DoxyCodeLine{25 NSString *XCBox2dSampleProjectPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{26 }
+\DoxyCodeLine{27 NSString *XCMasterDetailContainerFolderPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{28 }
+\DoxyCodeLine{29 NSString *XCMasterDetailProjectPath(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{30 }
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 NSString *NSStringWithXCTestResource(NSString *resourceName);}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 NSData *NSDataWithXCTestResource(NSString *resourceName);}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_version_group_8h_source.tex b/doc/latex/_x_c_version_group_8h_source.tex
new file mode 100644
index 0000000..af2a61b
--- /dev/null
+++ b/doc/latex/_x_c_version_group_8h_source.tex
@@ -0,0 +1,91 @@
+\hypertarget{_x_c_version_group_8h_source}{}\doxysection{XCVersion\+Group.\+h}
+\label{_x_c_version_group_8h_source}\index{XCVersionGroup.h@{XCVersionGroup.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 \textcolor{comment}{//}}
+\DoxyCodeLine{2 \textcolor{comment}{//  XCCoreDataModelVersioned.h}}
+\DoxyCodeLine{3 \textcolor{comment}{//  xcode-\/editor}}
+\DoxyCodeLine{4 \textcolor{comment}{//}}
+\DoxyCodeLine{5 \textcolor{comment}{//  Created by joel on 04/09/15.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//}}
+\DoxyCodeLine{8 }
+\DoxyCodeLine{9 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{10 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeGroupMember.h>}}
+\DoxyCodeLine{11 \textcolor{preprocessor}{\#import <XcodeEditor/XCGroup.h>}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <XcodeEditor/XCBuildFile.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_project}{XCProject}};}
+\DoxyCodeLine{15 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}};}
+\DoxyCodeLine{16 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}};}
+\DoxyCodeLine{17 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}};}
+\DoxyCodeLine{18 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}};}
+\DoxyCodeLine{19 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}};}
+\DoxyCodeLine{20 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}};}
+\DoxyCodeLine{21 \textcolor{keyword}{@class} \mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}};}
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}} : NSObject <\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}},\mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuildFile}}>}
+\DoxyCodeLine{24 \{}
+\DoxyCodeLine{25     NSString* \_pathRelativeToParent;}
+\DoxyCodeLine{26     NSString* \_key;}
+\DoxyCodeLine{27     }
+\DoxyCodeLine{28 \textcolor{keyword}{@private}}
+\DoxyCodeLine{29     NSString* \_pathRelativeToProjectRoot;}
+\DoxyCodeLine{30     NSMutableArray* \_children;}
+\DoxyCodeLine{31     NSMutableArray* \_members;}
+\DoxyCodeLine{32     NSString *\_currentVersion;}
+\DoxyCodeLine{33     NSString *\_versionGroupType;}
+\DoxyCodeLine{34     }
+\DoxyCodeLine{35     NSNumber *\_isBuildFile;}
+\DoxyCodeLine{36     NSString *\_buildFileKey;}
+\DoxyCodeLine{37     }
+\DoxyCodeLine{38     \mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFileOperationQueue}}* \_fileOperationQueue; \textcolor{comment}{// weak}}
+\DoxyCodeLine{39     \mbox{\hyperlink{interface_x_c_project}{XCProject}}* \_project;}
+\DoxyCodeLine{40     }
+\DoxyCodeLine{41 \}}
+\DoxyCodeLine{42 }
+\DoxyCodeLine{43 }
+\DoxyCodeLine{49 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* alias;}
+\DoxyCodeLine{50 }
+\DoxyCodeLine{56 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* pathRelativeToParent;}
+\DoxyCodeLine{57 }
+\DoxyCodeLine{61 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* key;}
+\DoxyCodeLine{62 }
+\DoxyCodeLine{66 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSMutableArray* versions;}
+\DoxyCodeLine{67 }
+\DoxyCodeLine{68 \textcolor{keyword}{@property}(nonatomic,strong) NSString*currentVersion;}
+\DoxyCodeLine{69 }
+\DoxyCodeLine{70 }
+\DoxyCodeLine{71 \textcolor{preprocessor}{\#pragma mark Initializers}}
+\DoxyCodeLine{72 }
+\DoxyCodeLine{73 + (\mbox{\hyperlink{interface_x_c_version_group}{XCVersionGroup}}*)versionGroupWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;}
+\DoxyCodeLine{74 }
+\DoxyCodeLine{75 -\/ (id)initWithProject:(\mbox{\hyperlink{interface_x_c_project}{XCProject}}*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;}
+\DoxyCodeLine{76 }
+\DoxyCodeLine{77 \textcolor{preprocessor}{\#pragma mark Parent group}}
+\DoxyCodeLine{78 }
+\DoxyCodeLine{79 -\/ (void)removeFromParentGroup;}
+\DoxyCodeLine{80 }
+\DoxyCodeLine{81 -\/ (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;}
+\DoxyCodeLine{82 }
+\DoxyCodeLine{83 -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}}*)parentGroup;}
+\DoxyCodeLine{84 }
+\DoxyCodeLine{85 \textcolor{preprocessor}{\#pragma mark Adding children}}
+\DoxyCodeLine{86 }
+\DoxyCodeLine{90 -\/ (void)addDataModelSource:(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}*)sourceFileDefinition;}
+\DoxyCodeLine{91 }
+\DoxyCodeLine{92 \textcolor{preprocessor}{\#pragma mark Locating children}}
+\DoxyCodeLine{93 }
+\DoxyCodeLine{94 -\/ (NSArray<\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*>*)members;}
+\DoxyCodeLine{95 }
+\DoxyCodeLine{96 -\/ (NSArray<NSString*>*)buildFileKeys;}
+\DoxyCodeLine{97 }
+\DoxyCodeLine{101 -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)memberWithKey:(NSString*)key;}
+\DoxyCodeLine{102 }
+\DoxyCodeLine{106 -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}*)memberWithDisplayName:(NSString*)name;}
+\DoxyCodeLine{107 }
+\DoxyCodeLine{108 -\/ (NSDictionary*)asDictionary;}
+\DoxyCodeLine{109 }
+\DoxyCodeLine{110 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_x_c_xib_definition_8h_source.tex b/doc/latex/_x_c_xib_definition_8h_source.tex
new file mode 100644
index 0000000..d2cd70d
--- /dev/null
+++ b/doc/latex/_x_c_xib_definition_8h_source.tex
@@ -0,0 +1,41 @@
+\hypertarget{_x_c_xib_definition_8h_source}{}\doxysection{XCXib\+Definition.\+h}
+\label{_x_c_xib_definition_8h_source}\index{XCXibDefinition.h@{XCXibDefinition.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{15 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 \textcolor{keyword}{@interface }\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}} : \mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstractDefinition}}}
+\DoxyCodeLine{19 \{}
+\DoxyCodeLine{20     NSString* \_name;}
+\DoxyCodeLine{21     NSString* \_content;}
+\DoxyCodeLine{22 \}}
+\DoxyCodeLine{23 \textcolor{keyword}{@property}(nonatomic, strong, readonly) NSString* name;}
+\DoxyCodeLine{24 \textcolor{keyword}{@property}(nonatomic, strong) NSString* content;}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 + (\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}}*)xibDefinitionWithName:(NSString*)name;}
+\DoxyCodeLine{27 }
+\DoxyCodeLine{28 + (\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}}*)xibDefinitionWithName:(NSString*)name content:(NSString*)content;}
+\DoxyCodeLine{29 }
+\DoxyCodeLine{30 -\/ (id)initWithName:(NSString*)name;}
+\DoxyCodeLine{31 }
+\DoxyCodeLine{32 -\/ (id)initWithName:(NSString*)name content:(NSString*)content;}
+\DoxyCodeLine{33 }
+\DoxyCodeLine{34 -\/ (NSString*)xibFileName;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_xcode_editor_8h_source.tex b/doc/latex/_xcode_editor_8h_source.tex
new file mode 100644
index 0000000..c97e4e7
--- /dev/null
+++ b/doc/latex/_xcode_editor_8h_source.tex
@@ -0,0 +1,42 @@
+\hypertarget{_xcode_editor_8h_source}{}\doxysection{Xcode\+Editor.\+h}
+\label{_xcode_editor_8h_source}\index{XcodeEditor.h@{XcodeEditor.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{15 FOUNDATION\_EXPORT \textcolor{keywordtype}{double} XcodeEditorVersionNumber;}
+\DoxyCodeLine{16 }
+\DoxyCodeLine{18 FOUNDATION\_EXPORT \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} XcodeEditorVersionString[];}
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 \textcolor{comment}{// In this header, you should import all the public headers of your framework using statements like \#import <XcodeEditor/PublicHeader.h>}}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 }
+\DoxyCodeLine{23 \textcolor{preprocessor}{\#import <XcodeEditor/XCAbstractDefinition.h>}}
+\DoxyCodeLine{24 \textcolor{preprocessor}{\#import <XcodeEditor/XCGroup.h>}}
+\DoxyCodeLine{25 \textcolor{preprocessor}{\#import <XcodeEditor/XCClassDefinition.h>}}
+\DoxyCodeLine{26 \textcolor{preprocessor}{\#import <XcodeEditor/XCFileOperationQueue.h>}}
+\DoxyCodeLine{27 \textcolor{preprocessor}{\#import <XcodeEditor/XCFrameworkDefinition.h>}}
+\DoxyCodeLine{28 \textcolor{preprocessor}{\#import <XcodeEditor/XCProject.h>}}
+\DoxyCodeLine{29 \textcolor{preprocessor}{\#import <XcodeEditor/XCSourceFile.h>}}
+\DoxyCodeLine{30 \textcolor{preprocessor}{\#import <XcodeEditor/XCSourceFileDefinition.h>}}
+\DoxyCodeLine{31 \textcolor{preprocessor}{\#import <XcodeEditor/XCSubProjectDefinition.h>}}
+\DoxyCodeLine{32 \textcolor{preprocessor}{\#import <XcodeEditor/XCTarget.h>}}
+\DoxyCodeLine{33 \textcolor{preprocessor}{\#import <XcodeEditor/XCXibDefinition.h>}}
+\DoxyCodeLine{34 \textcolor{preprocessor}{\#import <XcodeEditor/XCKeyBuilder.h>}}
+\DoxyCodeLine{35 \textcolor{preprocessor}{\#import <XcodeEditor/XCProject+SubProject.h>}}
+\DoxyCodeLine{36 \textcolor{preprocessor}{\#import <XcodeEditor/XCProjectBuildConfig.h>}}
+\DoxyCodeLine{37 \textcolor{preprocessor}{\#import <XcodeEditor/XCBuildShellScript.h>}}
+\DoxyCodeLine{38 \textcolor{preprocessor}{\#import <XcodeEditor/XCBuildShellScriptDefinition.h>}}
+\DoxyCodeLine{39 \textcolor{preprocessor}{\#import <XcodeEditor/XCVersionGroup.h>}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_xcode_group_member_8h_source.tex b/doc/latex/_xcode_group_member_8h_source.tex
new file mode 100644
index 0000000..f5aa1ec
--- /dev/null
+++ b/doc/latex/_xcode_group_member_8h_source.tex
@@ -0,0 +1,30 @@
+\hypertarget{_xcode_group_member_8h_source}{}\doxysection{Xcode\+Group\+Member.\+h}
+\label{_xcode_group_member_8h_source}\index{XcodeGroupMember.h@{XcodeGroupMember.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 }
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{preprocessor}{\#import <XcodeEditor/XcodeMemberType.h>}}
+\DoxyCodeLine{15 }
+\DoxyCodeLine{16 \textcolor{keyword}{@protocol }\mbox{\hyperlink{protocol_xcode_group_member-p}{XcodeGroupMember}} <NSObject>}
+\DoxyCodeLine{17 }
+\DoxyCodeLine{18 -\/ (NSString*)key;}
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 -\/ (NSString*)displayName;}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 -\/ (NSString*)pathRelativeToProjectRoot;}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{27 -\/ (XcodeMemberType)\mbox{\hyperlink{protocol_xcode_group_member-p_a37e9e9f28d597028f66ae694b3efd1d8}{groupMemberType}};}
+\DoxyCodeLine{28 \textcolor{keyword}{@end}}
+
+\end{DoxyCode}
diff --git a/doc/latex/_xcode_member_type_8h_source.tex b/doc/latex/_xcode_member_type_8h_source.tex
new file mode 100644
index 0000000..c1bfb97
--- /dev/null
+++ b/doc/latex/_xcode_member_type_8h_source.tex
@@ -0,0 +1,62 @@
+\hypertarget{_xcode_member_type_8h_source}{}\doxysection{Xcode\+Member\+Type.\+h}
+\label{_xcode_member_type_8h_source}\index{XcodeMemberType.h@{XcodeMemberType.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{keyword}{typedef} \textcolor{keyword}{enum}}
+\DoxyCodeLine{15 \{}
+\DoxyCodeLine{16     PBXNilType,}
+\DoxyCodeLine{17     PBXBuildFileType,}
+\DoxyCodeLine{18     PBXContainerItemProxyType,}
+\DoxyCodeLine{19     PBXCopyFilesBuildPhaseType,}
+\DoxyCodeLine{20     PBXFileReferenceType,}
+\DoxyCodeLine{21     PBXFrameworksBuildPhaseType,}
+\DoxyCodeLine{22     PBXGroupType,}
+\DoxyCodeLine{23     PBXNativeTargetType,}
+\DoxyCodeLine{24     PBXProjectType,}
+\DoxyCodeLine{25     PBXReferenceProxyType,}
+\DoxyCodeLine{26     PBXResourcesBuildPhaseType,}
+\DoxyCodeLine{27     PBXSourcesBuildPhaseType,}
+\DoxyCodeLine{28     PBXTargetDependencyType,}
+\DoxyCodeLine{29     PBXVariantGroupType,}
+\DoxyCodeLine{30     XCBuildConfigurationType,}
+\DoxyCodeLine{31     XCConfigurationListType,}
+\DoxyCodeLine{32     PBXShellScriptBuildPhase,}
+\DoxyCodeLine{33     XCVersionGroupType}
+\DoxyCodeLine{34 \} XcodeMemberType;}
+\DoxyCodeLine{35 }
+\DoxyCodeLine{36 \textcolor{keyword}{@interface }\mbox{\hyperlink{category_n_s_string_07_xcode_member_type_extensions_08}{NSString (XcodeMemberTypeExtensions)}}}
+\DoxyCodeLine{37 }
+\DoxyCodeLine{38 + (NSString*)xce\_stringFromMemberType:(XcodeMemberType)nodeType;}
+\DoxyCodeLine{39 }
+\DoxyCodeLine{40 -\/ (XcodeMemberType)xce\_asMemberType;}
+\DoxyCodeLine{41 }
+\DoxyCodeLine{42 -\/ (BOOL)xce\_hasFileReferenceType;}
+\DoxyCodeLine{43 -\/ (BOOL)xce\_hasFileReferenceOrReferenceProxyType;}
+\DoxyCodeLine{44 -\/ (BOOL)xce\_hasReferenceProxyType;}
+\DoxyCodeLine{45 -\/ (BOOL)xce\_hasGroupType;}
+\DoxyCodeLine{46 -\/ (BOOL)xce\_hasProjectType;}
+\DoxyCodeLine{47 -\/ (BOOL)xce\_hasNativeTargetType;}
+\DoxyCodeLine{48 -\/ (BOOL)xce\_hasBuildFileType;}
+\DoxyCodeLine{49 -\/ (BOOL)xce\_hasBuildConfigurationType;}
+\DoxyCodeLine{50 -\/ (BOOL)xce\_hasContainerItemProxyType;}
+\DoxyCodeLine{51 -\/ (BOOL)xce\_hasResourcesBuildPhaseType;}
+\DoxyCodeLine{52 -\/ (BOOL)xce\_hasShellScriptBuildPhase;}
+\DoxyCodeLine{53 -\/ (BOOL)xce\_hasSourcesOrFrameworksBuildPhaseType;}
+\DoxyCodeLine{54 -\/ (BOOL)xce\_hasVersionedGroupType;}
+\DoxyCodeLine{55 }
+\DoxyCodeLine{56 \textcolor{keyword}{@end}}
+\DoxyCodeLine{57 }
+
+\end{DoxyCode}
diff --git a/doc/latex/_xcode_source_file_type_8h_source.tex b/doc/latex/_xcode_source_file_type_8h_source.tex
new file mode 100644
index 0000000..503b76c
--- /dev/null
+++ b/doc/latex/_xcode_source_file_type_8h_source.tex
@@ -0,0 +1,54 @@
+\hypertarget{_xcode_source_file_type_8h_source}{}\doxysection{Xcode\+Source\+File\+Type.\+h}
+\label{_xcode_source_file_type_8h_source}\index{XcodeSourceFileType.h@{XcodeSourceFileType.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{keyword}{typedef} NS\_OPTIONS(NSInteger, XcodeSourceFileType)}
+\DoxyCodeLine{15 \{}
+\DoxyCodeLine{16     FileTypeNil = 0,             \textcolor{comment}{// Unknown filetype}}
+\DoxyCodeLine{17     Framework = 1,               \textcolor{comment}{// .framework}}
+\DoxyCodeLine{18     PropertyList = 2,            \textcolor{comment}{// .plist}}
+\DoxyCodeLine{19     SourceCodeHeader = 3,        \textcolor{comment}{// .h}}
+\DoxyCodeLine{20     SourceCodeObjC = 4,          \textcolor{comment}{// .m}}
+\DoxyCodeLine{21     SourceCodeObjCPlusPlus = 5,  \textcolor{comment}{// .mm}}
+\DoxyCodeLine{22     SourceCodeCPlusPlus = 6,     \textcolor{comment}{// .cpp}}
+\DoxyCodeLine{23     XibFile = 7,                 \textcolor{comment}{// .xib}}
+\DoxyCodeLine{24     ImageResourcePNG = 8,        \textcolor{comment}{// .png}}
+\DoxyCodeLine{25     Bundle = 9,                  \textcolor{comment}{// .bundle  .octet}}
+\DoxyCodeLine{26     Archive = 10,                \textcolor{comment}{// .a files}}
+\DoxyCodeLine{27     HTML = 11,                   \textcolor{comment}{// HTML file}}
+\DoxyCodeLine{28     TEXT = 12,                   \textcolor{comment}{// Some text file}}
+\DoxyCodeLine{29     XcodeProject = 13,           \textcolor{comment}{// .xcodeproj}}
+\DoxyCodeLine{30     Folder = 14,                 \textcolor{comment}{// a Folder reference}}
+\DoxyCodeLine{31     AssetCatalog = 15,           \textcolor{comment}{// Assets}}
+\DoxyCodeLine{32     SourceCodeSwift = 16,        \textcolor{comment}{// .swift}}
+\DoxyCodeLine{33     Application = 17,            \textcolor{comment}{// .app (wrapper.application)}}
+\DoxyCodeLine{34     Playground = 18,             \textcolor{comment}{// .playground (file.playground)}}
+\DoxyCodeLine{35     ShellScript = 19,            \textcolor{comment}{// no suffix Xcode seems to detect (text.script.sh)}}
+\DoxyCodeLine{36     Markdown = 20,               \textcolor{comment}{// .md (net.daringfileball.markdown)}}
+\DoxyCodeLine{37     XMLPropertyList = 21,        \textcolor{comment}{// .plist (text.plist.xml)}}
+\DoxyCodeLine{38     Storyboard = 22,             \textcolor{comment}{// .storyboard (file.storyboard)}}
+\DoxyCodeLine{39     XCConfig = 23,               \textcolor{comment}{// .xcconfig}}
+\DoxyCodeLine{40     XCDataModel = 24,            \textcolor{comment}{// .xcdatamodel}}
+\DoxyCodeLine{41     LocalizableStrings = 25      \textcolor{comment}{// .strings}}
+\DoxyCodeLine{42 \};}
+\DoxyCodeLine{43 }
+\DoxyCodeLine{44 NSString* NSStringFromXCSourceFileType(XcodeSourceFileType type);}
+\DoxyCodeLine{45 }
+\DoxyCodeLine{46 XcodeSourceFileType XCSourceFileTypeFromStringRepresentation(NSString* \textcolor{keywordtype}{string});}
+\DoxyCodeLine{47 }
+\DoxyCodeLine{48 XcodeSourceFileType XCSourceFileTypeFromFileName(NSString* fileName);}
+\DoxyCodeLine{49 }
+
+\end{DoxyCode}
diff --git a/doc/latex/_xcode_source_tree_type_8h_source.tex b/doc/latex/_xcode_source_tree_type_8h_source.tex
new file mode 100644
index 0000000..c06ce0d
--- /dev/null
+++ b/doc/latex/_xcode_source_tree_type_8h_source.tex
@@ -0,0 +1,32 @@
+\hypertarget{_xcode_source_tree_type_8h_source}{}\doxysection{Xcode\+Source\+Tree\+Type.\+h}
+\label{_xcode_source_tree_type_8h_source}\index{XcodeSourceTreeType.h@{XcodeSourceTreeType.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{1 }
+\DoxyCodeLine{2 \textcolor{comment}{//}}
+\DoxyCodeLine{3 \textcolor{comment}{//  JASPER BLUES}}
+\DoxyCodeLine{4 \textcolor{comment}{//  Copyright 2012 Jasper Blues}}
+\DoxyCodeLine{5 \textcolor{comment}{//  All Rights Reserved.}}
+\DoxyCodeLine{6 \textcolor{comment}{//}}
+\DoxyCodeLine{7 \textcolor{comment}{//  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}}
+\DoxyCodeLine{8 \textcolor{comment}{//  in accordance with the terms of the license agreement accompanying it.}}
+\DoxyCodeLine{9 \textcolor{comment}{//}}
+\DoxyCodeLine{11 \textcolor{comment}{}}
+\DoxyCodeLine{12 \textcolor{preprocessor}{\#import <Foundation/Foundation.h>}}
+\DoxyCodeLine{13 }
+\DoxyCodeLine{14 \textcolor{keyword}{typedef} \textcolor{keyword}{enum}}
+\DoxyCodeLine{15 \{}
+\DoxyCodeLine{16     SourceTreeSDKRoot,}
+\DoxyCodeLine{17     SourceTreeGroup}
+\DoxyCodeLine{18 \} XcodeSourceTreeType;}
+\DoxyCodeLine{19 }
+\DoxyCodeLine{20 \textcolor{keyword}{@interface }\mbox{\hyperlink{category_n_s_string_07_xcode_source_tree_type_extensions_08}{NSString (XcodeSourceTreeTypeExtensions)}}}
+\DoxyCodeLine{21 }
+\DoxyCodeLine{22 + (NSString*)xce\_stringFromSourceTreeType:(XcodeSourceTreeType)nodeType;}
+\DoxyCodeLine{23 }
+\DoxyCodeLine{24 -\/ (XcodeSourceTreeType)xce\_asSourceTreeType;}
+\DoxyCodeLine{25 }
+\DoxyCodeLine{26 \textcolor{keyword}{@end}}
+\DoxyCodeLine{27 }
+
+\end{DoxyCode}
diff --git a/doc/latex/annotated.tex b/doc/latex/annotated.tex
new file mode 100644
index 0000000..338cb28
--- /dev/null
+++ b/doc/latex/annotated.tex
@@ -0,0 +1,39 @@
+\doxysection{Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\mbox{\hyperlink{interface_class_called_janine}{Class\+Called\+Janine}} }{\pageref{interface_class_called_janine}}{}
+\item\contentsline{section}{\mbox{\hyperlink{struct_hash_value_m_d5_hash}{Hash\+Value\+MD5\+Hash}} }{\pageref{struct_hash_value_m_d5_hash}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_n_s_string_07_remove_emoji_08}{NSString(\+Remove\+Emoji)}} }{\pageref{category_n_s_string_07_remove_emoji_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_n_s_string_07_xcode_member_type_extensions_08}{NSString(\+Xcode\+Member\+Type\+Extensions)}} }{\pageref{category_n_s_string_07_xcode_member_type_extensions_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_n_s_string_07_xcode_source_tree_type_extensions_08}{NSString(\+Xcode\+Source\+Tree\+Type\+Extensions)}} }{\pageref{category_n_s_string_07_xcode_source_tree_type_extensions_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_abstract_definition}{XCAbstract\+Definition}} }{\pageref{interface_x_c_abstract_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{protocol_x_c_build_file-p}{$<$\+XCBuild\+File$>$}} }{\pageref{protocol_x_c_build_file-p}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuild\+Shell\+Script}} }{\pageref{interface_x_c_build_shell_script}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuild\+Shell\+Script\+Definition}} }{\pageref{interface_x_c_build_shell_script_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_build_shell_script_definition_tests}{XCBuild\+Shell\+Script\+Definition\+Tests}} }{\pageref{interface_x_c_build_shell_script_definition_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_build_shell_script_tests}{XCBuild\+Shell\+Script\+Tests}} }{\pageref{interface_x_c_build_shell_script_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}} }{\pageref{interface_x_c_class_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_class_definition_tests}{XCClass\+Definition\+Tests}} }{\pageref{interface_x_c_class_definition_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFile\+Operation\+Queue}} }{\pageref{interface_x_c_file_operation_queue}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_x_c_file_operation_queue_07_08}{XCFile\+Operation\+Queue()}} }{\pageref{category_x_c_file_operation_queue_07_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}} }{\pageref{interface_x_c_framework_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_framework_path}{XCFramework\+Path}} }{\pageref{interface_x_c_framework_path}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_group}{XCGroup}} }{\pageref{interface_x_c_group}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_group_tests}{XCGroup\+Tests}} }{\pageref{interface_x_c_group_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_key_builder}{XCKey\+Builder}} }{\pageref{interface_x_c_key_builder}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_key_builder_tests}{XCKey\+Builder\+Tests}} }{\pageref{interface_x_c_key_builder_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_xcode_file_reference_type_tests}{Xcode\+File\+Reference\+Type\+Tests}} }{\pageref{interface_xcode_file_reference_type_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{protocol_xcode_group_member-p}{$<$\+Xcode\+Group\+Member$>$}} }{\pageref{protocol_xcode_group_member-p}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_project}{XCProject}} }{\pageref{interface_x_c_project}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_x_c_project_07_sub_project_08}{XCProject(\+Sub\+Project)}} }{\pageref{category_x_c_project_07_sub_project_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} }{\pageref{interface_x_c_project_build_config}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_project_tests}{XCProject\+Tests}} }{\pageref{interface_x_c_project_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} }{\pageref{interface_x_c_source_file}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}} }{\pageref{interface_x_c_source_file_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSub\+Project\+Definition}} }{\pageref{interface_x_c_sub_project_definition}}{}
+\item\contentsline{section}{\mbox{\hyperlink{category_x_c_sub_project_definition_07_08}{XCSub\+Project\+Definition()}} }{\pageref{category_x_c_sub_project_definition_07_08}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_sub_project_definition_tests}{XCSub\+Project\+Definition\+Tests}} }{\pageref{interface_x_c_sub_project_definition_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_target}{XCTarget}} }{\pageref{interface_x_c_target}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_target_tests}{XCTarget\+Tests}} }{\pageref{interface_x_c_target_tests}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} }{\pageref{interface_x_c_version_group}}{}
+\item\contentsline{section}{\mbox{\hyperlink{interface_x_c_xib_definition}{XCXib\+Definition}} }{\pageref{interface_x_c_xib_definition}}{}
+\end{DoxyCompactList}
diff --git a/doc/latex/category_n_s_string_07_remove_emoji_08.tex b/doc/latex/category_n_s_string_07_remove_emoji_08.tex
new file mode 100644
index 0000000..b3a43d0
--- /dev/null
+++ b/doc/latex/category_n_s_string_07_remove_emoji_08.tex
@@ -0,0 +1,20 @@
+\hypertarget{category_n_s_string_07_remove_emoji_08}{}\doxysection{NSString(Remove\+Emoji) Category Reference}
+\label{category_n_s_string_07_remove_emoji_08}\index{NSString(RemoveEmoji)@{NSString(RemoveEmoji)}}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_remove_emoji_08_ac1f0436d5d2e1c710f616b4d7acd1253}\label{category_n_s_string_07_remove_emoji_08_ac1f0436d5d2e1c710f616b4d7acd1253}} 
+(BOOL) -\/ {\bfseries is\+Including\+Emoji}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_remove_emoji_08_aac8e33ce5dacdfbed2811f341b69bf5d}\label{category_n_s_string_07_remove_emoji_08_aac8e33ce5dacdfbed2811f341b69bf5d}} 
+(instancetype) -\/ {\bfseries string\+By\+Removing\+Emoji}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_remove_emoji_08_a595b600cfebed475788feed38314af98}\label{category_n_s_string_07_remove_emoji_08_a595b600cfebed475788feed38314af98}} 
+((deprecated) -\/ {\bfseries \+\_\+\+\_\+attribute\+\_\+\+\_\+}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+NSString+\+Remove\+Emoji.\+h\item 
+NSString+\+Remove\+Emoji.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/category_n_s_string_07_xcode_member_type_extensions_08.tex b/doc/latex/category_n_s_string_07_xcode_member_type_extensions_08.tex
new file mode 100644
index 0000000..52a85fc
--- /dev/null
+++ b/doc/latex/category_n_s_string_07_xcode_member_type_extensions_08.tex
@@ -0,0 +1,59 @@
+\hypertarget{category_n_s_string_07_xcode_member_type_extensions_08}{}\doxysection{NSString(Xcode\+Member\+Type\+Extensions) Category Reference}
+\label{category_n_s_string_07_xcode_member_type_extensions_08}\index{NSString(XcodeMemberTypeExtensions)@{NSString(XcodeMemberTypeExtensions)}}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a0c30a5f2fc5ed808d39e891adac90ff9}\label{category_n_s_string_07_xcode_member_type_extensions_08_a0c30a5f2fc5ed808d39e891adac90ff9}} 
+(Xcode\+Member\+Type) -\/ {\bfseries xce\+\_\+as\+Member\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a0b444d0eae9e7674658e29211fca06f5}\label{category_n_s_string_07_xcode_member_type_extensions_08_a0b444d0eae9e7674658e29211fca06f5}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+File\+Reference\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a41c8558315a1d3d047c602c9652aef29}\label{category_n_s_string_07_xcode_member_type_extensions_08_a41c8558315a1d3d047c602c9652aef29}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+File\+Reference\+Or\+Reference\+Proxy\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_af3eeec7f57fdd88445b67fbf5eea8781}\label{category_n_s_string_07_xcode_member_type_extensions_08_af3eeec7f57fdd88445b67fbf5eea8781}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Reference\+Proxy\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a553f49f087f00e05f0024b5bb2ce07ad}\label{category_n_s_string_07_xcode_member_type_extensions_08_a553f49f087f00e05f0024b5bb2ce07ad}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Group\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_affaa14881d029e9644e50f8fe96628ef}\label{category_n_s_string_07_xcode_member_type_extensions_08_affaa14881d029e9644e50f8fe96628ef}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Project\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a5bc59a1e064c62006a7f1bd467bbc992}\label{category_n_s_string_07_xcode_member_type_extensions_08_a5bc59a1e064c62006a7f1bd467bbc992}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Native\+Target\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_ab15ac44a708d7a74e5592f9f2d1d68b5}\label{category_n_s_string_07_xcode_member_type_extensions_08_ab15ac44a708d7a74e5592f9f2d1d68b5}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Build\+File\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a7096c70200be48fb242b415e1259eed5}\label{category_n_s_string_07_xcode_member_type_extensions_08_a7096c70200be48fb242b415e1259eed5}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Build\+Configuration\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a6db284b9e8daaf259b37b07f649ada65}\label{category_n_s_string_07_xcode_member_type_extensions_08_a6db284b9e8daaf259b37b07f649ada65}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Container\+Item\+Proxy\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a65f54f96e843f92b4a526e65830dd40c}\label{category_n_s_string_07_xcode_member_type_extensions_08_a65f54f96e843f92b4a526e65830dd40c}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Resources\+Build\+Phase\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_aa39eee81b980302915f10668e1d7c335}\label{category_n_s_string_07_xcode_member_type_extensions_08_aa39eee81b980302915f10668e1d7c335}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Shell\+Script\+Build\+Phase}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a0ac1e9fe2793c1c373250a69985389bc}\label{category_n_s_string_07_xcode_member_type_extensions_08_a0ac1e9fe2793c1c373250a69985389bc}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Sources\+Or\+Frameworks\+Build\+Phase\+Type}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a22a500d93bd9c4384231a96f5eab8f30}\label{category_n_s_string_07_xcode_member_type_extensions_08_a22a500d93bd9c4384231a96f5eab8f30}} 
+(BOOL) -\/ {\bfseries xce\+\_\+has\+Versioned\+Group\+Type}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_member_type_extensions_08_a6aa90897bd9f233574611c83969d8d78}\label{category_n_s_string_07_xcode_member_type_extensions_08_a6aa90897bd9f233574611c83969d8d78}} 
+(NSString $\ast$) + {\bfseries xce\+\_\+string\+From\+Member\+Type\+:}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+Xcode\+Member\+Type.\+h\item 
+Xcode\+Member\+Type.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/category_n_s_string_07_xcode_source_tree_type_extensions_08.tex b/doc/latex/category_n_s_string_07_xcode_source_tree_type_extensions_08.tex
new file mode 100644
index 0000000..28bb7c8
--- /dev/null
+++ b/doc/latex/category_n_s_string_07_xcode_source_tree_type_extensions_08.tex
@@ -0,0 +1,20 @@
+\hypertarget{category_n_s_string_07_xcode_source_tree_type_extensions_08}{}\doxysection{NSString(Xcode\+Source\+Tree\+Type\+Extensions) Category Reference}
+\label{category_n_s_string_07_xcode_source_tree_type_extensions_08}\index{NSString(XcodeSourceTreeTypeExtensions)@{NSString(XcodeSourceTreeTypeExtensions)}}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_source_tree_type_extensions_08_aa71895eb3611dc52402d8c5e2d34908f}\label{category_n_s_string_07_xcode_source_tree_type_extensions_08_aa71895eb3611dc52402d8c5e2d34908f}} 
+(Xcode\+Source\+Tree\+Type) -\/ {\bfseries xce\+\_\+as\+Source\+Tree\+Type}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_n_s_string_07_xcode_source_tree_type_extensions_08_a6c173a5ecd5deaf2d62a25c6dd34eb9e}\label{category_n_s_string_07_xcode_source_tree_type_extensions_08_a6c173a5ecd5deaf2d62a25c6dd34eb9e}} 
+(NSString $\ast$) + {\bfseries xce\+\_\+string\+From\+Source\+Tree\+Type\+:}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+Xcode\+Source\+Tree\+Type.\+h\item 
+Xcode\+Source\+Tree\+Type.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/category_x_c_file_operation_queue_07_08.tex b/doc/latex/category_x_c_file_operation_queue_07_08.tex
new file mode 100644
index 0000000..40104b9
--- /dev/null
+++ b/doc/latex/category_x_c_file_operation_queue_07_08.tex
@@ -0,0 +1,25 @@
+\hypertarget{category_x_c_file_operation_queue_07_08}{}\doxysection{XCFile\+Operation\+Queue() Category Reference}
+\label{category_x_c_file_operation_queue_07_08}\index{XCFileOperationQueue()@{XCFileOperationQueue()}}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_x_c_file_operation_queue_07_08_a396b8a6bac40903a81e88f18556990af}\label{category_x_c_file_operation_queue_07_08_a396b8a6bac40903a81e88f18556990af}} 
+(NSString $\ast$) -\/ {\bfseries destination\+Path\+For\+:in\+Project\+Directory\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_file_operation_queue_07_08_ae251327e851f8d879613e4fca9945405}\label{category_x_c_file_operation_queue_07_08_ae251327e851f8d879613e4fca9945405}} 
+(void) -\/ {\bfseries perform\+File\+Writes}
+\item 
+\mbox{\Hypertarget{category_x_c_file_operation_queue_07_08_a88abc5ec02d89e5ab47d424064d2196d}\label{category_x_c_file_operation_queue_07_08_a88abc5ec02d89e5ab47d424064d2196d}} 
+(void) -\/ {\bfseries perform\+Copy\+Frameworks}
+\item 
+\mbox{\Hypertarget{category_x_c_file_operation_queue_07_08_a971eb0149ad8ed21e35c493bd06296ec}\label{category_x_c_file_operation_queue_07_08_a971eb0149ad8ed21e35c493bd06296ec}} 
+(void) -\/ {\bfseries perform\+File\+Deletions}
+\item 
+\mbox{\Hypertarget{category_x_c_file_operation_queue_07_08_a93c6820e8b055ed6415773b64a6bf1d7}\label{category_x_c_file_operation_queue_07_08_a93c6820e8b055ed6415773b64a6bf1d7}} 
+(void) -\/ {\bfseries perform\+Create\+Directories}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCFile\+Operation\+Queue.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/category_x_c_project_07_sub_project_08.tex b/doc/latex/category_x_c_project_07_sub_project_08.tex
new file mode 100644
index 0000000..82fa304
--- /dev/null
+++ b/doc/latex/category_x_c_project_07_sub_project_08.tex
@@ -0,0 +1,44 @@
+\hypertarget{category_x_c_project_07_sub_project_08}{}\doxysection{XCProject(Sub\+Project) Category Reference}
+\label{category_x_c_project_07_sub_project_08}\index{XCProject(SubProject)@{XCProject(SubProject)}}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a92dd68dc215dfed3ee2fcaab5b72346e}\label{category_x_c_project_07_sub_project_08_a92dd68dc215dfed3ee2fcaab5b72346e}} 
+(NSString $\ast$) -\/ {\bfseries reference\+Proxy\+Key\+For\+Name\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a1909100224b2527bc609caf8eab7a5f0}\label{category_x_c_project_07_sub_project_08_a1909100224b2527bc609caf8eab7a5f0}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ {\bfseries build\+Products\+For\+Targets\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_aca0d762dbf21a7515beb0cf49f636fbc}\label{category_x_c_project_07_sub_project_08_aca0d762dbf21a7515beb0cf49f636fbc}} 
+(void) -\/ {\bfseries add\+As\+Target\+Dependency\+:to\+Targets\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_ac1f47cda658191013bd6184356255d1f}\label{category_x_c_project_07_sub_project_08_ac1f47cda658191013bd6184356255d1f}} 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ {\bfseries keys\+For\+Project\+Objects\+Of\+Type\+:with\+Identifier\+:singleton\+:required\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a54669d671dac484cf5d207657f7c92a2}\label{category_x_c_project_07_sub_project_08_a54669d671dac484cf5d207657f7c92a2}} 
+(NSMutable\+Dictionary $\ast$) -\/ {\bfseries PBXProject\+Dict}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_aaa724f5876db3d4f5f82c4a5d9a48ae3}\label{category_x_c_project_07_sub_project_08_aaa724f5876db3d4f5f82c4a5d9a48ae3}} 
+(void) -\/ {\bfseries remove\+Proxies\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a235e112109c93d5987e2b29c836000a6}\label{category_x_c_project_07_sub_project_08_a235e112109c93d5987e2b29c836000a6}} 
+(void) -\/ {\bfseries add\+Proxies\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a9caf756e7c08abe60d82258f251c0c8e}\label{category_x_c_project_07_sub_project_08_a9caf756e7c08abe60d82258f251c0c8e}} 
+(void) -\/ {\bfseries remove\+From\+Project\+References\+:for\+Products\+Group\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a17db0fff9e79f69dd267d5a6474625dc}\label{category_x_c_project_07_sub_project_08_a17db0fff9e79f69dd267d5a6474625dc}} 
+(void) -\/ {\bfseries remove\+Target\+Dependencies\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a05186f24cbaeca02ae5a78dbddf9ab7e}\label{category_x_c_project_07_sub_project_08_a05186f24cbaeca02ae5a78dbddf9ab7e}} 
+(NSString $\ast$) -\/ {\bfseries container\+Item\+Proxy\+Key\+For\+Name\+:proxy\+Type\+:}
+\item 
+\mbox{\Hypertarget{category_x_c_project_07_sub_project_08_a1fbbe1cda07f9e1d543abef4b1f251d4}\label{category_x_c_project_07_sub_project_08_a1fbbe1cda07f9e1d543abef4b1f251d4}} 
+(NSString $\ast$) -\/ {\bfseries products\+Group\+Key\+For\+Key\+:}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCProject+\+Sub\+Project.\+h\item 
+XCProject+\+Sub\+Project.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/category_x_c_sub_project_definition_07_08.tex b/doc/latex/category_x_c_sub_project_definition_07_08.tex
new file mode 100644
index 0000000..49afd5a
--- /dev/null
+++ b/doc/latex/category_x_c_sub_project_definition_07_08.tex
@@ -0,0 +1,13 @@
+\hypertarget{category_x_c_sub_project_definition_07_08}{}\doxysection{XCSub\+Project\+Definition() Category Reference}
+\label{category_x_c_sub_project_definition_07_08}\index{XCSubProjectDefinition()@{XCSubProjectDefinition()}}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{category_x_c_sub_project_definition_07_08_a72acb788ea0676c7704f138b533a3a77}\label{category_x_c_sub_project_definition_07_08_a72acb788ea0676c7704f138b533a3a77}} 
+NSString $\ast$ {\bfseries relative\+Path}
+\end{DoxyCompactItemize}
+
+
+The documentation for this category was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCSub\+Project\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/doxygen.sty b/doc/latex/doxygen.sty
new file mode 100644
index 0000000..7e01991
--- /dev/null
+++ b/doc/latex/doxygen.sty
@@ -0,0 +1,601 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+
+% Packages used by this style file
+\RequirePackage{alltt}
+%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{calc}
+\RequirePackage{float}
+%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{verbatim}
+\RequirePackage[table]{xcolor}
+\RequirePackage{longtable_doxygen}
+\RequirePackage{tabu_doxygen}
+\RequirePackage{fancyvrb}
+\RequirePackage{tabularx}
+\RequirePackage{multicol}
+\RequirePackage{multirow}
+\RequirePackage{hanging}
+\RequirePackage{ifpdf}
+\RequirePackage{adjustbox}
+\RequirePackage{amssymb}
+\RequirePackage{stackengine}
+\RequirePackage{enumitem}
+\RequirePackage{alphalph}
+\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
+\RequirePackage{enumitem}
+
+%---------- Internal commands used in this style file ----------------
+
+\newcommand{\ensurespace}[1]{%
+  \begingroup%
+    \setlength{\dimen@}{#1}%
+    \vskip\z@\@plus\dimen@%
+    \penalty -100\vskip\z@\@plus -\dimen@%
+    \vskip\dimen@%
+    \penalty 9999%
+    \vskip -\dimen@%
+    \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
+  \endgroup%
+}
+
+\newcommand{\DoxyHorRuler}[1]{%
+  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+  \ifthenelse{#1=0}%
+  {%
+    \hrule%
+  }%
+  {%
+    \hrulefilll%
+  }%
+}
+\newcommand{\DoxyLabelFont}{}
+\newcommand{\entrylabel}[1]{%
+  {%
+    \parbox[b]{\labelwidth-4pt}{%
+      \makebox[0pt][l]{\DoxyLabelFont#1}%
+      \vspace{1.5\baselineskip}%
+    }%
+  }%
+}
+
+\newenvironment{DoxyDesc}[1]{%
+  \ensurespace{4\baselineskip}%
+  \begin{list}{}{%
+    \settowidth{\labelwidth}{20pt}%
+    %\setlength{\parsep}{0pt}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\leftmargin}{\labelwidth+\labelsep}%
+    \renewcommand{\makelabel}{\entrylabel}%
+  }%
+  \item[#1]%
+}{%
+  \end{list}%
+}
+
+\newsavebox{\xrefbox}
+\newlength{\xreflength}
+\newcommand{\xreflabel}[1]{%
+  \sbox{\xrefbox}{#1}%
+  \setlength{\xreflength}{\wd\xrefbox}%
+  \ifthenelse{\xreflength>\labelwidth}{%
+    \begin{minipage}{\textwidth}%
+      \setlength{\parindent}{0pt}%
+      \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
+    \end{minipage}%
+  }{%
+   \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
+  }%
+}
+
+%---------- Commands used by doxygen LaTeX output generator ----------
+
+% Used by <pre> ... </pre>
+\newenvironment{DoxyPre}{%
+  \small%
+  \begin{alltt}%
+}{%
+  \end{alltt}%
+  \normalsize%
+}
+% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
+\newlength{\CodeWidthChar}
+\newlength{\CodeHeightChar}
+\settowidth{\CodeWidthChar}{?}
+\settoheight{\CodeHeightChar}{?}
+% Necessary for hanging indent
+\newlength{\DoxyCodeWidth}
+
+\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
+
+\newcommand\NiceSpace{%
+     \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
+}
+
+% Used by @code ... @endcode
+\newenvironment{DoxyCode}[1]{%
+  \par%
+  \scriptsize%
+  \normalfont\ttfamily%
+  \rightskip0pt plus 1fil%
+  \settowidth{\DoxyCodeWidth}{000000}%
+  \settowidth{\CodeWidthChar}{?}%
+  \settoheight{\CodeHeightChar}{?}%
+  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+  \ifthenelse{\equal{#1}{0}}
+  {
+    {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
+  }
+  {
+    {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
+  }
+
+}{%
+  \normalfont%
+  \normalsize%
+  \settowidth{\CodeWidthChar}{?}%
+  \settoheight{\CodeHeightChar}{?}%
+}
+
+% Redefining not defined characters, i.e. "Replacement Character" in tex output.
+\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
+   \textcolor{white}{\sffamily\bfseries\small ?}}{%
+   \rotatebox{45}{$\blacksquare$}}}}
+
+% Used by @example, @include, @includelineno and @dontinclude
+\newenvironment{DoxyCodeInclude}[1]{%
+	\DoxyCode{#1}%
+}{%
+  \endDoxyCode%
+}
+
+% Used by @verbatim ... @endverbatim
+\newenvironment{DoxyVerb}{%
+  \footnotesize%
+  \verbatim%
+}{%
+  \endverbatim%
+  \normalsize%
+}
+
+% Used by @verbinclude
+\newenvironment{DoxyVerbInclude}{%
+  \DoxyVerb%
+}{%
+  \endDoxyVerb%
+}
+
+% Used by numbered lists (using '-#' or <ol> ... </ol>)
+\setlistdepth{12}
+\newlist{DoxyEnumerate}{enumerate}{12}
+\setlist[DoxyEnumerate,1]{label=\arabic*.}
+\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,3]{label=\roman*.}
+\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
+\setlist[DoxyEnumerate,5]{label=\arabic*.}
+\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,7]{label=\roman*.}
+\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
+\setlist[DoxyEnumerate,9]{label=\arabic*.}
+\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
+\setlist[DoxyEnumerate,11]{label=\roman*.}
+\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
+
+% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
+\setlistdepth{12}
+\newlist{DoxyItemize}{itemize}{12}
+\setlist[DoxyItemize]{label=\textperiodcentered}
+
+\setlist[DoxyItemize,1]{label=\textbullet}
+\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
+\setlist[DoxyItemize,3]{label=\textasteriskcentered}
+\setlist[DoxyItemize,4]{label=\textperiodcentered}
+
+% Used by description lists (using <dl> ... </dl>)
+\newenvironment{DoxyDescription}{%
+  \description%
+}{%
+  \enddescription%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if caption is specified)
+\newenvironment{DoxyImage}{%
+  \begin{figure}[H]%
+    \centering%
+}{%
+  \end{figure}%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if no caption is specified)
+\newenvironment{DoxyImageNoCaption}{%
+  \begin{center}%
+}{%
+  \end{center}%
+}
+
+% Used by @image
+% (only if inline is specified)
+\newenvironment{DoxyInlineImage}{%
+}{%
+}
+
+% Used by @attention
+\newenvironment{DoxyAttention}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @author and @authors
+\newenvironment{DoxyAuthor}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @date
+\newenvironment{DoxyDate}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @invariant
+\newenvironment{DoxyInvariant}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @note
+\newenvironment{DoxyNote}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @post
+\newenvironment{DoxyPostcond}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @pre
+\newenvironment{DoxyPrecond}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @copyright
+\newenvironment{DoxyCopyright}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @remark
+\newenvironment{DoxyRemark}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @return and @returns
+\newenvironment{DoxyReturn}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @since
+\newenvironment{DoxySince}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @see
+\newenvironment{DoxySeeAlso}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @version
+\newenvironment{DoxyVersion}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @warning
+\newenvironment{DoxyWarning}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @internal
+\newenvironment{DoxyInternal}[1]{%
+  \paragraph*{#1}%
+}{%
+}
+
+% Used by @par and @paragraph
+\newenvironment{DoxyParagraph}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by parameter lists
+\newenvironment{DoxyParams}[2][]{%
+    \tabulinesep=1mm%
+    \par%
+    \ifthenelse{\equal{#1}{}}%
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
+    {\ifthenelse{\equal{#1}{1}}%
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
+    }
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\newenvironment{DoxyFields}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for fields simple class style enums
+\newenvironment{DoxyEnumFields}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for parameters within a detailed function description
+\newenvironment{DoxyParamCaption}{%
+  \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% 
+}{%
+}
+
+% Used by return value lists
+\newenvironment{DoxyRetVals}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used by exception lists
+\newenvironment{DoxyExceptions}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\newenvironment{DoxyTemplParams}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for member lists
+\newenvironment{DoxyCompactItemize}{%
+  \begin{itemize}%
+    \setlength{\itemsep}{-3pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\topsep}{0pt}%
+    \setlength{\partopsep}{0pt}%
+}{%
+  \end{itemize}%
+}
+
+% Used for member descriptions
+\newenvironment{DoxyCompactList}{%
+  \begin{list}{}{%
+    \setlength{\leftmargin}{0.5cm}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\topsep}{0pt}%
+    \renewcommand{\makelabel}{\hfill}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used for reference lists (@bug, @deprecated, @todo, etc.)
+\newenvironment{DoxyRefList}{%
+  \begin{list}{}{%
+    \setlength{\labelwidth}{10pt}%
+    \setlength{\leftmargin}{\labelwidth}%
+    \addtolength{\leftmargin}{\labelsep}%
+    \renewcommand{\makelabel}{\xreflabel}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used by @bug, @deprecated, @todo, etc.
+\newenvironment{DoxyRefDesc}[1]{%
+  \begin{list}{}{%
+    \renewcommand\makelabel[1]{\textbf{##1}}%
+    \settowidth\labelwidth{\makelabel{#1}}%
+    \setlength\leftmargin{\labelwidth+\labelsep}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used by parameter lists and simple sections
+\newenvironment{Desc}
+{\begin{list}{}{%
+    \settowidth{\labelwidth}{20pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\leftmargin}{\labelwidth+\labelsep}%
+    \renewcommand{\makelabel}{\entrylabel}%
+  }
+}{%
+  \end{list}%
+}
+
+% Used by tables
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
+\newenvironment{TabularC}[1]%
+{\tabulinesep=1mm
+\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
+{\end{longtabu*}\par}%
+
+\newenvironment{TabularNC}[1]%
+{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
+{\end{tabu}\par}%
+
+% Used for member group headers
+\newenvironment{Indent}{%
+  \begin{list}{}{%
+    \setlength{\leftmargin}{0.5cm}%
+  }%
+  \item[]\ignorespaces%
+}{%
+  \unskip%
+  \end{list}%
+}
+
+% Used when hyperlinks are turned off
+\newcommand{\doxyref}[3]{%
+  \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
+}
+
+% Used to link to a table when hyperlinks are turned on
+\newcommand{\doxytablelink}[2]{%
+  \ref{#1}%
+}
+
+% Used to link to a table when hyperlinks are turned off
+\newcommand{\doxytableref}[3]{%
+  \ref{#3}%
+}
+
+% Used by @addindex
+\newcommand{\lcurly}{\{}
+\newcommand{\rcurly}{\}}
+
+% Colors used for syntax highlighting
+\definecolor{comment}{rgb}{0.5,0.0,0.0}
+\definecolor{keyword}{rgb}{0.0,0.5,0.0}
+\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
+\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
+\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
+\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
+\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
+\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
+\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
+\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
+\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
+
+% Color used for table heading
+\newcommand{\tableheadbgcolor}{lightgray}%
+
+% Version of hypertarget with correct landing location
+\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
+
+% possibility to have sections etc. be within the margins
+% unfortunately had to copy part of book.cls and add \raggedright
+\makeatletter
+\newcommand\doxysection{\@startsection {section}{1}{\z@}%
+                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
+                                   {2.3ex \@plus.2ex}%
+                                   {\raggedright\normalfont\Large\bfseries}}
+\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
+                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                     {1.5ex \@plus .2ex}%
+                                     {\raggedright\normalfont\large\bfseries}}
+\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
+                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                     {1.5ex \@plus .2ex}%
+                                     {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
+                                    {3.25ex \@plus1ex \@minus.2ex}%
+                                    {-1em}%
+                                    {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
+                                       {3.25ex \@plus1ex \@minus .2ex}%
+                                       {-1em}%
+                                      {\raggedright\normalfont\normalsize\bfseries}}
+\makeatother
+% Define caption that is also suitable in a table
+\makeatletter
+\def\doxyfigcaption{%
+\H@refstepcounter{figure}%
+\@dblarg{\@caption{figure}}}
+\makeatother
+
+% Define alpha enumarative names for counters > 26
+\makeatletter
+\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
+\def\@enumalphalphcnt#1{\alphalph{#1}}
+\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
+\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
+\makeatother
+\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
+\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}
diff --git a/doc/latex/files.tex b/doc/latex/files.tex
new file mode 100644
index 0000000..0cd5e4a
--- /dev/null
+++ b/doc/latex/files.tex
@@ -0,0 +1,29 @@
+\doxysection{File List}
+Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\mbox{\hyperlink{_n_s_string_09_remove_emoji_8h_source}{NSString+\+Remove\+Emoji.\+h}} }{\pageref{_n_s_string_09_remove_emoji_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_abstract_definition_8h_source}{XCAbstract\+Definition.\+h}} }{\pageref{_x_c_abstract_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_build_file_8h_source}{XCBuild\+File.\+h}} }{\pageref{_x_c_build_file_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_build_shell_script_8h_source}{XCBuild\+Shell\+Script.\+h}} }{\pageref{_x_c_build_shell_script_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_build_shell_script_definition_8h_source}{XCBuild\+Shell\+Script\+Definition.\+h}} }{\pageref{_x_c_build_shell_script_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_class_definition_8h_source}{XCClass\+Definition.\+h}} }{\pageref{_x_c_class_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_file_operation_queue_8h_source}{XCFile\+Operation\+Queue.\+h}} }{\pageref{_x_c_file_operation_queue_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_framework_definition_8h_source}{XCFramework\+Definition.\+h}} }{\pageref{_x_c_framework_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_group_8h_source}{XCGroup.\+h}} }{\pageref{_x_c_group_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_key_builder_8h_source}{XCKey\+Builder.\+h}} }{\pageref{_x_c_key_builder_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_xcode_editor_8h_source}{Xcode\+Editor.\+h}} }{\pageref{_xcode_editor_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_xcode_group_member_8h_source}{Xcode\+Group\+Member.\+h}} }{\pageref{_xcode_group_member_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_xcode_member_type_8h_source}{Xcode\+Member\+Type.\+h}} }{\pageref{_xcode_member_type_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_xcode_source_file_type_8h_source}{Xcode\+Source\+File\+Type.\+h}} }{\pageref{_xcode_source_file_type_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_xcode_source_tree_type_8h_source}{Xcode\+Source\+Tree\+Type.\+h}} }{\pageref{_xcode_source_tree_type_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_project_09_sub_project_8h_source}{XCProject+\+Sub\+Project.\+h}} }{\pageref{_x_c_project_09_sub_project_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_project_8h_source}{XCProject.\+h}} }{\pageref{_x_c_project_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_project_build_config_8h_source}{XCProject\+Build\+Config.\+h}} }{\pageref{_x_c_project_build_config_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_source_file_8h_source}{XCSource\+File.\+h}} }{\pageref{_x_c_source_file_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_source_file_definition_8h_source}{XCSource\+File\+Definition.\+h}} }{\pageref{_x_c_source_file_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_sub_project_definition_8h_source}{XCSub\+Project\+Definition.\+h}} }{\pageref{_x_c_sub_project_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_target_8h_source}{XCTarget.\+h}} }{\pageref{_x_c_target_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_version_group_8h_source}{XCVersion\+Group.\+h}} }{\pageref{_x_c_version_group_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_xib_definition_8h_source}{XCXib\+Definition.\+h}} }{\pageref{_x_c_xib_definition_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_class_called_janine_8h_source}{Class\+Called\+Janine.\+h}} }{\pageref{_class_called_janine_8h_source}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_x_c_test_resource_utils_8h_source}{XCTest\+Resource\+Utils.\+h}} }{\pageref{_x_c_test_resource_utils_8h_source}}{}
+\end{DoxyCompactList}
diff --git a/doc/latex/hierarchy.tex b/doc/latex/hierarchy.tex
new file mode 100644
index 0000000..8aff82b
--- /dev/null
+++ b/doc/latex/hierarchy.tex
@@ -0,0 +1,57 @@
+\doxysection{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
+\item \contentsline{section}{Hash\+Value\+MD5\+Hash}{\pageref{struct_hash_value_m_d5_hash}}{}
+\item NSObject\begin{DoxyCompactList}
+\item \contentsline{section}{Class\+Called\+Janine}{\pageref{interface_class_called_janine}}{}
+\item \contentsline{section}{XCAbstract\+Definition}{\pageref{interface_x_c_abstract_definition}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{XCBuild\+Shell\+Script\+Definition}{\pageref{interface_x_c_build_shell_script_definition}}{}
+\item \contentsline{section}{XCClass\+Definition}{\pageref{interface_x_c_class_definition}}{}
+\item \contentsline{section}{XCFramework\+Definition}{\pageref{interface_x_c_framework_definition}}{}
+\item \contentsline{section}{XCSource\+File\+Definition}{\pageref{interface_x_c_source_file_definition}}{}
+\item \contentsline{section}{XCSub\+Project\+Definition}{\pageref{interface_x_c_sub_project_definition}}{}
+\item \contentsline{section}{XCXib\+Definition}{\pageref{interface_x_c_xib_definition}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{XCBuild\+Shell\+Script}{\pageref{interface_x_c_build_shell_script}}{}
+\item \contentsline{section}{XCFile\+Operation\+Queue}{\pageref{interface_x_c_file_operation_queue}}{}
+\item \contentsline{section}{XCFramework\+Path}{\pageref{interface_x_c_framework_path}}{}
+\item \contentsline{section}{XCGroup}{\pageref{interface_x_c_group}}{}
+\item \contentsline{section}{XCKey\+Builder}{\pageref{interface_x_c_key_builder}}{}
+\item \contentsline{section}{XCProject}{\pageref{interface_x_c_project}}{}
+\item \contentsline{section}{XCProject\+Build\+Config}{\pageref{interface_x_c_project_build_config}}{}
+\item \contentsline{section}{XCSource\+File}{\pageref{interface_x_c_source_file}}{}
+\item \contentsline{section}{XCTarget}{\pageref{interface_x_c_target}}{}
+\item \contentsline{section}{XCVersion\+Group}{\pageref{interface_x_c_version_group}}{}
+\end{DoxyCompactList}
+\item \texorpdfstring{$<$}{<}NSObject\texorpdfstring{$>$}{>}\begin{DoxyCompactList}
+\item \contentsline{section}{\texorpdfstring{$<$}{<}XCBuild\+File\texorpdfstring{$>$}{>}}{\pageref{protocol_x_c_build_file-p}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{XCGroup}{\pageref{interface_x_c_group}}{}
+\item \contentsline{section}{XCSource\+File}{\pageref{interface_x_c_source_file}}{}
+\item \contentsline{section}{XCVersion\+Group}{\pageref{interface_x_c_version_group}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{\texorpdfstring{$<$}{<}Xcode\+Group\+Member\texorpdfstring{$>$}{>}}{\pageref{protocol_xcode_group_member-p}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{XCGroup}{\pageref{interface_x_c_group}}{}
+\item \contentsline{section}{XCSource\+File}{\pageref{interface_x_c_source_file}}{}
+\item \contentsline{section}{XCVersion\+Group}{\pageref{interface_x_c_version_group}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\item \contentsline{section}{NSString(Remove\+Emoji)}{\pageref{category_n_s_string_07_remove_emoji_08}}{}
+\item \contentsline{section}{NSString(Xcode\+Member\+Type\+Extensions)}{\pageref{category_n_s_string_07_xcode_member_type_extensions_08}}{}
+\item \contentsline{section}{NSString(Xcode\+Source\+Tree\+Type\+Extensions)}{\pageref{category_n_s_string_07_xcode_source_tree_type_extensions_08}}{}
+\item \contentsline{section}{XCFile\+Operation\+Queue()}{\pageref{category_x_c_file_operation_queue_07_08}}{}
+\item \contentsline{section}{XCProject(Sub\+Project)}{\pageref{category_x_c_project_07_sub_project_08}}{}
+\item \contentsline{section}{XCSub\+Project\+Definition()}{\pageref{category_x_c_sub_project_definition_07_08}}{}
+\item XCTest\+Case\begin{DoxyCompactList}
+\item \contentsline{section}{XCBuild\+Shell\+Script\+Definition\+Tests}{\pageref{interface_x_c_build_shell_script_definition_tests}}{}
+\item \contentsline{section}{XCBuild\+Shell\+Script\+Tests}{\pageref{interface_x_c_build_shell_script_tests}}{}
+\item \contentsline{section}{XCClass\+Definition\+Tests}{\pageref{interface_x_c_class_definition_tests}}{}
+\item \contentsline{section}{XCGroup\+Tests}{\pageref{interface_x_c_group_tests}}{}
+\item \contentsline{section}{XCKey\+Builder\+Tests}{\pageref{interface_x_c_key_builder_tests}}{}
+\item \contentsline{section}{XCProject\+Tests}{\pageref{interface_x_c_project_tests}}{}
+\item \contentsline{section}{XCSub\+Project\+Definition\+Tests}{\pageref{interface_x_c_sub_project_definition_tests}}{}
+\item \contentsline{section}{XCTarget\+Tests}{\pageref{interface_x_c_target_tests}}{}
+\item \contentsline{section}{Xcode\+File\+Reference\+Type\+Tests}{\pageref{interface_xcode_file_reference_type_tests}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
diff --git a/doc/latex/interface_class_called_janine.eps b/doc/latex/interface_class_called_janine.eps
new file mode 100644
index 0000000..d0367c2
--- /dev/null
+++ b/doc/latex/interface_class_called_janine.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 320.000000
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.562500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(ClassCalledJanine) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (ClassCalledJanine) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_class_called_janine.tex b/doc/latex/interface_class_called_janine.tex
new file mode 100644
index 0000000..3bd4d84
--- /dev/null
+++ b/doc/latex/interface_class_called_janine.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_class_called_janine}{}\doxysection{Class\+Called\+Janine Class Reference}
+\label{interface_class_called_janine}\index{ClassCalledJanine@{ClassCalledJanine}}
+Inheritance diagram for Class\+Called\+Janine\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_class_called_janine}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+Class\+Called\+Janine.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_abstract_definition.eps b/doc/latex/interface_x_c_abstract_definition.eps
new file mode 100644
index 0000000..6867600
--- /dev/null
+++ b/doc/latex/interface_x_c_abstract_definition.eps
@@ -0,0 +1,225 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 55.555557
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 9.000000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 6 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCAbstractDefinition) cw
+(NSObject) cw
+(XCBuildShellScriptDefinition) cw
+(XCClassDefinition) cw
+(XCFrameworkDefinition) cw
+(XCSourceFileDefinition) cw
+(XCSubProjectDefinition) cw
+(XCXibDefinition) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCAbstractDefinition) 2.500000 1.000000 box
+ (NSObject) 2.500000 2.000000 box
+ (XCBuildShellScriptDefinition) 0.000000 0.000000 box
+ (XCClassDefinition) 1.000000 0.000000 box
+ (XCFrameworkDefinition) 2.000000 0.000000 box
+ (XCSourceFileDefinition) 3.000000 0.000000 box
+ (XCSubProjectDefinition) 4.000000 0.000000 box
+ (XCXibDefinition) 5.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 2.500000 1.000000 out
+solid
+1 2.500000 2.000000 in
+solid
+1 2.500000 0.250000 out
+solid
+0.000000 5.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
+solid
+0 3.000000 0.750000 in
+solid
+0 4.000000 0.750000 in
+solid
+0 5.000000 0.750000 in
diff --git a/doc/latex/interface_x_c_abstract_definition.tex b/doc/latex/interface_x_c_abstract_definition.tex
new file mode 100644
index 0000000..f421cf0
--- /dev/null
+++ b/doc/latex/interface_x_c_abstract_definition.tex
@@ -0,0 +1,32 @@
+\hypertarget{interface_x_c_abstract_definition}{}\doxysection{XCAbstract\+Definition Class Reference}
+\label{interface_x_c_abstract_definition}\index{XCAbstractDefinition@{XCAbstractDefinition}}
+
+
+{\ttfamily \#import $<$XCAbstract\+Definition.\+h$>$}
+
+Inheritance diagram for XCAbstract\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=1.555556cm]{interface_x_c_abstract_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_abstract_definition_a7403687ee4cd520f5a67743965744c07}\label{interface_x_c_abstract_definition_a7403687ee4cd520f5a67743965744c07}} 
+XCFile\+Operation\+Type {\bfseries \+\_\+file\+Operation\+Type}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_abstract_definition_a1d6a905c3233209a6557aa3d730dfa84}\label{interface_x_c_abstract_definition_a1d6a905c3233209a6557aa3d730dfa84}} 
+XCFile\+Operation\+Type {\bfseries file\+Operation\+Type}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Holds properties to all types of resource that can be added to an Xcode project. 
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCAbstract\+Definition.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_build_shell_script.eps b/doc/latex/interface_x_c_build_shell_script.eps
new file mode 100644
index 0000000..6ea8019
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 314.960632
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.587500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCBuildShellScript) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCBuildShellScript) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_build_shell_script.tex b/doc/latex/interface_x_c_build_shell_script.tex
new file mode 100644
index 0000000..b5bcd64
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script.tex
@@ -0,0 +1,58 @@
+\hypertarget{interface_x_c_build_shell_script}{}\doxysection{XCBuild\+Shell\+Script Class Reference}
+\label{interface_x_c_build_shell_script}\index{XCBuildShellScript@{XCBuildShellScript}}
+Inheritance diagram for XCBuild\+Shell\+Script\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_build_shell_script}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a776869cb5f3534f0123649c5d43fc27a}\label{interface_x_c_build_shell_script_a776869cb5f3534f0123649c5d43fc27a}} 
+(instancetype \+\_\+\+Nonnull) -\/ {\bfseries init\+With\+Project\+:key\+:name\+:files\+:input\+Paths\+:output\+Paths\+:run\+Only\+For\+Deployment\+Postprocessing\+:shell\+Path\+:shell\+Script\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a546240e131ef3113050edaedd1c02c40}\label{interface_x_c_build_shell_script_a546240e131ef3113050edaedd1c02c40}} 
+(\mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuild\+Shell\+Script}} $\ast$\+\_\+\+Nonnull) + {\bfseries shell\+Script\+With\+Project\+:key\+:name\+:files\+:input\+Paths\+:output\+Paths\+:run\+Only\+For\+Deployment\+Postprocessing\+:shell\+Path\+:shell\+Script\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a8395d31f9049a538bb94c0e4cb5277ea}\label{interface_x_c_build_shell_script_a8395d31f9049a538bb94c0e4cb5277ea}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_ab88419d2cd8525883ff6ccbe1cde2389}\label{interface_x_c_build_shell_script_ab88419d2cd8525883ff6ccbe1cde2389}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_ae21f51288e30e5baae9c194ccad324b1}\label{interface_x_c_build_shell_script_ae21f51288e30e5baae9c194ccad324b1}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a818e40adfaf4f36b0f6346c4927f6ace}\label{interface_x_c_build_shell_script_a818e40adfaf4f36b0f6346c4927f6ace}} 
+BOOL {\bfseries run\+Only\+For\+Deployment\+Postprocessing}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a2044c2e23e49807d91108a69331d4318}\label{interface_x_c_build_shell_script_a2044c2e23e49807d91108a69331d4318}} 
+NSString $\ast$ {\bfseries shell\+Script}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a4e707035e5735b970423bb741cabc4dc}\label{interface_x_c_build_shell_script_a4e707035e5735b970423bb741cabc4dc}} 
+NSString $\ast$ {\bfseries shell\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a1ea0a64850dca73c9192601168512396}\label{interface_x_c_build_shell_script_a1ea0a64850dca73c9192601168512396}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries files}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a2f3cb1af62fd6c58709e19f4010d82e1}\label{interface_x_c_build_shell_script_a2f3cb1af62fd6c58709e19f4010d82e1}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries input\+Paths}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_a09f1f7340392b62f808b4b71fab11c60}\label{interface_x_c_build_shell_script_a09f1f7340392b62f808b4b71fab11c60}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries output\+Paths}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCBuild\+Shell\+Script.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_build_shell_script_definition.eps b/doc/latex/interface_x_c_build_shell_script_definition.eps
new file mode 100644
index 0000000..539dd3f
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 333.333344
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.500000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCBuildShellScriptDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCBuildShellScriptDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_build_shell_script_definition.tex b/doc/latex/interface_x_c_build_shell_script_definition.tex
new file mode 100644
index 0000000..17edd97
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_definition.tex
@@ -0,0 +1,59 @@
+\hypertarget{interface_x_c_build_shell_script_definition}{}\doxysection{XCBuild\+Shell\+Script\+Definition Class Reference}
+\label{interface_x_c_build_shell_script_definition}\index{XCBuildShellScriptDefinition@{XCBuildShellScriptDefinition}}
+Inheritance diagram for XCBuild\+Shell\+Script\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_build_shell_script_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a6da6cb540f62b4f60daa622f583319b0}\label{interface_x_c_build_shell_script_definition_a6da6cb540f62b4f60daa622f583319b0}} 
+(instancetype \+\_\+\+Nonnull) -\/ {\bfseries init\+With\+Name\+:files\+:input\+Paths\+:output\+Paths\+:run\+Only\+For\+Deployment\+Postprocessing\+:shell\+Path\+:shell\+Script\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_ae61f52f8e27e373b73de4d5a813ace74}\label{interface_x_c_build_shell_script_definition_ae61f52f8e27e373b73de4d5a813ace74}} 
+(\mbox{\hyperlink{interface_x_c_build_shell_script_definition}{XCBuild\+Shell\+Script\+Definition}} $\ast$\+\_\+\+Nonnull) + {\bfseries shell\+Script\+Definition\+With\+Name\+:files\+:input\+Paths\+:output\+Paths\+:run\+Only\+For\+Deployment\+Postprocessing\+:shell\+Path\+:shell\+Script\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a78d2a6ce6dfc4f239454e4707f029a0b}\label{interface_x_c_build_shell_script_definition_a78d2a6ce6dfc4f239454e4707f029a0b}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a72b0cd7e8ea5bf38cb548992d82244ef}\label{interface_x_c_build_shell_script_definition_a72b0cd7e8ea5bf38cb548992d82244ef}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a1f1a1003dcc7451ef27d39b0d911d176}\label{interface_x_c_build_shell_script_definition_a1f1a1003dcc7451ef27d39b0d911d176}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_aa0d83a2385278ec41184c5002185483f}\label{interface_x_c_build_shell_script_definition_aa0d83a2385278ec41184c5002185483f}} 
+BOOL {\bfseries run\+Only\+For\+Deployment\+Postprocessing}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_ab9dd4e3c901959f29d3bd67e67626e34}\label{interface_x_c_build_shell_script_definition_ab9dd4e3c901959f29d3bd67e67626e34}} 
+NSString $\ast$ {\bfseries shell\+Script}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_acdfb1ba09449fd3caaf3370f2f106fb4}\label{interface_x_c_build_shell_script_definition_acdfb1ba09449fd3caaf3370f2f106fb4}} 
+NSString $\ast$ {\bfseries shell\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_aa04c6111c3736016c391fb39681d6cd7}\label{interface_x_c_build_shell_script_definition_aa04c6111c3736016c391fb39681d6cd7}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries files}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a22dc77450412e8c1422344c5719938c8}\label{interface_x_c_build_shell_script_definition_a22dc77450412e8c1422344c5719938c8}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries input\+Paths}
+\item 
+\mbox{\Hypertarget{interface_x_c_build_shell_script_definition_a404e502b97fa0ee9f62a7a2fbda4ced5}\label{interface_x_c_build_shell_script_definition_a404e502b97fa0ee9f62a7a2fbda4ced5}} 
+NSArray$<$ NSString $\ast$ $>$ $\ast$ {\bfseries output\+Paths}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCBuild\+Shell\+Script\+Definition.\+h\item 
+XCBuild\+Shell\+Script\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_build_shell_script_definition_tests.eps b/doc/latex/interface_x_c_build_shell_script_definition_tests.eps
new file mode 100644
index 0000000..cc993a6
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_definition_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 191.387558
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.612500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCBuildShellScriptDefinitionTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCBuildShellScriptDefinitionTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_build_shell_script_definition_tests.tex b/doc/latex/interface_x_c_build_shell_script_definition_tests.tex
new file mode 100644
index 0000000..12ed444
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_definition_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_build_shell_script_definition_tests}{}\doxysection{XCBuild\+Shell\+Script\+Definition\+Tests Class Reference}
+\label{interface_x_c_build_shell_script_definition_tests}\index{XCBuildShellScriptDefinitionTests@{XCBuildShellScriptDefinitionTests}}
+Inheritance diagram for XCBuild\+Shell\+Script\+Definition\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_build_shell_script_definition_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCBuild\+Shell\+Script\+Definition\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_build_shell_script_tests.eps b/doc/latex/interface_x_c_build_shell_script_tests.eps
new file mode 100644
index 0000000..154e548
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 256.410248
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.950000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCBuildShellScriptTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCBuildShellScriptTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_build_shell_script_tests.tex b/doc/latex/interface_x_c_build_shell_script_tests.tex
new file mode 100644
index 0000000..831ab71
--- /dev/null
+++ b/doc/latex/interface_x_c_build_shell_script_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_build_shell_script_tests}{}\doxysection{XCBuild\+Shell\+Script\+Tests Class Reference}
+\label{interface_x_c_build_shell_script_tests}\index{XCBuildShellScriptTests@{XCBuildShellScriptTests}}
+Inheritance diagram for XCBuild\+Shell\+Script\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_build_shell_script_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCBuild\+Shell\+Script\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_class_definition.eps b/doc/latex/interface_x_c_class_definition.eps
new file mode 100644
index 0000000..d11d9bd
--- /dev/null
+++ b/doc/latex/interface_x_c_class_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 434.782623
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.150000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCClassDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCClassDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_class_definition.tex b/doc/latex/interface_x_c_class_definition.tex
new file mode 100644
index 0000000..8bd06eb
--- /dev/null
+++ b/doc/latex/interface_x_c_class_definition.tex
@@ -0,0 +1,84 @@
+\hypertarget{interface_x_c_class_definition}{}\doxysection{XCClass\+Definition Class Reference}
+\label{interface_x_c_class_definition}\index{XCClassDefinition@{XCClassDefinition}}
+Inheritance diagram for XCClass\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_class_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+(id) -\/ \mbox{\hyperlink{interface_x_c_class_definition_a23690152051fe1b9faae85328a0b01e4}{init\+With\+Name\+:}}
+\item 
+(id) -\/ \mbox{\hyperlink{interface_x_c_class_definition_a5ac63d73ba9eb0cc41124a86a13960c8}{init\+With\+Name\+:language\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a8057794678ce18938d74712647cd768f}\label{interface_x_c_class_definition_a8057794678ce18938d74712647cd768f}} 
+(BOOL) -\/ {\bfseries is\+ObjectiveC}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_ae16be8fde4a4a4220c6304a7af843e62}\label{interface_x_c_class_definition_ae16be8fde4a4a4220c6304a7af843e62}} 
+(BOOL) -\/ {\bfseries is\+Objective\+CPlus\+Plus}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_ac55b847a41c97cebdae6129f97c04411}\label{interface_x_c_class_definition_ac55b847a41c97cebdae6129f97c04411}} 
+(BOOL) -\/ {\bfseries is\+CPlus\+Plus}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_ab581631959c4a311b08cef8795db19f4}\label{interface_x_c_class_definition_ab581631959c4a311b08cef8795db19f4}} 
+(NSString $\ast$) -\/ {\bfseries header\+File\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a2151047dda92fc08060f5db5f0870c5a}\label{interface_x_c_class_definition_a2151047dda92fc08060f5db5f0870c5a}} 
+(NSString $\ast$) -\/ {\bfseries source\+File\+Name}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_abd37214c1044249cf596305989375513}\label{interface_x_c_class_definition_abd37214c1044249cf596305989375513}} 
+(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}} $\ast$) + {\bfseries class\+Definition\+With\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_aa06c00d77cf6fd2e47574b0f25525b9a}\label{interface_x_c_class_definition_aa06c00d77cf6fd2e47574b0f25525b9a}} 
+(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}} $\ast$) + {\bfseries class\+Definition\+With\+Name\+:language\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_aca0cfdcf71ca0882755e48f8cf7fa2e6}\label{interface_x_c_class_definition_aca0cfdcf71ca0882755e48f8cf7fa2e6}} 
+NSString $\ast$ {\bfseries \+\_\+class\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a7f8877a914b3beb805895f8d9479721f}\label{interface_x_c_class_definition_a7f8877a914b3beb805895f8d9479721f}} 
+NSString $\ast$ {\bfseries \+\_\+header}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a049ddbd9b0c9b5db631bff86739a4563}\label{interface_x_c_class_definition_a049ddbd9b0c9b5db631bff86739a4563}} 
+NSString $\ast$ {\bfseries \+\_\+source}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a2546319b3a49afb05aeff8edb307e426}\label{interface_x_c_class_definition_a2546319b3a49afb05aeff8edb307e426}} 
+NSString $\ast$ {\bfseries class\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_a5aa654cae2860ce584f409bfcc3c34b1}\label{interface_x_c_class_definition_a5aa654cae2860ce584f409bfcc3c34b1}} 
+NSString $\ast$ {\bfseries header}
+\item 
+\mbox{\Hypertarget{interface_x_c_class_definition_acab09962126ebae52ec5bc9eb4e9c261}\label{interface_x_c_class_definition_acab09962126ebae52ec5bc9eb4e9c261}} 
+NSString $\ast$ {\bfseries source}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{interface_x_c_class_definition_a23690152051fe1b9faae85328a0b01e4}\label{interface_x_c_class_definition_a23690152051fe1b9faae85328a0b01e4}} 
+\index{XCClassDefinition@{XCClassDefinition}!initWithName:@{initWithName:}}
+\index{initWithName:@{initWithName:}!XCClassDefinition@{XCClassDefinition}}
+\doxysubsubsection{\texorpdfstring{initWithName:}{initWithName:}}
+{\footnotesize\ttfamily -\/ (id) init\+With\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{file\+Name }\end{DoxyParamCaption}}
+
+Initializes a new objective-\/c class definition. \mbox{\Hypertarget{interface_x_c_class_definition_a5ac63d73ba9eb0cc41124a86a13960c8}\label{interface_x_c_class_definition_a5ac63d73ba9eb0cc41124a86a13960c8}} 
+\index{XCClassDefinition@{XCClassDefinition}!initWithName:language:@{initWithName:language:}}
+\index{initWithName:language:@{initWithName:language:}!XCClassDefinition@{XCClassDefinition}}
+\doxysubsubsection{\texorpdfstring{initWithName:language:}{initWithName:language:}}
+{\footnotesize\ttfamily -\/ (id) \mbox{\hyperlink{interface_x_c_class_definition_a23690152051fe1b9faae85328a0b01e4}{init\+With\+Name\+:}} \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{class\+Name }\item[{language\+:(Class\+Definition\+Language)}]{language }\end{DoxyParamCaption}}
+
+Initializes a new class definition with the specified language. 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCClass\+Definition.\+h\item 
+XCClass\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_class_definition_tests.eps b/doc/latex/interface_x_c_class_definition_tests.eps
new file mode 100644
index 0000000..d129fbb
--- /dev/null
+++ b/doc/latex/interface_x_c_class_definition_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 264.900665
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.887500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCClassDefinitionTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCClassDefinitionTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_class_definition_tests.tex b/doc/latex/interface_x_c_class_definition_tests.tex
new file mode 100644
index 0000000..14320ca
--- /dev/null
+++ b/doc/latex/interface_x_c_class_definition_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_class_definition_tests}{}\doxysection{XCClass\+Definition\+Tests Class Reference}
+\label{interface_x_c_class_definition_tests}\index{XCClassDefinitionTests@{XCClassDefinitionTests}}
+Inheritance diagram for XCClass\+Definition\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_class_definition_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCClass\+Definition\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_file_operation_queue.eps b/doc/latex/interface_x_c_file_operation_queue.eps
new file mode 100644
index 0000000..074a74f
--- /dev/null
+++ b/doc/latex/interface_x_c_file_operation_queue.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 261.437897
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.912500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCFileOperationQueue) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCFileOperationQueue) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_file_operation_queue.tex b/doc/latex/interface_x_c_file_operation_queue.tex
new file mode 100644
index 0000000..e0a0eec
--- /dev/null
+++ b/doc/latex/interface_x_c_file_operation_queue.tex
@@ -0,0 +1,41 @@
+\hypertarget{interface_x_c_file_operation_queue}{}\doxysection{XCFile\+Operation\+Queue Class Reference}
+\label{interface_x_c_file_operation_queue}\index{XCFileOperationQueue@{XCFileOperationQueue}}
+Inheritance diagram for XCFile\+Operation\+Queue\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_file_operation_queue}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_a580ee6b6c0df85cb533376feb0dcf470}\label{interface_x_c_file_operation_queue_a580ee6b6c0df85cb533376feb0dcf470}} 
+(id) -\/ {\bfseries init\+With\+Base\+Directory\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_aa77e6c7278dffdf5c0d1a9895ea696b7}\label{interface_x_c_file_operation_queue_aa77e6c7278dffdf5c0d1a9895ea696b7}} 
+(BOOL) -\/ {\bfseries file\+With\+Name\+:exists\+In\+Project\+Directory\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_afa988e09a85dfc39ee594c16c3791d17}\label{interface_x_c_file_operation_queue_afa988e09a85dfc39ee594c16c3791d17}} 
+(void) -\/ {\bfseries queue\+Text\+File\+:in\+Directory\+:with\+Contents\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_a4d89200d1ae0025c2033419225a6e8a9}\label{interface_x_c_file_operation_queue_a4d89200d1ae0025c2033419225a6e8a9}} 
+(void) -\/ {\bfseries queue\+Data\+File\+:in\+Directory\+:with\+Contents\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_ad190028004951117f463ddb5d5484b74}\label{interface_x_c_file_operation_queue_ad190028004951117f463ddb5d5484b74}} 
+(void) -\/ {\bfseries queue\+Framework\+With\+File\+Path\+:in\+Directory\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_acee5306e88d22c322134064724a1227d}\label{interface_x_c_file_operation_queue_acee5306e88d22c322134064724a1227d}} 
+(void) -\/ {\bfseries queue\+Deletion\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_a7143342f5652922181dc982ce0a5ed71}\label{interface_x_c_file_operation_queue_a7143342f5652922181dc982ce0a5ed71}} 
+(void) -\/ {\bfseries queue\+Directory\+:in\+Directory\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_file_operation_queue_af3cda6fb196b8a4ccc377e06c5fbafb9}\label{interface_x_c_file_operation_queue_af3cda6fb196b8a4ccc377e06c5fbafb9}} 
+(void) -\/ {\bfseries commit\+File\+Operations}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCFile\+Operation\+Queue.\+h\item 
+XCFile\+Operation\+Queue.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_framework_definition.eps b/doc/latex/interface_x_c_framework_definition.eps
new file mode 100644
index 0000000..5fc698c
--- /dev/null
+++ b/doc/latex/interface_x_c_framework_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 389.610382
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.283333 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCFrameworkDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCFrameworkDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_framework_definition.tex b/doc/latex/interface_x_c_framework_definition.tex
new file mode 100644
index 0000000..3d20af0
--- /dev/null
+++ b/doc/latex/interface_x_c_framework_definition.tex
@@ -0,0 +1,59 @@
+\hypertarget{interface_x_c_framework_definition}{}\doxysection{XCFramework\+Definition Class Reference}
+\label{interface_x_c_framework_definition}\index{XCFrameworkDefinition@{XCFrameworkDefinition}}
+Inheritance diagram for XCFramework\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_framework_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a692f07320b6a66e6aa2619a28d483b32}\label{interface_x_c_framework_definition_a692f07320b6a66e6aa2619a28d483b32}} 
+(id) -\/ {\bfseries init\+With\+File\+Path\+:copy\+To\+Destination\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_ae42e50ae4ba4243aa0d89d695a8b4636}\label{interface_x_c_framework_definition_ae42e50ae4ba4243aa0d89d695a8b4636}} 
+(id) -\/ {\bfseries init\+With\+File\+Path\+:copy\+To\+Destination\+:source\+Tree\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a41770c4aa2b37b67210cd35070b4bc3d}\label{interface_x_c_framework_definition_a41770c4aa2b37b67210cd35070b4bc3d}} 
+(NSString $\ast$) -\/ {\bfseries file\+Name}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a13f96181b5df04e26f308cbc0122422a}\label{interface_x_c_framework_definition_a13f96181b5df04e26f308cbc0122422a}} 
+(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}} $\ast$) + {\bfseries framework\+Definition\+With\+File\+Path\+:copy\+To\+Destination\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_adacb9b07bba827484466795a8d6228ce}\label{interface_x_c_framework_definition_adacb9b07bba827484466795a8d6228ce}} 
+(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}} $\ast$) + {\bfseries framework\+Definition\+With\+File\+Path\+:copy\+To\+Destination\+:source\+Tree\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a4ec0180484e50df85802881a4e890862}\label{interface_x_c_framework_definition_a4ec0180484e50df85802881a4e890862}} 
+NSString $\ast$ {\bfseries \+\_\+file\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a635f330365c99e5806d51f44fc8ac10d}\label{interface_x_c_framework_definition_a635f330365c99e5806d51f44fc8ac10d}} 
+BOOL {\bfseries \+\_\+copy\+To\+Destination}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_add132a619414714f9571ccf77891d19a}\label{interface_x_c_framework_definition_add132a619414714f9571ccf77891d19a}} 
+Xcode\+Source\+Tree\+Type {\bfseries \+\_\+source\+Tree}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a62cb2edda93699a7b7d2690762deb1c4}\label{interface_x_c_framework_definition_a62cb2edda93699a7b7d2690762deb1c4}} 
+NSString $\ast$ {\bfseries file\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a788efd231c23735b89e508849a708544}\label{interface_x_c_framework_definition_a788efd231c23735b89e508849a708544}} 
+BOOL {\bfseries copy\+To\+Destination}
+\item 
+\mbox{\Hypertarget{interface_x_c_framework_definition_a1e8261e7bd47602a002aa966405054be}\label{interface_x_c_framework_definition_a1e8261e7bd47602a002aa966405054be}} 
+Xcode\+Source\+Tree\+Type {\bfseries source\+Tree}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCFramework\+Definition.\+h\item 
+XCFramework\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_framework_path.eps b/doc/latex/interface_x_c_framework_path.eps
new file mode 100644
index 0000000..d5c98f6
--- /dev/null
+++ b/doc/latex/interface_x_c_framework_path.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 317.460327
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.575000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCFrameworkPath) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCFrameworkPath) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_framework_path.tex b/doc/latex/interface_x_c_framework_path.tex
new file mode 100644
index 0000000..a2cdfe5
--- /dev/null
+++ b/doc/latex/interface_x_c_framework_path.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_framework_path}{}\doxysection{XCFramework\+Path Class Reference}
+\label{interface_x_c_framework_path}\index{XCFrameworkPath@{XCFrameworkPath}}
+Inheritance diagram for XCFramework\+Path\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_framework_path}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCGroup\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_group.eps b/doc/latex/interface_x_c_group.eps
new file mode 100644
index 0000000..b61372d
--- /dev/null
+++ b/doc/latex/interface_x_c_group.eps
@@ -0,0 +1,219 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 131.578949
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.800000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCGroup) cw
+(NSObject) cw
+(<XcodeGroupMember>) cw
+(<XCBuildFile>) cw
+(<NSObject>) cw
+(<NSObject>) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCGroup) 1.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+ (<XcodeGroupMember>) 1.000000 1.000000 box
+ (<XCBuildFile>) 2.000000 1.000000 box
+ (<NSObject>) 1.000000 2.000000 box
+ (<NSObject>) 2.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 0.000000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+1 0.000000 1.000000 in
+solid
+1 1.000000 1.000000 in
+solid
+0 1.000000 1.000000 out
+solid
+1 2.000000 1.000000 in
+solid
+0 2.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+1 2.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_group.tex b/doc/latex/interface_x_c_group.tex
new file mode 100644
index 0000000..5f87cc7
--- /dev/null
+++ b/doc/latex/interface_x_c_group.tex
@@ -0,0 +1,304 @@
+\hypertarget{interface_x_c_group}{}\doxysection{XCGroup Class Reference}
+\label{interface_x_c_group}\index{XCGroup@{XCGroup}}
+
+
+{\ttfamily \#import $<$XCGroup.\+h$>$}
+
+Inheritance diagram for XCGroup\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_group}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a944113b8b5a60f8271417f1edba1887f}\label{interface_x_c_group_a944113b8b5a60f8271417f1edba1887f}} 
+(id) -\/ {\bfseries init\+With\+Project\+:key\+:alias\+:path\+:children\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a97417d5f55cf08cac488121496de1e7a}\label{interface_x_c_group_a97417d5f55cf08cac488121496de1e7a}} 
+(id) -\/ {\bfseries init\+With\+Project\+:key\+:alias\+:path\+:children\+:member\+Type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a37732de928d286e0ab6260108f7e3c40}\label{interface_x_c_group_a37732de928d286e0ab6260108f7e3c40}} 
+(void) -\/ {\bfseries remove\+From\+Parent\+Group}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a2cf68d8e18c04115a66f89230b6f9897}\label{interface_x_c_group_a2cf68d8e18c04115a66f89230b6f9897}} 
+(void) -\/ {\bfseries remove\+From\+Parent\+Deleting\+Children\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a77e2963f8e9aebd04895c0c89ecc900f}\label{interface_x_c_group_a77e2963f8e9aebd04895c0c89ecc900f}} 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ {\bfseries parent\+Group}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a9ef355eeeb1f342ab13a64d0cc3b81e1}\label{interface_x_c_group_a9ef355eeeb1f342ab13a64d0cc3b81e1}} 
+(BOOL) -\/ {\bfseries is\+Root\+Group}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a205d13347d777b1c0b9ac78bb9806ceb}\label{interface_x_c_group_a205d13347d777b1c0b9ac78bb9806ceb}} 
+(BOOL) -\/ {\bfseries is\+Empty}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}{add\+Class\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a122394632f69a66216a83cf4465827f5}{add\+Class\+:to\+Targets\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_ad5359c55dbe6dec38410f04e11f23a25}{remove\+Class\+:from\+Targets\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_aff6d0325233590013bf94605cdd33ca1}{remove\+Header\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a05d334241ef5aaebd085ee12346edf11}{add\+Framework\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_aeb47434275327c36d755a4abc0a7086c}{remove\+Framework\+:from\+Targets\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a9fae9599b5eeb8790891e970c5f1dd55}{add\+Group\+With\+Path\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a77fc9f047b4f38476a40314c1d1b2e88}{add\+Group\+With\+Alias\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a9c7c7ad2a6a0f8d1cfa197b75b3790d4}{add\+Group\+With\+Alias\+:group\+Type\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_ace1128bb049a7ffe3a5ac0ff2aafa1ec}{add\+Version\+Group\+With\+Path\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a014d95b76b0ee5602bfd471a54971575}{add\+Folder\+Reference\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a93ec3ff78841c682e75be9c771f1e71f}\label{interface_x_c_group_a93ec3ff78841c682e75be9c771f1e71f}} 
+(void) -\/ {\bfseries add\+File\+Reference\+:with\+Type\+:}
+\item 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}{add\+Framework\+:to\+Targets\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}{add\+Source\+File\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_ae5c97eeb00aa9ba0fbfebe2b19b5c267}{add\+Xib\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}{add\+Xib\+:to\+Targets\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_af59bed33844ce3577749f4bcae7236e5}{add\+Sub\+Project\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}{add\+Sub\+Project\+:to\+Targets\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a973da6798e2dfb279835131d4f51fb2a}\label{interface_x_c_group_a973da6798e2dfb279835131d4f51fb2a}} 
+(void) -\/ {\bfseries remove\+Sub\+Project\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a0b0198d7635634e59d34ea08fad82d47}\label{interface_x_c_group_a0b0198d7635634e59d34ea08fad82d47}} 
+(void) -\/ {\bfseries remove\+Sub\+Project\+:from\+Targets\+:}
+\item 
+(NSArray$<$ id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a5ac6b60f770672010f50003340f9631b}{members}}
+\item 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a138ba369f7336fc0373416529e1d2495}{recursive\+Members}}
+\item 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_group_a856ec674626d75d10c61383860ef211a}{build\+File\+Keys}}
+\item 
+(id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) -\/ \mbox{\hyperlink{interface_x_c_group_a2010863a994ab2c9ba4b080b9fd8b849}{member\+With\+Key\+:}}
+\item 
+(id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) -\/ \mbox{\hyperlink{interface_x_c_group_af791799b15771786d1c1ed77a4218a70}{member\+With\+Display\+Name\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_group_a194d2b1f72d393aa045aa96bd72ff77a}{remove\+Member\+With\+Key\+:}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_ace4dbba41ce3b9493a9d009456049e2c}\label{interface_x_c_group_ace4dbba41ce3b9493a9d009456049e2c}} 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) + {\bfseries group\+With\+Project\+:key\+:alias\+:path\+:children\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a654ffe67ec06ba30e525c95f33dad1d0}\label{interface_x_c_group_a654ffe67ec06ba30e525c95f33dad1d0}} 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) + {\bfseries group\+With\+Project\+:key\+:alias\+:path\+:children\+:member\+Type\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a341022b2ba331f01eeddc6c1e00aab23}\label{interface_x_c_group_a341022b2ba331f01eeddc6c1e00aab23}} 
+NSString $\ast$ {\bfseries \+\_\+path\+Relative\+To\+Parent}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_ab00a6117f46b3c4ffbaaa7bbfe871f76}\label{interface_x_c_group_ab00a6117f46b3c4ffbaaa7bbfe871f76}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\item 
+\mbox{\Hypertarget{interface_x_c_group_a26b3260d1cc2d6fe3e0711d48e161854}\label{interface_x_c_group_a26b3260d1cc2d6fe3e0711d48e161854}} 
+NSString $\ast$ {\bfseries \+\_\+alias}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_group_a5e85f49148d25f0a01f5149231d41cac}{alias}}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_group_a8baa1a967bff74d9fb8ef6dc6e7fb13a}{path\+Relative\+To\+Parent}}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_group_afeb7627acb0907d9c3672653eca8b6eb}{key}}
+\item 
+NSMutable\+Array$<$ id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$ $>$ $\ast$ \mbox{\hyperlink{interface_x_c_group_a3456b071207ed8d3b79e66024d53a7db}{children}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Represents a \+\_\+group container in an Xcode project. A group can contain members of type {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} or other groups. 
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}\label{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}} 
+\index{XCGroup@{XCGroup}!addClass:@{addClass:}}
+\index{addClass:@{addClass:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addClass:}{addClass:}}
+{\footnotesize\ttfamily -\/ (void) add\+Class\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}}$\ast$)}]{class\+Definition }\end{DoxyParamCaption}}
+
+Adds a class to the \+\_\+group, as specified by the Class\+Definition. If the \+\_\+group already contains a class by the same name, the contents will be updated. \mbox{\Hypertarget{interface_x_c_group_a122394632f69a66216a83cf4465827f5}\label{interface_x_c_group_a122394632f69a66216a83cf4465827f5}} 
+\index{XCGroup@{XCGroup}!addClass:toTargets:@{addClass:toTargets:}}
+\index{addClass:toTargets:@{addClass:toTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addClass:toTargets:}{addClass:toTargets:}}
+{\footnotesize\ttfamily -\/ (void) \mbox{\hyperlink{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}{add\+Class\+:}} \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}} $\ast$)}]{class\+Definition }\item[{to\+Targets\+:(NSArray$<$ \mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$ $>$ $\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Adds a class to the \+\_\+group, making it a member of the specified \mbox{[}targets\mbox{]}(\mbox{\hyperlink{interface_x_c_target}{XCTarget}}). \mbox{\Hypertarget{interface_x_c_group_a014d95b76b0ee5602bfd471a54971575}\label{interface_x_c_group_a014d95b76b0ee5602bfd471a54971575}} 
+\index{XCGroup@{XCGroup}!addFolderReference:@{addFolderReference:}}
+\index{addFolderReference:@{addFolderReference:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addFolderReference:}{addFolderReference:}}
+{\footnotesize\ttfamily -\/ (void) add\+Folder\+Reference\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{source\+Folder }\end{DoxyParamCaption}}
+
+Adds a reference to a folder \mbox{\Hypertarget{interface_x_c_group_a05d334241ef5aaebd085ee12346edf11}\label{interface_x_c_group_a05d334241ef5aaebd085ee12346edf11}} 
+\index{XCGroup@{XCGroup}!addFramework:@{addFramework:}}
+\index{addFramework:@{addFramework:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addFramework:}{addFramework:}}
+{\footnotesize\ttfamily -\/ (void) add\+Framework\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}}$\ast$)}]{framework\+Definition }\end{DoxyParamCaption}}
+
+Adds a framework to the \+\_\+group. If the \+\_\+group already contains the framework, the contents will be updated if the framework definition\textquotesingle{}s copy\+To\+Destination flag is yes, otherwise it will be ignored. \mbox{\Hypertarget{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}\label{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}} 
+\index{XCGroup@{XCGroup}!addFramework:toTargets:@{addFramework:toTargets:}}
+\index{addFramework:toTargets:@{addFramework:toTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addFramework:toTargets:}{addFramework:toTargets:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) \mbox{\hyperlink{interface_x_c_group_a05d334241ef5aaebd085ee12346edf11}{add\+Framework\+:}} \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}} $\ast$)}]{framework }\item[{to\+Targets\+:(NSArray$<$ \mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$ $>$ $\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Adds a framework to the \+\_\+group, making it a member of the specified targets. \mbox{\Hypertarget{interface_x_c_group_a77fc9f047b4f38476a40314c1d1b2e88}\label{interface_x_c_group_a77fc9f047b4f38476a40314c1d1b2e88}} 
+\index{XCGroup@{XCGroup}!addGroupWithAlias:@{addGroupWithAlias:}}
+\index{addGroupWithAlias:@{addGroupWithAlias:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addGroupWithAlias:}{addGroupWithAlias:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) add\+Group\+With\+Alias\+: \begin{DoxyParamCaption}\item[{(NSString $\ast$)}]{alias }\end{DoxyParamCaption}}
+
+Adds a \+\_\+group with an alias to this \+\_\+group. \mbox{\Hypertarget{interface_x_c_group_a9c7c7ad2a6a0f8d1cfa197b75b3790d4}\label{interface_x_c_group_a9c7c7ad2a6a0f8d1cfa197b75b3790d4}} 
+\index{XCGroup@{XCGroup}!addGroupWithAlias:groupType:@{addGroupWithAlias:groupType:}}
+\index{addGroupWithAlias:groupType:@{addGroupWithAlias:groupType:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addGroupWithAlias:groupType:}{addGroupWithAlias:groupType:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) \mbox{\hyperlink{interface_x_c_group_a77fc9f047b4f38476a40314c1d1b2e88}{add\+Group\+With\+Alias\+:}} \begin{DoxyParamCaption}\item[{(NSString $\ast$)}]{alias }\item[{group\+Type\+:(Xcode\+Member\+Type)}]{type }\end{DoxyParamCaption}}
+
+Adds a \+\_\+group with an alias to this \+\_\+group and a particular type (only PBXGroup\+Type and PBXVariant\+Group\+Type are valid) \mbox{\Hypertarget{interface_x_c_group_a9fae9599b5eeb8790891e970c5f1dd55}\label{interface_x_c_group_a9fae9599b5eeb8790891e970c5f1dd55}} 
+\index{XCGroup@{XCGroup}!addGroupWithPath:@{addGroupWithPath:}}
+\index{addGroupWithPath:@{addGroupWithPath:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addGroupWithPath:}{addGroupWithPath:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) add\+Group\+With\+Path\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{path }\end{DoxyParamCaption}}
+
+Adds a \+\_\+group with a path relative to this \+\_\+group. \mbox{\Hypertarget{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}\label{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}} 
+\index{XCGroup@{XCGroup}!addSourceFile:@{addSourceFile:}}
+\index{addSourceFile:@{addSourceFile:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addSourceFile:}{addSourceFile:}}
+{\footnotesize\ttfamily -\/ (void) add\+Source\+File\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}}$\ast$)}]{source\+File\+Definition }\end{DoxyParamCaption}}
+
+Adds a source file of arbitrary type -\/ image resource, header, etc. \mbox{\Hypertarget{interface_x_c_group_af59bed33844ce3577749f4bcae7236e5}\label{interface_x_c_group_af59bed33844ce3577749f4bcae7236e5}} 
+\index{XCGroup@{XCGroup}!addSubProject:@{addSubProject:}}
+\index{addSubProject:@{addSubProject:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addSubProject:}{addSubProject:}}
+{\footnotesize\ttfamily -\/ (void) add\+Sub\+Project\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSub\+Project\+Definition}}$\ast$)}]{project\+Definition }\end{DoxyParamCaption}}
+
+Adds a sub-\/project to the \+\_\+group. If the \+\_\+group already contains a sub-\/project by the same name, the contents will be updated. Returns boolean success/fail; if method fails, caller should assume that project file is corrupt (or file format has changed). \mbox{\Hypertarget{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}\label{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}} 
+\index{XCGroup@{XCGroup}!addSubProject:toTargets:@{addSubProject:toTargets:}}
+\index{addSubProject:toTargets:@{addSubProject:toTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addSubProject:toTargets:}{addSubProject:toTargets:}}
+{\footnotesize\ttfamily -\/ (void) \mbox{\hyperlink{interface_x_c_group_af59bed33844ce3577749f4bcae7236e5}{add\+Sub\+Project\+:}} \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSub\+Project\+Definition}} $\ast$)}]{project\+Definition }\item[{to\+Targets\+:(NSArray$<$ \mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$ $>$ $\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Adds a sub-\/project to the \+\_\+group, making it a member of the specified \mbox{[}targets\mbox{]}(\mbox{\hyperlink{interface_x_c_target}{XCTarget}}). \mbox{\Hypertarget{interface_x_c_group_ace1128bb049a7ffe3a5ac0ff2aafa1ec}\label{interface_x_c_group_ace1128bb049a7ffe3a5ac0ff2aafa1ec}} 
+\index{XCGroup@{XCGroup}!addVersionGroupWithPath:@{addVersionGroupWithPath:}}
+\index{addVersionGroupWithPath:@{addVersionGroupWithPath:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addVersionGroupWithPath:}{addVersionGroupWithPath:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) add\+Version\+Group\+With\+Path\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{path }\end{DoxyParamCaption}}
+
+Adds a version group with a path relative to this group. \mbox{\Hypertarget{interface_x_c_group_ae5c97eeb00aa9ba0fbfebe2b19b5c267}\label{interface_x_c_group_ae5c97eeb00aa9ba0fbfebe2b19b5c267}} 
+\index{XCGroup@{XCGroup}!addXib:@{addXib:}}
+\index{addXib:@{addXib:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addXib:}{addXib:}}
+{\footnotesize\ttfamily -\/ (void) add\+Xib\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXib\+Definition}}$\ast$)}]{xib\+Definition }\end{DoxyParamCaption}}
+
+Adds a xib file to the \+\_\+group. If the \+\_\+group already contains a class by the same name, the contents will be updated. \mbox{\Hypertarget{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}\label{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}} 
+\index{XCGroup@{XCGroup}!addXib:toTargets:@{addXib:toTargets:}}
+\index{addXib:toTargets:@{addXib:toTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{addXib:toTargets:}{addXib:toTargets:}}
+{\footnotesize\ttfamily -\/ (void) \mbox{\hyperlink{interface_x_c_group_ae5c97eeb00aa9ba0fbfebe2b19b5c267}{add\+Xib\+:}} \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXib\+Definition}} $\ast$)}]{xib\+Definition }\item[{to\+Targets\+:(NSArray$<$ \mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$ $>$ $\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Adds a xib to the \+\_\+group, making it a member of the specified \mbox{[}targets\mbox{]}(\mbox{\hyperlink{interface_x_c_target}{XCTarget}}). \mbox{\Hypertarget{interface_x_c_group_a856ec674626d75d10c61383860ef211a}\label{interface_x_c_group_a856ec674626d75d10c61383860ef211a}} 
+\index{XCGroup@{XCGroup}!buildFileKeys@{buildFileKeys}}
+\index{buildFileKeys@{buildFileKeys}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{buildFileKeys}{buildFileKeys}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) build\+File\+Keys \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Keys of members from this group \mbox{\Hypertarget{interface_x_c_group_a5ac6b60f770672010f50003340f9631b}\label{interface_x_c_group_a5ac6b60f770672010f50003340f9631b}} 
+\index{XCGroup@{XCGroup}!members@{members}}
+\index{members@{members}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{members}{members}}
+{\footnotesize\ttfamily -\/ (NSArray$<$ id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$ $>$ $\ast$) members \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Instances of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} and {\ttfamily \mbox{\hyperlink{interface_x_c_group}{XCGroup}}} returned as the type {\ttfamily \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}}}. \mbox{\Hypertarget{interface_x_c_group_af791799b15771786d1c1ed77a4218a70}\label{interface_x_c_group_af791799b15771786d1c1ed77a4218a70}} 
+\index{XCGroup@{XCGroup}!memberWithDisplayName:@{memberWithDisplayName:}}
+\index{memberWithDisplayName:@{memberWithDisplayName:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{memberWithDisplayName:}{memberWithDisplayName:}}
+{\footnotesize\ttfamily -\/ (id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) member\+With\+Display\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the child with the specified name, or nil. \mbox{\Hypertarget{interface_x_c_group_a2010863a994ab2c9ba4b080b9fd8b849}\label{interface_x_c_group_a2010863a994ab2c9ba4b080b9fd8b849}} 
+\index{XCGroup@{XCGroup}!memberWithKey:@{memberWithKey:}}
+\index{memberWithKey:@{memberWithKey:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{memberWithKey:}{memberWithKey:}}
+{\footnotesize\ttfamily -\/ (id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) member\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the child with the specified key, or nil. \mbox{\Hypertarget{interface_x_c_group_a138ba369f7336fc0373416529e1d2495}\label{interface_x_c_group_a138ba369f7336fc0373416529e1d2495}} 
+\index{XCGroup@{XCGroup}!recursiveMembers@{recursiveMembers}}
+\index{recursiveMembers@{recursiveMembers}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{recursiveMembers}{recursiveMembers}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) recursive\+Members \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Keys of members from this group and any child groups. \mbox{\Hypertarget{interface_x_c_group_ad5359c55dbe6dec38410f04e11f23a25}\label{interface_x_c_group_ad5359c55dbe6dec38410f04e11f23a25}} 
+\index{XCGroup@{XCGroup}!removeClass:fromTargets:@{removeClass:fromTargets:}}
+\index{removeClass:fromTargets:@{removeClass:fromTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{removeClass:fromTargets:}{removeClass:fromTargets:}}
+{\footnotesize\ttfamily -\/ (void) remove\+Class\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}}$\ast$)}]{class\+Definition }\item[{from\+Targets\+:(NSArray$\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Removes a class from the \+\_\+group \mbox{\Hypertarget{interface_x_c_group_aeb47434275327c36d755a4abc0a7086c}\label{interface_x_c_group_aeb47434275327c36d755a4abc0a7086c}} 
+\index{XCGroup@{XCGroup}!removeFramework:fromTargets:@{removeFramework:fromTargets:}}
+\index{removeFramework:fromTargets:@{removeFramework:fromTargets:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{removeFramework:fromTargets:}{removeFramework:fromTargets:}}
+{\footnotesize\ttfamily -\/ (void) remove\+Framework\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_framework_definition}{XCFramework\+Definition}} $\ast$)}]{framework\+Definition }\item[{from\+Targets\+:(NSArray $\ast$)}]{targets }\end{DoxyParamCaption}}
+
+Removes a framework from the \+\_\+group \mbox{\Hypertarget{interface_x_c_group_aff6d0325233590013bf94605cdd33ca1}\label{interface_x_c_group_aff6d0325233590013bf94605cdd33ca1}} 
+\index{XCGroup@{XCGroup}!removeHeader:@{removeHeader:}}
+\index{removeHeader:@{removeHeader:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{removeHeader:}{removeHeader:}}
+{\footnotesize\ttfamily -\/ (void) remove\+Header\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_class_definition}{XCClass\+Definition}}$\ast$)}]{class\+Definition }\end{DoxyParamCaption}}
+
+Removes a header from the \+\_\+group \mbox{\Hypertarget{interface_x_c_group_a194d2b1f72d393aa045aa96bd72ff77a}\label{interface_x_c_group_a194d2b1f72d393aa045aa96bd72ff77a}} 
+\index{XCGroup@{XCGroup}!removeMemberWithKey:@{removeMemberWithKey:}}
+\index{removeMemberWithKey:@{removeMemberWithKey:}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{removeMemberWithKey:}{removeMemberWithKey:}}
+{\footnotesize\ttfamily -\/ (void) remove\+Member\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Remove the member with the specified key 
+
+\doxysubsection{Property Documentation}
+\mbox{\Hypertarget{interface_x_c_group_a5e85f49148d25f0a01f5149231d41cac}\label{interface_x_c_group_a5e85f49148d25f0a01f5149231d41cac}} 
+\index{XCGroup@{XCGroup}!alias@{alias}}
+\index{alias@{alias}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{alias}{alias}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) alias\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The alias of the group, which can be used to give the group a name other than the last path component.
+
+See\+: \mbox{[}\mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} display\+Name\mbox{]} \mbox{\Hypertarget{interface_x_c_group_a3456b071207ed8d3b79e66024d53a7db}\label{interface_x_c_group_a3456b071207ed8d3b79e66024d53a7db}} 
+\index{XCGroup@{XCGroup}!children@{children}}
+\index{children@{children}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{children}{children}}
+{\footnotesize\ttfamily -\/ (NSMutable\+Array$<$id$<$\mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}}$>$ $>$$\ast$) children\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+An array containing the groups members as {\ttfamily \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}}} types. \mbox{\Hypertarget{interface_x_c_group_afeb7627acb0907d9c3672653eca8b6eb}\label{interface_x_c_group_afeb7627acb0907d9c3672653eca8b6eb}} 
+\index{XCGroup@{XCGroup}!key@{key}}
+\index{key@{key}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{key}{key}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) key\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The group\textquotesingle{}s unique key. \mbox{\Hypertarget{interface_x_c_group_a8baa1a967bff74d9fb8ef6dc6e7fb13a}\label{interface_x_c_group_a8baa1a967bff74d9fb8ef6dc6e7fb13a}} 
+\index{XCGroup@{XCGroup}!pathRelativeToParent@{pathRelativeToParent}}
+\index{pathRelativeToParent@{pathRelativeToParent}!XCGroup@{XCGroup}}
+\doxysubsubsection{\texorpdfstring{pathRelativeToParent}{pathRelativeToParent}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) path\+Relative\+To\+Parent\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The path of the group relative to the group\textquotesingle{}s parent.
+
+See\+: \mbox{[}\mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} display\+Name\mbox{]} 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCGroup.\+h\item 
+XCGroup.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_group_tests.eps b/doc/latex/interface_x_c_group_tests.eps
new file mode 100644
index 0000000..ba0c7d4
--- /dev/null
+++ b/doc/latex/interface_x_c_group_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 392.156860
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.275000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCGroupTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCGroupTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_group_tests.tex b/doc/latex/interface_x_c_group_tests.tex
new file mode 100644
index 0000000..0a6cd6d
--- /dev/null
+++ b/doc/latex/interface_x_c_group_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_group_tests}{}\doxysection{XCGroup\+Tests Class Reference}
+\label{interface_x_c_group_tests}\index{XCGroupTests@{XCGroupTests}}
+Inheritance diagram for XCGroup\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_group_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCGroup\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_key_builder.eps b/doc/latex/interface_x_c_key_builder.eps
new file mode 100644
index 0000000..7cda705
--- /dev/null
+++ b/doc/latex/interface_x_c_key_builder.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 400.000000
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.250000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCKeyBuilder) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCKeyBuilder) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_key_builder.tex b/doc/latex/interface_x_c_key_builder.tex
new file mode 100644
index 0000000..6a05376
--- /dev/null
+++ b/doc/latex/interface_x_c_key_builder.tex
@@ -0,0 +1,38 @@
+\hypertarget{interface_x_c_key_builder}{}\doxysection{XCKey\+Builder Class Reference}
+\label{interface_x_c_key_builder}\index{XCKeyBuilder@{XCKeyBuilder}}
+Inheritance diagram for XCKey\+Builder\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_key_builder}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_key_builder_aca64c85e90a00e1234b3909d32db8c15}\label{interface_x_c_key_builder_aca64c85e90a00e1234b3909d32db8c15}} 
+(id) -\/ {\bfseries init\+Hash\+Value\+MD5\+Hash\+With\+Bytes\+:length\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_key_builder_a809ff460ab0e01ab7b8912d202ba2f01}\label{interface_x_c_key_builder_a809ff460ab0e01ab7b8912d202ba2f01}} 
+(NSString $\ast$) -\/ {\bfseries build}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_key_builder_a5811a756cdef15206a69eff593046138}\label{interface_x_c_key_builder_a5811a756cdef15206a69eff593046138}} 
+(\mbox{\hyperlink{interface_x_c_key_builder}{XCKey\+Builder}} $\ast$) + {\bfseries for\+Item\+Named\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_key_builder_aef0933f07779c85c0304a844aeef9828}\label{interface_x_c_key_builder_aef0933f07779c85c0304a844aeef9828}} 
+(\mbox{\hyperlink{interface_x_c_key_builder}{XCKey\+Builder}} $\ast$) + {\bfseries create\+Unique}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_key_builder_a8b47ac1c493fd0e6a31a5e60c18ced63}\label{interface_x_c_key_builder_a8b47ac1c493fd0e6a31a5e60c18ced63}} 
+unsigned char {\bfseries \+\_\+value} \mbox{[}HASH\+\_\+\+VALUE\+\_\+\+STORAGE\+\_\+\+SIZE\mbox{]}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCKey\+Builder.\+h\item 
+XCKey\+Builder.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_key_builder_tests.eps b/doc/latex/interface_x_c_key_builder_tests.eps
new file mode 100644
index 0000000..7ec5d38
--- /dev/null
+++ b/doc/latex/interface_x_c_key_builder_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 310.077515
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.612500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCKeyBuilderTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCKeyBuilderTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_key_builder_tests.tex b/doc/latex/interface_x_c_key_builder_tests.tex
new file mode 100644
index 0000000..6fe9606
--- /dev/null
+++ b/doc/latex/interface_x_c_key_builder_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_key_builder_tests}{}\doxysection{XCKey\+Builder\+Tests Class Reference}
+\label{interface_x_c_key_builder_tests}\index{XCKeyBuilderTests@{XCKeyBuilderTests}}
+Inheritance diagram for XCKey\+Builder\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_key_builder_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCKey\+Builder\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_project.eps b/doc/latex/interface_x_c_project.eps
new file mode 100644
index 0000000..b84b0f5
--- /dev/null
+++ b/doc/latex/interface_x_c_project.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 512.820496
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.975000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCProject) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCProject) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_project.tex b/doc/latex/interface_x_c_project.tex
new file mode 100644
index 0000000..5c8a249
--- /dev/null
+++ b/doc/latex/interface_x_c_project.tex
@@ -0,0 +1,340 @@
+\hypertarget{interface_x_c_project}{}\doxysection{XCProject Class Reference}
+\label{interface_x_c_project}\index{XCProject@{XCProject}}
+Inheritance diagram for XCProject\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_project}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+(id) -\/ \mbox{\hyperlink{interface_x_c_project_a88eb4b9317a0a1e232f7d1a37eed6b7c}{init\+With\+File\+Path\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a96e2f90d957fe6c8200e0af5daad7917}\label{interface_x_c_project_a96e2f90d957fe6c8200e0af5daad7917}} 
+(id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) -\/ {\bfseries group\+Member\+With\+Key\+:}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a131d039952cd8bbd455fa1a1d4f6f1f0}{files}}
+\item 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a8e37d7a871da0916f01ca46be04bd68a}{file\+With\+Key\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_af0ec1bda5ecf6777521993732e5ce081}{file\+With\+Name\+:}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_aa036faece156d323fd2b52d32eacddcf}{header\+Files}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_aa2611412e68a6a85e13aeacb47c27c9e}{objective\+CFiles}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a00a2007e659b99510355a3f0d259c487}{objective\+CPlus\+Plus\+Files}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_ab4e7d3f18d4026fd136e2710ea38f7ec}{xib\+Files}}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a0a12420d166e1899d7d864c4e432729b}\label{interface_x_c_project_a0a12420d166e1899d7d864c4e432729b}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ {\bfseries image\+PNGFiles}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a96bd2795c2056788b54d569fbecfeca8}\label{interface_x_c_project_a96bd2795c2056788b54d569fbecfeca8}} 
+(NSString $\ast$) -\/ {\bfseries file\+Path}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a02c11d0e7e8bd59140d4a1cfc3b07101}{groups}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a6fff64e311f1a406c25a64191232a36c}{root\+Group}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a02602c3235f28a5a4a3b175bc79031d1}{root\+Groups}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_ae92eccb36eef3337d7623ee1d890481e}{main\+Group}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a7a612074deba05dbfdc4bd2c8fbfc5a8}{group\+With\+Key\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a42b4f74d42d8554a2d0e967416aa99a6}{group\+With\+Display\+Name\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a5c29526ae6ec53f9a20b887dbaecff39}{group\+With\+Path\+From\+Root\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_ab4c661b07ed8ee9ce5a3c0d256b11f17}{group\+For\+Group\+Member\+With\+Key\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a5ca26311344e697b5935435d32c76e9d}{group\+With\+Source\+File\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_project_a8f240e15a2f922ea6dab7ed67830263e}{prune\+Empty\+Groups}}
+\item 
+(NSArray $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a12a30d4884d3ba06914d711558bb22a7}{version\+Groups}}
+\item 
+(\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_ae6bd0577d0e4c93368961b86ad108fee}{version\+Group\+With\+Key\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a7b2745077b7872bff0979b8f8f772adc}{version\+Group\+With\+Name\+:}}
+\item 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}{targets}}
+\item 
+(\mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}{target\+With\+Name\+:}}
+\item 
+(NSArray $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a4410361e238bd7b0c713904fec310a2a}{application\+Targets}}
+\item 
+(NSDictionary$<$ NSString $\ast$, \mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$ $>$ $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a265cc594ffba012b5bebfc64f301b6ff}{configurations}}
+\item 
+(\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a1b7d7949bad44777252ac4aa9a1d42a1}{configuration\+With\+Name\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a8cd3b721551f90b55b55dc0da39ee9ee}\label{interface_x_c_project_a8cd3b721551f90b55b55dc0da39ee9ee}} 
+(\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$) -\/ {\bfseries default\+Configuration}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a960203178c72583f5e4ae2d42b60e4f8}\label{interface_x_c_project_a960203178c72583f5e4ae2d42b60e4f8}} 
+(void) -\/ {\bfseries remove\+Object\+With\+Key\+:}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}
+\item 
+(NSMutable\+Dictionary $\ast$) -\/ \mbox{\hyperlink{interface_x_c_project_a0a4c7be71a2f8fd0c5b732bd03ff7fd6}{objects}}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_afbfbf5df3134d5fe516c496e543b5abe}\label{interface_x_c_project_afbfbf5df3134d5fe516c496e543b5abe}} 
+(NSMutable\+Dictionary $\ast$) -\/ {\bfseries data\+Store}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_aaa574f2ab415a7ca5ded893d8f1dc5da}\label{interface_x_c_project_aaa574f2ab415a7ca5ded893d8f1dc5da}} 
+(void) -\/ {\bfseries drop\+Cache}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a92dd68dc215dfed3ee2fcaab5b72346e}\label{interface_x_c_project_a92dd68dc215dfed3ee2fcaab5b72346e}} 
+(NSString $\ast$) -\/ {\bfseries reference\+Proxy\+Key\+For\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a1909100224b2527bc609caf8eab7a5f0}\label{interface_x_c_project_a1909100224b2527bc609caf8eab7a5f0}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ {\bfseries build\+Products\+For\+Targets\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_aca0d762dbf21a7515beb0cf49f636fbc}\label{interface_x_c_project_aca0d762dbf21a7515beb0cf49f636fbc}} 
+(void) -\/ {\bfseries add\+As\+Target\+Dependency\+:to\+Targets\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_ac1f47cda658191013bd6184356255d1f}\label{interface_x_c_project_ac1f47cda658191013bd6184356255d1f}} 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ {\bfseries keys\+For\+Project\+Objects\+Of\+Type\+:with\+Identifier\+:singleton\+:required\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a54669d671dac484cf5d207657f7c92a2}\label{interface_x_c_project_a54669d671dac484cf5d207657f7c92a2}} 
+(NSMutable\+Dictionary $\ast$) -\/ {\bfseries PBXProject\+Dict}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_aaa724f5876db3d4f5f82c4a5d9a48ae3}\label{interface_x_c_project_aaa724f5876db3d4f5f82c4a5d9a48ae3}} 
+(void) -\/ {\bfseries remove\+Proxies\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a235e112109c93d5987e2b29c836000a6}\label{interface_x_c_project_a235e112109c93d5987e2b29c836000a6}} 
+(void) -\/ {\bfseries add\+Proxies\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a9caf756e7c08abe60d82258f251c0c8e}\label{interface_x_c_project_a9caf756e7c08abe60d82258f251c0c8e}} 
+(void) -\/ {\bfseries remove\+From\+Project\+References\+:for\+Products\+Group\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a17db0fff9e79f69dd267d5a6474625dc}\label{interface_x_c_project_a17db0fff9e79f69dd267d5a6474625dc}} 
+(void) -\/ {\bfseries remove\+Target\+Dependencies\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a05186f24cbaeca02ae5a78dbddf9ab7e}\label{interface_x_c_project_a05186f24cbaeca02ae5a78dbddf9ab7e}} 
+(NSString $\ast$) -\/ {\bfseries container\+Item\+Proxy\+Key\+For\+Name\+:proxy\+Type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a1fbbe1cda07f9e1d543abef4b1f251d4}\label{interface_x_c_project_a1fbbe1cda07f9e1d543abef4b1f251d4}} 
+(NSString $\ast$) -\/ {\bfseries products\+Group\+Key\+For\+Key\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_abf4324ba26ad1e5575aabd9fbdf01a7b}\label{interface_x_c_project_abf4324ba26ad1e5575aabd9fbdf01a7b}} 
+(\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$) + {\bfseries project\+With\+File\+Path\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a173619eac2f16acb2df97bd260a5fa67}\label{interface_x_c_project_a173619eac2f16acb2df97bd260a5fa67}} 
+\mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFile\+Operation\+Queue}} $\ast$ {\bfseries \+\_\+file\+Operation\+Queue}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_ad6c4a515034b224b14539d41e3ff2ad0}\label{interface_x_c_project_ad6c4a515034b224b14539d41e3ff2ad0}} 
+NSString $\ast$ {\bfseries \+\_\+file\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a761fe57b6f262db7a654cc99b7b6953d}\label{interface_x_c_project_a761fe57b6f262db7a654cc99b7b6953d}} 
+NSMutable\+Dictionary $\ast$ {\bfseries \+\_\+data\+Store}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a8a80a0b2e1c4d2056d8f030446d85253}\label{interface_x_c_project_a8a80a0b2e1c4d2056d8f030446d85253}} 
+NSMutable\+Array $\ast$ {\bfseries \+\_\+targets}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a1e25dda852501fc14a96e0ca4e5bc23a}\label{interface_x_c_project_a1e25dda852501fc14a96e0ca4e5bc23a}} 
+NSMutable\+Dictionary $\ast$ {\bfseries \+\_\+groups}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a2b5b056b0df27bfc0ead818136c357a0}\label{interface_x_c_project_a2b5b056b0df27bfc0ead818136c357a0}} 
+NSMutable\+Dictionary $\ast$ {\bfseries \+\_\+version\+Groups}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a580f988f798957d8e0c8cb641e3baa1f}\label{interface_x_c_project_a580f988f798957d8e0c8cb641e3baa1f}} 
+NSMutable\+Dictionary $\ast$ {\bfseries \+\_\+configurations}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a234f33077598c48ffdf08af4b6cd3395}\label{interface_x_c_project_a234f33077598c48ffdf08af4b6cd3395}} 
+NSString $\ast$ {\bfseries \+\_\+default\+Configuration\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_ac7a8e11957c774711cabfa4821acb053}\label{interface_x_c_project_ac7a8e11957c774711cabfa4821acb053}} 
+NSString $\ast$ {\bfseries \+\_\+root\+Object\+Key}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_a695fa34a29d8e9545fcbc45d3f73147e}\label{interface_x_c_project_a695fa34a29d8e9545fcbc45d3f73147e}} 
+\mbox{\hyperlink{interface_x_c_file_operation_queue}{XCFile\+Operation\+Queue}} $\ast$ {\bfseries file\+Operation\+Queue}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{interface_x_c_project_a4410361e238bd7b0c713904fec310a2a}\label{interface_x_c_project_a4410361e238bd7b0c713904fec310a2a}} 
+\index{XCProject@{XCProject}!applicationTargets@{applicationTargets}}
+\index{applicationTargets@{applicationTargets}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{applicationTargets}{applicationTargets}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) application\+Targets \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Lists the targets which are of application type. \mbox{\Hypertarget{interface_x_c_project_a265cc594ffba012b5bebfc64f301b6ff}\label{interface_x_c_project_a265cc594ffba012b5bebfc64f301b6ff}} 
+\index{XCProject@{XCProject}!configurations@{configurations}}
+\index{configurations@{configurations}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{configurations}{configurations}}
+{\footnotesize\ttfamily -\/ (NSDictionary $\ast$) configurations \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Lists the configurations in an xcode project. \mbox{\Hypertarget{interface_x_c_project_a1b7d7949bad44777252ac4aa9a1d42a1}\label{interface_x_c_project_a1b7d7949bad44777252ac4aa9a1d42a1}} 
+\index{XCProject@{XCProject}!configurationWithName:@{configurationWithName:}}
+\index{configurationWithName:@{configurationWithName:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{configurationWithName:}{configurationWithName:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$) configuration\+With\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the configuration with the specified name, or nil. \mbox{\Hypertarget{interface_x_c_project_a131d039952cd8bbd455fa1a1d4f6f1f0}\label{interface_x_c_project_a131d039952cd8bbd455fa1a1d4f6f1f0}} 
+\index{XCProject@{XCProject}!files@{files}}
+\index{files@{files}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{files}{files}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) files \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns all file resources in the project, as an array of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} objects. \mbox{\Hypertarget{interface_x_c_project_a8e37d7a871da0916f01ca46be04bd68a}\label{interface_x_c_project_a8e37d7a871da0916f01ca46be04bd68a}} 
+\index{XCProject@{XCProject}!fileWithKey:@{fileWithKey:}}
+\index{fileWithKey:@{fileWithKey:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{fileWithKey:}{fileWithKey:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) file\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the project file with the specified key, or nil. \mbox{\Hypertarget{interface_x_c_project_af0ec1bda5ecf6777521993732e5ce081}\label{interface_x_c_project_af0ec1bda5ecf6777521993732e5ce081}} 
+\index{XCProject@{XCProject}!fileWithName:@{fileWithName:}}
+\index{fileWithName:@{fileWithName:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{fileWithName:}{fileWithName:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) file\+With\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the project file with the specified name, or nil. If more than one project file matches the specified name, which one is returned is undefined. \mbox{\Hypertarget{interface_x_c_project_ab4c661b07ed8ee9ce5a3c0d256b11f17}\label{interface_x_c_project_ab4c661b07ed8ee9ce5a3c0d256b11f17}} 
+\index{XCProject@{XCProject}!groupForGroupMemberWithKey:@{groupForGroupMemberWithKey:}}
+\index{groupForGroupMemberWithKey:@{groupForGroupMemberWithKey:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groupForGroupMemberWithKey:}{groupForGroupMemberWithKey:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) group\+For\+Group\+Member\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the parent \+\_\+group for the \+\_\+group or file with the given key; \mbox{\Hypertarget{interface_x_c_project_a02c11d0e7e8bd59140d4a1cfc3b07101}\label{interface_x_c_project_a02c11d0e7e8bd59140d4a1cfc3b07101}} 
+\index{XCProject@{XCProject}!groups@{groups}}
+\index{groups@{groups}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groups}{groups}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) groups \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Lists the groups in an xcode project, returning an array of {\ttfamily \mbox{\hyperlink{interface_x_c_group}{XCGroup}}} objects. \mbox{\Hypertarget{interface_x_c_project_a42b4f74d42d8554a2d0e967416aa99a6}\label{interface_x_c_project_a42b4f74d42d8554a2d0e967416aa99a6}} 
+\index{XCProject@{XCProject}!groupWithDisplayName:@{groupWithDisplayName:}}
+\index{groupWithDisplayName:@{groupWithDisplayName:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groupWithDisplayName:}{groupWithDisplayName:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) group\+With\+Display\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the {\itshape first} group in the project with the given name, or nil. \mbox{\Hypertarget{interface_x_c_project_a7a612074deba05dbfdc4bd2c8fbfc5a8}\label{interface_x_c_project_a7a612074deba05dbfdc4bd2c8fbfc5a8}} 
+\index{XCProject@{XCProject}!groupWithKey:@{groupWithKey:}}
+\index{groupWithKey:@{groupWithKey:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groupWithKey:}{groupWithKey:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) group\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the group with the given key, or nil. \mbox{\Hypertarget{interface_x_c_project_a5c29526ae6ec53f9a20b887dbaecff39}\label{interface_x_c_project_a5c29526ae6ec53f9a20b887dbaecff39}} 
+\index{XCProject@{XCProject}!groupWithPathFromRoot:@{groupWithPathFromRoot:}}
+\index{groupWithPathFromRoot:@{groupWithPathFromRoot:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groupWithPathFromRoot:}{groupWithPathFromRoot:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) group\+With\+Path\+From\+Root\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{path }\end{DoxyParamCaption}}
+
+Returns the \+\_\+group with the specified display name path -\/ the directory relative to the root \+\_\+group. Eg Source/\+Main \mbox{\Hypertarget{interface_x_c_project_a5ca26311344e697b5935435d32c76e9d}\label{interface_x_c_project_a5ca26311344e697b5935435d32c76e9d}} 
+\index{XCProject@{XCProject}!groupWithSourceFile:@{groupWithSourceFile:}}
+\index{groupWithSourceFile:@{groupWithSourceFile:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{groupWithSourceFile:}{groupWithSourceFile:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) group\+With\+Source\+File\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}$\ast$)}]{source\+File }\end{DoxyParamCaption}}
+
+Returns the parent group for the group or file with the source file \mbox{\Hypertarget{interface_x_c_project_aa036faece156d323fd2b52d32eacddcf}\label{interface_x_c_project_aa036faece156d323fd2b52d32eacddcf}} 
+\index{XCProject@{XCProject}!headerFiles@{headerFiles}}
+\index{headerFiles@{headerFiles}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{headerFiles}{headerFiles}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) header\+Files \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns all header files in the project, as an array of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} objects. \mbox{\Hypertarget{interface_x_c_project_a88eb4b9317a0a1e232f7d1a37eed6b7c}\label{interface_x_c_project_a88eb4b9317a0a1e232f7d1a37eed6b7c}} 
+\index{XCProject@{XCProject}!initWithFilePath:@{initWithFilePath:}}
+\index{initWithFilePath:@{initWithFilePath:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{initWithFilePath:}{initWithFilePath:}}
+{\footnotesize\ttfamily -\/ (id) init\+With\+File\+Path\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{file\+Path }\end{DoxyParamCaption}}
+
+Creates a new project editor instance with the specified Project.\+xcodeproj file. \mbox{\Hypertarget{interface_x_c_project_ae92eccb36eef3337d7623ee1d890481e}\label{interface_x_c_project_ae92eccb36eef3337d7623ee1d890481e}} 
+\index{XCProject@{XCProject}!mainGroup@{mainGroup}}
+\index{mainGroup@{mainGroup}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{mainGroup}{mainGroup}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) main\+Group \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns the main group under root object \mbox{\Hypertarget{interface_x_c_project_aa2611412e68a6a85e13aeacb47c27c9e}\label{interface_x_c_project_aa2611412e68a6a85e13aeacb47c27c9e}} 
+\index{XCProject@{XCProject}!objectiveCFiles@{objectiveCFiles}}
+\index{objectiveCFiles@{objectiveCFiles}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{objectiveCFiles}{objectiveCFiles}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) objective\+CFiles \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns all implementation obj-\/c implementation files in the project, as an array of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} objects. \mbox{\Hypertarget{interface_x_c_project_a00a2007e659b99510355a3f0d259c487}\label{interface_x_c_project_a00a2007e659b99510355a3f0d259c487}} 
+\index{XCProject@{XCProject}!objectiveCPlusPlusFiles@{objectiveCPlusPlusFiles}}
+\index{objectiveCPlusPlusFiles@{objectiveCPlusPlusFiles}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{objectiveCPlusPlusFiles}{objectiveCPlusPlusFiles}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) objective\+CPlus\+Plus\+Files \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns all implementation obj-\/c++ implementation files in the project, as an array of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} objects. \mbox{\Hypertarget{interface_x_c_project_a0a4c7be71a2f8fd0c5b732bd03ff7fd6}\label{interface_x_c_project_a0a4c7be71a2f8fd0c5b732bd03ff7fd6}} 
+\index{XCProject@{XCProject}!objects@{objects}}
+\index{objects@{objects}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{objects}{objects}}
+{\footnotesize\ttfamily -\/ (NSMutable\+Dictionary $\ast$) objects \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Raw project data. \mbox{\Hypertarget{interface_x_c_project_a8f240e15a2f922ea6dab7ed67830263e}\label{interface_x_c_project_a8f240e15a2f922ea6dab7ed67830263e}} 
+\index{XCProject@{XCProject}!pruneEmptyGroups@{pruneEmptyGroups}}
+\index{pruneEmptyGroups@{pruneEmptyGroups}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{pruneEmptyGroups}{pruneEmptyGroups}}
+{\footnotesize\ttfamily -\/ (void) prune\+Empty\+Groups \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Removes all empty groups from the project. \mbox{\Hypertarget{interface_x_c_project_a6fff64e311f1a406c25a64191232a36c}\label{interface_x_c_project_a6fff64e311f1a406c25a64191232a36c}} 
+\index{XCProject@{XCProject}!rootGroup@{rootGroup}}
+\index{rootGroup@{rootGroup}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{rootGroup}{rootGroup}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) root\+Group \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns the root (top-\/level) \+\_\+group. \mbox{\Hypertarget{interface_x_c_project_a02602c3235f28a5a4a3b175bc79031d1}\label{interface_x_c_project_a02602c3235f28a5a4a3b175bc79031d1}} 
+\index{XCProject@{XCProject}!rootGroups@{rootGroups}}
+\index{rootGroups@{rootGroups}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{rootGroups}{rootGroups}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) root\+Groups \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns the root (top-\/level) groups, if there are multiple. An array of root\+Group if there is only one. \mbox{\Hypertarget{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}\label{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}} 
+\index{XCProject@{XCProject}!save@{save}}
+\index{save@{save}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{save}{save}}
+{\footnotesize\ttfamily -\/ (void) save \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Saves a project after editing. \mbox{\Hypertarget{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}\label{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}} 
+\index{XCProject@{XCProject}!targets@{targets}}
+\index{targets@{targets}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{targets}{targets}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) targets \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Lists the targets in an xcode project, returning an array of {\ttfamily \mbox{\hyperlink{interface_x_c_target}{XCTarget}}} objects. \mbox{\Hypertarget{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}\label{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}} 
+\index{XCProject@{XCProject}!targetWithName:@{targetWithName:}}
+\index{targetWithName:@{targetWithName:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{targetWithName:}{targetWithName:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$) target\+With\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the target with the specified name, or nil. \mbox{\Hypertarget{interface_x_c_project_a12a30d4884d3ba06914d711558bb22a7}\label{interface_x_c_project_a12a30d4884d3ba06914d711558bb22a7}} 
+\index{XCProject@{XCProject}!versionGroups@{versionGroups}}
+\index{versionGroups@{versionGroups}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{versionGroups}{versionGroups}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) version\+Groups \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Lists the version groups in an xcode project, returning an array of {\ttfamily \mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}}} objects. \mbox{\Hypertarget{interface_x_c_project_ae6bd0577d0e4c93368961b86ad108fee}\label{interface_x_c_project_ae6bd0577d0e4c93368961b86ad108fee}} 
+\index{XCProject@{XCProject}!versionGroupWithKey:@{versionGroupWithKey:}}
+\index{versionGroupWithKey:@{versionGroupWithKey:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{versionGroupWithKey:}{versionGroupWithKey:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) version\+Group\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the version group with the given key, or nil. \mbox{\Hypertarget{interface_x_c_project_a7b2745077b7872bff0979b8f8f772adc}\label{interface_x_c_project_a7b2745077b7872bff0979b8f8f772adc}} 
+\index{XCProject@{XCProject}!versionGroupWithName:@{versionGroupWithName:}}
+\index{versionGroupWithName:@{versionGroupWithName:}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{versionGroupWithName:}{versionGroupWithName:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) version\+Group\+With\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the version group with the given file name, or nil. \mbox{\Hypertarget{interface_x_c_project_ab4e7d3f18d4026fd136e2710ea38f7ec}\label{interface_x_c_project_ab4e7d3f18d4026fd136e2710ea38f7ec}} 
+\index{XCProject@{XCProject}!xibFiles@{xibFiles}}
+\index{xibFiles@{xibFiles}!XCProject@{XCProject}}
+\doxysubsubsection{\texorpdfstring{xibFiles}{xibFiles}}
+{\footnotesize\ttfamily -\/ (NSArray $\ast$) xib\+Files \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Returns all the xib files in the project, as an array of {\ttfamily \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}}} objects. 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCProject.\+h\item 
+XCProject.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_project_build_config.eps b/doc/latex/interface_x_c_project_build_config.eps
new file mode 100644
index 0000000..532d00f
--- /dev/null
+++ b/doc/latex/interface_x_c_project_build_config.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 279.720276
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.787500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCProjectBuildConfig) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCProjectBuildConfig) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_project_build_config.tex b/doc/latex/interface_x_c_project_build_config.tex
new file mode 100644
index 0000000..3efe91c
--- /dev/null
+++ b/doc/latex/interface_x_c_project_build_config.tex
@@ -0,0 +1,50 @@
+\hypertarget{interface_x_c_project_build_config}{}\doxysection{XCProject\+Build\+Config Class Reference}
+\label{interface_x_c_project_build_config}\index{XCProjectBuildConfig@{XCProjectBuildConfig}}
+Inheritance diagram for XCProject\+Build\+Config\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_project_build_config}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a6aa3921a24aa1a04ed146d1bc01aa830}\label{interface_x_c_project_build_config_a6aa3921a24aa1a04ed146d1bc01aa830}} 
+(instancetype) -\/ {\bfseries init\+With\+Project\+:key\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a3b31022ad4a5a68e6d78a52fd9cc8b5a}\label{interface_x_c_project_build_config_a3b31022ad4a5a68e6d78a52fd9cc8b5a}} 
+(void) -\/ {\bfseries add\+Build\+Settings\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a86561120cb7c5ceefaa2423b50df4aea}\label{interface_x_c_project_build_config_a86561120cb7c5ceefaa2423b50df4aea}} 
+(void) -\/ {\bfseries add\+Or\+Replace\+Setting\+:for\+Key\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a314cc154633199f17ba9f0a6abb56fe2}\label{interface_x_c_project_build_config_a314cc154633199f17ba9f0a6abb56fe2}} 
+(id$<$ NSCopying $>$) -\/ {\bfseries value\+For\+Key\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a7e02f019e67fc5b36444bfcb21fa6886}\label{interface_x_c_project_build_config_a7e02f019e67fc5b36444bfcb21fa6886}} 
+(void) -\/ {\bfseries remove\+Setting\+By\+Key\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_ad0f82eebf4648908c2d410dcdbd52149}\label{interface_x_c_project_build_config_ad0f82eebf4648908c2d410dcdbd52149}} 
+(NSDictionary$<$ NSString $\ast$, NSString $\ast$ $>$ $\ast$) + {\bfseries build\+Configurations\+From\+Array\+:in\+Project\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a95d856873a021db2c92734a43f86801c}\label{interface_x_c_project_build_config_a95d856873a021db2c92734a43f86801c}} 
+(NSString $\ast$) + {\bfseries duplicated\+Build\+Configuration\+List\+With\+Key\+:in\+Project\+:with\+Build\+Configuration\+Visitor\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a15d0aa4eb48fdb07bde07ba2c5fa42a4}\label{interface_x_c_project_build_config_a15d0aa4eb48fdb07bde07ba2c5fa42a4}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_project_build_config_a23deb664a0d8ac6dcfca4c9f8f51f44e}\label{interface_x_c_project_build_config_a23deb664a0d8ac6dcfca4c9f8f51f44e}} 
+NSDictionary $\ast$ {\bfseries specified\+Build\+Settings}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCProject\+Build\+Config.\+h\item 
+XCProject\+Build\+Config.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_project_tests.eps b/doc/latex/interface_x_c_project_tests.eps
new file mode 100644
index 0000000..5080b46
--- /dev/null
+++ b/doc/latex/interface_x_c_project_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 373.831787
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.337500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCProjectTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCProjectTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_project_tests.tex b/doc/latex/interface_x_c_project_tests.tex
new file mode 100644
index 0000000..115b3da
--- /dev/null
+++ b/doc/latex/interface_x_c_project_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_project_tests}{}\doxysection{XCProject\+Tests Class Reference}
+\label{interface_x_c_project_tests}\index{XCProjectTests@{XCProjectTests}}
+Inheritance diagram for XCProject\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_project_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCProject\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_source_file.eps b/doc/latex/interface_x_c_source_file.eps
new file mode 100644
index 0000000..0904a54
--- /dev/null
+++ b/doc/latex/interface_x_c_source_file.eps
@@ -0,0 +1,219 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 131.578949
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.800000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCSourceFile) cw
+(NSObject) cw
+(<XcodeGroupMember>) cw
+(<XCBuildFile>) cw
+(<NSObject>) cw
+(<NSObject>) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCSourceFile) 1.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+ (<XcodeGroupMember>) 1.000000 1.000000 box
+ (<XCBuildFile>) 2.000000 1.000000 box
+ (<NSObject>) 1.000000 2.000000 box
+ (<NSObject>) 2.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 0.000000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+1 0.000000 1.000000 in
+solid
+1 1.000000 1.000000 in
+solid
+0 1.000000 1.000000 out
+solid
+1 2.000000 1.000000 in
+solid
+0 2.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+1 2.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_source_file.tex b/doc/latex/interface_x_c_source_file.tex
new file mode 100644
index 0000000..84208ca
--- /dev/null
+++ b/doc/latex/interface_x_c_source_file.tex
@@ -0,0 +1,136 @@
+\hypertarget{interface_x_c_source_file}{}\doxysection{XCSource\+File Class Reference}
+\label{interface_x_c_source_file}\index{XCSourceFile@{XCSourceFile}}
+
+
+{\ttfamily \#import $<$XCSource\+File.\+h$>$}
+
+Inheritance diagram for XCSource\+File\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_source_file}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_ac8615e3a5e8ef18bef470b67499356d2}\label{interface_x_c_source_file_ac8615e3a5e8ef18bef470b67499356d2}} 
+(id) -\/ {\bfseries init\+With\+Project\+:key\+:type\+:name\+:source\+Tree\+:path\+:}
+\item 
+(BOOL) -\/ \mbox{\hyperlink{interface_x_c_source_file_a94f914a09f7abbbf3048a86ced9f7d10}{is\+Build\+File}}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a8901719779cfa15805ff292b3b242d07}\label{interface_x_c_source_file_a8901719779cfa15805ff292b3b242d07}} 
+(BOOL) -\/ {\bfseries can\+Become\+Build\+File}
+\item 
+(Xcode\+Member\+Type) -\/ \mbox{\hyperlink{interface_x_c_source_file_a32b82cd21f7ce2e00c05c331f5ca922d}{build\+Phase}}
+\item 
+(NSString $\ast$) -\/ \mbox{\hyperlink{interface_x_c_source_file_a01b5137080ebdcbfb927e8c541f2ecfe}{build\+File\+Key}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_source_file_a69feb820711a44a5d3adf4bc25669e37}{become\+Build\+File}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_source_file_ab4a6d4d99379dbdb99f8e1214ffed356}{remove\+Build\+File}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_source_file_a9694571d4b026b428a056162f20a6dd3}{set\+Compiler\+Flags\+:}}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_source_file_a009a3627573419fb5f9cb67c5afa3f87}{set\+Weak\+Reference}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a97625fb8853a21d30bf8033fc766859f}\label{interface_x_c_source_file_a97625fb8853a21d30bf8033fc766859f}} 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) + {\bfseries source\+File\+With\+Project\+:key\+:type\+:name\+:source\+Tree\+:path\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a73402fcd99aa8e97837f1adc998c2304}\label{interface_x_c_source_file_a73402fcd99aa8e97837f1adc998c2304}} 
+Xcode\+Source\+File\+Type {\bfseries type}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a82cbd166469f86d7b92ebd970a9e148b}\label{interface_x_c_source_file_a82cbd166469f86d7b92ebd970a9e148b}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a2a8feb4272e7439f072411462f82911f}\label{interface_x_c_source_file_a2a8feb4272e7439f072411462f82911f}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a135b3d0390f10bcd740055081e65524a}\label{interface_x_c_source_file_a135b3d0390f10bcd740055081e65524a}} 
+NSString $\ast$ {\bfseries source\+Tree}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_a0f8c01b546123f88b839bdbb14138d4d}\label{interface_x_c_source_file_a0f8c01b546123f88b839bdbb14138d4d}} 
+NSString $\ast$ {\bfseries path}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Represents a file resource in an xcode project. 
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{interface_x_c_source_file_a69feb820711a44a5d3adf4bc25669e37}\label{interface_x_c_source_file_a69feb820711a44a5d3adf4bc25669e37}} 
+\index{XCSourceFile@{XCSourceFile}!becomeBuildFile@{becomeBuildFile}}
+\index{becomeBuildFile@{becomeBuildFile}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{becomeBuildFile}{becomeBuildFile}}
+{\footnotesize\ttfamily -\/ (void) become\+Build\+File \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Adds this file to the project as an {\ttfamily xcode\+\_\+\+Build\+File}, ready to be included in targets. 
+
+Reimplemented from \mbox{\hyperlink{protocol_x_c_build_file-p}{$<$\+XCBuild\+File$>$}}.
+
+\mbox{\Hypertarget{interface_x_c_source_file_a01b5137080ebdcbfb927e8c541f2ecfe}\label{interface_x_c_source_file_a01b5137080ebdcbfb927e8c541f2ecfe}} 
+\index{XCSourceFile@{XCSourceFile}!buildFileKey@{buildFileKey}}
+\index{buildFileKey@{buildFileKey}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{buildFileKey}{buildFileKey}}
+{\footnotesize\ttfamily -\/ (NSString $\ast$) build\+File\+Key \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+
+
+Reimplemented from \mbox{\hyperlink{protocol_x_c_build_file-p}{$<$\+XCBuild\+File$>$}}.
+
+\mbox{\Hypertarget{interface_x_c_source_file_a32b82cd21f7ce2e00c05c331f5ca922d}\label{interface_x_c_source_file_a32b82cd21f7ce2e00c05c331f5ca922d}} 
+\index{XCSourceFile@{XCSourceFile}!buildPhase@{buildPhase}}
+\index{buildPhase@{buildPhase}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{buildPhase}{buildPhase}}
+{\footnotesize\ttfamily -\/ (Xcode\+Member\+Type) build\+Phase \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+
+
+Reimplemented from \mbox{\hyperlink{protocol_x_c_build_file-p}{$<$\+XCBuild\+File$>$}}.
+
+\mbox{\Hypertarget{interface_x_c_source_file_a94f914a09f7abbbf3048a86ced9f7d10}\label{interface_x_c_source_file_a94f914a09f7abbbf3048a86ced9f7d10}} 
+\index{XCSourceFile@{XCSourceFile}!isBuildFile@{isBuildFile}}
+\index{isBuildFile@{isBuildFile}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{isBuildFile}{isBuildFile}}
+{\footnotesize\ttfamily -\/ (BOOL) is\+Build\+File \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+If yes, indicates the file is able to be included for compilation in an {\ttfamily \mbox{\hyperlink{interface_x_c_target}{XCTarget}}}. 
+
+Reimplemented from \mbox{\hyperlink{protocol_x_c_build_file-p}{$<$\+XCBuild\+File$>$}}.
+
+\mbox{\Hypertarget{interface_x_c_source_file_ab4a6d4d99379dbdb99f8e1214ffed356}\label{interface_x_c_source_file_ab4a6d4d99379dbdb99f8e1214ffed356}} 
+\index{XCSourceFile@{XCSourceFile}!removeBuildFile@{removeBuildFile}}
+\index{removeBuildFile@{removeBuildFile}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{removeBuildFile}{removeBuildFile}}
+{\footnotesize\ttfamily -\/ (void) remove\+Build\+File \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Removes this file as an {\ttfamily xcode\+\_\+\+Build\+File} from the project. \mbox{\Hypertarget{interface_x_c_source_file_a9694571d4b026b428a056162f20a6dd3}\label{interface_x_c_source_file_a9694571d4b026b428a056162f20a6dd3}} 
+\index{XCSourceFile@{XCSourceFile}!setCompilerFlags:@{setCompilerFlags:}}
+\index{setCompilerFlags:@{setCompilerFlags:}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{setCompilerFlags:}{setCompilerFlags:}}
+{\footnotesize\ttfamily -\/ (void) set\+Compiler\+Flags\+: \begin{DoxyParamCaption}\item[{(NSString $\ast$)}]{value }\end{DoxyParamCaption}}
+
+Method for setting Compiler Flags for individual build files
+
+
+\begin{DoxyParams}{Parameters}
+{\em value} & String value to set in Compiler Flags \\
+\hline
+\end{DoxyParams}
+\mbox{\Hypertarget{interface_x_c_source_file_a009a3627573419fb5f9cb67c5afa3f87}\label{interface_x_c_source_file_a009a3627573419fb5f9cb67c5afa3f87}} 
+\index{XCSourceFile@{XCSourceFile}!setWeakReference@{setWeakReference}}
+\index{setWeakReference@{setWeakReference}!XCSourceFile@{XCSourceFile}}
+\doxysubsubsection{\texorpdfstring{setWeakReference}{setWeakReference}}
+{\footnotesize\ttfamily -\/ (void) set\+Weak\+Reference \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Method for setting the build file is a weak reference 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCSource\+File.\+h\item 
+XCSource\+File.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_source_file_definition.eps b/doc/latex/interface_x_c_source_file_definition.eps
new file mode 100644
index 0000000..797851e
--- /dev/null
+++ b/doc/latex/interface_x_c_source_file_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 392.156860
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.275000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCSourceFileDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCSourceFileDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_source_file_definition.tex b/doc/latex/interface_x_c_source_file_definition.tex
new file mode 100644
index 0000000..c9e2478
--- /dev/null
+++ b/doc/latex/interface_x_c_source_file_definition.tex
@@ -0,0 +1,59 @@
+\hypertarget{interface_x_c_source_file_definition}{}\doxysection{XCSource\+File\+Definition Class Reference}
+\label{interface_x_c_source_file_definition}\index{XCSourceFileDefinition@{XCSourceFileDefinition}}
+Inheritance diagram for XCSource\+File\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_source_file_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_ab0ce23ddeb76786ea11d5baee28cb608}\label{interface_x_c_source_file_definition_ab0ce23ddeb76786ea11d5baee28cb608}} 
+(id) -\/ {\bfseries init\+With\+Name\+:text\+:type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a8e77fb8abd13a719d8e2ebb02fdc8d7a}\label{interface_x_c_source_file_definition_a8e77fb8abd13a719d8e2ebb02fdc8d7a}} 
+(id) -\/ {\bfseries init\+With\+Name\+:data\+:type\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a91c12cde86894c007a0f1995e44ac7c1}\label{interface_x_c_source_file_definition_a91c12cde86894c007a0f1995e44ac7c1}} 
+(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}} $\ast$) + {\bfseries source\+Definition\+With\+Name\+:text\+:type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a79e91c49704ce9504a94e9e1b0307760}\label{interface_x_c_source_file_definition_a79e91c49704ce9504a94e9e1b0307760}} 
+(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}} $\ast$) + {\bfseries source\+Definition\+With\+Name\+:data\+:type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a387acd3e10ac68b221f2e96aa811453b}\label{interface_x_c_source_file_definition_a387acd3e10ac68b221f2e96aa811453b}} 
+(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}} $\ast$) + {\bfseries source\+Definition\+With\+Asset\+Catalog\+Name\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_aa603abd339463d91dce002f8e0c8b5e8}\label{interface_x_c_source_file_definition_aa603abd339463d91dce002f8e0c8b5e8}} 
+NSString $\ast$ {\bfseries \+\_\+source\+File\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a1bbeb08f884f2b7d973dcf43e80cc4b4}\label{interface_x_c_source_file_definition_a1bbeb08f884f2b7d973dcf43e80cc4b4}} 
+Xcode\+Source\+File\+Type {\bfseries \+\_\+type}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_ae8a4564b2d6ac56857b949450bad909a}\label{interface_x_c_source_file_definition_ae8a4564b2d6ac56857b949450bad909a}} 
+NSData $\ast$ {\bfseries \+\_\+data}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_aa178243081bf2ea2bfbd23528a413180}\label{interface_x_c_source_file_definition_aa178243081bf2ea2bfbd23528a413180}} 
+NSString $\ast$ {\bfseries source\+File\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a4e16359e1c3b2f3f07b1c87b056a24a7}\label{interface_x_c_source_file_definition_a4e16359e1c3b2f3f07b1c87b056a24a7}} 
+NSData $\ast$ {\bfseries data}
+\item 
+\mbox{\Hypertarget{interface_x_c_source_file_definition_a89ca94c0a2b6bf90b7c181ed8614c584}\label{interface_x_c_source_file_definition_a89ca94c0a2b6bf90b7c181ed8614c584}} 
+Xcode\+Source\+File\+Type {\bfseries type}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCSource\+File\+Definition.\+h\item 
+XCSource\+File\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_sub_project_definition.eps b/doc/latex/interface_x_c_sub_project_definition.eps
new file mode 100644
index 0000000..963583d
--- /dev/null
+++ b/doc/latex/interface_x_c_sub_project_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 392.156860
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.275000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCSubProjectDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCSubProjectDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_sub_project_definition.tex b/doc/latex/interface_x_c_sub_project_definition.tex
new file mode 100644
index 0000000..a4946e7
--- /dev/null
+++ b/doc/latex/interface_x_c_sub_project_definition.tex
@@ -0,0 +1,95 @@
+\hypertarget{interface_x_c_sub_project_definition}{}\doxysection{XCSub\+Project\+Definition Class Reference}
+\label{interface_x_c_sub_project_definition}\index{XCSubProjectDefinition@{XCSubProjectDefinition}}
+Inheritance diagram for XCSub\+Project\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_sub_project_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a53d521ea7fae7db7e9aedcb38b7ae801}\label{interface_x_c_sub_project_definition_a53d521ea7fae7db7e9aedcb38b7ae801}} 
+(id) -\/ {\bfseries init\+With\+Name\+:path\+:parent\+Project\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a6547ce2981677bb48ada29f755578bab}\label{interface_x_c_sub_project_definition_a6547ce2981677bb48ada29f755578bab}} 
+(NSString $\ast$) -\/ {\bfseries project\+File\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ae86cd94d3b946147cf9f85aa232fc48d}\label{interface_x_c_sub_project_definition_ae86cd94d3b946147cf9f85aa232fc48d}} 
+(NSString $\ast$) -\/ {\bfseries full\+Path\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a7f1306be6f728cee5fff0a227965adfa}\label{interface_x_c_sub_project_definition_a7f1306be6f728cee5fff0a227965adfa}} 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ {\bfseries build\+Product\+Names}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a4fef8b1017918476188ac37e4ef35c8a}\label{interface_x_c_sub_project_definition_a4fef8b1017918476188ac37e4ef35c8a}} 
+(NSString $\ast$) -\/ {\bfseries project\+Key}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ac77271ef0fb480fef436edec4da52e38}\label{interface_x_c_sub_project_definition_ac77271ef0fb480fef436edec4da52e38}} 
+(NSString $\ast$) -\/ {\bfseries path\+Relative\+To\+Project\+Root}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ab1665e46fec97cc08298b7e1da0ead41}\label{interface_x_c_sub_project_definition_ab1665e46fec97cc08298b7e1da0ead41}} 
+(void) -\/ {\bfseries init\+Full\+Project\+Path\+:group\+Path\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a0caa409f6624fff4c7ccfa725700320b}\label{interface_x_c_sub_project_definition_a0caa409f6624fff4c7ccfa725700320b}} 
+(\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSub\+Project\+Definition}} $\ast$) + {\bfseries with\+Name\+:path\+:parent\+Project\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a072b5d3edfc113540ae2b3eae0013599}\label{interface_x_c_sub_project_definition_a072b5d3edfc113540ae2b3eae0013599}} 
+NSString $\ast$ {\bfseries \+\_\+name}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a584269eeb584b4420ff0ffa069696ac1}\label{interface_x_c_sub_project_definition_a584269eeb584b4420ff0ffa069696ac1}} 
+NSString $\ast$ {\bfseries \+\_\+path}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_aa37c5dedcbb833305484f4f6d044d740}\label{interface_x_c_sub_project_definition_aa37c5dedcbb833305484f4f6d044d740}} 
+Xcode\+Source\+File\+Type {\bfseries \+\_\+type}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a33a8195d958daadb4246fae77f06996e}\label{interface_x_c_sub_project_definition_a33a8195d958daadb4246fae77f06996e}} 
+\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$ {\bfseries \+\_\+sub\+Project}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a1523a192c4e777b49e99c1917510e15c}\label{interface_x_c_sub_project_definition_a1523a192c4e777b49e99c1917510e15c}} 
+\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$ {\bfseries \+\_\+parent\+Project}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a4f6c5012222b6a82ab7b8cbeab37a26c}\label{interface_x_c_sub_project_definition_a4f6c5012222b6a82ab7b8cbeab37a26c}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a4c3a4943f32b50b230a1d9be0a8e219f}\label{interface_x_c_sub_project_definition_a4c3a4943f32b50b230a1d9be0a8e219f}} 
+NSString $\ast$ {\bfseries \+\_\+full\+Project\+Path}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a551d51ffe95bc16877bcfdcdc1a7d5e0}\label{interface_x_c_sub_project_definition_a551d51ffe95bc16877bcfdcdc1a7d5e0}} 
+NSString $\ast$ {\bfseries \+\_\+relative\+Path}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a67afe67729dc553562b66a7651650e98}\label{interface_x_c_sub_project_definition_a67afe67729dc553562b66a7651650e98}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a655b86f19b418a200951fca36d82f3de}\label{interface_x_c_sub_project_definition_a655b86f19b418a200951fca36d82f3de}} 
+NSString $\ast$ {\bfseries path}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ae5394747200ae66dd78766930d478d96}\label{interface_x_c_sub_project_definition_ae5394747200ae66dd78766930d478d96}} 
+Xcode\+Source\+File\+Type {\bfseries type}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ab011e26759fe6f64e2a0ed31d830ecad}\label{interface_x_c_sub_project_definition_ab011e26759fe6f64e2a0ed31d830ecad}} 
+\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$ {\bfseries sub\+Project}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_ad4d922689ef099b044a05842d6f93e9b}\label{interface_x_c_sub_project_definition_ad4d922689ef099b044a05842d6f93e9b}} 
+\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$ {\bfseries parent\+Project}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_acce7c006ddf1978a968ec9a9e49be358}\label{interface_x_c_sub_project_definition_acce7c006ddf1978a968ec9a9e49be358}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_sub_project_definition_a76bb73ad50d92eb16225b774428b1723}\label{interface_x_c_sub_project_definition_a76bb73ad50d92eb16225b774428b1723}} 
+NSString $\ast$ {\bfseries full\+Project\+Path}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCSub\+Project\+Definition.\+h\item 
+XCSub\+Project\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_sub_project_definition_tests.eps b/doc/latex/interface_x_c_sub_project_definition_tests.eps
new file mode 100644
index 0000000..7df1b18
--- /dev/null
+++ b/doc/latex/interface_x_c_sub_project_definition_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 219.780212
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.275000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCSubProjectDefinitionTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCSubProjectDefinitionTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_sub_project_definition_tests.tex b/doc/latex/interface_x_c_sub_project_definition_tests.tex
new file mode 100644
index 0000000..213d33c
--- /dev/null
+++ b/doc/latex/interface_x_c_sub_project_definition_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_sub_project_definition_tests}{}\doxysection{XCSub\+Project\+Definition\+Tests Class Reference}
+\label{interface_x_c_sub_project_definition_tests}\index{XCSubProjectDefinitionTests@{XCSubProjectDefinitionTests}}
+Inheritance diagram for XCSub\+Project\+Definition\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_sub_project_definition_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCSub\+Project\+Definition\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_target.eps b/doc/latex/interface_x_c_target.eps
new file mode 100644
index 0000000..6dd886a
--- /dev/null
+++ b/doc/latex/interface_x_c_target.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 540.540527
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.925000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCTarget) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCTarget) 0.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_target.tex b/doc/latex/interface_x_c_target.tex
new file mode 100644
index 0000000..f2cfcd2
--- /dev/null
+++ b/doc/latex/interface_x_c_target.tex
@@ -0,0 +1,123 @@
+\hypertarget{interface_x_c_target}{}\doxysection{XCTarget Class Reference}
+\label{interface_x_c_target}\index{XCTarget@{XCTarget}}
+
+
+{\ttfamily \#import $<$XCTarget.\+h$>$}
+
+Inheritance diagram for XCTarget\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_target}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_afad674edc98884edb24f090b5d378e31}\label{interface_x_c_target_afad674edc98884edb24f090b5d378e31}} 
+(id) -\/ {\bfseries init\+With\+Project\+:key\+:name\+:product\+Name\+:product\+Reference\+:product\+Type\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_ab8e51f2d194a3e5d49cfe21b1a4f2988}\label{interface_x_c_target_ab8e51f2d194a3e5d49cfe21b1a4f2988}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ {\bfseries resources}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_abeef4fa09df4f49cf068688fada18f36}\label{interface_x_c_target_abeef4fa09df4f49cf068688fada18f36}} 
+(NSArray$<$ id$<$ \mbox{\hyperlink{protocol_x_c_build_file-p}{XCBuild\+File}} $>$ $>$ $\ast$) -\/ {\bfseries members}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a8f874868fd7f7abec6f901abe9b360fc}\label{interface_x_c_target_a8f874868fd7f7abec6f901abe9b360fc}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_build_shell_script}{XCBuild\+Shell\+Script}} $\ast$ $>$ $\ast$) -\/ {\bfseries build\+Shell\+Scripts}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_aca1ec28004d29928d3eac511e25da744}\label{interface_x_c_target_aca1ec28004d29928d3eac511e25da744}} 
+(NSDictionary$<$ NSString $\ast$, \mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$ $>$ $\ast$) -\/ {\bfseries configurations}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a37f0c80efa42c78224b6b3e802e2dfc3}\label{interface_x_c_target_a37f0c80efa42c78224b6b3e802e2dfc3}} 
+(\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$) -\/ {\bfseries configuration\+With\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a8de328b2d78a913fe647eeae916e6953}\label{interface_x_c_target_a8de328b2d78a913fe647eeae916e6953}} 
+(\mbox{\hyperlink{interface_x_c_project_build_config}{XCProject\+Build\+Config}} $\ast$) -\/ {\bfseries default\+Configuration}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a4772a23624ec530a93df654bd898cb64}\label{interface_x_c_target_a4772a23624ec530a93df654bd898cb64}} 
+(void) -\/ {\bfseries add\+Member\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a7cf3b7f36adbe8f3fc8dd025fcb4f439}\label{interface_x_c_target_a7cf3b7f36adbe8f3fc8dd025fcb4f439}} 
+(void) -\/ {\bfseries make\+And\+Add\+Shell\+Script\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a6f33f5bdc159aa797a75b93af71d4365}\label{interface_x_c_target_a6f33f5bdc159aa797a75b93af71d4365}} 
+(void) -\/ {\bfseries remove\+Shell\+Script\+By\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a3aaed35866dc400d4b88e79ee9717b36}\label{interface_x_c_target_a3aaed35866dc400d4b88e79ee9717b36}} 
+(void) -\/ {\bfseries remove\+Member\+With\+Key\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a1a8fb69f0caceadc054e6826465fecf7}\label{interface_x_c_target_a1a8fb69f0caceadc054e6826465fecf7}} 
+(void) -\/ {\bfseries remove\+Members\+With\+Keys\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_af0c91f3ee07278742e9a0a7fa3374db7}\label{interface_x_c_target_af0c91f3ee07278742e9a0a7fa3374db7}} 
+(void) -\/ {\bfseries remove\+Resource\+With\+Key\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a7762ceb98c4f5f8005988378cb03bb6e}\label{interface_x_c_target_a7762ceb98c4f5f8005988378cb03bb6e}} 
+(void) -\/ {\bfseries remove\+Resources\+With\+Keys\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_afa9f6565fa69e8f456312435903816f5}\label{interface_x_c_target_afa9f6565fa69e8f456312435903816f5}} 
+(void) -\/ {\bfseries add\+Dependency\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_afec49a376a2f4856cda389ab5ad3e604}\label{interface_x_c_target_afec49a376a2f4856cda389ab5ad3e604}} 
+(instancetype) -\/ {\bfseries duplicate\+With\+Target\+Name\+:product\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a3b89d4c5550b832921fc5efc52ff41cd}\label{interface_x_c_target_a3b89d4c5550b832921fc5efc52ff41cd}} 
+(BOOL) -\/ {\bfseries is\+Application\+Type}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_ae48bbab918d1fe83afb0abac701224ab}\label{interface_x_c_target_ae48bbab918d1fe83afb0abac701224ab}} 
+(\mbox{\hyperlink{interface_x_c_target}{XCTarget}} $\ast$) + {\bfseries target\+With\+Project\+:key\+:name\+:product\+Name\+:product\+Reference\+:product\+Type\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a1eb6b30e6683e053774fe99e71467263}\label{interface_x_c_target_a1eb6b30e6683e053774fe99e71467263}} 
+\mbox{\hyperlink{interface_x_c_project}{XCProject}} $\ast$ {\bfseries \+\_\+project}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a8150da4d6b50ee82d9c34069560c0755}\label{interface_x_c_target_a8150da4d6b50ee82d9c34069560c0755}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_ad0d40c5cb0fe2d9495fd07d7575cb3c9}\label{interface_x_c_target_ad0d40c5cb0fe2d9495fd07d7575cb3c9}} 
+NSString $\ast$ {\bfseries \+\_\+name}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a95f516c6e639d53e399d2f1453017ed0}\label{interface_x_c_target_a95f516c6e639d53e399d2f1453017ed0}} 
+NSString $\ast$ {\bfseries \+\_\+product\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a6e35f7e1a3b65198b62d8e7b9cd43bcf}\label{interface_x_c_target_a6e35f7e1a3b65198b62d8e7b9cd43bcf}} 
+NSString $\ast$ {\bfseries \+\_\+product\+Reference}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_ad6e0170a3c489e63b073d1f273e26c36}\label{interface_x_c_target_ad6e0170a3c489e63b073d1f273e26c36}} 
+NSString $\ast$ {\bfseries \+\_\+product\+Type}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_ab2630c299a5e77c0dcc9d9f134d98e40}\label{interface_x_c_target_ab2630c299a5e77c0dcc9d9f134d98e40}} 
+NSString $\ast$ {\bfseries \+\_\+default\+Configuration\+Name}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a72e25adbcc07cf3df26734321465d926}\label{interface_x_c_target_a72e25adbcc07cf3df26734321465d926}} 
+NSString $\ast$ {\bfseries key}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a7a5f548eb9e5dd17334bce543ce76a20}\label{interface_x_c_target_a7a5f548eb9e5dd17334bce543ce76a20}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a5dc8a5b6b476e7adacd0d7d3b57e3660}\label{interface_x_c_target_a5dc8a5b6b476e7adacd0d7d3b57e3660}} 
+NSString $\ast$ {\bfseries product\+Name}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_acc530e4c19cd4a6a73595cdd3d5ec4cb}\label{interface_x_c_target_acc530e4c19cd4a6a73595cdd3d5ec4cb}} 
+NSString $\ast$ {\bfseries product\+Reference}
+\item 
+\mbox{\Hypertarget{interface_x_c_target_a132365ae8379582e0f5ee3b45f9849f9}\label{interface_x_c_target_a132365ae8379582e0f5ee3b45f9849f9}} 
+NSString $\ast$ {\bfseries product\+Type}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Represents a target in an xcode project. 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCTarget.\+h\item 
+XCTarget.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_target_tests.eps b/doc/latex/interface_x_c_target_tests.eps
new file mode 100644
index 0000000..a2b3235
--- /dev/null
+++ b/doc/latex/interface_x_c_target_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 388.349518
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.287500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCTargetTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCTargetTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_x_c_target_tests.tex b/doc/latex/interface_x_c_target_tests.tex
new file mode 100644
index 0000000..ed7a428
--- /dev/null
+++ b/doc/latex/interface_x_c_target_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_x_c_target_tests}{}\doxysection{XCTarget\+Tests Class Reference}
+\label{interface_x_c_target_tests}\index{XCTargetTests@{XCTargetTests}}
+Inheritance diagram for XCTarget\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_x_c_target_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCTarget\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_version_group.eps b/doc/latex/interface_x_c_version_group.eps
new file mode 100644
index 0000000..78ba827
--- /dev/null
+++ b/doc/latex/interface_x_c_version_group.eps
@@ -0,0 +1,219 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 131.578949
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.800000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCVersionGroup) cw
+(NSObject) cw
+(<XcodeGroupMember>) cw
+(<XCBuildFile>) cw
+(<NSObject>) cw
+(<NSObject>) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCVersionGroup) 1.000000 0.000000 box
+ (NSObject) 0.000000 1.000000 box
+ (<XcodeGroupMember>) 1.000000 1.000000 box
+ (<XCBuildFile>) 2.000000 1.000000 box
+ (<NSObject>) 1.000000 2.000000 box
+ (<NSObject>) 2.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 0.000000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+1 0.000000 1.000000 in
+solid
+1 1.000000 1.000000 in
+solid
+0 1.000000 1.000000 out
+solid
+1 2.000000 1.000000 in
+solid
+0 2.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+1 2.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_version_group.tex b/doc/latex/interface_x_c_version_group.tex
new file mode 100644
index 0000000..1362140
--- /dev/null
+++ b/doc/latex/interface_x_c_version_group.tex
@@ -0,0 +1,125 @@
+\hypertarget{interface_x_c_version_group}{}\doxysection{XCVersion\+Group Class Reference}
+\label{interface_x_c_version_group}\index{XCVersionGroup@{XCVersionGroup}}
+Inheritance diagram for XCVersion\+Group\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_version_group}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_af213f9c00a675f35026b80085ad94aa0}\label{interface_x_c_version_group_af213f9c00a675f35026b80085ad94aa0}} 
+(id) -\/ {\bfseries init\+With\+Project\+:key\+:path\+:children\+:current\+Version\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a13ebb5e30e489a4fa4740b2f34c8883f}\label{interface_x_c_version_group_a13ebb5e30e489a4fa4740b2f34c8883f}} 
+(void) -\/ {\bfseries remove\+From\+Parent\+Group}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a661019987c21b0b3d8d65710ab25f5ec}\label{interface_x_c_version_group_a661019987c21b0b3d8d65710ab25f5ec}} 
+(void) -\/ {\bfseries remove\+From\+Parent\+Deleting\+Children\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a98addd255bf7c092b89e278d2a872dee}\label{interface_x_c_version_group_a98addd255bf7c092b89e278d2a872dee}} 
+(\mbox{\hyperlink{interface_x_c_group}{XCGroup}} $\ast$) -\/ {\bfseries parent\+Group}
+\item 
+(void) -\/ \mbox{\hyperlink{interface_x_c_version_group_a95f29cd0630223ec7273c3c98c669b37}{add\+Data\+Model\+Source\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a03df67da6147478982e1b1cf7b8f8f41}\label{interface_x_c_version_group_a03df67da6147478982e1b1cf7b8f8f41}} 
+(NSArray$<$ \mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$ $>$ $\ast$) -\/ {\bfseries members}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a3fb5d4fe976d45f1c31dde0f8bd635fa}\label{interface_x_c_version_group_a3fb5d4fe976d45f1c31dde0f8bd635fa}} 
+(NSArray$<$ NSString $\ast$ $>$ $\ast$) -\/ {\bfseries build\+File\+Keys}
+\item 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_version_group_a80b556d4c32df75d842e15ca1e64b2cd}{member\+With\+Key\+:}}
+\item 
+(\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) -\/ \mbox{\hyperlink{interface_x_c_version_group_a162fb995f778781d25e2c94cd242a1d6}{member\+With\+Display\+Name\+:}}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a21f2d321fdfbde3a982db53bac486a25}\label{interface_x_c_version_group_a21f2d321fdfbde3a982db53bac486a25}} 
+(NSDictionary $\ast$) -\/ {\bfseries as\+Dictionary}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a54ef892c65df40da1bdde4642d2a3dc1}\label{interface_x_c_version_group_a54ef892c65df40da1bdde4642d2a3dc1}} 
+(\mbox{\hyperlink{interface_x_c_version_group}{XCVersion\+Group}} $\ast$) + {\bfseries version\+Group\+With\+Project\+:key\+:path\+:children\+:current\+Version\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a80e4bc62286f79aee7dd98295d5df963}\label{interface_x_c_version_group_a80e4bc62286f79aee7dd98295d5df963}} 
+NSString $\ast$ {\bfseries \+\_\+path\+Relative\+To\+Parent}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a17f1e0eb958b4c0501480fa138ba8aed}\label{interface_x_c_version_group_a17f1e0eb958b4c0501480fa138ba8aed}} 
+NSString $\ast$ {\bfseries \+\_\+key}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_version_group_afd3e95e73e576b608f6f5e2416898885}{alias}}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_version_group_af93e68eb50e9c368f2f94b1e3e81ef5b}{path\+Relative\+To\+Parent}}
+\item 
+NSString $\ast$ \mbox{\hyperlink{interface_x_c_version_group_acf4f1652b83fc6cc7fc3165d65c7655c}{key}}
+\item 
+NSMutable\+Array $\ast$ \mbox{\hyperlink{interface_x_c_version_group_ac094cb0b196c580cbac574781a642d0c}{versions}}
+\item 
+\mbox{\Hypertarget{interface_x_c_version_group_a338bab4567342ddc6ff152304876a5c2}\label{interface_x_c_version_group_a338bab4567342ddc6ff152304876a5c2}} 
+NSString $\ast$ {\bfseries current\+Version}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{interface_x_c_version_group_a95f29cd0630223ec7273c3c98c669b37}\label{interface_x_c_version_group_a95f29cd0630223ec7273c3c98c669b37}} 
+\index{XCVersionGroup@{XCVersionGroup}!addDataModelSource:@{addDataModelSource:}}
+\index{addDataModelSource:@{addDataModelSource:}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{addDataModelSource:}{addDataModelSource:}}
+{\footnotesize\ttfamily -\/ (void) add\+Data\+Model\+Source\+: \begin{DoxyParamCaption}\item[{(\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSource\+File\+Definition}}$\ast$)}]{source\+File\+Definition }\end{DoxyParamCaption}}
+
+Adds a source file. The only valid file type is XCData\+Model \mbox{\Hypertarget{interface_x_c_version_group_a162fb995f778781d25e2c94cd242a1d6}\label{interface_x_c_version_group_a162fb995f778781d25e2c94cd242a1d6}} 
+\index{XCVersionGroup@{XCVersionGroup}!memberWithDisplayName:@{memberWithDisplayName:}}
+\index{memberWithDisplayName:@{memberWithDisplayName:}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{memberWithDisplayName:}{memberWithDisplayName:}}
+{\footnotesize\ttfamily -\/ (id$<$ \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} $>$) member\+With\+Display\+Name\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{name }\end{DoxyParamCaption}}
+
+Returns the child with the specified name, or nil. \mbox{\Hypertarget{interface_x_c_version_group_a80b556d4c32df75d842e15ca1e64b2cd}\label{interface_x_c_version_group_a80b556d4c32df75d842e15ca1e64b2cd}} 
+\index{XCVersionGroup@{XCVersionGroup}!memberWithKey:@{memberWithKey:}}
+\index{memberWithKey:@{memberWithKey:}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{memberWithKey:}{memberWithKey:}}
+{\footnotesize\ttfamily -\/ (\mbox{\hyperlink{interface_x_c_source_file}{XCSource\+File}} $\ast$) member\+With\+Key\+: \begin{DoxyParamCaption}\item[{(NSString$\ast$)}]{key }\end{DoxyParamCaption}}
+
+Returns the child with the specified key, or nil. 
+
+\doxysubsection{Property Documentation}
+\mbox{\Hypertarget{interface_x_c_version_group_afd3e95e73e576b608f6f5e2416898885}\label{interface_x_c_version_group_afd3e95e73e576b608f6f5e2416898885}} 
+\index{XCVersionGroup@{XCVersionGroup}!alias@{alias}}
+\index{alias@{alias}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{alias}{alias}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) alias\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The alias of the group, which can be used to give the group a name other than the last path component.
+
+See\+: \mbox{[}\mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} display\+Name\mbox{]} \mbox{\Hypertarget{interface_x_c_version_group_acf4f1652b83fc6cc7fc3165d65c7655c}\label{interface_x_c_version_group_acf4f1652b83fc6cc7fc3165d65c7655c}} 
+\index{XCVersionGroup@{XCVersionGroup}!key@{key}}
+\index{key@{key}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{key}{key}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) key\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The group\textquotesingle{}s unique key. \mbox{\Hypertarget{interface_x_c_version_group_af93e68eb50e9c368f2f94b1e3e81ef5b}\label{interface_x_c_version_group_af93e68eb50e9c368f2f94b1e3e81ef5b}} 
+\index{XCVersionGroup@{XCVersionGroup}!pathRelativeToParent@{pathRelativeToParent}}
+\index{pathRelativeToParent@{pathRelativeToParent}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{pathRelativeToParent}{pathRelativeToParent}}
+{\footnotesize\ttfamily -\/ (NSString$\ast$) path\+Relative\+To\+Parent\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+The path of the group relative to the group\textquotesingle{}s parent.
+
+See\+: \mbox{[}\mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}} display\+Name\mbox{]} \mbox{\Hypertarget{interface_x_c_version_group_ac094cb0b196c580cbac574781a642d0c}\label{interface_x_c_version_group_ac094cb0b196c580cbac574781a642d0c}} 
+\index{XCVersionGroup@{XCVersionGroup}!versions@{versions}}
+\index{versions@{versions}!XCVersionGroup@{XCVersionGroup}}
+\doxysubsubsection{\texorpdfstring{versions}{versions}}
+{\footnotesize\ttfamily -\/ (NSMutable\+Array$\ast$) versions\hspace{0.3cm}{\ttfamily [read]}, {\ttfamily [nonatomic]}, {\ttfamily [strong]}}
+
+An array containing the groups members as {\ttfamily \mbox{\hyperlink{protocol_xcode_group_member-p}{Xcode\+Group\+Member}}} types. 
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCVersion\+Group.\+h\item 
+XCVersion\+Group.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_x_c_xib_definition.eps b/doc/latex/interface_x_c_xib_definition.eps
new file mode 100644
index 0000000..a4c0336
--- /dev/null
+++ b/doc/latex/interface_x_c_xib_definition.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 434.782623
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.150000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XCXibDefinition) cw
+(XCAbstractDefinition) cw
+(NSObject) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XCXibDefinition) 0.000000 0.000000 box
+ (XCAbstractDefinition) 0.000000 1.000000 box
+ (NSObject) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doc/latex/interface_x_c_xib_definition.tex b/doc/latex/interface_x_c_xib_definition.tex
new file mode 100644
index 0000000..81910b2
--- /dev/null
+++ b/doc/latex/interface_x_c_xib_definition.tex
@@ -0,0 +1,53 @@
+\hypertarget{interface_x_c_xib_definition}{}\doxysection{XCXib\+Definition Class Reference}
+\label{interface_x_c_xib_definition}\index{XCXibDefinition@{XCXibDefinition}}
+Inheritance diagram for XCXib\+Definition\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{interface_x_c_xib_definition}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_a71e9133c2f6014f5154f6b41429e394f}\label{interface_x_c_xib_definition_a71e9133c2f6014f5154f6b41429e394f}} 
+(id) -\/ {\bfseries init\+With\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_a6f4cc949c68e9f1a392c81c59584af50}\label{interface_x_c_xib_definition_a6f4cc949c68e9f1a392c81c59584af50}} 
+(id) -\/ {\bfseries init\+With\+Name\+:content\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_a95d72d783aeb130c4a97cfe47c242d9f}\label{interface_x_c_xib_definition_a95d72d783aeb130c4a97cfe47c242d9f}} 
+(NSString $\ast$) -\/ {\bfseries xib\+File\+Name}
+\end{DoxyCompactItemize}
+\doxysubsection*{Class Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_a0f0fed96387cac92a17a6f96cee1ae07}\label{interface_x_c_xib_definition_a0f0fed96387cac92a17a6f96cee1ae07}} 
+(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXib\+Definition}} $\ast$) + {\bfseries xib\+Definition\+With\+Name\+:}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_ad004842851fa976f83f8fadbdb15ed2a}\label{interface_x_c_xib_definition_ad004842851fa976f83f8fadbdb15ed2a}} 
+(\mbox{\hyperlink{interface_x_c_xib_definition}{XCXib\+Definition}} $\ast$) + {\bfseries xib\+Definition\+With\+Name\+:content\+:}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_ac1fd23a99294381d23b2ae23e3844e20}\label{interface_x_c_xib_definition_ac1fd23a99294381d23b2ae23e3844e20}} 
+NSString $\ast$ {\bfseries \+\_\+name}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_ac2364849c0ed680d1f30c2c2b9b93171}\label{interface_x_c_xib_definition_ac2364849c0ed680d1f30c2c2b9b93171}} 
+NSString $\ast$ {\bfseries \+\_\+content}
+\end{DoxyCompactItemize}
+\doxysubsection*{Properties}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_a2e3bf501465d4879ea9f64d32d10ac08}\label{interface_x_c_xib_definition_a2e3bf501465d4879ea9f64d32d10ac08}} 
+NSString $\ast$ {\bfseries name}
+\item 
+\mbox{\Hypertarget{interface_x_c_xib_definition_ac58c8587af4f2f984114c2da51abd825}\label{interface_x_c_xib_definition_ac58c8587af4f2f984114c2da51abd825}} 
+NSString $\ast$ {\bfseries content}
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+XCXib\+Definition.\+h\item 
+XCXib\+Definition.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/interface_xcode_file_reference_type_tests.eps b/doc/latex/interface_xcode_file_reference_type_tests.eps
new file mode 100644
index 0000000..9001836
--- /dev/null
+++ b/doc/latex/interface_xcode_file_reference_type_tests.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 206.185562
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.425000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(XcodeFileReferenceTypeTests) cw
+(XCTestCase) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (XcodeFileReferenceTypeTests) 0.000000 0.000000 box
+ (XCTestCase) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/interface_xcode_file_reference_type_tests.tex b/doc/latex/interface_xcode_file_reference_type_tests.tex
new file mode 100644
index 0000000..075f98b
--- /dev/null
+++ b/doc/latex/interface_xcode_file_reference_type_tests.tex
@@ -0,0 +1,13 @@
+\hypertarget{interface_xcode_file_reference_type_tests}{}\doxysection{Xcode\+File\+Reference\+Type\+Tests Class Reference}
+\label{interface_xcode_file_reference_type_tests}\index{XcodeFileReferenceTypeTests@{XcodeFileReferenceTypeTests}}
+Inheritance diagram for Xcode\+File\+Reference\+Type\+Tests\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{interface_xcode_file_reference_type_tests}
+\end{center}
+\end{figure}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+Xcode\+File\+Reference\+Type\+Tests.\+m\end{DoxyCompactItemize}
diff --git a/doc/latex/longtable_doxygen.sty b/doc/latex/longtable_doxygen.sty
new file mode 100644
index 0000000..a0eb314
--- /dev/null
+++ b/doc/latex/longtable_doxygen.sty
@@ -0,0 +1,448 @@
+%%
+%% This is file `longtable.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% longtable.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at http://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%% 
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{longtable_doxygen}
+          [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
+\def\LT@err{\PackageError{longtable}}
+\def\LT@warn{\PackageWarning{longtable}}
+\def\LT@final@warn{%
+  \AtEndDocument{%
+    \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
+  \global\let\LT@final@warn\relax}
+\DeclareOption{errorshow}{%
+  \def\LT@warn{\PackageInfo{longtable}}}
+\DeclareOption{pausing}{%
+  \def\LT@warn#1{%
+    \LT@err{#1}{This is not really an error}}}
+\DeclareOption{set}{}
+\DeclareOption{final}{}
+\ProcessOptions
+\newskip\LTleft       \LTleft=\fill
+\newskip\LTright      \LTright=\fill
+\newskip\LTpre        \LTpre=\bigskipamount
+\newskip\LTpost       \LTpost=\bigskipamount
+\newcount\LTchunksize \LTchunksize=20
+\let\c@LTchunksize\LTchunksize
+\newdimen\LTcapwidth  \LTcapwidth=4in
+\newbox\LT@head
+\newbox\LT@firsthead
+\newbox\LT@foot
+\newbox\LT@lastfoot
+\newcount\LT@cols
+\newcount\LT@rows
+\newcounter{LT@tables}
+\newcounter{LT@chunks}[LT@tables]
+\ifx\c@table\undefined
+  \newcounter{table}
+  \def\fnum@table{\tablename~\thetable}
+\fi
+\ifx\tablename\undefined
+  \def\tablename{Table}
+\fi
+\newtoks\LT@p@ftn
+\mathchardef\LT@end@pen=30000
+\def\longtable{%
+  \par
+  \ifx\multicols\@undefined
+  \else
+     \ifnum\col@number>\@ne
+       \@twocolumntrue
+     \fi
+  \fi
+  \if@twocolumn
+    \LT@err{longtable not in 1-column mode}\@ehc
+  \fi
+  \begingroup
+  \@ifnextchar[\LT@array{\LT@array[x]}}
+\def\LT@array[#1]#2{%
+  \refstepcounter{table}\stepcounter{LT@tables}%
+  \if l#1%
+    \LTleft\z@ \LTright\fill
+  \else\if r#1%
+    \LTleft\fill \LTright\z@
+  \else\if c#1%
+    \LTleft\fill \LTright\fill
+  \fi\fi\fi
+  \let\LT@mcol\multicolumn
+  \let\LT@@tabarray\@tabarray
+  \let\LT@@hl\hline
+  \def\@tabarray{%
+    \let\hline\LT@@hl
+    \LT@@tabarray}%
+  \let\\\LT@tabularcr\let\tabularnewline\\%
+  \def\newpage{\noalign{\break}}%
+  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+  \@tempdima\ht\strutbox
+  \let\@endpbox\LT@endpbox
+  \ifx\extrarowheight\@undefined
+    \let\@acol\@tabacol
+    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+    \def\@startpbox{\vtop\LT@startpbox}%
+    \let\@@startpbox\@startpbox
+    \let\@@endpbox\@endpbox
+    \let\LT@LL@FM@cr\@tabularcr
+  \else
+    \advance\@tempdima\extrarowheight
+    \col@sep\tabcolsep
+    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+  \fi
+  \setbox\@arstrutbox\hbox{\vrule
+    \@height \arraystretch \@tempdima
+    \@depth \arraystretch \dp \strutbox
+    \@width \z@}%
+  \let\@sharp##\let\protect\relax
+   \begingroup
+    \@mkpream{#2}%
+    \xdef\LT@bchunk{%
+       \global\advance\c@LT@chunks\@ne
+       \global\LT@rows\z@\setbox\z@\vbox\bgroup
+       \LT@setprevdepth
+       \tabskip\LTleft \noexpand\halign to\hsize\bgroup
+      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+  \endgroup
+  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+  \LT@make@row
+  \m@th\let\par\@empty
+  \everycr{}\lineskip\z@\baselineskip\z@
+  \LT@bchunk}
+\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
+\def\LT@start{%
+  \let\LT@start\endgraf
+  \endgraf\penalty\z@\vskip\LTpre
+  \dimen@\pagetotal
+  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \ht\LT@foot
+  \dimen@ii\vfuzz
+  \vfuzz\maxdimen
+    \setbox\tw@\copy\z@
+    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+    \setbox\tw@\vbox{\unvbox\tw@}%
+  \vfuzz\dimen@ii
+  \advance\dimen@ \ht
+        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@\dp
+        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@ -\pagegoal
+  \ifdim \dimen@>\z@\vfil\break\fi
+      \global\@colroom\@colht
+  \ifvoid\LT@foot\else
+    \advance\vsize-\ht\LT@foot
+    \global\advance\@colroom-\ht\LT@foot
+    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+    \maxdepth\z@
+  \fi
+  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
+  \output{\LT@output}}
+\def\endlongtable{%
+  \crcr
+  \noalign{%
+    \let\LT@entry\LT@entry@chop
+    \xdef\LT@save@row{\LT@save@row}}%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \if@filesw
+    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+      \gdef\expandafter\noexpand
+        \csname LT@\romannumeral\c@LT@tables\endcsname
+          {\LT@save@row}}}%
+  \fi
+  \ifx\LT@save@row\LT@@save@row
+  \else
+    \LT@warn{Column \@width s have changed\MessageBreak
+             in table \thetable}%
+    \LT@final@warn
+  \fi
+  \endgraf\penalty -\LT@end@pen
+  \endgroup
+  \global\@mparbottom\z@
+  \pagegoal\vsize
+  \endgraf\penalty\z@\addvspace\LTpost
+  \ifvoid\footins\else\insert\footins{}\fi}
+\def\LT@nofcols#1&{%
+  \futurelet\@let@token\LT@n@fcols}
+\def\LT@n@fcols{%
+  \advance\LT@cols\@ne
+  \ifx\@let@token\LT@nofcols
+    \expandafter\@gobble
+  \else
+    \expandafter\LT@nofcols
+  \fi}
+\def\LT@tabularcr{%
+  \relax\iffalse{\fi\ifnum0=`}\fi
+  \@ifstar
+    {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
+     \LT@t@bularcr}%
+    {\LT@t@bularcr}}
+\let\LT@crcr\crcr
+\let\LT@setprevdepth\relax
+\def\LT@t@bularcr{%
+  \global\advance\LT@rows\@ne
+  \ifnum\LT@rows=\LTchunksize
+    \gdef\LT@setprevdepth{%
+      \prevdepth\z@\global
+      \global\let\LT@setprevdepth\relax}%
+    \expandafter\LT@xtabularcr
+  \else
+    \ifnum0=`{}\fi
+    \expandafter\LT@LL@FM@cr
+  \fi}
+\def\LT@xtabularcr{%
+  \@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
+\def\LT@ntabularcr{%
+  \ifnum0=`{}\fi
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\LT@argtabularcr[#1]{%
+  \ifnum0=`{}\fi
+  \ifdim #1>\z@
+    \unskip\@xargarraycr{#1}%
+  \else
+    \@yargarraycr{#1}%
+  \fi
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\LT@echunk{%
+  \crcr\LT@save@row\cr\egroup
+  \global\setbox\@ne\lastbox
+    \unskip
+  \egroup}
+\def\LT@entry#1#2{%
+  \ifhmode\@firstofone{&}\fi\omit
+  \ifnum#1=\c@LT@chunks
+  \else
+    \kern#2\relax
+  \fi}
+\def\LT@entry@chop#1#2{%
+  \noexpand\LT@entry
+    {\ifnum#1>\c@LT@chunks
+       1}{0pt%
+     \else
+       #1}{#2%
+     \fi}}
+\def\LT@entry@write{%
+  \noexpand\LT@entry^^J%
+  \@spaces}
+\def\LT@kill{%
+  \LT@echunk
+  \LT@get@widths
+  \expandafter\LT@rebox\LT@bchunk}
+\def\LT@rebox#1\bgroup{%
+  #1\bgroup
+  \unvbox\z@
+  \unskip
+  \setbox\z@\lastbox}
+\def\LT@blank@row{%
+  \xdef\LT@save@row{\expandafter\LT@build@blank
+    \romannumeral\number\LT@cols 001 }}
+\def\LT@build@blank#1{%
+  \if#1m%
+    \noexpand\LT@entry{1}{0pt}%
+    \expandafter\LT@build@blank
+  \fi}
+\def\LT@make@row{%
+  \global\expandafter\let\expandafter\LT@save@row
+    \csname LT@\romannumeral\c@LT@tables\endcsname
+  \ifx\LT@save@row\relax
+    \LT@blank@row
+  \else
+    {\let\LT@entry\or
+     \if!%
+         \ifcase\expandafter\expandafter\expandafter\LT@cols
+         \expandafter\@gobble\LT@save@row
+         \or
+         \else
+           \relax
+         \fi
+        !%
+     \else
+       \aftergroup\LT@blank@row
+     \fi}%
+  \fi}
+\let\setlongtables\relax
+\def\LT@get@widths{%
+  \setbox\tw@\hbox{%
+    \unhbox\@ne
+    \let\LT@old@row\LT@save@row
+    \global\let\LT@save@row\@empty
+    \count@\LT@cols
+    \loop
+      \unskip
+      \setbox\tw@\lastbox
+    \ifhbox\tw@
+      \LT@def@row
+      \advance\count@\m@ne
+    \repeat}%
+  \ifx\LT@@save@row\@undefined
+    \let\LT@@save@row\LT@save@row
+  \fi}
+\def\LT@def@row{%
+  \let\LT@entry\or
+  \edef\@tempa{%
+    \ifcase\expandafter\count@\LT@old@row
+    \else
+      {1}{0pt}%
+    \fi}%
+  \let\LT@entry\relax
+  \xdef\LT@save@row{%
+    \LT@entry
+    \expandafter\LT@max@sel\@tempa
+    \LT@save@row}}
+\def\LT@max@sel#1#2{%
+  {\ifdim#2=\wd\tw@
+     #1%
+   \else
+     \number\c@LT@chunks
+   \fi}%
+  {\the\wd\tw@}}
+\def\LT@hline{%
+  \noalign{\ifnum0=`}\fi
+    \penalty\@M
+    \futurelet\@let@token\LT@@hline}
+\def\LT@@hline{%
+  \ifx\@let@token\hline
+    \global\let\@gtempa\@gobble
+    \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
+  \else
+    \global\let\@gtempa\@empty
+    \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
+  \fi
+  \ifnum0=`{\fi}%
+  \multispan\LT@cols
+     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+  \noalign{\LT@sep}%
+  \multispan\LT@cols
+     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+  \noalign{\penalty\@M}%
+  \@gtempa}
+\def\LT@caption{%
+  \noalign\bgroup
+    \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
+\def\LT@c@ption#1[#2]#3{%
+  \LT@makecaption#1\fnum@table{#3}%
+  \def\@tempa{#2}%
+  \ifx\@tempa\@empty\else
+     {\let\\\space
+     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
+  \fi}
+\def\LT@capti@n{%
+  \@ifstar
+    {\egroup\LT@c@ption\@gobble[]}%
+    {\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
+\def\LT@makecaption#1#2#3{%
+  \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
+    \sbox\@tempboxa{#1{#2: }#3}%
+    \ifdim\wd\@tempboxa>\hsize
+      #1{#2: }#3%
+    \else
+      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+    \fi
+    \endgraf\vskip\baselineskip}%
+  \hss}}}
+\def\LT@output{%
+  \ifnum\outputpenalty <-\@Mi
+    \ifnum\outputpenalty > -\LT@end@pen
+      \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+    \else
+      \setbox\z@\vbox{\unvbox\@cclv}%
+      \ifdim \ht\LT@lastfoot>\ht\LT@foot
+        \dimen@\pagegoal
+        \advance\dimen@-\ht\LT@lastfoot
+        \ifdim\dimen@<\ht\z@
+          \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+          \@makecol
+          \@outputpage
+          \setbox\z@\vbox{\box\LT@head}%
+        \fi
+      \fi
+      \global\@colroom\@colht
+      \global\vsize\@colht
+      \vbox
+        {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
+    \fi
+  \else
+    \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+    \@makecol
+    \@outputpage
+      \global\vsize\@colroom
+    \copy\LT@head\nobreak
+  \fi}
+\def\LT@end@hd@ft#1{%
+  \LT@echunk
+  \ifx\LT@start\endgraf
+    \LT@err
+     {Longtable head or foot not at start of table}%
+     {Increase LTchunksize}%
+  \fi
+  \setbox#1\box\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
+\def\endhead{\LT@end@hd@ft\LT@head}
+\def\endfoot{\LT@end@hd@ft\LT@foot}
+\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
+\def\LT@startpbox#1{%
+  \bgroup
+    \let\@footnotetext\LT@p@ftntext
+    \setlength\hsize{#1}%
+    \@arrayparboxrestore
+    \vrule \@height \ht\@arstrutbox \@width \z@}
+\def\LT@endpbox{%
+  \@finalstrut\@arstrutbox
+  \egroup
+  \the\LT@p@ftn
+  \global\LT@p@ftn{}%
+  \hfil}
+\def\LT@p@ftntext#1{%
+  \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
+  \global\LT@p@ftn\expandafter{\@tempa{#1}}}%
+
+\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
+\endinput
+%%
+%% End of file `longtable.sty'.
diff --git a/doc/latex/md__r_e_a_d_m_e.tex b/doc/latex/md__r_e_a_d_m_e.tex
new file mode 100644
index 0000000..271d1f7
--- /dev/null
+++ b/doc/latex/md__r_e_a_d_m_e.tex
@@ -0,0 +1,215 @@
+An API for manipulating Xcode project files.\hypertarget{md__r_e_a_d_m_e_autotoc_md1}{}\doxysection{Usage}\label{md__r_e_a_d_m_e_autotoc_md1}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md2}{}\doxysubsubsection{Adding Source Files to a Project}\label{md__r_e_a_d_m_e_autotoc_md2}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_project}{XCProject}}* project = [[\mbox{\hyperlink{interface_x_c_project}{XCProject}} alloc] initWithFilePath:@"{}MyProject.xcodeproj"{}];}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_group}{XCGroup}}* group = [project \mbox{\hyperlink{interface_x_c_project_a5c29526ae6ec53f9a20b887dbaecff39}{groupWithPathFromRoot}}:@"{}Main"{}];}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}}* classDefinition = [[\mbox{\hyperlink{interface_x_c_class_definition}{XCClassDefinition}} alloc] initWithName:@"{}MyNewClass"{}];}
+\DoxyCodeLine{[classDefinition setHeader:@"{}<some-\/header-\/text>"{}];}
+\DoxyCodeLine{[classDefinition setSource:@"{}<some-\/impl-\/text>"{}];}
+\DoxyCodeLine{}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}{addClass}}:classDefinition];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md3}{}\doxysubsubsection{Duplicating Targets}\label{md__r_e_a_d_m_e_autotoc_md3}
+It will be added to project as well.
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_target}{XCTarget}}* target = [project \mbox{\hyperlink{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}{targetWithName}}:@"{}SomeTarget"{}];}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_target}{XCTarget}}* duplicated = [target duplicateWithTargetName:@"{}DuplicatedTarget"{} productName:@"{}NewProduct"{}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md4}{}\doxysubsubsection{Specifying Source File Belongs to Target}\label{md__r_e_a_d_m_e_autotoc_md4}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_source_file}{XCSourceFile}}* sourceFile = [project \mbox{\hyperlink{interface_x_c_project_af0ec1bda5ecf6777521993732e5ce081}{fileWithName}}:@"{}MyNewClass.m"{}];}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_target}{XCTarget}}* examples = [project \mbox{\hyperlink{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}{targetWithName}}:@"{}Examples"{}];}
+\DoxyCodeLine{[examples addMember:sourceFile];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md5}{}\doxysubsubsection{Adding a Xib File}\label{md__r_e_a_d_m_e_autotoc_md5}
+This time, we\textquotesingle{}ll use a convenience method on \mbox{\hyperlink{interface_x_c_group}{XCGroup}} to specify the targets at the same time\+:
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}}* xibDefinition = [[\mbox{\hyperlink{interface_x_c_xib_definition}{XCXibDefinition}} alloc] initWithName:@"{}MyXibFile"{} content:@"{}<xibXml>"{}];}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}{addXib}}:xibDefinition \mbox{\hyperlink{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}{toTargets}}:[project \mbox{\hyperlink{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}{targets}}]];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md6}{}\doxysubsubsection{Adding a Framework}\label{md__r_e_a_d_m_e_autotoc_md6}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}}* frameworkDefinition =}
+\DoxyCodeLine{    [[\mbox{\hyperlink{interface_x_c_framework_definition}{XCFrameworkDefinition}} alloc] initWithFilePath:@"{}<framework path>"{} copyToDestination:NO];}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}{addFramework}}:frameworkDefinition \mbox{\hyperlink{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}{toTargets}}:[project \mbox{\hyperlink{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}{targets}}]];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+ Setting copy\+To\+Destination to YES, will cause the framework to be first copied to the group\textquotesingle{}s directory within the project, and subsequently linked from there.\hypertarget{md__r_e_a_d_m_e_autotoc_md7}{}\doxysubsubsection{Adding an Image Resource}\label{md__r_e_a_d_m_e_autotoc_md7}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}* sourceFileDefinition = [[\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}} alloc]}
+\DoxyCodeLine{    initWithName:@"{}MyImageFile.png"{} data:[NSData dataWithContentsOfFile:<your image file name>]}
+\DoxyCodeLine{    type:ImageResourcePNG];}
+\DoxyCodeLine{}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}{addSourceFile}}:sourceFileDefinition];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md8}{}\doxysubsubsection{Adding Asset Catalog (\+Image\+Set)}\label{md__r_e_a_d_m_e_autotoc_md8}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}* sourceFileDefinition = [\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}} sourceDefinitionWithAssetCatalogName:<path to asset catalog>];}
+\DoxyCodeLine{}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}{addSourceFile}}:sourceFileDefinition];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md9}{}\doxysubsubsection{Adding a Header}\label{md__r_e_a_d_m_e_autotoc_md9}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}}* header = [[\mbox{\hyperlink{interface_x_c_source_file_definition}{XCSourceFileDefinition}} alloc]}
+\DoxyCodeLine{    initWithName:@"{}SomeHeader.h"{} text:<your header text> type:SourceCodeHeader];}
+\DoxyCodeLine{}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}{addSourceFile}}:header];}
+\DoxyCodeLine{[project \mbox{\hyperlink{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{save}}];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md10}{}\doxysubsubsection{Adding a sub-\/project}\label{md__r_e_a_d_m_e_autotoc_md10}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{subProjectDefinition = [\mbox{\hyperlink{interface_x_c_sub_project_definition}{XCSubProjectDefinition}} withName:@"{}mySubproject"{} projPath=@"{}/Path/To/Subproject"{} type:XcodeProject];}
+\DoxyCodeLine{[group \mbox{\hyperlink{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}{addSubProject}}:subProjectDefinition \mbox{\hyperlink{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}{toTargets}}:[project \mbox{\hyperlink{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}{targets}}]];}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md11}{}\doxysubsubsection{Removing a sub-\/project}\label{md__r_e_a_d_m_e_autotoc_md11}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{[group removeSubProject:subProjectDefinition];  \textcolor{comment}{//TODO: project should be able to remove itself from parent.}}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md12}{}\doxysubsubsection{Configuring targets}\label{md__r_e_a_d_m_e_autotoc_md12}
+We can add/update linker flags, header search paths, C-\/flags, etc to a target. Here we\textquotesingle{}ll add header search paths\+:
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{interface_x_c_target}{XCTarget}}* target = [\_project targetWithName:\_projectName];}
+\DoxyCodeLine{\textcolor{keywordflow}{for} (NSString* configName in [target configurations])}
+\DoxyCodeLine{\{}
+\DoxyCodeLine{    XCBuildConfiguration* configuration = [target configurationWithName:configName];}
+\DoxyCodeLine{    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];}
+\DoxyCodeLine{    [headerPaths addObject:@"{}\$(inherited)"{}];}
+\DoxyCodeLine{    [headerPaths addObject:@"{}\$(SRCROOT)/include"{}];        }
+\DoxyCodeLine{    [configuration addOrReplaceSetting:headerPaths forKey:@"{}HEADER\_SEARCH\_PATHS"{}];}
+\DoxyCodeLine{\}}
+
+\end{DoxyCode}
+
+
+. . . these settings are added by key, as they would appear in a make file. (Xcode provides more human friendly descriptions). To find the key for a given build setting, consult the compiler docs. Common settings are\+:
+
+
+\begin{DoxyItemize}
+\item HEADER\+\_\+\+SEARCH\+\_\+\+PATHS
+\item OTHER\+\_\+\+LD\+\_\+\+FLAGS
+\item CLANG\+\_\+\+CXX\+\_\+\+LANGUAGE\+\_\+\+STANDARD
+\item CODE\+\_\+\+SIGN\+\_\+\+IDENTITY
+\item GCC\+\_\+\+C\+\_\+\+LANGUAGE\+\_\+\+STANDARD
+\item INFOPLIST\+\_\+\+FILE
+\item LIBRARY\+\_\+\+SEARCH\+\_\+\+PATHS
+\item PRODUCT\+\_\+\+NAME
+\item PROVISIONING\+\_\+\+PROFILE
+\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md13}{}\doxysubsubsection{Adding a Library}\label{md__r_e_a_d_m_e_autotoc_md13}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{XCSourceFile * libSourceFile = [project fileWithName:@"{}libAmazing.a"{}];}
+\DoxyCodeLine{}
+\DoxyCodeLine{XCTarget* target = [project targetWithName:self.mProject.projectName];}
+\DoxyCodeLine{[target addMember:libSourceFile];}
+\DoxyCodeLine{}
+\DoxyCodeLine{for (NSString* configName in [target configurations]) \{}
+\DoxyCodeLine{    XCProjectBuildConfig* configuration = [target configurationWithName:configName];}
+\DoxyCodeLine{    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];}
+\DoxyCodeLine{    [headerPaths addObject:@"{}\$(inherited)"{}];}
+\DoxyCodeLine{    [headerPaths addObject:@"{}\$(PROJECT\_DIR)/Amazing"{}];}
+\DoxyCodeLine{    [configuration addOrReplaceSetting:headerPaths forKey:@"{}LIBRARY\_SEARCH\_PATHS"{}];}
+\DoxyCodeLine{\}}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md14}{}\doxysubsubsection{File write behavior}\label{md__r_e_a_d_m_e_autotoc_md14}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{comment}{//Creates the reference in the project and writes the contents to disk. If a file already exists at the }}
+\DoxyCodeLine{\textcolor{comment}{//specified location, its contents will be updated.}}
+\DoxyCodeLine{[definition setFileOperationStyle:FileOperationStyleOverwrite]; }
+
+\end{DoxyCode}
+
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{comment}{//Creates the reference in the project. If a file already exists at the specified location, the contents will }}
+\DoxyCodeLine{\textcolor{comment}{//not be updated.}}
+\DoxyCodeLine{[definition setFileOperationStyle:FileOperationStyleAcceptExisting]; }
+
+\end{DoxyCode}
+
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{comment}{//Creates the reference in the project, but does not write to disk. The filesystem is expected to be updated }}
+\DoxyCodeLine{\textcolor{comment}{//through some other means.}}
+\DoxyCodeLine{[definition setFileOperationStyle:FileOperationStyleReferenceOnly]; }
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md15}{}\doxysection{Building}\label{md__r_e_a_d_m_e_autotoc_md15}
+Open the project in XCode and choose Product/\+Build. Alternatively install with Cocoa\+Pods.\hypertarget{md__r_e_a_d_m_e_autotoc_md16}{}\doxysection{Feature Requests and Contributions}\label{md__r_e_a_d_m_e_autotoc_md16}
+. . . are very welcome.
+
+If you\textquotesingle{}re using the API shoot me an email and tell me what you\textquotesingle{}re doing with it.\hypertarget{md__r_e_a_d_m_e_autotoc_md17}{}\doxysection{Compatibility}\label{md__r_e_a_d_m_e_autotoc_md17}
+
+\begin{DoxyItemize}
+\item Xcode-\/editor has been tested on Xcode 4+. It should also work on earlier versions of Xcode.
+\item The App\+Code IDE from Jet\+Brains is now supported too!
+\item Supports both ARC and MRR modes of memory management.
+\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md18}{}\doxysection{Who\textquotesingle{}s using it?}\label{md__r_e_a_d_m_e_autotoc_md18}
+
+\begin{DoxyItemize}
+\item \href{http://www.apportable.com}{\texttt{ Apportable}} \+: Develop Android applications using Xcode, Objective-\/C and Cocoa APIs
+\item \href{https://github.com/calabash/calabash-ios}{\texttt{ Xamarin}}\+: The Calabash automated functional testing for mobile applications.
+\item \href{https://github.com/markohlebar/Peckham}{\texttt{ Peckham}} \+: A great plugin for managing Xcode imports
+\item \href{http://www.levelhelper.org}{\texttt{ Level Helper}}\+: A RAD framework for developing 2D games on i\+OS \& Android.
+\item \href{http://macromates.com/}{\texttt{ Text Mate}}\+: The missing Text Editor for OSX.
+\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md19}{}\doxysection{Authors}\label{md__r_e_a_d_m_e_autotoc_md19}
+
+\begin{DoxyItemize}
+\item \href{http://ph.linkedin.com/pub/jasper-blues/8/163/778}{\texttt{ Jasper Blues}} -\/ \href{mailto:jasper@appsquick.ly?Subject=xcode-editor}{\texttt{ jasper@appsquick.\+ly}}
+\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md20}{}\doxysubsubsection{With contributions from\+:}\label{md__r_e_a_d_m_e_autotoc_md20}
+
+\begin{DoxyItemize}
+\item \href{https://github.com/cncool}{\texttt{ Connor Duggan}} -\/ lots of bug fixes, maintenance and enhancements.
+\item \href{https://github.com/smirn0v}{\texttt{ Alexander Smirnov}} -\/ Cleaned up, generalized and contributed back the changes from the Calabash fork.
+\item Zach Drayer -\/ lots of fixes and features to support Text\+Mate.
+\item Janine Ohmer -\/ support adding and removing sub-\/projects (\href{http://www.synapticats.com}{\texttt{ http\+://www.\+synapticats.\+com}}).
+\item Bogdan Vladu -\/ support adding and removing groups (www.\+levelhelper.\+org).
+\item Chris Ross of Hidden Memory (\href{http://www.hiddenmemory.co.uk/}{\texttt{ http\+://www.\+hiddenmemory.\+co.\+uk/}})
+\item Paul Taykalo
+\item Vladislav Alekseev
+\item Felix Schneider -\/ bug fixes.
+\item Isak Sky -\/ mutable XCSource\+Files.
+\item \href{https://github.com/hartman}{\texttt{ Derk-\/\+Jan Hartman}} \+: Adding folder references, by-\/file compiler flags.
+\item \href{https://github.com/StoneSpb}{\texttt{ Stone\+Spb}} \+: Speed improvements
+\item \href{https://github.com/cezheng}{\texttt{ Ce Zheng}} \+: Fixes relating to Xcode 7, xcconfig support and others.
+\end{DoxyItemize}
+
+Thanks!\hypertarget{md__r_e_a_d_m_e_autotoc_md21}{}\doxysection{LICENSE}\label{md__r_e_a_d_m_e_autotoc_md21}
+Apache License, Version 2.\+0, January 2004, \href{http://www.apache.org/licenses/}{\texttt{ http\+://www.\+apache.\+org/licenses/}}
+
+
+\begin{DoxyItemize}
+\item © 2011 -\/ 2012 Jasper Blues and contributors. 
+\end{DoxyItemize}
\ No newline at end of file
diff --git a/doc/latex/protocol_x_c_build_file-p.eps b/doc/latex/protocol_x_c_build_file-p.eps
new file mode 100644
index 0000000..1252e92
--- /dev/null
+++ b/doc/latex/protocol_x_c_build_file-p.eps
@@ -0,0 +1,213 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 170.940170
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.925000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(<XCBuildFile>) cw
+(<NSObject>) cw
+(XCGroup) cw
+(XCSourceFile) cw
+(XCVersionGroup) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (<XCBuildFile>) 1.000000 1.000000 box
+ (<NSObject>) 1.000000 2.000000 box
+ (XCGroup) 0.000000 0.000000 box
+ (XCSourceFile) 1.000000 0.000000 box
+ (XCVersionGroup) 2.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+1 1.000000 0.250000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
diff --git a/doc/latex/protocol_x_c_build_file-p.tex b/doc/latex/protocol_x_c_build_file-p.tex
new file mode 100644
index 0000000..03a8e04
--- /dev/null
+++ b/doc/latex/protocol_x_c_build_file-p.tex
@@ -0,0 +1,49 @@
+\hypertarget{protocol_x_c_build_file-p}{}\doxysection{\texorpdfstring{$<$}{<}XCBuild\+File\texorpdfstring{$>$}{>} Protocol Reference}
+\label{protocol_x_c_build_file-p}\index{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}}
+Inheritance diagram for \texorpdfstring{$<$}{<}XCBuild\+File\texorpdfstring{$>$}{>}\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{protocol_x_c_build_file-p}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+(void) -\/ \mbox{\hyperlink{protocol_x_c_build_file-p_ab4cbac9982b3dc37e3444779c88eecbe}{become\+Build\+File}}
+\item 
+\mbox{\Hypertarget{protocol_x_c_build_file-p_afe34a94cd11ba7fcd1b3c27cb837548b}\label{protocol_x_c_build_file-p_afe34a94cd11ba7fcd1b3c27cb837548b}} 
+(Xcode\+Member\+Type) -\/ {\bfseries build\+Phase}
+\item 
+\mbox{\Hypertarget{protocol_x_c_build_file-p_a8d481e73a986d781537c68e3be24bdf4}\label{protocol_x_c_build_file-p_a8d481e73a986d781537c68e3be24bdf4}} 
+(NSString $\ast$) -\/ {\bfseries build\+File\+Key}
+\item 
+(BOOL) -\/ \mbox{\hyperlink{protocol_x_c_build_file-p_ae5882d46671f3891d484f6f5d293b4b4}{is\+Build\+File}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{protocol_x_c_build_file-p_ab4cbac9982b3dc37e3444779c88eecbe}\label{protocol_x_c_build_file-p_ab4cbac9982b3dc37e3444779c88eecbe}} 
+\index{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}!becomeBuildFile@{becomeBuildFile}}
+\index{becomeBuildFile@{becomeBuildFile}!$<$XCBuildFile$>$@{$<$XCBuildFile$>$}}
+\doxysubsubsection{\texorpdfstring{becomeBuildFile}{becomeBuildFile}}
+{\footnotesize\ttfamily -\/ (void) become\+Build\+File \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+
+
+Reimplemented in \mbox{\hyperlink{interface_x_c_source_file_a69feb820711a44a5d3adf4bc25669e37}{XCSource\+File}}.
+
+\mbox{\Hypertarget{protocol_x_c_build_file-p_ae5882d46671f3891d484f6f5d293b4b4}\label{protocol_x_c_build_file-p_ae5882d46671f3891d484f6f5d293b4b4}} 
+\index{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}!isBuildFile@{isBuildFile}}
+\index{isBuildFile@{isBuildFile}!$<$XCBuildFile$>$@{$<$XCBuildFile$>$}}
+\doxysubsubsection{\texorpdfstring{isBuildFile}{isBuildFile}}
+{\footnotesize\ttfamily -\/ (BOOL) is\+Build\+File \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+
+
+Reimplemented in \mbox{\hyperlink{interface_x_c_source_file_a94f914a09f7abbbf3048a86ced9f7d10}{XCSource\+File}}.
+
+
+
+The documentation for this protocol was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCBuild\+File.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/protocol_xcode_group_member-p.eps b/doc/latex/protocol_xcode_group_member-p.eps
new file mode 100644
index 0000000..6b18413
--- /dev/null
+++ b/doc/latex/protocol_xcode_group_member-p.eps
@@ -0,0 +1,213 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 131.578949
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.800000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(<XcodeGroupMember>) cw
+(<NSObject>) cw
+(XCGroup) cw
+(XCSourceFile) cw
+(XCVersionGroup) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (<XcodeGroupMember>) 1.000000 1.000000 box
+ (<NSObject>) 1.000000 2.000000 box
+ (XCGroup) 0.000000 0.000000 box
+ (XCSourceFile) 1.000000 0.000000 box
+ (XCVersionGroup) 2.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+1 1.000000 0.250000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
diff --git a/doc/latex/protocol_xcode_group_member-p.tex b/doc/latex/protocol_xcode_group_member-p.tex
new file mode 100644
index 0000000..30847d6
--- /dev/null
+++ b/doc/latex/protocol_xcode_group_member-p.tex
@@ -0,0 +1,36 @@
+\hypertarget{protocol_xcode_group_member-p}{}\doxysection{\texorpdfstring{$<$}{<}Xcode\+Group\+Member\texorpdfstring{$>$}{>} Protocol Reference}
+\label{protocol_xcode_group_member-p}\index{$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}}
+Inheritance diagram for \texorpdfstring{$<$}{<}Xcode\+Group\+Member\texorpdfstring{$>$}{>}\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{protocol_xcode_group_member-p}
+\end{center}
+\end{figure}
+\doxysubsection*{Instance Methods}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{protocol_xcode_group_member-p_a9c26d7fb8e5b8e9a70514cd82f17a753}\label{protocol_xcode_group_member-p_a9c26d7fb8e5b8e9a70514cd82f17a753}} 
+(NSString $\ast$) -\/ {\bfseries key}
+\item 
+\mbox{\Hypertarget{protocol_xcode_group_member-p_aaa904107027b7f93f9770816ee6e9af4}\label{protocol_xcode_group_member-p_aaa904107027b7f93f9770816ee6e9af4}} 
+(NSString $\ast$) -\/ {\bfseries display\+Name}
+\item 
+\mbox{\Hypertarget{protocol_xcode_group_member-p_ace875c36516c8431fa545cdbd7539247}\label{protocol_xcode_group_member-p_ace875c36516c8431fa545cdbd7539247}} 
+(NSString $\ast$) -\/ {\bfseries path\+Relative\+To\+Project\+Root}
+\item 
+(Xcode\+Member\+Type) -\/ \mbox{\hyperlink{protocol_xcode_group_member-p_a37e9e9f28d597028f66ae694b3efd1d8}{group\+Member\+Type}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Method Documentation}
+\mbox{\Hypertarget{protocol_xcode_group_member-p_a37e9e9f28d597028f66ae694b3efd1d8}\label{protocol_xcode_group_member-p_a37e9e9f28d597028f66ae694b3efd1d8}} 
+\index{$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}!groupMemberType@{groupMemberType}}
+\index{groupMemberType@{groupMemberType}!$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}}
+\doxysubsubsection{\texorpdfstring{groupMemberType}{groupMemberType}}
+{\footnotesize\ttfamily -\/ (Xcode\+Member\+Type) group\+Member\+Type \begin{DoxyParamCaption}{ }\end{DoxyParamCaption}}
+
+Group members can either be other groups (PBXGroup) or source files (PBXFile\+Reference). 
+
+The documentation for this protocol was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+Xcode\+Group\+Member.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/refman.aux b/doc/latex/refman.aux
new file mode 100644
index 0000000..4da6a9e
--- /dev/null
+++ b/doc/latex/refman.aux
@@ -0,0 +1,621 @@
+\relax 
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax 
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\providecommand \oddpage@label [2]{}
+\@writefile{toc}{\@ifundefined {etoctocstyle}{\let \etoc@startlocaltoc \@gobble \let \etoc@settocdepth \@gobble \let \etoc@depthtag \@gobble \let \etoc@setlocaltop \@gobble }{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {1}Description}{1}{chapter.1}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\newlabel{md__r_e_a_d_m_e}{{1}{1}{Description}{chapter.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.1}Usage}{1}{section.1.1}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md1}{{1.1}{1}{Usage}{section.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.1}Adding Source Files to a Project}{1}{subsubsection.1.1.0.1}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md2}{{1.1.0.1}{1}{Adding Source Files to a Project}{subsubsection.1.1.0.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.2}Duplicating Targets}{1}{subsubsection.1.1.0.2}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md3}{{1.1.0.2}{1}{Duplicating Targets}{subsubsection.1.1.0.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.3}Specifying Source File Belongs to Target}{1}{subsubsection.1.1.0.3}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md4}{{1.1.0.3}{1}{Specifying Source File Belongs to Target}{subsubsection.1.1.0.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.4}Adding a Xib File}{1}{subsubsection.1.1.0.4}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md5}{{1.1.0.4}{1}{Adding a Xib File}{subsubsection.1.1.0.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.5}Adding a Framework}{1}{subsubsection.1.1.0.5}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md6}{{1.1.0.5}{1}{Adding a Framework}{subsubsection.1.1.0.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.6}Adding an Image Resource}{2}{subsubsection.1.1.0.6}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md7}{{1.1.0.6}{2}{Adding an Image Resource}{subsubsection.1.1.0.6}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.7}Adding Asset Catalog (\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Image\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Set)}{2}{subsubsection.1.1.0.7}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md8}{{1.1.0.7}{2}{Adding Asset Catalog (\+Image\+Set)}{subsubsection.1.1.0.7}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.8}Adding a Header}{2}{subsubsection.1.1.0.8}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md9}{{1.1.0.8}{2}{Adding a Header}{subsubsection.1.1.0.8}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.9}Adding a sub-\/project}{2}{subsubsection.1.1.0.9}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md10}{{1.1.0.9}{2}{Adding a sub-\/project}{subsubsection.1.1.0.9}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.10}Removing a sub-\/project}{2}{subsubsection.1.1.0.10}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md11}{{1.1.0.10}{2}{Removing a sub-\/project}{subsubsection.1.1.0.10}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.11}Configuring targets}{2}{subsubsection.1.1.0.11}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md12}{{1.1.0.11}{2}{Configuring targets}{subsubsection.1.1.0.11}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.12}Adding a Library}{3}{subsubsection.1.1.0.12}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md13}{{1.1.0.12}{3}{Adding a Library}{subsubsection.1.1.0.12}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.0.13}File write behavior}{3}{subsubsection.1.1.0.13}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md14}{{1.1.0.13}{3}{File write behavior}{subsubsection.1.1.0.13}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.2}Building}{3}{section.1.2}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md15}{{1.2}{3}{Building}{section.1.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.3}Feature Requests and Contributions}{3}{section.1.3}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md16}{{1.3}{3}{Feature Requests and Contributions}{section.1.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.4}Compatibility}{3}{section.1.4}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md17}{{1.4}{3}{Compatibility}{section.1.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.5}Who\textquotesingle {}s using it?}{3}{section.1.5}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md18}{{1.5}{3}{Who\textquotesingle {}s using it?}{section.1.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.6}Authors}{4}{section.1.6}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md19}{{1.6}{4}{Authors}{section.1.6}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.6.0.1}With contributions from\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}:}{4}{subsubsection.1.6.0.1}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md20}{{1.6.0.1}{4}{With contributions from\+:}{subsubsection.1.6.0.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.7}LICENSE}{4}{section.1.7}\protected@file@percent }
+\newlabel{md__r_e_a_d_m_e_autotoc_md21}{{1.7}{4}{LICENSE}{section.1.7}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {2}Hierarchical Index}{5}{chapter.2}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {2.1}Class Hierarchy}{5}{section.2.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {3}Class Index}{7}{chapter.3}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {3.1}Class List}{7}{section.3.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {4}File Index}{9}{chapter.4}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {4.1}File List}{9}{section.4.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {5}Class Documentation}{11}{chapter.5}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {5.1}Class\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Called\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Janine Class Reference}{11}{section.5.1}\protected@file@percent }
+\newlabel{interface_class_called_janine}{{5.1}{11}{Class\+Called\+Janine Class Reference}{section.5.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.2}Hash\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Value\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}MD5\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Hash Struct Reference}{11}{section.5.2}\protected@file@percent }
+\newlabel{struct_hash_value_m_d5_hash}{{5.2}{11}{Hash\+Value\+MD5\+Hash Struct Reference}{section.5.2}{}}
+\newlabel{struct_hash_value_m_d5_hash_adc99db30c947c996c6e20aaed14e5a7b}{{5.2}{11}{Public Attributes}{section*.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.3}NSString(Remove\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Emoji) Category Reference}{11}{section.5.3}\protected@file@percent }
+\newlabel{category_n_s_string_07_remove_emoji_08}{{5.3}{11}{NSString(Remove\+Emoji) Category Reference}{section.5.3}{}}
+\newlabel{category_n_s_string_07_remove_emoji_08_ac1f0436d5d2e1c710f616b4d7acd1253}{{5.3}{11}{Instance Methods}{section*.3}{}}
+\newlabel{category_n_s_string_07_remove_emoji_08_aac8e33ce5dacdfbed2811f341b69bf5d}{{5.3}{11}{Instance Methods}{section*.3}{}}
+\newlabel{category_n_s_string_07_remove_emoji_08_a595b600cfebed475788feed38314af98}{{5.3}{11}{Instance Methods}{section*.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.4}NSString(Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Member\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Extensions) Category Reference}{12}{section.5.4}\protected@file@percent }
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08}{{5.4}{12}{NSString(Xcode\+Member\+Type\+Extensions) Category Reference}{section.5.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a0c30a5f2fc5ed808d39e891adac90ff9}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a0b444d0eae9e7674658e29211fca06f5}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a41c8558315a1d3d047c602c9652aef29}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_af3eeec7f57fdd88445b67fbf5eea8781}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a553f49f087f00e05f0024b5bb2ce07ad}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_affaa14881d029e9644e50f8fe96628ef}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a5bc59a1e064c62006a7f1bd467bbc992}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_ab15ac44a708d7a74e5592f9f2d1d68b5}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a7096c70200be48fb242b415e1259eed5}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a6db284b9e8daaf259b37b07f649ada65}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a65f54f96e843f92b4a526e65830dd40c}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_aa39eee81b980302915f10668e1d7c335}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a0ac1e9fe2793c1c373250a69985389bc}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a22a500d93bd9c4384231a96f5eab8f30}{{5.4}{12}{Instance Methods}{section*.4}{}}
+\newlabel{category_n_s_string_07_xcode_member_type_extensions_08_a6aa90897bd9f233574611c83969d8d78}{{5.4}{12}{Class Methods}{section*.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.5}NSString(Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tree\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Extensions) Category Reference}{12}{section.5.5}\protected@file@percent }
+\newlabel{category_n_s_string_07_xcode_source_tree_type_extensions_08}{{5.5}{12}{NSString(Xcode\+Source\+Tree\+Type\+Extensions) Category Reference}{section.5.5}{}}
+\newlabel{category_n_s_string_07_xcode_source_tree_type_extensions_08_aa71895eb3611dc52402d8c5e2d34908f}{{5.5}{12}{Instance Methods}{section*.6}{}}
+\newlabel{category_n_s_string_07_xcode_source_tree_type_extensions_08_a6c173a5ecd5deaf2d62a25c6dd34eb9e}{{5.5}{12}{Class Methods}{section*.7}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.6}XCAbstract\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{13}{section.5.6}\protected@file@percent }
+\newlabel{interface_x_c_abstract_definition}{{5.6}{13}{XCAbstract\+Definition Class Reference}{section.5.6}{}}
+\newlabel{interface_x_c_abstract_definition_a7403687ee4cd520f5a67743965744c07}{{5.6}{13}{Protected Attributes}{section*.9}{}}
+\newlabel{interface_x_c_abstract_definition_a1d6a905c3233209a6557aa3d730dfa84}{{5.6}{13}{Properties}{section*.10}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.6.1}Detailed Description}{13}{subsection.5.6.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.7}$<$XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File$>$ Protocol Reference}{13}{section.5.7}\protected@file@percent }
+\newlabel{protocol_x_c_build_file-p}{{5.7}{13}{\texorpdfstring {$<$}{<}XCBuild\+File\texorpdfstring {$>$}{>} Protocol Reference}{section.5.7}{}}
+\newlabel{protocol_x_c_build_file-p_afe34a94cd11ba7fcd1b3c27cb837548b}{{5.7}{13}{Instance Methods}{section*.12}{}}
+\newlabel{protocol_x_c_build_file-p_a8d481e73a986d781537c68e3be24bdf4}{{5.7}{13}{Instance Methods}{section*.12}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.7.1}Method Documentation}{14}{subsection.5.7.1}\protected@file@percent }
+\newlabel{protocol_x_c_build_file-p_ab4cbac9982b3dc37e3444779c88eecbe}{{5.7.1}{14}{Method Documentation}{subsection.5.7.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.7.1.1}becomeBuildFile}{14}{subsubsection.5.7.1.1}\protected@file@percent }
+\newlabel{protocol_x_c_build_file-p_ae5882d46671f3891d484f6f5d293b4b4}{{5.7.1.1}{14}{\texorpdfstring {becomeBuildFile}{becomeBuildFile}}{subsubsection.5.7.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.7.1.2}isBuildFile}{14}{subsubsection.5.7.1.2}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.8}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script Class Reference}{14}{section.5.8}\protected@file@percent }
+\newlabel{interface_x_c_build_shell_script}{{5.8}{14}{XCBuild\+Shell\+Script Class Reference}{section.5.8}{}}
+\newlabel{interface_x_c_build_shell_script_a776869cb5f3534f0123649c5d43fc27a}{{5.8}{14}{Instance Methods}{section*.14}{}}
+\newlabel{interface_x_c_build_shell_script_a546240e131ef3113050edaedd1c02c40}{{5.8}{14}{Class Methods}{section*.15}{}}
+\newlabel{interface_x_c_build_shell_script_a8395d31f9049a538bb94c0e4cb5277ea}{{5.8}{14}{Protected Attributes}{section*.16}{}}
+\newlabel{interface_x_c_build_shell_script_ab88419d2cd8525883ff6ccbe1cde2389}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_ae21f51288e30e5baae9c194ccad324b1}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a818e40adfaf4f36b0f6346c4927f6ace}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a2044c2e23e49807d91108a69331d4318}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a4e707035e5735b970423bb741cabc4dc}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a1ea0a64850dca73c9192601168512396}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a2f3cb1af62fd6c58709e19f4010d82e1}{{5.8}{15}{Properties}{section*.17}{}}
+\newlabel{interface_x_c_build_shell_script_a09f1f7340392b62f808b4b71fab11c60}{{5.8}{15}{Properties}{section*.17}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.9}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{15}{section.5.9}\protected@file@percent }
+\newlabel{interface_x_c_build_shell_script_definition}{{5.9}{15}{XCBuild\+Shell\+Script\+Definition Class Reference}{section.5.9}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a6da6cb540f62b4f60daa622f583319b0}{{5.9}{15}{Instance Methods}{section*.19}{}}
+\newlabel{interface_x_c_build_shell_script_definition_ae61f52f8e27e373b73de4d5a813ace74}{{5.9}{15}{Class Methods}{section*.20}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a78d2a6ce6dfc4f239454e4707f029a0b}{{5.9}{15}{Protected Attributes}{section*.21}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a72b0cd7e8ea5bf38cb548992d82244ef}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a1f1a1003dcc7451ef27d39b0d911d176}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_aa0d83a2385278ec41184c5002185483f}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_ab9dd4e3c901959f29d3bd67e67626e34}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_acdfb1ba09449fd3caaf3370f2f106fb4}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_aa04c6111c3736016c391fb39681d6cd7}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a22dc77450412e8c1422344c5719938c8}{{5.9}{16}{Properties}{section*.22}{}}
+\newlabel{interface_x_c_build_shell_script_definition_a404e502b97fa0ee9f62a7a2fbda4ced5}{{5.9}{16}{Properties}{section*.22}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.10}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{16}{section.5.10}\protected@file@percent }
+\newlabel{interface_x_c_build_shell_script_definition_tests}{{5.10}{16}{XCBuild\+Shell\+Script\+Definition\+Tests Class Reference}{section.5.10}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.11}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{16}{section.5.11}\protected@file@percent }
+\newlabel{interface_x_c_build_shell_script_tests}{{5.11}{16}{XCBuild\+Shell\+Script\+Tests Class Reference}{section.5.11}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.12}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{17}{section.5.12}\protected@file@percent }
+\newlabel{interface_x_c_class_definition}{{5.12}{17}{XCClass\+Definition Class Reference}{section.5.12}{}}
+\newlabel{interface_x_c_class_definition_a8057794678ce18938d74712647cd768f}{{5.12}{17}{Instance Methods}{section*.26}{}}
+\newlabel{interface_x_c_class_definition_ae16be8fde4a4a4220c6304a7af843e62}{{5.12}{17}{Instance Methods}{section*.26}{}}
+\newlabel{interface_x_c_class_definition_ac55b847a41c97cebdae6129f97c04411}{{5.12}{17}{Instance Methods}{section*.26}{}}
+\newlabel{interface_x_c_class_definition_ab581631959c4a311b08cef8795db19f4}{{5.12}{17}{Instance Methods}{section*.26}{}}
+\newlabel{interface_x_c_class_definition_a2151047dda92fc08060f5db5f0870c5a}{{5.12}{17}{Instance Methods}{section*.26}{}}
+\newlabel{interface_x_c_class_definition_abd37214c1044249cf596305989375513}{{5.12}{17}{Class Methods}{section*.27}{}}
+\newlabel{interface_x_c_class_definition_aa06c00d77cf6fd2e47574b0f25525b9a}{{5.12}{17}{Class Methods}{section*.27}{}}
+\newlabel{interface_x_c_class_definition_aca0cfdcf71ca0882755e48f8cf7fa2e6}{{5.12}{17}{Protected Attributes}{section*.28}{}}
+\newlabel{interface_x_c_class_definition_a7f8877a914b3beb805895f8d9479721f}{{5.12}{17}{Protected Attributes}{section*.28}{}}
+\newlabel{interface_x_c_class_definition_a049ddbd9b0c9b5db631bff86739a4563}{{5.12}{17}{Protected Attributes}{section*.28}{}}
+\newlabel{interface_x_c_class_definition_a2546319b3a49afb05aeff8edb307e426}{{5.12}{17}{Properties}{section*.29}{}}
+\newlabel{interface_x_c_class_definition_a5aa654cae2860ce584f409bfcc3c34b1}{{5.12}{17}{Properties}{section*.29}{}}
+\newlabel{interface_x_c_class_definition_acab09962126ebae52ec5bc9eb4e9c261}{{5.12}{17}{Properties}{section*.29}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.12.1}Method Documentation}{17}{subsection.5.12.1}\protected@file@percent }
+\newlabel{interface_x_c_class_definition_a23690152051fe1b9faae85328a0b01e4}{{5.12.1}{17}{Method Documentation}{subsection.5.12.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.12.1.1}initWithName:}{17}{subsubsection.5.12.1.1}\protected@file@percent }
+\newlabel{interface_x_c_class_definition_a5ac63d73ba9eb0cc41124a86a13960c8}{{5.12.1.1}{17}{\texorpdfstring {initWithName:}{initWithName:}}{subsubsection.5.12.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.12.1.2}initWithName:language:}{18}{subsubsection.5.12.1.2}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.13}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{18}{section.5.13}\protected@file@percent }
+\newlabel{interface_x_c_class_definition_tests}{{5.13}{18}{XCClass\+Definition\+Tests Class Reference}{section.5.13}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.14}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Queue Class Reference}{18}{section.5.14}\protected@file@percent }
+\newlabel{interface_x_c_file_operation_queue}{{5.14}{18}{XCFile\+Operation\+Queue Class Reference}{section.5.14}{}}
+\newlabel{interface_x_c_file_operation_queue_a580ee6b6c0df85cb533376feb0dcf470}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_aa77e6c7278dffdf5c0d1a9895ea696b7}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_afa988e09a85dfc39ee594c16c3791d17}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_a4d89200d1ae0025c2033419225a6e8a9}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_ad190028004951117f463ddb5d5484b74}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_acee5306e88d22c322134064724a1227d}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_a7143342f5652922181dc982ce0a5ed71}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\newlabel{interface_x_c_file_operation_queue_af3cda6fb196b8a4ccc377e06c5fbafb9}{{5.14}{18}{Instance Methods}{section*.32}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.15}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Queue() Category Reference}{19}{section.5.15}\protected@file@percent }
+\newlabel{category_x_c_file_operation_queue_07_08}{{5.15}{19}{XCFile\+Operation\+Queue() Category Reference}{section.5.15}{}}
+\newlabel{category_x_c_file_operation_queue_07_08_a396b8a6bac40903a81e88f18556990af}{{5.15}{19}{Instance Methods}{section*.33}{}}
+\newlabel{category_x_c_file_operation_queue_07_08_ae251327e851f8d879613e4fca9945405}{{5.15}{19}{Instance Methods}{section*.33}{}}
+\newlabel{category_x_c_file_operation_queue_07_08_a88abc5ec02d89e5ab47d424064d2196d}{{5.15}{19}{Instance Methods}{section*.33}{}}
+\newlabel{category_x_c_file_operation_queue_07_08_a971eb0149ad8ed21e35c493bd06296ec}{{5.15}{19}{Instance Methods}{section*.33}{}}
+\newlabel{category_x_c_file_operation_queue_07_08_a93c6820e8b055ed6415773b64a6bf1d7}{{5.15}{19}{Instance Methods}{section*.33}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.16}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{19}{section.5.16}\protected@file@percent }
+\newlabel{interface_x_c_framework_definition}{{5.16}{19}{XCFramework\+Definition Class Reference}{section.5.16}{}}
+\newlabel{interface_x_c_framework_definition_a692f07320b6a66e6aa2619a28d483b32}{{5.16}{19}{Instance Methods}{section*.35}{}}
+\newlabel{interface_x_c_framework_definition_ae42e50ae4ba4243aa0d89d695a8b4636}{{5.16}{19}{Instance Methods}{section*.35}{}}
+\newlabel{interface_x_c_framework_definition_a41770c4aa2b37b67210cd35070b4bc3d}{{5.16}{19}{Instance Methods}{section*.35}{}}
+\newlabel{interface_x_c_framework_definition_a13f96181b5df04e26f308cbc0122422a}{{5.16}{19}{Class Methods}{section*.36}{}}
+\newlabel{interface_x_c_framework_definition_adacb9b07bba827484466795a8d6228ce}{{5.16}{19}{Class Methods}{section*.36}{}}
+\newlabel{interface_x_c_framework_definition_a4ec0180484e50df85802881a4e890862}{{5.16}{19}{Protected Attributes}{section*.37}{}}
+\newlabel{interface_x_c_framework_definition_a635f330365c99e5806d51f44fc8ac10d}{{5.16}{19}{Protected Attributes}{section*.37}{}}
+\newlabel{interface_x_c_framework_definition_add132a619414714f9571ccf77891d19a}{{5.16}{19}{Protected Attributes}{section*.37}{}}
+\newlabel{interface_x_c_framework_definition_a62cb2edda93699a7b7d2690762deb1c4}{{5.16}{20}{Properties}{section*.38}{}}
+\newlabel{interface_x_c_framework_definition_a788efd231c23735b89e508849a708544}{{5.16}{20}{Properties}{section*.38}{}}
+\newlabel{interface_x_c_framework_definition_a1e8261e7bd47602a002aa966405054be}{{5.16}{20}{Properties}{section*.38}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.17}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Path Class Reference}{20}{section.5.17}\protected@file@percent }
+\newlabel{interface_x_c_framework_path}{{5.17}{20}{XCFramework\+Path Class Reference}{section.5.17}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.18}XCGroup Class Reference}{20}{section.5.18}\protected@file@percent }
+\newlabel{interface_x_c_group}{{5.18}{20}{XCGroup Class Reference}{section.5.18}{}}
+\newlabel{interface_x_c_group_a944113b8b5a60f8271417f1edba1887f}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a97417d5f55cf08cac488121496de1e7a}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a37732de928d286e0ab6260108f7e3c40}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a2cf68d8e18c04115a66f89230b6f9897}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a77e2963f8e9aebd04895c0c89ecc900f}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a9ef355eeeb1f342ab13a64d0cc3b81e1}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a205d13347d777b1c0b9ac78bb9806ceb}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a93ec3ff78841c682e75be9c771f1e71f}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a973da6798e2dfb279835131d4f51fb2a}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_a0b0198d7635634e59d34ea08fad82d47}{{5.18}{21}{Instance Methods}{section*.41}{}}
+\newlabel{interface_x_c_group_ace4dbba41ce3b9493a9d009456049e2c}{{5.18}{21}{Class Methods}{section*.42}{}}
+\newlabel{interface_x_c_group_a654ffe67ec06ba30e525c95f33dad1d0}{{5.18}{21}{Class Methods}{section*.42}{}}
+\newlabel{interface_x_c_group_a341022b2ba331f01eeddc6c1e00aab23}{{5.18}{21}{Protected Attributes}{section*.43}{}}
+\newlabel{interface_x_c_group_ab00a6117f46b3c4ffbaaa7bbfe871f76}{{5.18}{21}{Protected Attributes}{section*.43}{}}
+\newlabel{interface_x_c_group_a26b3260d1cc2d6fe3e0711d48e161854}{{5.18}{21}{Protected Attributes}{section*.43}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.18.1}Detailed Description}{22}{subsection.5.18.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.18.2}Method Documentation}{22}{subsection.5.18.2}\protected@file@percent }
+\newlabel{interface_x_c_group_a96411d3bbbc3575f8ec054e248f6ccc0}{{5.18.2}{22}{Method Documentation}{subsection.5.18.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.1}addClass:}{22}{subsubsection.5.18.2.1}\protected@file@percent }
+\newlabel{interface_x_c_group_a122394632f69a66216a83cf4465827f5}{{5.18.2.1}{22}{\texorpdfstring {addClass:}{addClass:}}{subsubsection.5.18.2.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.2}addClass:toTargets:}{22}{subsubsection.5.18.2.2}\protected@file@percent }
+\newlabel{interface_x_c_group_a014d95b76b0ee5602bfd471a54971575}{{5.18.2.2}{22}{\texorpdfstring {addClass:toTargets:}{addClass:toTargets:}}{subsubsection.5.18.2.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.3}addFolderReference:}{22}{subsubsection.5.18.2.3}\protected@file@percent }
+\newlabel{interface_x_c_group_a05d334241ef5aaebd085ee12346edf11}{{5.18.2.3}{22}{\texorpdfstring {addFolderReference:}{addFolderReference:}}{subsubsection.5.18.2.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.4}addFramework:}{22}{subsubsection.5.18.2.4}\protected@file@percent }
+\newlabel{interface_x_c_group_a6793e5b2fa198356d31caa41cb5ca5f3}{{5.18.2.4}{22}{\texorpdfstring {addFramework:}{addFramework:}}{subsubsection.5.18.2.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.5}addFramework:toTargets:}{22}{subsubsection.5.18.2.5}\protected@file@percent }
+\newlabel{interface_x_c_group_a77fc9f047b4f38476a40314c1d1b2e88}{{5.18.2.5}{22}{\texorpdfstring {addFramework:toTargets:}{addFramework:toTargets:}}{subsubsection.5.18.2.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.6}addGroupWithAlias:}{23}{subsubsection.5.18.2.6}\protected@file@percent }
+\newlabel{interface_x_c_group_a9c7c7ad2a6a0f8d1cfa197b75b3790d4}{{5.18.2.6}{23}{\texorpdfstring {addGroupWithAlias:}{addGroupWithAlias:}}{subsubsection.5.18.2.6}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.7}addGroupWithAlias:groupType:}{23}{subsubsection.5.18.2.7}\protected@file@percent }
+\newlabel{interface_x_c_group_a9fae9599b5eeb8790891e970c5f1dd55}{{5.18.2.7}{23}{\texorpdfstring {addGroupWithAlias:groupType:}{addGroupWithAlias:groupType:}}{subsubsection.5.18.2.7}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.8}addGroupWithPath:}{23}{subsubsection.5.18.2.8}\protected@file@percent }
+\newlabel{interface_x_c_group_aa24878ffd2dab62c58da17e65c03d686}{{5.18.2.8}{23}{\texorpdfstring {addGroupWithPath:}{addGroupWithPath:}}{subsubsection.5.18.2.8}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.9}addSourceFile:}{23}{subsubsection.5.18.2.9}\protected@file@percent }
+\newlabel{interface_x_c_group_af59bed33844ce3577749f4bcae7236e5}{{5.18.2.9}{23}{\texorpdfstring {addSourceFile:}{addSourceFile:}}{subsubsection.5.18.2.9}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.10}addSubProject:}{23}{subsubsection.5.18.2.10}\protected@file@percent }
+\newlabel{interface_x_c_group_a52dfc0c60614fb215954921c492a8674}{{5.18.2.10}{23}{\texorpdfstring {addSubProject:}{addSubProject:}}{subsubsection.5.18.2.10}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.11}addSubProject:toTargets:}{23}{subsubsection.5.18.2.11}\protected@file@percent }
+\newlabel{interface_x_c_group_ace1128bb049a7ffe3a5ac0ff2aafa1ec}{{5.18.2.11}{23}{\texorpdfstring {addSubProject:toTargets:}{addSubProject:toTargets:}}{subsubsection.5.18.2.11}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.12}addVersionGroupWithPath:}{24}{subsubsection.5.18.2.12}\protected@file@percent }
+\newlabel{interface_x_c_group_ae5c97eeb00aa9ba0fbfebe2b19b5c267}{{5.18.2.12}{24}{\texorpdfstring {addVersionGroupWithPath:}{addVersionGroupWithPath:}}{subsubsection.5.18.2.12}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.13}addXib:}{24}{subsubsection.5.18.2.13}\protected@file@percent }
+\newlabel{interface_x_c_group_a497ac4da2c0dec3353e9880d824251bb}{{5.18.2.13}{24}{\texorpdfstring {addXib:}{addXib:}}{subsubsection.5.18.2.13}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.14}addXib:toTargets:}{24}{subsubsection.5.18.2.14}\protected@file@percent }
+\newlabel{interface_x_c_group_a856ec674626d75d10c61383860ef211a}{{5.18.2.14}{24}{\texorpdfstring {addXib:toTargets:}{addXib:toTargets:}}{subsubsection.5.18.2.14}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.15}buildFileKeys}{24}{subsubsection.5.18.2.15}\protected@file@percent }
+\newlabel{interface_x_c_group_a5ac6b60f770672010f50003340f9631b}{{5.18.2.15}{24}{\texorpdfstring {buildFileKeys}{buildFileKeys}}{subsubsection.5.18.2.15}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.16}members}{24}{subsubsection.5.18.2.16}\protected@file@percent }
+\newlabel{interface_x_c_group_af791799b15771786d1c1ed77a4218a70}{{5.18.2.16}{24}{\texorpdfstring {members}{members}}{subsubsection.5.18.2.16}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.17}memberWithDisplayName:}{24}{subsubsection.5.18.2.17}\protected@file@percent }
+\newlabel{interface_x_c_group_a2010863a994ab2c9ba4b080b9fd8b849}{{5.18.2.17}{24}{\texorpdfstring {memberWithDisplayName:}{memberWithDisplayName:}}{subsubsection.5.18.2.17}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.18}memberWithKey:}{24}{subsubsection.5.18.2.18}\protected@file@percent }
+\newlabel{interface_x_c_group_a138ba369f7336fc0373416529e1d2495}{{5.18.2.18}{24}{\texorpdfstring {memberWithKey:}{memberWithKey:}}{subsubsection.5.18.2.18}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.19}recursiveMembers}{25}{subsubsection.5.18.2.19}\protected@file@percent }
+\newlabel{interface_x_c_group_ad5359c55dbe6dec38410f04e11f23a25}{{5.18.2.19}{25}{\texorpdfstring {recursiveMembers}{recursiveMembers}}{subsubsection.5.18.2.19}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.20}removeClass:fromTargets:}{25}{subsubsection.5.18.2.20}\protected@file@percent }
+\newlabel{interface_x_c_group_aeb47434275327c36d755a4abc0a7086c}{{5.18.2.20}{25}{\texorpdfstring {removeClass:fromTargets:}{removeClass:fromTargets:}}{subsubsection.5.18.2.20}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.21}removeFramework:fromTargets:}{25}{subsubsection.5.18.2.21}\protected@file@percent }
+\newlabel{interface_x_c_group_aff6d0325233590013bf94605cdd33ca1}{{5.18.2.21}{25}{\texorpdfstring {removeFramework:fromTargets:}{removeFramework:fromTargets:}}{subsubsection.5.18.2.21}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.22}removeHeader:}{25}{subsubsection.5.18.2.22}\protected@file@percent }
+\newlabel{interface_x_c_group_a194d2b1f72d393aa045aa96bd72ff77a}{{5.18.2.22}{25}{\texorpdfstring {removeHeader:}{removeHeader:}}{subsubsection.5.18.2.22}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.2.23}removeMemberWithKey:}{25}{subsubsection.5.18.2.23}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.18.3}Property Documentation}{25}{subsection.5.18.3}\protected@file@percent }
+\newlabel{interface_x_c_group_a5e85f49148d25f0a01f5149231d41cac}{{5.18.3}{25}{Property Documentation}{subsection.5.18.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.3.1}alias}{25}{subsubsection.5.18.3.1}\protected@file@percent }
+\newlabel{interface_x_c_group_a3456b071207ed8d3b79e66024d53a7db}{{5.18.3.1}{25}{\texorpdfstring {alias}{alias}}{subsubsection.5.18.3.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.3.2}children}{26}{subsubsection.5.18.3.2}\protected@file@percent }
+\newlabel{interface_x_c_group_afeb7627acb0907d9c3672653eca8b6eb}{{5.18.3.2}{26}{\texorpdfstring {children}{children}}{subsubsection.5.18.3.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.3.3}key}{26}{subsubsection.5.18.3.3}\protected@file@percent }
+\newlabel{interface_x_c_group_a8baa1a967bff74d9fb8ef6dc6e7fb13a}{{5.18.3.3}{26}{\texorpdfstring {key}{key}}{subsubsection.5.18.3.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.18.3.4}pathRelativeToParent}{26}{subsubsection.5.18.3.4}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.19}XCGroup\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{26}{section.5.19}\protected@file@percent }
+\newlabel{interface_x_c_group_tests}{{5.19}{26}{XCGroup\+Tests Class Reference}{section.5.19}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.20}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Builder Class Reference}{26}{section.5.20}\protected@file@percent }
+\newlabel{interface_x_c_key_builder}{{5.20}{26}{XCKey\+Builder Class Reference}{section.5.20}{}}
+\newlabel{interface_x_c_key_builder_aca64c85e90a00e1234b3909d32db8c15}{{5.20}{27}{Instance Methods}{section*.47}{}}
+\newlabel{interface_x_c_key_builder_a809ff460ab0e01ab7b8912d202ba2f01}{{5.20}{27}{Instance Methods}{section*.47}{}}
+\newlabel{interface_x_c_key_builder_a5811a756cdef15206a69eff593046138}{{5.20}{27}{Class Methods}{section*.48}{}}
+\newlabel{interface_x_c_key_builder_aef0933f07779c85c0304a844aeef9828}{{5.20}{27}{Class Methods}{section*.48}{}}
+\newlabel{interface_x_c_key_builder_a8b47ac1c493fd0e6a31a5e60c18ced63}{{5.20}{27}{Protected Attributes}{section*.49}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.21}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Builder\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{27}{section.5.21}\protected@file@percent }
+\newlabel{interface_x_c_key_builder_tests}{{5.21}{27}{XCKey\+Builder\+Tests Class Reference}{section.5.21}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.22}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Reference\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{27}{section.5.22}\protected@file@percent }
+\newlabel{interface_xcode_file_reference_type_tests}{{5.22}{27}{Xcode\+File\+Reference\+Type\+Tests Class Reference}{section.5.22}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.23}$<$Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Group\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Member$>$ Protocol Reference}{28}{section.5.23}\protected@file@percent }
+\newlabel{protocol_xcode_group_member-p}{{5.23}{28}{\texorpdfstring {$<$}{<}Xcode\+Group\+Member\texorpdfstring {$>$}{>} Protocol Reference}{section.5.23}{}}
+\newlabel{protocol_xcode_group_member-p_a9c26d7fb8e5b8e9a70514cd82f17a753}{{5.23}{28}{Instance Methods}{section*.53}{}}
+\newlabel{protocol_xcode_group_member-p_aaa904107027b7f93f9770816ee6e9af4}{{5.23}{28}{Instance Methods}{section*.53}{}}
+\newlabel{protocol_xcode_group_member-p_ace875c36516c8431fa545cdbd7539247}{{5.23}{28}{Instance Methods}{section*.53}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.23.1}Method Documentation}{28}{subsection.5.23.1}\protected@file@percent }
+\newlabel{protocol_xcode_group_member-p_a37e9e9f28d597028f66ae694b3efd1d8}{{5.23.1}{28}{Method Documentation}{subsection.5.23.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.23.1.1}groupMemberType}{28}{subsubsection.5.23.1.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.24}XCProject Class Reference}{28}{section.5.24}\protected@file@percent }
+\newlabel{interface_x_c_project}{{5.24}{28}{XCProject Class Reference}{section.5.24}{}}
+\newlabel{interface_x_c_project_a96e2f90d957fe6c8200e0af5daad7917}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a0a12420d166e1899d7d864c4e432729b}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a96bd2795c2056788b54d569fbecfeca8}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a8cd3b721551f90b55b55dc0da39ee9ee}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a960203178c72583f5e4ae2d42b60e4f8}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_afbfbf5df3134d5fe516c496e543b5abe}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_aaa574f2ab415a7ca5ded893d8f1dc5da}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a92dd68dc215dfed3ee2fcaab5b72346e}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a1909100224b2527bc609caf8eab7a5f0}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_aca0d762dbf21a7515beb0cf49f636fbc}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_ac1f47cda658191013bd6184356255d1f}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a54669d671dac484cf5d207657f7c92a2}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_aaa724f5876db3d4f5f82c4a5d9a48ae3}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a235e112109c93d5987e2b29c836000a6}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a9caf756e7c08abe60d82258f251c0c8e}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a17db0fff9e79f69dd267d5a6474625dc}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a05186f24cbaeca02ae5a78dbddf9ab7e}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_a1fbbe1cda07f9e1d543abef4b1f251d4}{{5.24}{29}{Instance Methods}{section*.55}{}}
+\newlabel{interface_x_c_project_abf4324ba26ad1e5575aabd9fbdf01a7b}{{5.24}{29}{Class Methods}{section*.56}{}}
+\newlabel{interface_x_c_project_a173619eac2f16acb2df97bd260a5fa67}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_ad6c4a515034b224b14539d41e3ff2ad0}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a761fe57b6f262db7a654cc99b7b6953d}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a8a80a0b2e1c4d2056d8f030446d85253}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a1e25dda852501fc14a96e0ca4e5bc23a}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a2b5b056b0df27bfc0ead818136c357a0}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a580f988f798957d8e0c8cb641e3baa1f}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a234f33077598c48ffdf08af4b6cd3395}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_ac7a8e11957c774711cabfa4821acb053}{{5.24}{30}{Protected Attributes}{section*.57}{}}
+\newlabel{interface_x_c_project_a695fa34a29d8e9545fcbc45d3f73147e}{{5.24}{30}{Properties}{section*.58}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.24.1}Method Documentation}{30}{subsection.5.24.1}\protected@file@percent }
+\newlabel{interface_x_c_project_a4410361e238bd7b0c713904fec310a2a}{{5.24.1}{30}{Method Documentation}{subsection.5.24.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.1}applicationTargets}{30}{subsubsection.5.24.1.1}\protected@file@percent }
+\newlabel{interface_x_c_project_a265cc594ffba012b5bebfc64f301b6ff}{{5.24.1.1}{30}{\texorpdfstring {applicationTargets}{applicationTargets}}{subsubsection.5.24.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.2}configurations}{30}{subsubsection.5.24.1.2}\protected@file@percent }
+\newlabel{interface_x_c_project_a1b7d7949bad44777252ac4aa9a1d42a1}{{5.24.1.2}{30}{\texorpdfstring {configurations}{configurations}}{subsubsection.5.24.1.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.3}configurationWithName:}{30}{subsubsection.5.24.1.3}\protected@file@percent }
+\newlabel{interface_x_c_project_a131d039952cd8bbd455fa1a1d4f6f1f0}{{5.24.1.3}{30}{\texorpdfstring {configurationWithName:}{configurationWithName:}}{subsubsection.5.24.1.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.4}files}{30}{subsubsection.5.24.1.4}\protected@file@percent }
+\newlabel{interface_x_c_project_a8e37d7a871da0916f01ca46be04bd68a}{{5.24.1.4}{30}{\texorpdfstring {files}{files}}{subsubsection.5.24.1.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.5}fileWithKey:}{31}{subsubsection.5.24.1.5}\protected@file@percent }
+\newlabel{interface_x_c_project_af0ec1bda5ecf6777521993732e5ce081}{{5.24.1.5}{31}{\texorpdfstring {fileWithKey:}{fileWithKey:}}{subsubsection.5.24.1.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.6}fileWithName:}{31}{subsubsection.5.24.1.6}\protected@file@percent }
+\newlabel{interface_x_c_project_ab4c661b07ed8ee9ce5a3c0d256b11f17}{{5.24.1.6}{31}{\texorpdfstring {fileWithName:}{fileWithName:}}{subsubsection.5.24.1.6}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.7}groupForGroupMemberWithKey:}{31}{subsubsection.5.24.1.7}\protected@file@percent }
+\newlabel{interface_x_c_project_a02c11d0e7e8bd59140d4a1cfc3b07101}{{5.24.1.7}{31}{\texorpdfstring {groupForGroupMemberWithKey:}{groupForGroupMemberWithKey:}}{subsubsection.5.24.1.7}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.8}groups}{31}{subsubsection.5.24.1.8}\protected@file@percent }
+\newlabel{interface_x_c_project_a42b4f74d42d8554a2d0e967416aa99a6}{{5.24.1.8}{31}{\texorpdfstring {groups}{groups}}{subsubsection.5.24.1.8}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.9}groupWithDisplayName:}{31}{subsubsection.5.24.1.9}\protected@file@percent }
+\newlabel{interface_x_c_project_a7a612074deba05dbfdc4bd2c8fbfc5a8}{{5.24.1.9}{31}{\texorpdfstring {groupWithDisplayName:}{groupWithDisplayName:}}{subsubsection.5.24.1.9}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.10}groupWithKey:}{31}{subsubsection.5.24.1.10}\protected@file@percent }
+\newlabel{interface_x_c_project_a5c29526ae6ec53f9a20b887dbaecff39}{{5.24.1.10}{31}{\texorpdfstring {groupWithKey:}{groupWithKey:}}{subsubsection.5.24.1.10}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.11}groupWithPathFromRoot:}{31}{subsubsection.5.24.1.11}\protected@file@percent }
+\newlabel{interface_x_c_project_a5ca26311344e697b5935435d32c76e9d}{{5.24.1.11}{31}{\texorpdfstring {groupWithPathFromRoot:}{groupWithPathFromRoot:}}{subsubsection.5.24.1.11}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.12}groupWithSourceFile:}{32}{subsubsection.5.24.1.12}\protected@file@percent }
+\newlabel{interface_x_c_project_aa036faece156d323fd2b52d32eacddcf}{{5.24.1.12}{32}{\texorpdfstring {groupWithSourceFile:}{groupWithSourceFile:}}{subsubsection.5.24.1.12}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.13}headerFiles}{32}{subsubsection.5.24.1.13}\protected@file@percent }
+\newlabel{interface_x_c_project_a88eb4b9317a0a1e232f7d1a37eed6b7c}{{5.24.1.13}{32}{\texorpdfstring {headerFiles}{headerFiles}}{subsubsection.5.24.1.13}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.14}initWithFilePath:}{32}{subsubsection.5.24.1.14}\protected@file@percent }
+\newlabel{interface_x_c_project_ae92eccb36eef3337d7623ee1d890481e}{{5.24.1.14}{32}{\texorpdfstring {initWithFilePath:}{initWithFilePath:}}{subsubsection.5.24.1.14}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.15}mainGroup}{32}{subsubsection.5.24.1.15}\protected@file@percent }
+\newlabel{interface_x_c_project_aa2611412e68a6a85e13aeacb47c27c9e}{{5.24.1.15}{32}{\texorpdfstring {mainGroup}{mainGroup}}{subsubsection.5.24.1.15}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.16}objectiveCFiles}{32}{subsubsection.5.24.1.16}\protected@file@percent }
+\newlabel{interface_x_c_project_a00a2007e659b99510355a3f0d259c487}{{5.24.1.16}{32}{\texorpdfstring {objectiveCFiles}{objectiveCFiles}}{subsubsection.5.24.1.16}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.17}objectiveCPlusPlusFiles}{32}{subsubsection.5.24.1.17}\protected@file@percent }
+\newlabel{interface_x_c_project_a0a4c7be71a2f8fd0c5b732bd03ff7fd6}{{5.24.1.17}{32}{\texorpdfstring {objectiveCPlusPlusFiles}{objectiveCPlusPlusFiles}}{subsubsection.5.24.1.17}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.18}objects}{32}{subsubsection.5.24.1.18}\protected@file@percent }
+\newlabel{interface_x_c_project_a8f240e15a2f922ea6dab7ed67830263e}{{5.24.1.18}{32}{\texorpdfstring {objects}{objects}}{subsubsection.5.24.1.18}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.19}pruneEmptyGroups}{33}{subsubsection.5.24.1.19}\protected@file@percent }
+\newlabel{interface_x_c_project_a6fff64e311f1a406c25a64191232a36c}{{5.24.1.19}{33}{\texorpdfstring {pruneEmptyGroups}{pruneEmptyGroups}}{subsubsection.5.24.1.19}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.20}rootGroup}{33}{subsubsection.5.24.1.20}\protected@file@percent }
+\newlabel{interface_x_c_project_a02602c3235f28a5a4a3b175bc79031d1}{{5.24.1.20}{33}{\texorpdfstring {rootGroup}{rootGroup}}{subsubsection.5.24.1.20}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.21}rootGroups}{33}{subsubsection.5.24.1.21}\protected@file@percent }
+\newlabel{interface_x_c_project_a2802de6cf0bb6e8550d713a188b35d52}{{5.24.1.21}{33}{\texorpdfstring {rootGroups}{rootGroups}}{subsubsection.5.24.1.21}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.22}save}{33}{subsubsection.5.24.1.22}\protected@file@percent }
+\newlabel{interface_x_c_project_a3ee5cb7c9774166ff175e527d95ae61a}{{5.24.1.22}{33}{\texorpdfstring {save}{save}}{subsubsection.5.24.1.22}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.23}targets}{33}{subsubsection.5.24.1.23}\protected@file@percent }
+\newlabel{interface_x_c_project_abaa9a7968fad5ec90d41f89e63887ed7}{{5.24.1.23}{33}{\texorpdfstring {targets}{targets}}{subsubsection.5.24.1.23}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.24}targetWithName:}{33}{subsubsection.5.24.1.24}\protected@file@percent }
+\newlabel{interface_x_c_project_a12a30d4884d3ba06914d711558bb22a7}{{5.24.1.24}{33}{\texorpdfstring {targetWithName:}{targetWithName:}}{subsubsection.5.24.1.24}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.25}versionGroups}{33}{subsubsection.5.24.1.25}\protected@file@percent }
+\newlabel{interface_x_c_project_ae6bd0577d0e4c93368961b86ad108fee}{{5.24.1.25}{33}{\texorpdfstring {versionGroups}{versionGroups}}{subsubsection.5.24.1.25}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.26}versionGroupWithKey:}{34}{subsubsection.5.24.1.26}\protected@file@percent }
+\newlabel{interface_x_c_project_a7b2745077b7872bff0979b8f8f772adc}{{5.24.1.26}{34}{\texorpdfstring {versionGroupWithKey:}{versionGroupWithKey:}}{subsubsection.5.24.1.26}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.27}versionGroupWithName:}{34}{subsubsection.5.24.1.27}\protected@file@percent }
+\newlabel{interface_x_c_project_ab4e7d3f18d4026fd136e2710ea38f7ec}{{5.24.1.27}{34}{\texorpdfstring {versionGroupWithName:}{versionGroupWithName:}}{subsubsection.5.24.1.27}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.24.1.28}xibFiles}{34}{subsubsection.5.24.1.28}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.25}XCProject(Sub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project) Category Reference}{34}{section.5.25}\protected@file@percent }
+\newlabel{category_x_c_project_07_sub_project_08}{{5.25}{34}{XCProject(Sub\+Project) Category Reference}{section.5.25}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a92dd68dc215dfed3ee2fcaab5b72346e}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a1909100224b2527bc609caf8eab7a5f0}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_aca0d762dbf21a7515beb0cf49f636fbc}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_ac1f47cda658191013bd6184356255d1f}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a54669d671dac484cf5d207657f7c92a2}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_aaa724f5876db3d4f5f82c4a5d9a48ae3}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a235e112109c93d5987e2b29c836000a6}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a9caf756e7c08abe60d82258f251c0c8e}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a17db0fff9e79f69dd267d5a6474625dc}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a05186f24cbaeca02ae5a78dbddf9ab7e}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\newlabel{category_x_c_project_07_sub_project_08_a1fbbe1cda07f9e1d543abef4b1f251d4}{{5.25}{34}{Instance Methods}{section*.59}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.26}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Build\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Config Class Reference}{35}{section.5.26}\protected@file@percent }
+\newlabel{interface_x_c_project_build_config}{{5.26}{35}{XCProject\+Build\+Config Class Reference}{section.5.26}{}}
+\newlabel{interface_x_c_project_build_config_a6aa3921a24aa1a04ed146d1bc01aa830}{{5.26}{35}{Instance Methods}{section*.61}{}}
+\newlabel{interface_x_c_project_build_config_a3b31022ad4a5a68e6d78a52fd9cc8b5a}{{5.26}{35}{Instance Methods}{section*.61}{}}
+\newlabel{interface_x_c_project_build_config_a86561120cb7c5ceefaa2423b50df4aea}{{5.26}{35}{Instance Methods}{section*.61}{}}
+\newlabel{interface_x_c_project_build_config_a314cc154633199f17ba9f0a6abb56fe2}{{5.26}{35}{Instance Methods}{section*.61}{}}
+\newlabel{interface_x_c_project_build_config_a7e02f019e67fc5b36444bfcb21fa6886}{{5.26}{35}{Instance Methods}{section*.61}{}}
+\newlabel{interface_x_c_project_build_config_ad0f82eebf4648908c2d410dcdbd52149}{{5.26}{35}{Class Methods}{section*.62}{}}
+\newlabel{interface_x_c_project_build_config_a95d856873a021db2c92734a43f86801c}{{5.26}{35}{Class Methods}{section*.62}{}}
+\newlabel{interface_x_c_project_build_config_a15d0aa4eb48fdb07bde07ba2c5fa42a4}{{5.26}{35}{Properties}{section*.63}{}}
+\newlabel{interface_x_c_project_build_config_a23deb664a0d8ac6dcfca4c9f8f51f44e}{{5.26}{35}{Properties}{section*.63}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.27}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{35}{section.5.27}\protected@file@percent }
+\newlabel{interface_x_c_project_tests}{{5.27}{35}{XCProject\+Tests Class Reference}{section.5.27}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.28}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File Class Reference}{36}{section.5.28}\protected@file@percent }
+\newlabel{interface_x_c_source_file}{{5.28}{36}{XCSource\+File Class Reference}{section.5.28}{}}
+\newlabel{interface_x_c_source_file_ac8615e3a5e8ef18bef470b67499356d2}{{5.28}{36}{Instance Methods}{section*.66}{}}
+\newlabel{interface_x_c_source_file_a8901719779cfa15805ff292b3b242d07}{{5.28}{36}{Instance Methods}{section*.66}{}}
+\newlabel{interface_x_c_source_file_a97625fb8853a21d30bf8033fc766859f}{{5.28}{36}{Class Methods}{section*.67}{}}
+\newlabel{interface_x_c_source_file_a73402fcd99aa8e97837f1adc998c2304}{{5.28}{36}{Properties}{section*.68}{}}
+\newlabel{interface_x_c_source_file_a82cbd166469f86d7b92ebd970a9e148b}{{5.28}{36}{Properties}{section*.68}{}}
+\newlabel{interface_x_c_source_file_a2a8feb4272e7439f072411462f82911f}{{5.28}{36}{Properties}{section*.68}{}}
+\newlabel{interface_x_c_source_file_a135b3d0390f10bcd740055081e65524a}{{5.28}{36}{Properties}{section*.68}{}}
+\newlabel{interface_x_c_source_file_a0f8c01b546123f88b839bdbb14138d4d}{{5.28}{36}{Properties}{section*.68}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.28.1}Detailed Description}{36}{subsection.5.28.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.28.2}Method Documentation}{36}{subsection.5.28.2}\protected@file@percent }
+\newlabel{interface_x_c_source_file_a69feb820711a44a5d3adf4bc25669e37}{{5.28.2}{36}{Method Documentation}{subsection.5.28.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.1}becomeBuildFile}{37}{subsubsection.5.28.2.1}\protected@file@percent }
+\newlabel{interface_x_c_source_file_a01b5137080ebdcbfb927e8c541f2ecfe}{{5.28.2.1}{37}{\texorpdfstring {becomeBuildFile}{becomeBuildFile}}{subsubsection.5.28.2.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.2}buildFileKey}{37}{subsubsection.5.28.2.2}\protected@file@percent }
+\newlabel{interface_x_c_source_file_a32b82cd21f7ce2e00c05c331f5ca922d}{{5.28.2.2}{37}{\texorpdfstring {buildFileKey}{buildFileKey}}{subsubsection.5.28.2.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.3}buildPhase}{37}{subsubsection.5.28.2.3}\protected@file@percent }
+\newlabel{interface_x_c_source_file_a94f914a09f7abbbf3048a86ced9f7d10}{{5.28.2.3}{37}{\texorpdfstring {buildPhase}{buildPhase}}{subsubsection.5.28.2.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.4}isBuildFile}{37}{subsubsection.5.28.2.4}\protected@file@percent }
+\newlabel{interface_x_c_source_file_ab4a6d4d99379dbdb99f8e1214ffed356}{{5.28.2.4}{37}{\texorpdfstring {isBuildFile}{isBuildFile}}{subsubsection.5.28.2.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.5}removeBuildFile}{37}{subsubsection.5.28.2.5}\protected@file@percent }
+\newlabel{interface_x_c_source_file_a9694571d4b026b428a056162f20a6dd3}{{5.28.2.5}{37}{\texorpdfstring {removeBuildFile}{removeBuildFile}}{subsubsection.5.28.2.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.6}setCompilerFlags:}{37}{subsubsection.5.28.2.6}\protected@file@percent }
+\gdef \LT@i {\LT@entry 
+    {3}{34.08463pt}\LT@entry 
+    {3}{156.85587pt}}
+\newlabel{interface_x_c_source_file_a009a3627573419fb5f9cb67c5afa3f87}{{5.28.2.6}{38}{\texorpdfstring {setCompilerFlags:}{setCompilerFlags:}}{table.5.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.28.2.7}setWeakReference}{38}{subsubsection.5.28.2.7}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.29}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{38}{section.5.29}\protected@file@percent }
+\newlabel{interface_x_c_source_file_definition}{{5.29}{38}{XCSource\+File\+Definition Class Reference}{section.5.29}{}}
+\newlabel{interface_x_c_source_file_definition_ab0ce23ddeb76786ea11d5baee28cb608}{{5.29}{38}{Instance Methods}{section*.70}{}}
+\newlabel{interface_x_c_source_file_definition_a8e77fb8abd13a719d8e2ebb02fdc8d7a}{{5.29}{38}{Instance Methods}{section*.70}{}}
+\newlabel{interface_x_c_source_file_definition_a91c12cde86894c007a0f1995e44ac7c1}{{5.29}{38}{Class Methods}{section*.71}{}}
+\newlabel{interface_x_c_source_file_definition_a79e91c49704ce9504a94e9e1b0307760}{{5.29}{38}{Class Methods}{section*.71}{}}
+\newlabel{interface_x_c_source_file_definition_a387acd3e10ac68b221f2e96aa811453b}{{5.29}{38}{Class Methods}{section*.71}{}}
+\newlabel{interface_x_c_source_file_definition_aa603abd339463d91dce002f8e0c8b5e8}{{5.29}{38}{Protected Attributes}{section*.72}{}}
+\newlabel{interface_x_c_source_file_definition_a1bbeb08f884f2b7d973dcf43e80cc4b4}{{5.29}{38}{Protected Attributes}{section*.72}{}}
+\newlabel{interface_x_c_source_file_definition_ae8a4564b2d6ac56857b949450bad909a}{{5.29}{38}{Protected Attributes}{section*.72}{}}
+\newlabel{interface_x_c_source_file_definition_aa178243081bf2ea2bfbd23528a413180}{{5.29}{39}{Properties}{section*.73}{}}
+\newlabel{interface_x_c_source_file_definition_a4e16359e1c3b2f3f07b1c87b056a24a7}{{5.29}{39}{Properties}{section*.73}{}}
+\newlabel{interface_x_c_source_file_definition_a89ca94c0a2b6bf90b7c181ed8614c584}{{5.29}{39}{Properties}{section*.73}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.30}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{39}{section.5.30}\protected@file@percent }
+\newlabel{interface_x_c_sub_project_definition}{{5.30}{39}{XCSub\+Project\+Definition Class Reference}{section.5.30}{}}
+\newlabel{interface_x_c_sub_project_definition_a53d521ea7fae7db7e9aedcb38b7ae801}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_a6547ce2981677bb48ada29f755578bab}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_ae86cd94d3b946147cf9f85aa232fc48d}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_a7f1306be6f728cee5fff0a227965adfa}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_a4fef8b1017918476188ac37e4ef35c8a}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_ac77271ef0fb480fef436edec4da52e38}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_ab1665e46fec97cc08298b7e1da0ead41}{{5.30}{39}{Instance Methods}{section*.75}{}}
+\newlabel{interface_x_c_sub_project_definition_a0caa409f6624fff4c7ccfa725700320b}{{5.30}{39}{Class Methods}{section*.76}{}}
+\newlabel{interface_x_c_sub_project_definition_a072b5d3edfc113540ae2b3eae0013599}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a584269eeb584b4420ff0ffa069696ac1}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_aa37c5dedcbb833305484f4f6d044d740}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a33a8195d958daadb4246fae77f06996e}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a1523a192c4e777b49e99c1917510e15c}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a4f6c5012222b6a82ab7b8cbeab37a26c}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a4c3a4943f32b50b230a1d9be0a8e219f}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a551d51ffe95bc16877bcfdcdc1a7d5e0}{{5.30}{39}{Protected Attributes}{section*.77}{}}
+\newlabel{interface_x_c_sub_project_definition_a67afe67729dc553562b66a7651650e98}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_a655b86f19b418a200951fca36d82f3de}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_ae5394747200ae66dd78766930d478d96}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_ab011e26759fe6f64e2a0ed31d830ecad}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_ad4d922689ef099b044a05842d6f93e9b}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_acce7c006ddf1978a968ec9a9e49be358}{{5.30}{40}{Properties}{section*.78}{}}
+\newlabel{interface_x_c_sub_project_definition_a76bb73ad50d92eb16225b774428b1723}{{5.30}{40}{Properties}{section*.78}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.31}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition() Category Reference}{40}{section.5.31}\protected@file@percent }
+\newlabel{category_x_c_sub_project_definition_07_08}{{5.31}{40}{XCSub\+Project\+Definition() Category Reference}{section.5.31}{}}
+\newlabel{category_x_c_sub_project_definition_07_08_a72acb788ea0676c7704f138b533a3a77}{{5.31}{40}{Properties}{section*.79}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.32}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{40}{section.5.32}\protected@file@percent }
+\newlabel{interface_x_c_sub_project_definition_tests}{{5.32}{40}{XCSub\+Project\+Definition\+Tests Class Reference}{section.5.32}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.33}XCTarget Class Reference}{40}{section.5.33}\protected@file@percent }
+\newlabel{interface_x_c_target}{{5.33}{40}{XCTarget Class Reference}{section.5.33}{}}
+\newlabel{interface_x_c_target_afad674edc98884edb24f090b5d378e31}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_ab8e51f2d194a3e5d49cfe21b1a4f2988}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_abeef4fa09df4f49cf068688fada18f36}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a8f874868fd7f7abec6f901abe9b360fc}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_aca1ec28004d29928d3eac511e25da744}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a37f0c80efa42c78224b6b3e802e2dfc3}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a8de328b2d78a913fe647eeae916e6953}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a4772a23624ec530a93df654bd898cb64}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a7cf3b7f36adbe8f3fc8dd025fcb4f439}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a6f33f5bdc159aa797a75b93af71d4365}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a3aaed35866dc400d4b88e79ee9717b36}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a1a8fb69f0caceadc054e6826465fecf7}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_af0c91f3ee07278742e9a0a7fa3374db7}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a7762ceb98c4f5f8005988378cb03bb6e}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_afa9f6565fa69e8f456312435903816f5}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_afec49a376a2f4856cda389ab5ad3e604}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_a3b89d4c5550b832921fc5efc52ff41cd}{{5.33}{41}{Instance Methods}{section*.82}{}}
+\newlabel{interface_x_c_target_ae48bbab918d1fe83afb0abac701224ab}{{5.33}{41}{Class Methods}{section*.83}{}}
+\newlabel{interface_x_c_target_a1eb6b30e6683e053774fe99e71467263}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_a8150da4d6b50ee82d9c34069560c0755}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_ad0d40c5cb0fe2d9495fd07d7575cb3c9}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_a95f516c6e639d53e399d2f1453017ed0}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_a6e35f7e1a3b65198b62d8e7b9cd43bcf}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_ad6e0170a3c489e63b073d1f273e26c36}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_ab2630c299a5e77c0dcc9d9f134d98e40}{{5.33}{41}{Protected Attributes}{section*.84}{}}
+\newlabel{interface_x_c_target_a72e25adbcc07cf3df26734321465d926}{{5.33}{41}{Properties}{section*.85}{}}
+\newlabel{interface_x_c_target_a7a5f548eb9e5dd17334bce543ce76a20}{{5.33}{41}{Properties}{section*.85}{}}
+\newlabel{interface_x_c_target_a5dc8a5b6b476e7adacd0d7d3b57e3660}{{5.33}{41}{Properties}{section*.85}{}}
+\newlabel{interface_x_c_target_acc530e4c19cd4a6a73595cdd3d5ec4cb}{{5.33}{41}{Properties}{section*.85}{}}
+\newlabel{interface_x_c_target_a132365ae8379582e0f5ee3b45f9849f9}{{5.33}{41}{Properties}{section*.85}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.33.1}Detailed Description}{41}{subsection.5.33.1}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.34}XCTarget\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tests Class Reference}{42}{section.5.34}\protected@file@percent }
+\newlabel{interface_x_c_target_tests}{{5.34}{42}{XCTarget\+Tests Class Reference}{section.5.34}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.35}XCVersion\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Group Class Reference}{42}{section.5.35}\protected@file@percent }
+\newlabel{interface_x_c_version_group}{{5.35}{42}{XCVersion\+Group Class Reference}{section.5.35}{}}
+\newlabel{interface_x_c_version_group_af213f9c00a675f35026b80085ad94aa0}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a13ebb5e30e489a4fa4740b2f34c8883f}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a661019987c21b0b3d8d65710ab25f5ec}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a98addd255bf7c092b89e278d2a872dee}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a03df67da6147478982e1b1cf7b8f8f41}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a3fb5d4fe976d45f1c31dde0f8bd635fa}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a21f2d321fdfbde3a982db53bac486a25}{{5.35}{42}{Instance Methods}{section*.88}{}}
+\newlabel{interface_x_c_version_group_a54ef892c65df40da1bdde4642d2a3dc1}{{5.35}{42}{Class Methods}{section*.89}{}}
+\newlabel{interface_x_c_version_group_a80e4bc62286f79aee7dd98295d5df963}{{5.35}{42}{Protected Attributes}{section*.90}{}}
+\newlabel{interface_x_c_version_group_a17f1e0eb958b4c0501480fa138ba8aed}{{5.35}{42}{Protected Attributes}{section*.90}{}}
+\newlabel{interface_x_c_version_group_a338bab4567342ddc6ff152304876a5c2}{{5.35}{43}{Properties}{section*.91}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.35.1}Method Documentation}{43}{subsection.5.35.1}\protected@file@percent }
+\newlabel{interface_x_c_version_group_a95f29cd0630223ec7273c3c98c669b37}{{5.35.1}{43}{Method Documentation}{subsection.5.35.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.1.1}addDataModelSource:}{43}{subsubsection.5.35.1.1}\protected@file@percent }
+\newlabel{interface_x_c_version_group_a162fb995f778781d25e2c94cd242a1d6}{{5.35.1.1}{43}{\texorpdfstring {addDataModelSource:}{addDataModelSource:}}{subsubsection.5.35.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.1.2}memberWithDisplayName:}{43}{subsubsection.5.35.1.2}\protected@file@percent }
+\newlabel{interface_x_c_version_group_a80b556d4c32df75d842e15ca1e64b2cd}{{5.35.1.2}{43}{\texorpdfstring {memberWithDisplayName:}{memberWithDisplayName:}}{subsubsection.5.35.1.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.1.3}memberWithKey:}{43}{subsubsection.5.35.1.3}\protected@file@percent }
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.35.2}Property Documentation}{43}{subsection.5.35.2}\protected@file@percent }
+\newlabel{interface_x_c_version_group_afd3e95e73e576b608f6f5e2416898885}{{5.35.2}{43}{Property Documentation}{subsection.5.35.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.2.1}alias}{43}{subsubsection.5.35.2.1}\protected@file@percent }
+\newlabel{interface_x_c_version_group_acf4f1652b83fc6cc7fc3165d65c7655c}{{5.35.2.1}{43}{\texorpdfstring {alias}{alias}}{subsubsection.5.35.2.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.2.2}key}{44}{subsubsection.5.35.2.2}\protected@file@percent }
+\newlabel{interface_x_c_version_group_af93e68eb50e9c368f2f94b1e3e81ef5b}{{5.35.2.2}{44}{\texorpdfstring {key}{key}}{subsubsection.5.35.2.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.2.3}pathRelativeToParent}{44}{subsubsection.5.35.2.3}\protected@file@percent }
+\newlabel{interface_x_c_version_group_ac094cb0b196c580cbac574781a642d0c}{{5.35.2.3}{44}{\texorpdfstring {pathRelativeToParent}{pathRelativeToParent}}{subsubsection.5.35.2.3}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.35.2.4}versions}{44}{subsubsection.5.35.2.4}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.36}XCXib\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition Class Reference}{44}{section.5.36}\protected@file@percent }
+\newlabel{interface_x_c_xib_definition}{{5.36}{44}{XCXib\+Definition Class Reference}{section.5.36}{}}
+\newlabel{interface_x_c_xib_definition_a71e9133c2f6014f5154f6b41429e394f}{{5.36}{44}{Instance Methods}{section*.93}{}}
+\newlabel{interface_x_c_xib_definition_a6f4cc949c68e9f1a392c81c59584af50}{{5.36}{44}{Instance Methods}{section*.93}{}}
+\newlabel{interface_x_c_xib_definition_a95d72d783aeb130c4a97cfe47c242d9f}{{5.36}{44}{Instance Methods}{section*.93}{}}
+\newlabel{interface_x_c_xib_definition_a0f0fed96387cac92a17a6f96cee1ae07}{{5.36}{44}{Class Methods}{section*.94}{}}
+\newlabel{interface_x_c_xib_definition_ad004842851fa976f83f8fadbdb15ed2a}{{5.36}{44}{Class Methods}{section*.94}{}}
+\newlabel{interface_x_c_xib_definition_ac1fd23a99294381d23b2ae23e3844e20}{{5.36}{45}{Protected Attributes}{section*.95}{}}
+\newlabel{interface_x_c_xib_definition_ac2364849c0ed680d1f30c2c2b9b93171}{{5.36}{45}{Protected Attributes}{section*.95}{}}
+\newlabel{interface_x_c_xib_definition_a2e3bf501465d4879ea9f64d32d10ac08}{{5.36}{45}{Properties}{section*.96}{}}
+\newlabel{interface_x_c_xib_definition_ac58c8587af4f2f984114c2da51abd825}{{5.36}{45}{Properties}{section*.96}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {6}File Documentation}{47}{chapter.6}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {6.1}NSString+\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Remove\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Emoji.h}{47}{section.6.1}\protected@file@percent }
+\newlabel{_n_s_string_09_remove_emoji_8h_source}{{6.1}{47}{NSString+\+Remove\+Emoji.h}{section.6.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.2}XCAbstract\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{47}{section.6.2}\protected@file@percent }
+\newlabel{_x_c_abstract_definition_8h_source}{{6.2}{47}{XCAbstract\+Definition.\+h}{section.6.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.3}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{48}{section.6.3}\protected@file@percent }
+\newlabel{_x_c_build_file_8h_source}{{6.3}{48}{XCBuild\+File.\+h}{section.6.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.4}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{48}{section.6.4}\protected@file@percent }
+\newlabel{_x_c_build_shell_script_8h_source}{{6.4}{48}{XCBuild\+Shell\+Script.\+h}{section.6.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.5}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{49}{section.6.5}\protected@file@percent }
+\newlabel{_x_c_build_shell_script_definition_8h_source}{{6.5}{49}{XCBuild\+Shell\+Script\+Definition.\+h}{section.6.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.6}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{49}{section.6.6}\protected@file@percent }
+\newlabel{_x_c_class_definition_8h_source}{{6.6}{49}{XCClass\+Definition.\+h}{section.6.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.7}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Queue.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{50}{section.6.7}\protected@file@percent }
+\newlabel{_x_c_file_operation_queue_8h_source}{{6.7}{50}{XCFile\+Operation\+Queue.\+h}{section.6.7}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.8}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{51}{section.6.8}\protected@file@percent }
+\newlabel{_x_c_framework_definition_8h_source}{{6.8}{51}{XCFramework\+Definition.\+h}{section.6.8}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.9}XCGroup.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{51}{section.6.9}\protected@file@percent }
+\newlabel{_x_c_group_8h_source}{{6.9}{51}{XCGroup.\+h}{section.6.9}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.10}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Builder.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{53}{section.6.10}\protected@file@percent }
+\newlabel{_x_c_key_builder_8h_source}{{6.10}{53}{XCKey\+Builder.\+h}{section.6.10}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.11}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Editor.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{53}{section.6.11}\protected@file@percent }
+\newlabel{_xcode_editor_8h_source}{{6.11}{53}{Xcode\+Editor.\+h}{section.6.11}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.12}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Group\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Member.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{54}{section.6.12}\protected@file@percent }
+\newlabel{_xcode_group_member_8h_source}{{6.12}{54}{Xcode\+Group\+Member.\+h}{section.6.12}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.13}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Member\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{54}{section.6.13}\protected@file@percent }
+\newlabel{_xcode_member_type_8h_source}{{6.13}{54}{Xcode\+Member\+Type.\+h}{section.6.13}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.14}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{55}{section.6.14}\protected@file@percent }
+\newlabel{_xcode_source_file_type_8h_source}{{6.14}{55}{Xcode\+Source\+File\+Type.\+h}{section.6.14}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.15}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Tree\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{56}{section.6.15}\protected@file@percent }
+\newlabel{_xcode_source_tree_type_8h_source}{{6.15}{56}{Xcode\+Source\+Tree\+Type.\+h}{section.6.15}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.16}XCProject+\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Sub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project.h}{56}{section.6.16}\protected@file@percent }
+\newlabel{_x_c_project_09_sub_project_8h_source}{{6.16}{56}{XCProject+\+Sub\+Project.h}{section.6.16}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.17}XCProject.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{57}{section.6.17}\protected@file@percent }
+\newlabel{_x_c_project_8h_source}{{6.17}{57}{XCProject.\+h}{section.6.17}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.18}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Build\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Config.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{58}{section.6.18}\protected@file@percent }
+\newlabel{_x_c_project_build_config_8h_source}{{6.18}{58}{XCProject\+Build\+Config.\+h}{section.6.18}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.19}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{59}{section.6.19}\protected@file@percent }
+\newlabel{_x_c_source_file_8h_source}{{6.19}{59}{XCSource\+File.\+h}{section.6.19}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.20}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{60}{section.6.20}\protected@file@percent }
+\newlabel{_x_c_source_file_definition_8h_source}{{6.20}{60}{XCSource\+File\+Definition.\+h}{section.6.20}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.21}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{60}{section.6.21}\protected@file@percent }
+\newlabel{_x_c_sub_project_definition_8h_source}{{6.21}{60}{XCSub\+Project\+Definition.\+h}{section.6.21}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.22}XCTarget.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{61}{section.6.22}\protected@file@percent }
+\newlabel{_x_c_target_8h_source}{{6.22}{61}{XCTarget.\+h}{section.6.22}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.23}XCVersion\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Group.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{62}{section.6.23}\protected@file@percent }
+\newlabel{_x_c_version_group_8h_source}{{6.23}{62}{XCVersion\+Group.\+h}{section.6.23}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.24}XCXib\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{63}{section.6.24}\protected@file@percent }
+\newlabel{_x_c_xib_definition_8h_source}{{6.24}{63}{XCXib\+Definition.\+h}{section.6.24}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.25}Class\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Called\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Janine.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{64}{section.6.25}\protected@file@percent }
+\newlabel{_class_called_janine_8h_source}{{6.25}{64}{Class\+Called\+Janine.\+h}{section.6.25}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.26}XCTest\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Resource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}Utils.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize  {7}{8}\selectfont  $\leftarrow \joinrel  \rhook $}}{}{}h}{64}{section.6.26}\protected@file@percent }
+\newlabel{_x_c_test_resource_utils_8h_source}{{6.26}{64}{XCTest\+Resource\+Utils.\+h}{section.6.26}{}}
diff --git a/doc/latex/refman.idx b/doc/latex/refman.idx
new file mode 100644
index 0000000..2c13115
--- /dev/null
+++ b/doc/latex/refman.idx
@@ -0,0 +1,210 @@
+\indexentry{ClassCalledJanine@{ClassCalledJanine}|hyperpage}{11}
+\indexentry{HashValueMD5Hash@{HashValueMD5Hash}|hyperpage}{11}
+\indexentry{NSString(RemoveEmoji)@{NSString(RemoveEmoji)}|hyperpage}{11}
+\indexentry{NSString(XcodeMemberTypeExtensions)@{NSString(XcodeMemberTypeExtensions)}|hyperpage}{12}
+\indexentry{NSString(XcodeSourceTreeTypeExtensions)@{NSString(XcodeSourceTreeTypeExtensions)}|hyperpage}{12}
+\indexentry{XCAbstractDefinition@{XCAbstractDefinition}|hyperpage}{13}
+\indexentry{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}|hyperpage}{13}
+\indexentry{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}!becomeBuildFile@{becomeBuildFile}|hyperpage}{14}
+\indexentry{becomeBuildFile@{becomeBuildFile}!$<$XCBuildFile$>$@{$<$XCBuildFile$>$}|hyperpage}{14}
+\indexentry{$<$XCBuildFile$>$@{$<$XCBuildFile$>$}!isBuildFile@{isBuildFile}|hyperpage}{14}
+\indexentry{isBuildFile@{isBuildFile}!$<$XCBuildFile$>$@{$<$XCBuildFile$>$}|hyperpage}{14}
+\indexentry{XCBuildShellScript@{XCBuildShellScript}|hyperpage}{14}
+\indexentry{XCBuildShellScriptDefinition@{XCBuildShellScriptDefinition}|hyperpage}{15}
+\indexentry{XCBuildShellScriptDefinitionTests@{XCBuildShellScriptDefinitionTests}|hyperpage}{16}
+\indexentry{XCBuildShellScriptTests@{XCBuildShellScriptTests}|hyperpage}{16}
+\indexentry{XCClassDefinition@{XCClassDefinition}|hyperpage}{17}
+\indexentry{XCClassDefinition@{XCClassDefinition}!initWithName:@{initWithName:}|hyperpage}{17}
+\indexentry{initWithName:@{initWithName:}!XCClassDefinition@{XCClassDefinition}|hyperpage}{17}
+\indexentry{XCClassDefinition@{XCClassDefinition}!initWithName:language:@{initWithName:language:}|hyperpage}{17}
+\indexentry{initWithName:language:@{initWithName:language:}!XCClassDefinition@{XCClassDefinition}|hyperpage}{17}
+\indexentry{XCClassDefinitionTests@{XCClassDefinitionTests}|hyperpage}{18}
+\indexentry{XCFileOperationQueue@{XCFileOperationQueue}|hyperpage}{18}
+\indexentry{XCFileOperationQueue()@{XCFileOperationQueue()}|hyperpage}{19}
+\indexentry{XCFrameworkDefinition@{XCFrameworkDefinition}|hyperpage}{19}
+\indexentry{XCFrameworkPath@{XCFrameworkPath}|hyperpage}{20}
+\indexentry{XCGroup@{XCGroup}|hyperpage}{20}
+\indexentry{XCGroup@{XCGroup}!addClass:@{addClass:}|hyperpage}{22}
+\indexentry{addClass:@{addClass:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addClass:toTargets:@{addClass:toTargets:}|hyperpage}{22}
+\indexentry{addClass:toTargets:@{addClass:toTargets:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addFolderReference:@{addFolderReference:}|hyperpage}{22}
+\indexentry{addFolderReference:@{addFolderReference:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addFramework:@{addFramework:}|hyperpage}{22}
+\indexentry{addFramework:@{addFramework:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addFramework:toTargets:@{addFramework:toTargets:}|hyperpage}{22}
+\indexentry{addFramework:toTargets:@{addFramework:toTargets:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addGroupWithAlias:@{addGroupWithAlias:}|hyperpage}{22}
+\indexentry{addGroupWithAlias:@{addGroupWithAlias:}!XCGroup@{XCGroup}|hyperpage}{22}
+\indexentry{XCGroup@{XCGroup}!addGroupWithAlias:groupType:@{addGroupWithAlias:groupType:}|hyperpage}{23}
+\indexentry{addGroupWithAlias:groupType:@{addGroupWithAlias:groupType:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addGroupWithPath:@{addGroupWithPath:}|hyperpage}{23}
+\indexentry{addGroupWithPath:@{addGroupWithPath:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addSourceFile:@{addSourceFile:}|hyperpage}{23}
+\indexentry{addSourceFile:@{addSourceFile:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addSubProject:@{addSubProject:}|hyperpage}{23}
+\indexentry{addSubProject:@{addSubProject:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addSubProject:toTargets:@{addSubProject:toTargets:}|hyperpage}{23}
+\indexentry{addSubProject:toTargets:@{addSubProject:toTargets:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addVersionGroupWithPath:@{addVersionGroupWithPath:}|hyperpage}{23}
+\indexentry{addVersionGroupWithPath:@{addVersionGroupWithPath:}!XCGroup@{XCGroup}|hyperpage}{23}
+\indexentry{XCGroup@{XCGroup}!addXib:@{addXib:}|hyperpage}{24}
+\indexentry{addXib:@{addXib:}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!addXib:toTargets:@{addXib:toTargets:}|hyperpage}{24}
+\indexentry{addXib:toTargets:@{addXib:toTargets:}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!buildFileKeys@{buildFileKeys}|hyperpage}{24}
+\indexentry{buildFileKeys@{buildFileKeys}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!members@{members}|hyperpage}{24}
+\indexentry{members@{members}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!memberWithDisplayName:@{memberWithDisplayName:}|hyperpage}{24}
+\indexentry{memberWithDisplayName:@{memberWithDisplayName:}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!memberWithKey:@{memberWithKey:}|hyperpage}{24}
+\indexentry{memberWithKey:@{memberWithKey:}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!recursiveMembers@{recursiveMembers}|hyperpage}{24}
+\indexentry{recursiveMembers@{recursiveMembers}!XCGroup@{XCGroup}|hyperpage}{24}
+\indexentry{XCGroup@{XCGroup}!removeClass:fromTargets:@{removeClass:fromTargets:}|hyperpage}{25}
+\indexentry{removeClass:fromTargets:@{removeClass:fromTargets:}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!removeFramework:fromTargets:@{removeFramework:fromTargets:}|hyperpage}{25}
+\indexentry{removeFramework:fromTargets:@{removeFramework:fromTargets:}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!removeHeader:@{removeHeader:}|hyperpage}{25}
+\indexentry{removeHeader:@{removeHeader:}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!removeMemberWithKey:@{removeMemberWithKey:}|hyperpage}{25}
+\indexentry{removeMemberWithKey:@{removeMemberWithKey:}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!alias@{alias}|hyperpage}{25}
+\indexentry{alias@{alias}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!children@{children}|hyperpage}{25}
+\indexentry{children@{children}!XCGroup@{XCGroup}|hyperpage}{25}
+\indexentry{XCGroup@{XCGroup}!key@{key}|hyperpage}{26}
+\indexentry{key@{key}!XCGroup@{XCGroup}|hyperpage}{26}
+\indexentry{XCGroup@{XCGroup}!pathRelativeToParent@{pathRelativeToParent}|hyperpage}{26}
+\indexentry{pathRelativeToParent@{pathRelativeToParent}!XCGroup@{XCGroup}|hyperpage}{26}
+\indexentry{XCGroupTests@{XCGroupTests}|hyperpage}{26}
+\indexentry{XCKeyBuilder@{XCKeyBuilder}|hyperpage}{26}
+\indexentry{XCKeyBuilderTests@{XCKeyBuilderTests}|hyperpage}{27}
+\indexentry{XcodeFileReferenceTypeTests@{XcodeFileReferenceTypeTests}|hyperpage}{27}
+\indexentry{$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}|hyperpage}{28}
+\indexentry{$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}!groupMemberType@{groupMemberType}|hyperpage}{28}
+\indexentry{groupMemberType@{groupMemberType}!$<$XcodeGroupMember$>$@{$<$XcodeGroupMember$>$}|hyperpage}{28}
+\indexentry{XCProject@{XCProject}|hyperpage}{28}
+\indexentry{XCProject@{XCProject}!applicationTargets@{applicationTargets}|hyperpage}{30}
+\indexentry{applicationTargets@{applicationTargets}!XCProject@{XCProject}|hyperpage}{30}
+\indexentry{XCProject@{XCProject}!configurations@{configurations}|hyperpage}{30}
+\indexentry{configurations@{configurations}!XCProject@{XCProject}|hyperpage}{30}
+\indexentry{XCProject@{XCProject}!configurationWithName:@{configurationWithName:}|hyperpage}{30}
+\indexentry{configurationWithName:@{configurationWithName:}!XCProject@{XCProject}|hyperpage}{30}
+\indexentry{XCProject@{XCProject}!files@{files}|hyperpage}{30}
+\indexentry{files@{files}!XCProject@{XCProject}|hyperpage}{30}
+\indexentry{XCProject@{XCProject}!fileWithKey:@{fileWithKey:}|hyperpage}{30}
+\indexentry{fileWithKey:@{fileWithKey:}!XCProject@{XCProject}|hyperpage}{30}
+\indexentry{XCProject@{XCProject}!fileWithName:@{fileWithName:}|hyperpage}{31}
+\indexentry{fileWithName:@{fileWithName:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groupForGroupMemberWithKey:@{groupForGroupMemberWithKey:}|hyperpage}{31}
+\indexentry{groupForGroupMemberWithKey:@{groupForGroupMemberWithKey:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groups@{groups}|hyperpage}{31}
+\indexentry{groups@{groups}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groupWithDisplayName:@{groupWithDisplayName:}|hyperpage}{31}
+\indexentry{groupWithDisplayName:@{groupWithDisplayName:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groupWithKey:@{groupWithKey:}|hyperpage}{31}
+\indexentry{groupWithKey:@{groupWithKey:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groupWithPathFromRoot:@{groupWithPathFromRoot:}|hyperpage}{31}
+\indexentry{groupWithPathFromRoot:@{groupWithPathFromRoot:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!groupWithSourceFile:@{groupWithSourceFile:}|hyperpage}{31}
+\indexentry{groupWithSourceFile:@{groupWithSourceFile:}!XCProject@{XCProject}|hyperpage}{31}
+\indexentry{XCProject@{XCProject}!headerFiles@{headerFiles}|hyperpage}{32}
+\indexentry{headerFiles@{headerFiles}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!initWithFilePath:@{initWithFilePath:}|hyperpage}{32}
+\indexentry{initWithFilePath:@{initWithFilePath:}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!mainGroup@{mainGroup}|hyperpage}{32}
+\indexentry{mainGroup@{mainGroup}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!objectiveCFiles@{objectiveCFiles}|hyperpage}{32}
+\indexentry{objectiveCFiles@{objectiveCFiles}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!objectiveCPlusPlusFiles@{objectiveCPlusPlusFiles}|hyperpage}{32}
+\indexentry{objectiveCPlusPlusFiles@{objectiveCPlusPlusFiles}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!objects@{objects}|hyperpage}{32}
+\indexentry{objects@{objects}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!pruneEmptyGroups@{pruneEmptyGroups}|hyperpage}{32}
+\indexentry{pruneEmptyGroups@{pruneEmptyGroups}!XCProject@{XCProject}|hyperpage}{32}
+\indexentry{XCProject@{XCProject}!rootGroup@{rootGroup}|hyperpage}{33}
+\indexentry{rootGroup@{rootGroup}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!rootGroups@{rootGroups}|hyperpage}{33}
+\indexentry{rootGroups@{rootGroups}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!save@{save}|hyperpage}{33}
+\indexentry{save@{save}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!targets@{targets}|hyperpage}{33}
+\indexentry{targets@{targets}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!targetWithName:@{targetWithName:}|hyperpage}{33}
+\indexentry{targetWithName:@{targetWithName:}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!versionGroups@{versionGroups}|hyperpage}{33}
+\indexentry{versionGroups@{versionGroups}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!versionGroupWithKey:@{versionGroupWithKey:}|hyperpage}{33}
+\indexentry{versionGroupWithKey:@{versionGroupWithKey:}!XCProject@{XCProject}|hyperpage}{33}
+\indexentry{XCProject@{XCProject}!versionGroupWithName:@{versionGroupWithName:}|hyperpage}{34}
+\indexentry{versionGroupWithName:@{versionGroupWithName:}!XCProject@{XCProject}|hyperpage}{34}
+\indexentry{XCProject@{XCProject}!xibFiles@{xibFiles}|hyperpage}{34}
+\indexentry{xibFiles@{xibFiles}!XCProject@{XCProject}|hyperpage}{34}
+\indexentry{XCProject(SubProject)@{XCProject(SubProject)}|hyperpage}{34}
+\indexentry{XCProjectBuildConfig@{XCProjectBuildConfig}|hyperpage}{35}
+\indexentry{XCProjectTests@{XCProjectTests}|hyperpage}{35}
+\indexentry{XCSourceFile@{XCSourceFile}|hyperpage}{36}
+\indexentry{XCSourceFile@{XCSourceFile}!becomeBuildFile@{becomeBuildFile}|hyperpage}{36}
+\indexentry{becomeBuildFile@{becomeBuildFile}!XCSourceFile@{XCSourceFile}|hyperpage}{36}
+\indexentry{XCSourceFile@{XCSourceFile}!buildFileKey@{buildFileKey}|hyperpage}{37}
+\indexentry{buildFileKey@{buildFileKey}!XCSourceFile@{XCSourceFile}|hyperpage}{37}
+\indexentry{XCSourceFile@{XCSourceFile}!buildPhase@{buildPhase}|hyperpage}{37}
+\indexentry{buildPhase@{buildPhase}!XCSourceFile@{XCSourceFile}|hyperpage}{37}
+\indexentry{XCSourceFile@{XCSourceFile}!isBuildFile@{isBuildFile}|hyperpage}{37}
+\indexentry{isBuildFile@{isBuildFile}!XCSourceFile@{XCSourceFile}|hyperpage}{37}
+\indexentry{XCSourceFile@{XCSourceFile}!removeBuildFile@{removeBuildFile}|hyperpage}{37}
+\indexentry{removeBuildFile@{removeBuildFile}!XCSourceFile@{XCSourceFile}|hyperpage}{37}
+\indexentry{XCSourceFile@{XCSourceFile}!setCompilerFlags:@{setCompilerFlags:}|hyperpage}{37}
+\indexentry{setCompilerFlags:@{setCompilerFlags:}!XCSourceFile@{XCSourceFile}|hyperpage}{37}
+\indexentry{XCSourceFile@{XCSourceFile}!setWeakReference@{setWeakReference}|hyperpage}{38}
+\indexentry{setWeakReference@{setWeakReference}!XCSourceFile@{XCSourceFile}|hyperpage}{38}
+\indexentry{XCSourceFileDefinition@{XCSourceFileDefinition}|hyperpage}{38}
+\indexentry{XCSubProjectDefinition@{XCSubProjectDefinition}|hyperpage}{39}
+\indexentry{XCSubProjectDefinition()@{XCSubProjectDefinition()}|hyperpage}{40}
+\indexentry{XCSubProjectDefinitionTests@{XCSubProjectDefinitionTests}|hyperpage}{40}
+\indexentry{XCTarget@{XCTarget}|hyperpage}{40}
+\indexentry{XCTargetTests@{XCTargetTests}|hyperpage}{42}
+\indexentry{XCVersionGroup@{XCVersionGroup}|hyperpage}{42}
+\indexentry{XCVersionGroup@{XCVersionGroup}!addDataModelSource:@{addDataModelSource:}|hyperpage}{43}
+\indexentry{addDataModelSource:@{addDataModelSource:}!XCVersionGroup@{XCVersionGroup}|hyperpage}{43}
+\indexentry{XCVersionGroup@{XCVersionGroup}!memberWithDisplayName:@{memberWithDisplayName:}|hyperpage}{43}
+\indexentry{memberWithDisplayName:@{memberWithDisplayName:}!XCVersionGroup@{XCVersionGroup}|hyperpage}{43}
+\indexentry{XCVersionGroup@{XCVersionGroup}!memberWithKey:@{memberWithKey:}|hyperpage}{43}
+\indexentry{memberWithKey:@{memberWithKey:}!XCVersionGroup@{XCVersionGroup}|hyperpage}{43}
+\indexentry{XCVersionGroup@{XCVersionGroup}!alias@{alias}|hyperpage}{43}
+\indexentry{alias@{alias}!XCVersionGroup@{XCVersionGroup}|hyperpage}{43}
+\indexentry{XCVersionGroup@{XCVersionGroup}!key@{key}|hyperpage}{43}
+\indexentry{key@{key}!XCVersionGroup@{XCVersionGroup}|hyperpage}{43}
+\indexentry{XCVersionGroup@{XCVersionGroup}!pathRelativeToParent@{pathRelativeToParent}|hyperpage}{44}
+\indexentry{pathRelativeToParent@{pathRelativeToParent}!XCVersionGroup@{XCVersionGroup}|hyperpage}{44}
+\indexentry{XCVersionGroup@{XCVersionGroup}!versions@{versions}|hyperpage}{44}
+\indexentry{versions@{versions}!XCVersionGroup@{XCVersionGroup}|hyperpage}{44}
+\indexentry{XCXibDefinition@{XCXibDefinition}|hyperpage}{44}
+\indexentry{NSString+RemoveEmoji.h@{NSString+RemoveEmoji.h}|hyperpage}{47}
+\indexentry{XCAbstractDefinition.h@{XCAbstractDefinition.h}|hyperpage}{47}
+\indexentry{XCBuildFile.h@{XCBuildFile.h}|hyperpage}{48}
+\indexentry{XCBuildShellScript.h@{XCBuildShellScript.h}|hyperpage}{48}
+\indexentry{XCBuildShellScriptDefinition.h@{XCBuildShellScriptDefinition.h}|hyperpage}{49}
+\indexentry{XCClassDefinition.h@{XCClassDefinition.h}|hyperpage}{49}
+\indexentry{XCFileOperationQueue.h@{XCFileOperationQueue.h}|hyperpage}{50}
+\indexentry{XCFrameworkDefinition.h@{XCFrameworkDefinition.h}|hyperpage}{51}
+\indexentry{XCGroup.h@{XCGroup.h}|hyperpage}{51}
+\indexentry{XCKeyBuilder.h@{XCKeyBuilder.h}|hyperpage}{53}
+\indexentry{XcodeEditor.h@{XcodeEditor.h}|hyperpage}{53}
+\indexentry{XcodeGroupMember.h@{XcodeGroupMember.h}|hyperpage}{54}
+\indexentry{XcodeMemberType.h@{XcodeMemberType.h}|hyperpage}{54}
+\indexentry{XcodeSourceFileType.h@{XcodeSourceFileType.h}|hyperpage}{55}
+\indexentry{XcodeSourceTreeType.h@{XcodeSourceTreeType.h}|hyperpage}{56}
+\indexentry{XCProject+SubProject.h@{XCProject+SubProject.h}|hyperpage}{56}
+\indexentry{XCProject.h@{XCProject.h}|hyperpage}{57}
+\indexentry{XCProjectBuildConfig.h@{XCProjectBuildConfig.h}|hyperpage}{58}
+\indexentry{XCSourceFile.h@{XCSourceFile.h}|hyperpage}{59}
+\indexentry{XCSourceFileDefinition.h@{XCSourceFileDefinition.h}|hyperpage}{60}
+\indexentry{XCSubProjectDefinition.h@{XCSubProjectDefinition.h}|hyperpage}{60}
+\indexentry{XCTarget.h@{XCTarget.h}|hyperpage}{61}
+\indexentry{XCVersionGroup.h@{XCVersionGroup.h}|hyperpage}{62}
+\indexentry{XCXibDefinition.h@{XCXibDefinition.h}|hyperpage}{63}
+\indexentry{ClassCalledJanine.h@{ClassCalledJanine.h}|hyperpage}{64}
+\indexentry{XCTestResourceUtils.h@{XCTestResourceUtils.h}|hyperpage}{64}
diff --git a/doc/latex/refman.log b/doc/latex/refman.log
new file mode 100644
index 0000000..d2d59e9
--- /dev/null
+++ b/doc/latex/refman.log
@@ -0,0 +1,2455 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex 2019.12.11)  5 MAR 2022 15:32
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**refman
+(./refman.tex
+LaTeX2e <2018-12-01>
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/book.cls
+Document Class: book 2018/09/03 v1.4i Standard LaTeX document class
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/bk10.clo
+File: bk10.clo 2018/09/03 v1.4i Standard LaTeX file (size option)
+)
+\c@part=\count80
+\c@chapter=\count81
+\c@section=\count82
+\c@subsection=\count83
+\c@subsubsection=\count84
+\c@paragraph=\count85
+\c@subparagraph=\count86
+\c@figure=\count87
+\c@table=\count88
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/array.sty
+Rollback for package 'array' requested -> date 2016-10-06.
+         Best approximation is the release introduced on 2016-10-06.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/array-2016-10-06.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen103
+\extrarowheight=\dimen104
+\NC@list=\toks14
+\extratabsurround=\skip43
+\backup@length=\skip44
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/fixltx2e.sty
+Package: fixltx2e 2016/12/29 v2.1a fixes to LaTeX (obsolete)
+Applying: [2015/01/01] Old fixltx2e package on input line 46.
+
+
+Package fixltx2e Warning: fixltx2e is not required with releases after 2015
+(fixltx2e)                All fixes are now in the LaTeX kernel.
+(fixltx2e)                See the latexrelease package for details.
+
+Already applied: [0000/00/00] Old fixltx2e package on input line 53.
+) (./doxygen.sty
+Package: doxygen 
+ (/usr/local/texlive/2019/texmf-dist/tex/latex/base/alltt.sty
+Package: alltt 1997/06/16 v2.0g defines alltt environment
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/calc.sty
+Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ)
+\calc@Acount=\count89
+\calc@Bcount=\count90
+\calc@Adimen=\dimen105
+\calc@Bdimen=\dimen106
+\calc@Askip=\skip45
+\calc@Bskip=\skip46
+LaTeX Info: Redefining \setlength on input line 80.
+LaTeX Info: Redefining \addtolength on input line 81.
+\calc@Ccount=\count91
+\calc@Cskip=\skip47
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/float/float.sty
+Package: float 2001/11/08 v1.3d Float enhancements (AL)
+\c@float@type=\count92
+\float@exts=\toks15
+\float@box=\box27
+\@float@everytoks=\toks16
+\@floatcapt=\box28
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/verbatim.sty
+Package: verbatim 2014/10/28 v1.5q LaTeX2e package for verbatim enhancements
+\every@verbatim=\toks17
+\verbatim@line=\toks18
+\verbatim@in@stream=\read1
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/colortbl/colortbl.sty
+Package: colortbl 2018/12/12 v1.0d Color table columns (DPC)
+\everycr=\toks19
+\minrowclearance=\skip48
+)
+\rownum=\count93
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(./longtable_doxygen.sty
+Package: longtable_doxygen 2014/10/28 v4.11 Multi-page Table package (DPC) - fr
+ozen version for doxygen
+\LTleft=\skip49
+\LTright=\skip50
+\LTpre=\skip51
+\LTpost=\skip52
+\LTchunksize=\count94
+\LTcapwidth=\dimen107
+\LT@head=\box29
+\LT@firsthead=\box30
+\LT@foot=\box31
+\LT@lastfoot=\box32
+\LT@cols=\count95
+\LT@rows=\count96
+\c@LT@tables=\count97
+\c@LT@chunks=\count98
+\LT@p@ftn=\toks20
+) (./tabu_doxygen.sty
+Package: tabu_doxygen 2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen ve
+rsion for doxygen
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/varwidth/varwidth.sty
+Package: varwidth 2009/03/30 ver 0.92;  Variable-width minipages
+\@vwid@box=\box33
+\sift@deathcycles=\count99
+\@vwid@loff=\dimen108
+\@vwid@roff=\dimen109
+)
+\c@taburow=\count100
+\tabu@nbcols=\count101
+\tabu@cnt=\count102
+\tabu@Xcol=\count103
+\tabu@alloc=\count104
+\tabu@nested=\count105
+\tabu@target=\dimen110
+\tabu@spreadtarget=\dimen111
+\tabu@naturalX=\dimen112
+\tabucolX=\dimen113
+\tabu@Xsum=\dimen114
+\extrarowdepth=\dimen115
+\abovetabulinesep=\dimen116
+\belowtabulinesep=\dimen117
+\tabustrutrule=\dimen118
+\tabu@thebody=\toks21
+\tabu@footnotes=\toks22
+\tabu@box=\box34
+\tabu@arstrutbox=\box35
+\tabu@hleads=\box36
+\tabu@vleads=\box37
+\tabu@cellskip=\skip53
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
+Package: fancyvrb 2019/01/15
+
+Style option: `fancyvrb' v3.2a <2019/01/15> (tvz)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks23
+)
+\FV@CodeLineNo=\count106
+\FV@InFile=\read2
+\FV@TabBox=\box38
+\c@FancyVerbLine=\count107
+\FV@StepNumber=\count108
+\FV@OutFile=\write3
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11b `tabularx' package (DPC)
+\TX@col@width=\dimen119
+\TX@old@table=\dimen120
+\TX@old@col=\dimen121
+\TX@target=\dimen122
+\TX@delta=\dimen123
+\TX@cols=\count109
+\TX@ftn=\toks24
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/multicol.sty
+Package: multicol 2018/12/27 v1.8v multicolumn formatting (FMi)
+\c@tracingmulticols=\count110
+\mult@box=\box39
+\multicol@leftmargin=\dimen124
+\c@unbalance=\count111
+\c@collectmore=\count112
+\doublecol@number=\count113
+\multicoltolerance=\count114
+\multicolpretolerance=\count115
+\full@width=\dimen125
+\page@free=\dimen126
+\premulticols=\dimen127
+\postmulticols=\dimen128
+\multicolsep=\skip54
+\multicolbaselineskip=\skip55
+\partial@page=\box40
+\last@line=\box41
+\maxbalancingoverflow=\dimen129
+\mult@rightbox=\box42
+\mult@grightbox=\box43
+\mult@gfirstbox=\box44
+\mult@firstbox=\box45
+\@tempa=\box46
+\@tempa=\box47
+\@tempa=\box48
+\@tempa=\box49
+\@tempa=\box50
+\@tempa=\box51
+\@tempa=\box52
+\@tempa=\box53
+\@tempa=\box54
+\@tempa=\box55
+\@tempa=\box56
+\@tempa=\box57
+\@tempa=\box58
+\@tempa=\box59
+\@tempa=\box60
+\@tempa=\box61
+\@tempa=\box62
+\c@columnbadness=\count116
+\c@finalcolumnbadness=\count117
+\last@try=\dimen130
+\multicolovershoot=\dimen131
+\multicolundershoot=\dimen132
+\mult@nat@firstbox=\box63
+\colbreak@box=\box64
+\mc@col@check@num=\count118
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/multirow/multirow.sty
+Package: multirow 2019/01/01 v2.4 Span multiple rows of a table
+\multirow@colwidth=\skip56
+\multirow@cntb=\count119
+\multirow@dima=\skip57
+\bigstrutjot=\dimen133
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hanging/hanging.sty
+Package: hanging 2009/09/02 v1.2b hanging paragraphs and punctuation
+\h@ngcommawd=\skip58
+\h@ngfstopwd=\skip59
+\h@ngquotewd=\skip60
+\h@ngdquotewd=\skip61
+\h@ngquerywd=\skip62
+\h@ngexclwd=\skip63
+\h@ngcolonwd=\skip64
+\h@ngscolonwd=\skip65
+)
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/adjustbox/adjustbox.sty
+Package: adjustbox 2019/01/04 v1.2 Adjusting TeX boxes (trim, clip, ...)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/xkeyval/xkeyval.sty
+Package: xkeyval 2014/12/03 v2.7a package option processing (HA)
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/xkeyval/xkeyval.tex
+(/usr/local/texlive/2019/texmf-dist/tex/generic/xkeyval/xkvutils.tex
+\XKV@toks=\toks25
+\XKV@tempa@toks=\toks26
+)
+\XKV@depth=\count120
+File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/adjustbox/adjcalc.sty
+Package: adjcalc 2012/05/16 v1.1 Provides advanced setlength with multiple back
+-ends (calc, etex, pgfmath)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/adjustbox/trimclip.sty
+Package: trimclip 2018/04/08 v1.1 Trim and clip general TeX material
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
+File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
+)
+Package graphics Info: Driver file: pdftex.def on input line 99.
+)
+\Gin@req@height=\dimen134
+\Gin@req@width=\dimen135
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/collectbox/collectbox.sty
+Package: collectbox 2012/05/17 v0.4b Collect macro arguments as boxes
+\collectedbox=\box65
+)
+\tc@llx=\dimen136
+\tc@lly=\dimen137
+\tc@urx=\dimen138
+\tc@ury=\dimen139
+Package trimclip Info: Using driver 'tc-pdftex.def'.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/adjustbox/tc-pdftex.def
+File: tc-pdftex.def 2019/01/04 v2.2 Clipping driver for pdftex
+))
+\adjbox@Width=\dimen140
+\adjbox@Height=\dimen141
+\adjbox@Depth=\dimen142
+\adjbox@Totalheight=\dimen143
+\adjbox@pwidth=\dimen144
+\adjbox@pheight=\dimen145
+\adjbox@pdepth=\dimen146
+\adjbox@ptotalheight=\dimen147
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
+Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection
+\c@checkoddpage=\count121
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2013/01/14 v3.01 AMS font symbols
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
+\@emptytoks=\toks27
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info:    Overwriting math alphabet `\mathfrak' in version `bold'
+(Font)                  U/euf/m/n --> U/euf/b/n on input line 106.
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/stackengine/stackengine.sty
+Package: stackengine 2017/02/13 v4.01\ Stacking text and objects in convenient 
+ways
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/etoolbox/etoolbox.sty
+Package: etoolbox 2018/08/19 v2.5f e-TeX tools for LaTeX (JAW)
+\etb@tempcnta=\count122
+)
+(/usr/local/texlive/2019/texmf-dist/tex/generic/listofitems/listofitems.sty
+(/usr/local/texlive/2019/texmf-dist/tex/generic/listofitems/listofitems.tex
+\loi_cnt_foreach_nest=\count123
+\loi_nestcnt=\count124
+)
+Package: listofitems 2019/03/03 v1.61 Grab items in lists using user-specified 
+sep char (CT)
+)
+\c@@stackindex=\count125
+\@boxshift=\skip66
+\stack@tmplength=\skip67
+\temp@stkl=\skip68
+\@stackedboxwidth=\skip69
+\@addedbox=\box66
+\@anchorbox=\box67
+\stackedbox=\box68
+\@centerbox=\box69
+\c@ROWcellindex@=\count126
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/enumitem/enumitem.sty
+Package: enumitem 2019/02/04 v3.8 Customized lists
+\labelindent=\skip70
+\enit@outerparindent=\dimen148
+\enit@toks=\toks28
+\enit@inbox=\box70
+\enit@count@id=\count127
+\enitdp@description=\count128
+)
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/alphalph.sty
+Package: alphalph 2016/05/16 v2.5 Convert numbers to letters (HO)
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/intcalc.sty
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+))
+(/usr/local/texlive/2019/texmf-dist/tex/generic/ulem/ulem.sty
+\UL@box=\box71
+\UL@hyphenbox=\box72
+\UL@skip=\skip71
+\UL@hook=\toks29
+\UL@height=\dimen149
+\UL@pe=\count129
+\UL@pixel=\dimen150
+\ULC@box=\box73
+Package: ulem 2012/05/18
+\ULdepth=\dimen151
+)
+\xrefbox=\box74
+\xreflength=\skip72
+\CodeWidthChar=\skip73
+\CodeHeightChar=\skip74
+\DoxyCodeWidth=\skip75
+\c@DoxyEnumeratei=\count130
+\c@DoxyEnumerateii=\count131
+\c@DoxyEnumerateiii=\count132
+\c@DoxyEnumerateiv=\count133
+\c@DoxyEnumeratev=\count134
+\c@DoxyEnumeratevi=\count135
+\c@DoxyEnumeratevii=\count136
+\c@DoxyEnumerateviii=\count137
+\c@DoxyEnumerateix=\count138
+\c@DoxyEnumeratex=\count139
+\c@DoxyEnumeratexi=\count140
+\c@DoxyEnumeratexii=\count141
+\enitdp@DoxyEnumerate=\count142
+\enitdp@DoxyItemize=\count143
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty
+Package: inputenc 2018/08/11 v1.3c Input encoding file
+\inpenc@prehook=\toks30
+\inpenc@posthook=\toks31
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/makeidx.sty
+Package: makeidx 2014/09/29 v1.0m Standard LaTeX package
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/textcomp.sty
+Package: textcomp 2018/08/11 v2.0j Standard LaTeX package
+Package textcomp Info: Sub-encoding information:
+(textcomp)               5 = only ISO-Adobe without \textcurrency
+(textcomp)               4 = 5 + \texteuro
+(textcomp)               3 = 4 + \textohm
+(textcomp)               2 = 3 + \textestimated + \textcurrency
+(textcomp)               1 = TS1 - \textcircled - \t
+(textcomp)               0 = TS1 (full)
+(textcomp)             Font families with sub-encoding setting implement
+(textcomp)             only a restricted character set as indicated.
+(textcomp)             Family '?' is the default used for unknown fonts.
+(textcomp)             See the documentation for details.
+Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1enc.def
+File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
+Now handling font encoding TS1 ...
+... processing UTF-8 mapping file for font encoding TS1
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1enc.dfu
+File: ts1enc.dfu 2018/10/05 v1.2f UTF-8 support for inputenc
+   defining Unicode char U+00A2 (decimal 162)
+   defining Unicode char U+00A3 (decimal 163)
+   defining Unicode char U+00A4 (decimal 164)
+   defining Unicode char U+00A5 (decimal 165)
+   defining Unicode char U+00A6 (decimal 166)
+   defining Unicode char U+00A7 (decimal 167)
+   defining Unicode char U+00A8 (decimal 168)
+   defining Unicode char U+00A9 (decimal 169)
+   defining Unicode char U+00AA (decimal 170)
+   defining Unicode char U+00AC (decimal 172)
+   defining Unicode char U+00AE (decimal 174)
+   defining Unicode char U+00AF (decimal 175)
+   defining Unicode char U+00B0 (decimal 176)
+   defining Unicode char U+00B1 (decimal 177)
+   defining Unicode char U+00B2 (decimal 178)
+   defining Unicode char U+00B3 (decimal 179)
+   defining Unicode char U+00B4 (decimal 180)
+   defining Unicode char U+00B5 (decimal 181)
+   defining Unicode char U+00B6 (decimal 182)
+   defining Unicode char U+00B7 (decimal 183)
+   defining Unicode char U+00B9 (decimal 185)
+   defining Unicode char U+00BA (decimal 186)
+   defining Unicode char U+00BC (decimal 188)
+   defining Unicode char U+00BD (decimal 189)
+   defining Unicode char U+00BE (decimal 190)
+   defining Unicode char U+00D7 (decimal 215)
+   defining Unicode char U+00F7 (decimal 247)
+   defining Unicode char U+0192 (decimal 402)
+   defining Unicode char U+02C7 (decimal 711)
+   defining Unicode char U+02D8 (decimal 728)
+   defining Unicode char U+02DD (decimal 733)
+   defining Unicode char U+0E3F (decimal 3647)
+   defining Unicode char U+2016 (decimal 8214)
+   defining Unicode char U+2020 (decimal 8224)
+   defining Unicode char U+2021 (decimal 8225)
+   defining Unicode char U+2022 (decimal 8226)
+   defining Unicode char U+2030 (decimal 8240)
+   defining Unicode char U+2031 (decimal 8241)
+   defining Unicode char U+203B (decimal 8251)
+   defining Unicode char U+203D (decimal 8253)
+   defining Unicode char U+2044 (decimal 8260)
+   defining Unicode char U+204E (decimal 8270)
+   defining Unicode char U+2052 (decimal 8274)
+   defining Unicode char U+20A1 (decimal 8353)
+   defining Unicode char U+20A4 (decimal 8356)
+   defining Unicode char U+20A6 (decimal 8358)
+   defining Unicode char U+20A9 (decimal 8361)
+   defining Unicode char U+20AB (decimal 8363)
+   defining Unicode char U+20AC (decimal 8364)
+   defining Unicode char U+20B1 (decimal 8369)
+   defining Unicode char U+2103 (decimal 8451)
+   defining Unicode char U+2116 (decimal 8470)
+   defining Unicode char U+2117 (decimal 8471)
+   defining Unicode char U+211E (decimal 8478)
+   defining Unicode char U+2120 (decimal 8480)
+   defining Unicode char U+2122 (decimal 8482)
+   defining Unicode char U+2126 (decimal 8486)
+   defining Unicode char U+2127 (decimal 8487)
+   defining Unicode char U+212E (decimal 8494)
+   defining Unicode char U+2190 (decimal 8592)
+   defining Unicode char U+2191 (decimal 8593)
+   defining Unicode char U+2192 (decimal 8594)
+   defining Unicode char U+2193 (decimal 8595)
+   defining Unicode char U+2329 (decimal 9001)
+   defining Unicode char U+232A (decimal 9002)
+   defining Unicode char U+2422 (decimal 9250)
+   defining Unicode char U+25E6 (decimal 9702)
+   defining Unicode char U+25EF (decimal 9711)
+   defining Unicode char U+266A (decimal 9834)
+   defining Unicode char U+FEFF (decimal 65279)
+))
+LaTeX Info: Redefining \oldstylenums on input line 334.
+Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349.
+Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350.
+Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351.
+Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352.
+Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353.
+Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354.
+Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355.
+Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356.
+Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357.
+Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358.
+Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359.
+Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360.
+Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361.
+Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362.
+Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363.
+Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364.
+Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365.
+Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366.
+Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367.
+Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368.
+Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369.
+Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370.
+Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371.
+Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372.
+
+Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373.
+Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374.
+Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375.
+Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376.
+Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377.
+Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378.
+Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379.
+Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380.
+Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381.
+Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382.
+Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383.
+Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384.
+Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385.
+Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386.
+Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387.
+Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388.
+Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389.
+Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390.
+Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391.
+Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392.
+Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393.
+Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394.
+Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395.
+Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396.
+Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397.
+Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398.
+Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399.
+Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400.
+Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401.
+Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402.
+Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403.
+Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404.
+Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405.
+Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406.
+Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407.
+Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408.
+Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409.
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/wasysym/wasysym.sty
+Package: wasysym 2003/10/30 v2.0 Wasy-2 symbol support package
+\symwasy=\mathgroup6
+LaTeX Font Info:    Overwriting symbol font `wasy' in version `bold'
+(Font)                  U/wasy/m/n --> U/wasy/b/n on input line 90.
+)
+(/usr/local/texlive/2019/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2018/08/11 v2.0j Standard LaTeX package
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file
+LaTeX Font Info:    Redeclaring font encoding T1 on input line 48.
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/helvet.sty
+Package: helvet 2005/04/12 PSNFSS-v9.2a (WaS) 
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/courier.sty
+Package: courier 2005/04/12 PSNFSS-v9.2a (WaS) 
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/sectsty/sectsty.sty
+Package: sectsty 2002/02/25 v2.0.2 Commands to change all sectional heading sty
+les
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2018/04/16 v5.8 Page Geometry
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+\Gm@cnth=\count144
+\Gm@cntv=\count145
+\c@Gm@tempcnt=\count146
+\Gm@bindingoffset=\dimen152
+\Gm@wd@mp=\dimen153
+\Gm@odd@mp=\dimen154
+\Gm@even@mp=\dimen155
+\Gm@layoutwidth=\dimen156
+\Gm@layoutheight=\dimen157
+\Gm@layouthoffset=\dimen158
+\Gm@layoutvoffset=\dimen159
+\Gm@dimlist=\toks32
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
+Package: fancyhdr 2019/01/31 v3.10 Extensive control of page headers and footer
+s
+\f@nch@headwidth=\skip76
+\f@nch@O@elh=\skip77
+\f@nch@O@erh=\skip78
+\f@nch@O@olh=\skip79
+\f@nch@O@orh=\skip80
+\f@nch@O@elf=\skip81
+\f@nch@O@erf=\skip82
+\f@nch@O@olf=\skip83
+\f@nch@O@orf=\skip84
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/natbib/natbib.sty
+Package: natbib 2010/09/13 8.31b (PWD, AO)
+\bibhang=\skip85
+\bibsep=\skip86
+LaTeX Info: Redefining \cite on input line 694.
+\c@NAT@ctr=\count147
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/tocloft/tocloft.sty
+Package: tocloft 2017/08/31 v2.3i parameterised ToC, etc., typesetting
+Package tocloft Info: The document has chapter divisions on input line 51.
+\cftparskip=\skip87
+\cftbeforetoctitleskip=\skip88
+\cftaftertoctitleskip=\skip89
+\cftbeforepartskip=\skip90
+\cftpartnumwidth=\skip91
+\cftpartindent=\skip92
+\cftbeforechapskip=\skip93
+\cftchapindent=\skip94
+\cftchapnumwidth=\skip95
+\cftbeforesecskip=\skip96
+\cftsecindent=\skip97
+\cftsecnumwidth=\skip98
+\cftbeforesubsecskip=\skip99
+\cftsubsecindent=\skip100
+\cftsubsecnumwidth=\skip101
+\cftbeforesubsubsecskip=\skip102
+\cftsubsubsecindent=\skip103
+\cftsubsubsecnumwidth=\skip104
+\cftbeforeparaskip=\skip105
+\cftparaindent=\skip106
+\cftparanumwidth=\skip107
+\cftbeforesubparaskip=\skip108
+\cftsubparaindent=\skip109
+\cftsubparanumwidth=\skip110
+\cftbeforeloftitleskip=\skip111
+\cftafterloftitleskip=\skip112
+\cftbeforefigskip=\skip113
+\cftfigindent=\skip114
+\cftfignumwidth=\skip115
+\c@lofdepth=\count148
+\c@lotdepth=\count149
+\cftbeforelottitleskip=\skip116
+\cftafterlottitleskip=\skip117
+\cftbeforetabskip=\skip118
+\cfttabindent=\skip119
+\cfttabnumwidth=\skip120
+)
+\@indexfile=\write4
+\openout4 = `refman.idx'.
+
+
+Writing index file refman.idx
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/newunicodechar/newunicodechar.sty
+Package: newunicodechar 2018/04/08 v1.2 Defining Unicode characters
+)
+
+Package newunicodechar Warning: Redefining Unicode character on input line 116.
+
+
+
+Package newunicodechar Warning: Redefining Unicode character on input line 117.
+
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2018/11/30 v6.88e Hypertext links for LaTeX
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package hobsub Info: Skipping package `intcalc' (already loaded).
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen160
+\Hy@linkcounter=\count150
+\Hy@pagecounter=\count151
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2018/11/30 v6.88e Hyperref: PDFDocEncoding definition (HO)
+Now handling font encoding PD1 ...
+... no UTF-8 mapping file for font encoding PD1
+)
+\Hy@SavedSpaceFactor=\count152
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4519.
+Package hyperref Info: Link nesting OFF on input line 4524.
+Package hyperref Info: Hyper index ON on input line 4527.
+Package hyperref Info: Plain pages OFF on input line 4534.
+Package hyperref Info: Backreferencing ON on input line 4537.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4772.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/backref.sty
+Package: backref 2016/05/21 v1.39 Bibliographical back referencing
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+))
+\c@Hy@tempcnt=\count153
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16  ver 3.4  Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5125.
+\XeTeXLinkMargin=\dimen161
+\Fld@menulength=\count154
+\Field@Width=\dimen162
+\Fld@charsize=\dimen163
+Package hyperref Info: Hyper figures OFF on input line 6380.
+Package hyperref Info: Link nesting OFF on input line 6385.
+Package hyperref Info: Hyper index ON on input line 6388.
+Package hyperref Info: backreferencing ON on input line 6393.
+Package hyperref Info: Link coloring OFF on input line 6400.
+Package hyperref Info: Link coloring with OCG OFF on input line 6405.
+Package hyperref Info: PDF/A mode OFF on input line 6410.
+LaTeX Info: Redefining \ref on input line 6450.
+LaTeX Info: Redefining \pageref on input line 6454.
+\Hy@abspage=\count155
+\c@Item=\count156
+\c@Hfootnote=\count157
+)
+Package hyperref Info: Driver: hpdftex.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2018/11/30 v6.88e Hyperref driver for pdfTeX
+\Fld@listcount=\count158
+\c@bookmark@seq@number=\count159
+\Hy@SectionHShift=\skip121
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 136.
+Package hyperref Info: Option `unicode' set `true' on input line 136.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/puenc.def
+File: puenc.def 2018/11/30 v6.88e Hyperref: PDF Unicode definition (HO)
+Now handling font encoding PU ...
+... no UTF-8 mapping file for font encoding PU
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/caption/caption.sty
+Package: caption 2018/10/06 v3.3-154 Customizing captions (AR)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/caption/caption3.sty
+Package: caption3 2018/09/12 v1.8c caption3 kernel (AR)
+Package caption3 Info: TeX engine: e-TeX on input line 64.
+\captionmargin=\dimen164
+\captionmargin@=\dimen165
+\captionwidth=\dimen166
+\caption@tempdima=\dimen167
+\caption@indent=\dimen168
+\caption@parindent=\dimen169
+\caption@hangindent=\dimen170
+)
+\c@caption@flags=\count160
+\c@ContinuedFloat=\count161
+Package caption Info: float package is loaded.
+Package caption Info: hyperref package is loaded.
+Package caption Info: longtable package is loaded.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/caption/ltcaption.sty
+Package: ltcaption 2018/08/26 v1.4-95 longtable captions (AR)
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/etoc/etoc.sty
+Package: etoc 2019/03/09 v1.09 Completely customisable TOCs (JFB)
+\Etoc@toctoks=\toks33
+\c@etoc@tocid=\count162
+\c@etoc@tocdepth=\count163
+\etoc@framed@titlebox=\box75
+\etoc@framed@contentsbox=\box76
+)
+No file refman.aux.
+\openout1 = `refman.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 152.
+LaTeX Font Info:    Try loading font information for TS1+cmr on input line 152.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1cmr.fd
+File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Checking defaults for PU/pdf/m/n on input line 152.
+LaTeX Font Info:    ... okay on input line 152.
+LaTeX Font Info:    Try loading font information for T1+phv on input line 152.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/t1phv.fd
+File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv.
+)
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 8.99994pt on input line 152.
+
+(/usr/local/texlive/2019/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count164
+\scratchdimen=\dimen171
+\scratchbox=\box77
+\nofMPsegments=\count165
+\nofMParguments=\count166
+\everyMPshowfont=\toks34
+\MPscratchCnt=\count167
+\MPscratchDim=\dimen172
+\MPnumerator=\count168
+\makeMPintoPDFobject=\count169
+\everyMPtoPDFconversion=\toks35
+) (/usr/local/texlive/2019/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)
+)
+Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
+38.
+Package grfext Info: Graphics extension search list:
+(grfext)             [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 456.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper: a4paper
+* layout: <same size as paper>
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes: twoside 
+* h-part:(L,W,R)=(71.13188pt, 455.24411pt, 71.13188pt)
+* v-part:(T,H,B)=(71.13188pt, 702.78308pt, 71.13188pt)
+* \paperwidth=597.50787pt
+* \paperheight=845.04684pt
+* \textwidth=455.24411pt
+* \textheight=702.78308pt
+* \oddsidemargin=-1.1381pt
+* \evensidemargin=-1.1381pt
+* \topmargin=-31.2056pt
+* \headheight=12.0pt
+* \headsep=18.06749pt
+* \topskip=10.0pt
+* \footskip=25.29494pt
+* \marginparwidth=125.0pt
+* \marginparsep=7.0pt
+* \columnsep=10.0pt
+* \skip\footins=9.0pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidetrue
+* \@mparswitchtrue
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+\AtBeginShipoutBox=\box78
+Package backref Info: ** backref set up for natbib ** on input line 152.
+Package hyperref Info: Link coloring ON on input line 152.
+(/usr/local/texlive/2019/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/local/texlive/2019/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count170
+)
+LaTeX Info: Redefining \ref on input line 152.
+LaTeX Info: Redefining \pageref on input line 152.
+LaTeX Info: Redefining \nameref on input line 152.
+\@outlinefile=\write5
+\openout5 = `refman.out'.
+
+Package caption Info: Begin \AtBeginDocument code.
+Package caption Info: End \AtBeginDocument code.
+
+No file refman.toc.
+Package hyperref Info: Option `pageanchor' set `false' on input line 160.
+Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 160.
+
+Package hyperref Info: Option `unicode' set `true' on input line 160.
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 12.9599pt on input line 165.
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 6.29996pt on input line 165.
+LaTeX Font Info:    Try loading font information for U+msa on input line 165.
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2013/01/14 v3.01 AMS symbols A
+)
+LaTeX Font Info:    Try loading font information for U+msb on input line 165.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2013/01/14 v3.01 AMS symbols B
+)
+LaTeX Font Info:    Try loading font information for U+wasy on input line 165.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/wasysym/uwasy.fd
+File: uwasy.fd 2003/10/30 v2.0 Wasy-2 symbol font definitions
+)
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 10.79993pt on input line 167.
+ [1
+
+
+{/usr/local/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2
+
+]
+\tf@toc=\write6
+\openout6 = `refman.toc'.
+
+Package hyperref Info: Option `pageanchor' set `true' on input line 176.
+
+Chapter 1.
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 18.66588pt on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <20.74> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 18.66588pt on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/bc/n' will be
+(Font)              scaled to size 18.66588pt on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 22.39185pt on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <24.88> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 22.39185pt on input line 178.
+LaTeX Font Info:    Font shape `T1/phv/bc/n' will be
+(Font)              scaled to size 22.39185pt on input line 178.
+(./md__r_e_a_d_m_e.tex
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <14.4> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 1.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 12.9599pt on input line 1.
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <10> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 2.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 8.99994pt on input line 2.
+
+
+Package hyperref Warning: Difference (2) between bookmark levels is greater 
+(hyperref)                than one, level fixed on input line 2.
+
+LaTeX Font Info:    Try loading font information for T1+pcr on input line 4.
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/t1pcr.fd
+File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
+)
+LaTeX Font Info:    Try loading font information for TS1+phv on input line 34.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/ts1phv.fd
+File: ts1phv.fd 2001/06/04 scalable font definitions for TS1/phv.
+)
+LaTeX Font Info:    Font shape `TS1/phv/m/n' will be
+(Font)              scaled to size 8.99994pt on input line 34.
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <7> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 58.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 6.29996pt on input line 58.
+ [1
+
+
+] [2]
+LaTeX Font Info:    Font shape `TS1/phv/bx/n' in size <14.4> not available
+(Font)              Font shape `TS1/phv/b/n' tried instead on input line 179.
+LaTeX Font Info:    Font shape `TS1/phv/b/n' will be
+(Font)              scaled to size 12.9599pt on input line 179.
+
+
+Package hyperref Warning: Difference (2) between bookmark levels is greater 
+(hyperref)                than one, level fixed on input line 191.
+
+[3]) [4]
+Chapter 2.
+(./hierarchy.tex
+
+LaTeX Warning: Reference `struct_hash_value_m_d5_hash' on page 5 undefined on i
+nput line 3.
+
+
+LaTeX Warning: Reference `interface_class_called_janine' on page 5 undefined on
+ input line 5.
+
+
+LaTeX Warning: Reference `interface_x_c_abstract_definition' on page 5 undefine
+d on input line 6.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_definition' on page 
+5 undefined on input line 8.
+
+
+LaTeX Warning: Reference `interface_x_c_class_definition' on page 5 undefined o
+n input line 9.
+
+
+LaTeX Warning: Reference `interface_x_c_framework_definition' on page 5 undefin
+ed on input line 10.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file_definition' on page 5 undef
+ined on input line 11.
+
+
+LaTeX Warning: Reference `interface_x_c_sub_project_definition' on page 5 undef
+ined on input line 12.
+
+
+LaTeX Warning: Reference `interface_x_c_xib_definition' on page 5 undefined on 
+input line 13.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script' on page 5 undefined
+ on input line 15.
+
+
+LaTeX Warning: Reference `interface_x_c_file_operation_queue' on page 5 undefin
+ed on input line 16.
+
+
+LaTeX Warning: Reference `interface_x_c_framework_path' on page 5 undefined on 
+input line 17.
+
+
+LaTeX Warning: Reference `interface_x_c_group' on page 5 undefined on input lin
+e 18.
+
+
+LaTeX Warning: Reference `interface_x_c_key_builder' on page 5 undefined on inp
+ut line 19.
+
+
+LaTeX Warning: Reference `interface_x_c_project' on page 5 undefined on input l
+ine 20.
+
+
+LaTeX Warning: Reference `interface_x_c_project_build_config' on page 5 undefin
+ed on input line 21.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file' on page 5 undefined on inp
+ut line 22.
+
+
+LaTeX Warning: Reference `interface_x_c_target' on page 5 undefined on input li
+ne 23.
+
+
+LaTeX Warning: Reference `interface_x_c_version_group' on page 5 undefined on i
+nput line 24.
+
+
+LaTeX Warning: Reference `protocol_x_c_build_file-p' on page 5 undefined on inp
+ut line 27.
+
+
+LaTeX Warning: Reference `interface_x_c_group' on page 5 undefined on input lin
+e 29.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file' on page 5 undefined on inp
+ut line 30.
+
+
+LaTeX Warning: Reference `interface_x_c_version_group' on page 5 undefined on i
+nput line 31.
+
+
+LaTeX Warning: Reference `protocol_xcode_group_member-p' on page 5 undefined on
+ input line 33.
+
+
+LaTeX Warning: Reference `interface_x_c_group' on page 5 undefined on input lin
+e 35.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file' on page 5 undefined on inp
+ut line 36.
+
+
+LaTeX Warning: Reference `interface_x_c_version_group' on page 5 undefined on i
+nput line 37.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_remove_emoji_08' on page 5 und
+efined on input line 40.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_xcode_member_type_extensions_0
+8' on page 5 undefined on input line 41.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_xcode_source_tree_type_extensi
+ons_08' on page 5 undefined on input line 42.
+
+
+LaTeX Warning: Reference `category_x_c_file_operation_queue_07_08' on page 5 un
+defined on input line 43.
+
+
+LaTeX Warning: Reference `category_x_c_project_07_sub_project_08' on page 5 und
+efined on input line 44.
+
+
+LaTeX Warning: Reference `category_x_c_sub_project_definition_07_08' on page 5 
+undefined on input line 45.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_definition_tests' on
+ page 5 undefined on input line 47.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_tests' on page 5 und
+efined on input line 48.
+
+
+LaTeX Warning: Reference `interface_x_c_class_definition_tests' on page 5 undef
+ined on input line 49.
+
+[5
+
+]
+
+LaTeX Warning: Reference `interface_x_c_group_tests' on page 6 undefined on inp
+ut line 50.
+
+
+LaTeX Warning: Reference `interface_x_c_key_builder_tests' on page 6 undefined 
+on input line 51.
+
+
+LaTeX Warning: Reference `interface_x_c_project_tests' on page 6 undefined on i
+nput line 52.
+
+
+LaTeX Warning: Reference `interface_x_c_sub_project_definition_tests' on page 6
+ undefined on input line 53.
+
+
+LaTeX Warning: Reference `interface_x_c_target_tests' on page 6 undefined on in
+put line 54.
+
+
+LaTeX Warning: Reference `interface_xcode_file_reference_type_tests' on page 6 
+undefined on input line 55.
+
+) [6]
+Chapter 3.
+(./annotated.tex
+
+LaTeX Warning: Reference `interface_class_called_janine' on page 7 undefined on
+ input line 3.
+
+
+LaTeX Warning: Reference `struct_hash_value_m_d5_hash' on page 7 undefined on i
+nput line 4.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_remove_emoji_08' on page 7 und
+efined on input line 5.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_xcode_member_type_extensions_0
+8' on page 7 undefined on input line 6.
+
+
+LaTeX Warning: Reference `category_n_s_string_07_xcode_source_tree_type_extensi
+ons_08' on page 7 undefined on input line 7.
+
+
+LaTeX Warning: Reference `interface_x_c_abstract_definition' on page 7 undefine
+d on input line 8.
+
+
+LaTeX Warning: Reference `protocol_x_c_build_file-p' on page 7 undefined on inp
+ut line 9.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script' on page 7 undefined
+ on input line 10.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_definition' on page 
+7 undefined on input line 11.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_definition_tests' on
+ page 7 undefined on input line 12.
+
+
+LaTeX Warning: Reference `interface_x_c_build_shell_script_tests' on page 7 und
+efined on input line 13.
+
+
+LaTeX Warning: Reference `interface_x_c_class_definition' on page 7 undefined o
+n input line 14.
+
+
+LaTeX Warning: Reference `interface_x_c_class_definition_tests' on page 7 undef
+ined on input line 15.
+
+
+LaTeX Warning: Reference `interface_x_c_file_operation_queue' on page 7 undefin
+ed on input line 16.
+
+
+LaTeX Warning: Reference `category_x_c_file_operation_queue_07_08' on page 7 un
+defined on input line 17.
+
+
+LaTeX Warning: Reference `interface_x_c_framework_definition' on page 7 undefin
+ed on input line 18.
+
+
+LaTeX Warning: Reference `interface_x_c_framework_path' on page 7 undefined on 
+input line 19.
+
+
+LaTeX Warning: Reference `interface_x_c_group' on page 7 undefined on input lin
+e 20.
+
+
+LaTeX Warning: Reference `interface_x_c_group_tests' on page 7 undefined on inp
+ut line 21.
+
+
+LaTeX Warning: Reference `interface_x_c_key_builder' on page 7 undefined on inp
+ut line 22.
+
+
+LaTeX Warning: Reference `interface_x_c_key_builder_tests' on page 7 undefined 
+on input line 23.
+
+
+LaTeX Warning: Reference `interface_xcode_file_reference_type_tests' on page 7 
+undefined on input line 24.
+
+
+LaTeX Warning: Reference `protocol_xcode_group_member-p' on page 7 undefined on
+ input line 25.
+
+
+LaTeX Warning: Reference `interface_x_c_project' on page 7 undefined on input l
+ine 26.
+
+
+LaTeX Warning: Reference `category_x_c_project_07_sub_project_08' on page 7 und
+efined on input line 27.
+
+
+LaTeX Warning: Reference `interface_x_c_project_build_config' on page 7 undefin
+ed on input line 28.
+
+
+LaTeX Warning: Reference `interface_x_c_project_tests' on page 7 undefined on i
+nput line 29.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file' on page 7 undefined on inp
+ut line 30.
+
+
+LaTeX Warning: Reference `interface_x_c_source_file_definition' on page 7 undef
+ined on input line 31.
+
+
+LaTeX Warning: Reference `interface_x_c_sub_project_definition' on page 7 undef
+ined on input line 32.
+
+
+LaTeX Warning: Reference `category_x_c_sub_project_definition_07_08' on page 7 
+undefined on input line 33.
+
+
+LaTeX Warning: Reference `interface_x_c_sub_project_definition_tests' on page 7
+ undefined on input line 34.
+
+
+LaTeX Warning: Reference `interface_x_c_target' on page 7 undefined on input li
+ne 35.
+
+
+LaTeX Warning: Reference `interface_x_c_target_tests' on page 7 undefined on in
+put line 36.
+
+
+LaTeX Warning: Reference `interface_x_c_version_group' on page 7 undefined on i
+nput line 37.
+
+
+LaTeX Warning: Reference `interface_x_c_xib_definition' on page 7 undefined on 
+input line 38.
+
+) [7
+
+] [8
+
+]
+Chapter 4.
+(./files.tex
+
+LaTeX Warning: Reference `_n_s_string_09_remove_emoji_8h_source' on page 9 unde
+fined on input line 3.
+
+
+LaTeX Warning: Reference `_x_c_abstract_definition_8h_source' on page 9 undefin
+ed on input line 4.
+
+
+LaTeX Warning: Reference `_x_c_build_file_8h_source' on page 9 undefined on inp
+ut line 5.
+
+
+LaTeX Warning: Reference `_x_c_build_shell_script_8h_source' on page 9 undefine
+d on input line 6.
+
+
+LaTeX Warning: Reference `_x_c_build_shell_script_definition_8h_source' on page
+ 9 undefined on input line 7.
+
+
+LaTeX Warning: Reference `_x_c_class_definition_8h_source' on page 9 undefined 
+on input line 8.
+
+
+LaTeX Warning: Reference `_x_c_file_operation_queue_8h_source' on page 9 undefi
+ned on input line 9.
+
+
+LaTeX Warning: Reference `_x_c_framework_definition_8h_source' on page 9 undefi
+ned on input line 10.
+
+
+LaTeX Warning: Reference `_x_c_group_8h_source' on page 9 undefined on input li
+ne 11.
+
+
+LaTeX Warning: Reference `_x_c_key_builder_8h_source' on page 9 undefined on in
+put line 12.
+
+
+LaTeX Warning: Reference `_xcode_editor_8h_source' on page 9 undefined on input
+ line 13.
+
+
+LaTeX Warning: Reference `_xcode_group_member_8h_source' on page 9 undefined on
+ input line 14.
+
+
+LaTeX Warning: Reference `_xcode_member_type_8h_source' on page 9 undefined on 
+input line 15.
+
+
+LaTeX Warning: Reference `_xcode_source_file_type_8h_source' on page 9 undefine
+d on input line 16.
+
+
+LaTeX Warning: Reference `_xcode_source_tree_type_8h_source' on page 9 undefine
+d on input line 17.
+
+
+LaTeX Warning: Reference `_x_c_project_09_sub_project_8h_source' on page 9 unde
+fined on input line 18.
+
+
+LaTeX Warning: Reference `_x_c_project_8h_source' on page 9 undefined on input 
+line 19.
+
+
+LaTeX Warning: Reference `_x_c_project_build_config_8h_source' on page 9 undefi
+ned on input line 20.
+
+
+LaTeX Warning: Reference `_x_c_source_file_8h_source' on page 9 undefined on in
+put line 21.
+
+
+LaTeX Warning: Reference `_x_c_source_file_definition_8h_source' on page 9 unde
+fined on input line 22.
+
+
+LaTeX Warning: Reference `_x_c_sub_project_definition_8h_source' on page 9 unde
+fined on input line 23.
+
+
+LaTeX Warning: Reference `_x_c_target_8h_source' on page 9 undefined on input l
+ine 24.
+
+
+LaTeX Warning: Reference `_x_c_version_group_8h_source' on page 9 undefined on 
+input line 25.
+
+
+LaTeX Warning: Reference `_x_c_xib_definition_8h_source' on page 9 undefined on
+ input line 26.
+
+
+LaTeX Warning: Reference `_class_called_janine_8h_source' on page 9 undefined o
+n input line 27.
+
+
+LaTeX Warning: Reference `_x_c_test_resource_utils_8h_source' on page 9 undefin
+ed on input line 28.
+
+) [9] [10
+
+]
+Chapter 5.
+(./interface_class_called_janine.tex
+Package epstopdf Info: Source file: <interface_class_called_janine.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3792 bytes
+(epstopdf)             Output file: <interface_class_called_janine-eps-converte
+d-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_class_called_jan
+ine-eps-converted-to.pdf interface_class_called_janine.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_class_called_janine-eps-converted-to.pd
+f interface_class_called_janine.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_class_called_janine-eps-converte
+d-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_class_called_janine-eps-converted-t
+o.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...=2.000000cm]{interface_class_called_janine}
+                                                  
+? C
+Type <return> to proceed, S to scroll future error messages,
+R to run without stopping, Q to run quietly,
+I to insert something, E to edit your file,
+1 or ... or 9 to ignore the next 1 to 9 tokens of input,
+H for help, X to quit.
+? R
+OK, entering \nonstopmode...
+) (./struct_hash_value_m_d5_hash.tex
+LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <12> not available
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 3.
+LaTeX Font Info:    Font shape `T1/phv/b/n' will be
+(Font)              scaled to size 10.79993pt on input line 3.
+)
+(./category_n_s_string_07_remove_emoji_08.tex)
+(./category_n_s_string_07_xcode_member_type_extensions_08.tex [11])
+(./category_n_s_string_07_xcode_source_tree_type_extensions_08.tex)
+(./interface_x_c_abstract_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_abstract_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4481 bytes
+(epstopdf)             Output file: <interface_x_c_abstract_definition-eps-conv
+erted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_abstract_def
+inition-eps-converted-to.pdf interface_x_c_abstract_definition.eps>
+(epstopdf)             \includegraphics on input line 10.
+runsystem(repstopdf --outfile=interface_x_c_abstract_definition-eps-converted-t
+o.pdf interface_x_c_abstract_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_abstract_definition-eps-conv
+erted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_abstract_definition-eps-convert
+ed-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.10 ...5556cm]{interface_x_c_abstract_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[12]) (./protocol_x_c_build_file-p.tex
+Package epstopdf Info: Source file: <protocol_x_c_build_file-p.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4105 bytes
+(epstopdf)             Output file: <protocol_x_c_build_file-p-eps-converted-to
+.pdf>
+(epstopdf)             Command: <repstopdf --outfile=protocol_x_c_build_file-p-
+eps-converted-to.pdf protocol_x_c_build_file-p.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=protocol_x_c_build_file-p-eps-converted-to.pdf pr
+otocol_x_c_build_file-p.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <protocol_x_c_build_file-p-eps-converted-to
+.pdf>.
+
+
+! Package pdftex.def Error: File `protocol_x_c_build_file-p-eps-converted-to.pd
+f' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ight=3.000000cm]{protocol_x_c_build_file-p}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+LaTeX Font Info:    Font shape `T1/phv/m/n' will be
+(Font)              scaled to size 7.19995pt on input line 29.
+[13]) (./interface_x_c_build_shell_script.tex
+Package epstopdf Info: Source file: <interface_x_c_build_shell_script.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3794 bytes
+(epstopdf)             Output file: <interface_x_c_build_shell_script-eps-conve
+rted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_build_shell_
+script-eps-converted-to.pdf interface_x_c_build_shell_script.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_build_shell_script-eps-converted-to
+.pdf interface_x_c_build_shell_script.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_build_shell_script-eps-conve
+rted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_build_shell_script-eps-converte
+d-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...000000cm]{interface_x_c_build_shell_script}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 12--14
+[][] \T1/phv/m/n/10 (in-stance-type []_[][]Nonnull) - \T1/phv/b/n/10 init[]With
+[]Project[]:key[]:name[]:files[]:input[]Paths[]:output[]Paths[]:run[]Only[]For[
+]
+ []
+
+[14]) (./interface_x_c_build_shell_script_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_build_shell_script_definitio
+n.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3945 bytes
+(epstopdf)             Output file: <interface_x_c_build_shell_script_definitio
+n-eps-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_build_shell_
+script_definition-eps-converted-to.pdf interface_x_c_build_shell_script_definit
+ion.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_build_shell_script_definition-eps-c
+onverted-to.pdf interface_x_c_build_shell_script_definition.eps)...executed saf
+ely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_build_shell_script_definitio
+n-eps-converted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_build_shell_script_definition-e
+ps-converted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...nterface_x_c_build_shell_script_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 12--14
+[][] \T1/phv/m/n/10 (in-stance-type []_[][]Nonnull) - \T1/phv/b/n/10 init[]With
+[]Name[]:files[]:input[]Paths[]:output[]Paths[]:run[]Only[]For[]Deployment[]
+ []
+
+
+Underfull \hbox (badness 1199) in paragraph at lines 18--20
+[][] \T1/phv/m/n/10 ([] $\OMS/cmsy/m/n/10 ^^C$[]\T1/phv/m/n/10 _[][]Nonnull) + 
+\T1/phv/b/n/10 shell[]Script[]Definition[]With[]Name[]:files[]:input[]Paths[]:o
+utput[]
+ []
+
+) (./interface_x_c_build_shell_script_definition_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_build_shell_script_definitio
+n_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3828 bytes
+(epstopdf)             Output file: <interface_x_c_build_shell_script_definitio
+n_tests-eps-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_build_shell_
+script_definition_tests-eps-converted-to.pdf interface_x_c_build_shell_script_d
+efinition_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_build_shell_script_definition_tests
+-eps-converted-to.pdf interface_x_c_build_shell_script_definition_tests.eps)...
+executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_build_shell_script_definitio
+n_tests-eps-converted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_build_shell_script_definition_t
+ests-eps-converted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ce_x_c_build_shell_script_definition_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[15]) (./interface_x_c_build_shell_script_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_build_shell_script_tests.eps
+>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3808 bytes
+(epstopdf)             Output file: <interface_x_c_build_shell_script_tests-eps
+-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_build_shell_
+script_tests-eps-converted-to.pdf interface_x_c_build_shell_script_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_build_shell_script_tests-eps-conver
+ted-to.pdf interface_x_c_build_shell_script_tests.eps)...executed safely (allow
+ed).
+
+Package epstopdf Info: Result file: <interface_x_c_build_shell_script_tests-eps
+-converted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_build_shell_script_tests-eps-co
+nverted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...cm]{interface_x_c_build_shell_script_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_class_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_class_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3923 bytes
+(epstopdf)             Output file: <interface_x_c_class_definition-eps-convert
+ed-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_class_defini
+tion-eps-converted-to.pdf interface_x_c_class_definition.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_class_definition-eps-converted-to.p
+df interface_x_c_class_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_class_definition-eps-convert
+ed-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_class_definition-eps-converted-
+to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...3.000000cm]{interface_x_c_class_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[16]
+LaTeX Font Info:    Font shape `T1/pcr/m/it' in size <8> not available
+(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 71.
+LaTeX Font Info:    Font shape `T1/pcr/m/it' in size <7> not available
+(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 71.
+ [17]) (./interface_x_c_class_definition_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_class_definition_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3806 bytes
+(epstopdf)             Output file: <interface_x_c_class_definition_tests-eps-c
+onverted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_class_defini
+tion_tests-eps-converted-to.pdf interface_x_c_class_definition_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_class_definition_tests-eps-converte
+d-to.pdf interface_x_c_class_definition_tests.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_class_definition_tests-eps-c
+onverted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_class_definition_tests-eps-conv
+erted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...00cm]{interface_x_c_class_definition_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_file_operation_queue.tex
+Package epstopdf Info: Source file: <interface_x_c_file_operation_queue.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3798 bytes
+(epstopdf)             Output file: <interface_x_c_file_operation_queue-eps-con
+verted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_file_operati
+on_queue-eps-converted-to.pdf interface_x_c_file_operation_queue.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_file_operation_queue-eps-converted-
+to.pdf interface_x_c_file_operation_queue.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_file_operation_queue-eps-con
+verted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_file_operation_queue-eps-conver
+ted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...0000cm]{interface_x_c_file_operation_queue}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./category_x_c_file_operation_queue_07_08.tex [18])
+(./interface_x_c_framework_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_framework_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3931 bytes
+(epstopdf)             Output file: <interface_x_c_framework_definition-eps-con
+verted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_framework_de
+finition-eps-converted-to.pdf interface_x_c_framework_definition.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_framework_definition-eps-converted-
+to.pdf interface_x_c_framework_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_framework_definition-eps-con
+verted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_framework_definition-eps-conver
+ted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...0000cm]{interface_x_c_framework_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_framework_path.tex
+Package epstopdf Info: Source file: <interface_x_c_framework_path.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3788 bytes
+(epstopdf)             Output file: <interface_x_c_framework_path-eps-converted
+-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_framework_pa
+th-eps-converted-to.pdf interface_x_c_framework_path.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_framework_path-eps-converted-to.pdf
+ interface_x_c_framework_path.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_framework_path-eps-converted
+-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_framework_path-eps-converted-to
+.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...t=2.000000cm]{interface_x_c_framework_path}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[19]) (./interface_x_c_group.tex
+Package epstopdf Info: Source file: <interface_x_c_group.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4216 bytes
+(epstopdf)             Output file: <interface_x_c_group-eps-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_group-eps-co
+nverted-to.pdf interface_x_c_group.eps>
+(epstopdf)             \includegraphics on input line 10.
+runsystem(repstopdf --outfile=interface_x_c_group-eps-converted-to.pdf interfac
+e_x_c_group.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_group-eps-converted-to.pdf>.
+
+
+
+! Package pdftex.def Error: File `interface_x_c_group-eps-converted-to.pdf' not
+ found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.10 ...cs[height=3.000000cm]{interface_x_c_group}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[20] [21] [22] [23] [24] [25]) (./interface_x_c_group_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_group_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3786 bytes
+(epstopdf)             Output file: <interface_x_c_group_tests-eps-converted-to
+.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_group_tests-
+eps-converted-to.pdf interface_x_c_group_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_group_tests-eps-converted-to.pdf in
+terface_x_c_group_tests.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_group_tests-eps-converted-to
+.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_group_tests-eps-converted-to.pd
+f' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ight=2.000000cm]{interface_x_c_group_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_key_builder.tex
+Package epstopdf Info: Source file: <interface_x_c_key_builder.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3782 bytes
+(epstopdf)             Output file: <interface_x_c_key_builder-eps-converted-to
+.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_key_builder-
+eps-converted-to.pdf interface_x_c_key_builder.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_key_builder-eps-converted-to.pdf in
+terface_x_c_key_builder.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_key_builder-eps-converted-to
+.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_key_builder-eps-converted-to.pd
+f' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ight=2.000000cm]{interface_x_c_key_builder}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[26]) (./interface_x_c_key_builder_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_key_builder_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3796 bytes
+(epstopdf)             Output file: <interface_x_c_key_builder_tests-eps-conver
+ted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_key_builder_
+tests-eps-converted-to.pdf interface_x_c_key_builder_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_key_builder_tests-eps-converted-to.
+pdf interface_x_c_key_builder_tests.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_key_builder_tests-eps-conver
+ted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_key_builder_tests-eps-converted
+-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ....000000cm]{interface_x_c_key_builder_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_xcode_file_reference_type_tests.tex
+Package epstopdf Info: Source file: <interface_xcode_file_reference_type_tests.
+eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3816 bytes
+(epstopdf)             Output file: <interface_xcode_file_reference_type_tests-
+eps-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_xcode_file_refer
+ence_type_tests-eps-converted-to.pdf interface_xcode_file_reference_type_tests.
+eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_xcode_file_reference_type_tests-eps-con
+verted-to.pdf interface_xcode_file_reference_type_tests.eps)...executed safely 
+(allowed).
+
+Package epstopdf Info: Result file: <interface_xcode_file_reference_type_tests-
+eps-converted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_xcode_file_reference_type_tests-eps
+-converted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...{interface_xcode_file_reference_type_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./protocol_xcode_group_member-p.tex
+Package epstopdf Info: Source file: <protocol_xcode_group_member-p.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4115 bytes
+(epstopdf)             Output file: <protocol_xcode_group_member-p-eps-converte
+d-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=protocol_xcode_group_membe
+r-p-eps-converted-to.pdf protocol_xcode_group_member-p.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=protocol_xcode_group_member-p-eps-converted-to.pd
+f protocol_xcode_group_member-p.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <protocol_xcode_group_member-p-eps-converte
+d-to.pdf>.
+
+
+! Package pdftex.def Error: File `protocol_xcode_group_member-p-eps-converted-t
+o.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...=3.000000cm]{protocol_xcode_group_member-p}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[27]) (./interface_x_c_project.tex
+Package epstopdf Info: Source file: <interface_x_c_project.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3776 bytes
+(epstopdf)             Output file: <interface_x_c_project-eps-converted-to.pdf
+>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_project-eps-
+converted-to.pdf interface_x_c_project.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_project-eps-converted-to.pdf interf
+ace_x_c_project.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_project-eps-converted-to.pdf
+>.
+
+
+! Package pdftex.def Error: File `interface_x_c_project-eps-converted-to.pdf' n
+ot found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...s[height=2.000000cm]{interface_x_c_project}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[28] [29] [30]
+LaTeX Font Info:    Font shape `T1/phv/m/it' in size <10> not available
+(Font)              Font shape `T1/phv/m/sl' tried instead on input line 221.
+LaTeX Font Info:    Font shape `T1/phv/m/sl' will be
+(Font)              scaled to size 8.99994pt on input line 221.
+ [31] [32] [33]) (./category_x_c_project_07_sub_project_08.tex)
+(./interface_x_c_project_build_config.tex
+Package epstopdf Info: Source file: <interface_x_c_project_build_config.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3798 bytes
+(epstopdf)             Output file: <interface_x_c_project_build_config-eps-con
+verted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_project_buil
+d_config-eps-converted-to.pdf interface_x_c_project_build_config.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_project_build_config-eps-converted-
+to.pdf interface_x_c_project_build_config.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_project_build_config-eps-con
+verted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_project_build_config-eps-conver
+ted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...0000cm]{interface_x_c_project_build_config}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[34]) (./interface_x_c_project_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_project_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3790 bytes
+(epstopdf)             Output file: <interface_x_c_project_tests-eps-converted-
+to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_project_test
+s-eps-converted-to.pdf interface_x_c_project_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_project_tests-eps-converted-to.pdf 
+interface_x_c_project_tests.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_project_tests-eps-converted-
+to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_project_tests-eps-converted-to.
+pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ht=2.000000cm]{interface_x_c_project_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_source_file.tex
+Package epstopdf Info: Source file: <interface_x_c_source_file.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4226 bytes
+(epstopdf)             Output file: <interface_x_c_source_file-eps-converted-to
+.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_source_file-
+eps-converted-to.pdf interface_x_c_source_file.eps>
+(epstopdf)             \includegraphics on input line 10.
+runsystem(repstopdf --outfile=interface_x_c_source_file-eps-converted-to.pdf in
+terface_x_c_source_file.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_source_file-eps-converted-to
+.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_source_file-eps-converted-to.pd
+f' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.10 ...ght=3.000000cm]{interface_x_c_source_file}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[35] [36] [37]
+
+Package longtable Warning: Column widths have changed
+(longtable)                in table 5.1 on input line 124.
+
+) (./interface_x_c_source_file_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_source_file_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3933 bytes
+(epstopdf)             Output file: <interface_x_c_source_file_definition-eps-c
+onverted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_source_file_
+definition-eps-converted-to.pdf interface_x_c_source_file_definition.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_source_file_definition-eps-converte
+d-to.pdf interface_x_c_source_file_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_source_file_definition-eps-c
+onverted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_source_file_definition-eps-conv
+erted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...00cm]{interface_x_c_source_file_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_sub_project_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_sub_project_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3933 bytes
+(epstopdf)             Output file: <interface_x_c_sub_project_definition-eps-c
+onverted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_sub_project_
+definition-eps-converted-to.pdf interface_x_c_sub_project_definition.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_sub_project_definition-eps-converte
+d-to.pdf interface_x_c_sub_project_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_sub_project_definition-eps-c
+onverted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_sub_project_definition-eps-conv
+erted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...00cm]{interface_x_c_sub_project_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[38] [39]) (./category_x_c_sub_project_definition_07_08.tex)
+(./interface_x_c_sub_project_definition_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_sub_project_definition_tests
+.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3816 bytes
+(epstopdf)             Output file: <interface_x_c_sub_project_definition_tests
+-eps-converted-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_sub_project_
+definition_tests-eps-converted-to.pdf interface_x_c_sub_project_definition_test
+s.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_sub_project_definition_tests-eps-co
+nverted-to.pdf interface_x_c_sub_project_definition_tests.eps)...executed safel
+y (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_sub_project_definition_tests
+-eps-converted-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_sub_project_definition_tests-ep
+s-converted-to.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...interface_x_c_sub_project_definition_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+) (./interface_x_c_target.tex
+Package epstopdf Info: Source file: <interface_x_c_target.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3774 bytes
+(epstopdf)             Output file: <interface_x_c_target-eps-converted-to.pdf>
+
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_target-eps-c
+onverted-to.pdf interface_x_c_target.eps>
+(epstopdf)             \includegraphics on input line 10.
+runsystem(repstopdf --outfile=interface_x_c_target-eps-converted-to.pdf interfa
+ce_x_c_target.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_target-eps-converted-to.pdf>
+.
+
+
+! Package pdftex.def Error: File `interface_x_c_target-eps-converted-to.pdf' no
+t found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.10 ...s[height=2.000000cm]{interface_x_c_target}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[40]) (./interface_x_c_target_tests.tex
+Package epstopdf Info: Source file: <interface_x_c_target_tests.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3788 bytes
+(epstopdf)             Output file: <interface_x_c_target_tests-eps-converted-t
+o.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_target_tests
+-eps-converted-to.pdf interface_x_c_target_tests.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_target_tests-eps-converted-to.pdf i
+nterface_x_c_target_tests.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_target_tests-eps-converted-t
+o.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_target_tests-eps-converted-to.p
+df' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ght=2.000000cm]{interface_x_c_target_tests}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[41]) (./interface_x_c_version_group.tex
+Package epstopdf Info: Source file: <interface_x_c_version_group.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 4230 bytes
+(epstopdf)             Output file: <interface_x_c_version_group-eps-converted-
+to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_version_grou
+p-eps-converted-to.pdf interface_x_c_version_group.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_version_group-eps-converted-to.pdf 
+interface_x_c_version_group.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_version_group-eps-converted-
+to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_version_group-eps-converted-to.
+pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...ht=3.000000cm]{interface_x_c_version_group}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[42] [43]) (./interface_x_c_xib_definition.tex
+Package epstopdf Info: Source file: <interface_x_c_xib_definition.eps>
+(epstopdf)                    date: 2022-03-04 19:48:53
+(epstopdf)                    size: 3919 bytes
+(epstopdf)             Output file: <interface_x_c_xib_definition-eps-converted
+-to.pdf>
+(epstopdf)             Command: <repstopdf --outfile=interface_x_c_xib_definiti
+on-eps-converted-to.pdf interface_x_c_xib_definition.eps>
+(epstopdf)             \includegraphics on input line 6.
+runsystem(repstopdf --outfile=interface_x_c_xib_definition-eps-converted-to.pdf
+ interface_x_c_xib_definition.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <interface_x_c_xib_definition-eps-converted
+-to.pdf>.
+
+
+! Package pdftex.def Error: File `interface_x_c_xib_definition-eps-converted-to
+.pdf' not found: using draft setting.
+
+See the pdftex.def package documentation for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.6 ...t=3.000000cm]{interface_x_c_xib_definition}
+                                                  
+Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
+
+[44]) [45] [46
+
+]
+Chapter 6.
+(./_n_s_string_09_remove_emoji_8h_source.tex)
+(./_x_c_abstract_definition_8h_source.tex) (./_x_c_build_file_8h_source.tex
+LaTeX Font Info:    Try loading font information for TS1+pcr on input line 10.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/psnfss/ts1pcr.fd
+File: ts1pcr.fd 2001/06/04 font definitions for TS1/pcr.
+) [47])
+(./_x_c_build_shell_script_8h_source.tex [48])
+(./_x_c_build_shell_script_definition_8h_source.tex)
+(./_x_c_class_definition_8h_source.tex [49])
+(./_x_c_file_operation_queue_8h_source.tex [50])
+(./_x_c_framework_definition_8h_source.tex) (./_x_c_group_8h_source.tex
+[51] [52]) (./_x_c_key_builder_8h_source.tex) (./_xcode_editor_8h_source.tex
+[53]) (./_xcode_group_member_8h_source.tex) (./_xcode_member_type_8h_source.tex
+[54]) (./_xcode_source_file_type_8h_source.tex [55])
+(./_xcode_source_tree_type_8h_source.tex)
+(./_x_c_project_09_sub_project_8h_source.tex [56])
+(./_x_c_project_8h_source.tex [57]) (./_x_c_project_build_config_8h_source.tex
+[58]) (./_x_c_source_file_8h_source.tex [59])
+(./_x_c_source_file_definition_8h_source.tex)
+(./_x_c_sub_project_definition_8h_source.tex [60]) (./_x_c_target_8h_source.tex
+[61]) (./_x_c_version_group_8h_source.tex [62])
+(./_x_c_xib_definition_8h_source.tex [63])
+(./_class_called_janine_8h_source.tex)
+(./_x_c_test_resource_utils_8h_source.tex) [64]
+No file refman.ind.
+
+Package longtable Warning: Table widths have changed. Rerun LaTeX.
+
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 261.
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 261.
+(./refman.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 261.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 261.
+
+
+Package rerunfilecheck Warning: File `refman.out' has changed.
+(rerunfilecheck)                Rerun to get outlines right
+(rerunfilecheck)                or use package `bookmark'.
+
+Package rerunfilecheck Info: Checksums for `refman.out':
+(rerunfilecheck)             Before: <no file>
+(rerunfilecheck)             After:  6775AE4EACEFAFDBAEAD2346928F8F89;37290.
+
+LaTeX Warning: There were undefined references.
+
+
+LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 18174 strings out of 492616
+ 300716 string characters out of 6129480
+ 365718 words of memory out of 5000000
+ 20920 multiletter control sequences out of 15000+600000
+ 57037 words of font info for 88 fonts, out of 8000000 for 9000
+ 1141 hyphenation exceptions out of 8191
+ 53i,16n,92p,891b,634s stack positions out of 5000i,500n,10000p,200000b,80000s
+{/usr/local/texlive/2019/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t
+exlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/te
+xlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/local/tex
+live/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/local/texli
+ve/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/local/texlive
+/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/
+2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/local/texlive/20
+19/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/local/texlive/2019
+/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb></usr/local/texlive/2019/texmf-d
+ist/fonts/type1/urw/courier/ucrro8a.pfb></usr/local/texlive/2019/texmf-dist/fon
+ts/type1/urw/helvetic/uhvb8a.pfb></usr/local/texlive/2019/texmf-dist/fonts/type
+1/urw/helvetic/uhvb8ac.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/urw/
+helvetic/uhvr8a.pfb></usr/local/texlive/2019/texmf-dist/fonts/type1/urw/helveti
+c/uhvro8a.pfb>
+Output written on refman.pdf (66 pages, 252771 bytes).
+PDF statistics:
+ 1734 PDF objects out of 2073 (max. 8388607)
+ 1636 compressed objects within 17 object streams
+ 749 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/doc/latex/refman.out b/doc/latex/refman.out
new file mode 100644
index 0000000..a4ad79f
--- /dev/null
+++ b/doc/latex/refman.out
@@ -0,0 +1,179 @@
+\BOOKMARK [0][-]{chapter.1}{\376\377\0001\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{}% 1
+\BOOKMARK [1][-]{section.1.1}{\376\377\0001\000.\0001\000\040\000U\000s\000a\000g\000e}{chapter.1}% 2
+\BOOKMARK [2][-]{subsubsection.1.1.0.1}{\376\377\0001\000.\0001\000.\0000\000.\0001\000\040\000A\000d\000d\000i\000n\000g\000\040\000S\000o\000u\000r\000c\000e\000\040\000F\000i\000l\000e\000s\000\040\000t\000o\000\040\000a\000\040\000P\000r\000o\000j\000e\000c\000t}{section.1.1}% 3
+\BOOKMARK [3][-]{subsubsection.1.1.0.2}{\376\377\0001\000.\0001\000.\0000\000.\0002\000\040\000D\000u\000p\000l\000i\000c\000a\000t\000i\000n\000g\000\040\000T\000a\000r\000g\000e\000t\000s}{subsubsection.1.1.0.1}% 4
+\BOOKMARK [3][-]{subsubsection.1.1.0.3}{\376\377\0001\000.\0001\000.\0000\000.\0003\000\040\000S\000p\000e\000c\000i\000f\000y\000i\000n\000g\000\040\000S\000o\000u\000r\000c\000e\000\040\000F\000i\000l\000e\000\040\000B\000e\000l\000o\000n\000g\000s\000\040\000t\000o\000\040\000T\000a\000r\000g\000e\000t}{subsubsection.1.1.0.1}% 5
+\BOOKMARK [3][-]{subsubsection.1.1.0.4}{\376\377\0001\000.\0001\000.\0000\000.\0004\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000\040\000X\000i\000b\000\040\000F\000i\000l\000e}{subsubsection.1.1.0.1}% 6
+\BOOKMARK [3][-]{subsubsection.1.1.0.5}{\376\377\0001\000.\0001\000.\0000\000.\0005\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000\040\000F\000r\000a\000m\000e\000w\000o\000r\000k}{subsubsection.1.1.0.1}% 7
+\BOOKMARK [3][-]{subsubsection.1.1.0.6}{\376\377\0001\000.\0001\000.\0000\000.\0006\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000n\000\040\000I\000m\000a\000g\000e\000\040\000R\000e\000s\000o\000u\000r\000c\000e}{subsubsection.1.1.0.1}% 8
+\BOOKMARK [3][-]{subsubsection.1.1.0.7}{\376\377\0001\000.\0001\000.\0000\000.\0007\000\040\000A\000d\000d\000i\000n\000g\000\040\000A\000s\000s\000e\000t\000\040\000C\000a\000t\000a\000l\000o\000g\000\040\000\050\000I\000m\000a\000g\000e\000S\000e\000t\000\051}{subsubsection.1.1.0.1}% 9
+\BOOKMARK [3][-]{subsubsection.1.1.0.8}{\376\377\0001\000.\0001\000.\0000\000.\0008\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000\040\000H\000e\000a\000d\000e\000r}{subsubsection.1.1.0.1}% 10
+\BOOKMARK [3][-]{subsubsection.1.1.0.9}{\376\377\0001\000.\0001\000.\0000\000.\0009\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000\040\000s\000u\000b\000-\000p\000r\000o\000j\000e\000c\000t}{subsubsection.1.1.0.1}% 11
+\BOOKMARK [3][-]{subsubsection.1.1.0.10}{\376\377\0001\000.\0001\000.\0000\000.\0001\0000\000\040\000R\000e\000m\000o\000v\000i\000n\000g\000\040\000a\000\040\000s\000u\000b\000-\000p\000r\000o\000j\000e\000c\000t}{subsubsection.1.1.0.1}% 12
+\BOOKMARK [3][-]{subsubsection.1.1.0.11}{\376\377\0001\000.\0001\000.\0000\000.\0001\0001\000\040\000C\000o\000n\000f\000i\000g\000u\000r\000i\000n\000g\000\040\000t\000a\000r\000g\000e\000t\000s}{subsubsection.1.1.0.1}% 13
+\BOOKMARK [3][-]{subsubsection.1.1.0.12}{\376\377\0001\000.\0001\000.\0000\000.\0001\0002\000\040\000A\000d\000d\000i\000n\000g\000\040\000a\000\040\000L\000i\000b\000r\000a\000r\000y}{subsubsection.1.1.0.1}% 14
+\BOOKMARK [3][-]{subsubsection.1.1.0.13}{\376\377\0001\000.\0001\000.\0000\000.\0001\0003\000\040\000F\000i\000l\000e\000\040\000w\000r\000i\000t\000e\000\040\000b\000e\000h\000a\000v\000i\000o\000r}{subsubsection.1.1.0.1}% 15
+\BOOKMARK [1][-]{section.1.2}{\376\377\0001\000.\0002\000\040\000B\000u\000i\000l\000d\000i\000n\000g}{chapter.1}% 16
+\BOOKMARK [1][-]{section.1.3}{\376\377\0001\000.\0003\000\040\000F\000e\000a\000t\000u\000r\000e\000\040\000R\000e\000q\000u\000e\000s\000t\000s\000\040\000a\000n\000d\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000s}{chapter.1}% 17
+\BOOKMARK [1][-]{section.1.4}{\376\377\0001\000.\0004\000\040\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y}{chapter.1}% 18
+\BOOKMARK [1][-]{section.1.5}{\376\377\0001\000.\0005\000\040\000W\000h\000o\000\047\000s\000\040\000u\000s\000i\000n\000g\000\040\000i\000t\000?}{chapter.1}% 19
+\BOOKMARK [1][-]{section.1.6}{\376\377\0001\000.\0006\000\040\000A\000u\000t\000h\000o\000r\000s}{chapter.1}% 20
+\BOOKMARK [2][-]{subsubsection.1.6.0.1}{\376\377\0001\000.\0006\000.\0000\000.\0001\000\040\000W\000i\000t\000h\000\040\000c\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000s\000\040\000f\000r\000o\000m\000:}{section.1.6}% 21
+\BOOKMARK [1][-]{section.1.7}{\376\377\0001\000.\0007\000\040\000L\000I\000C\000E\000N\000S\000E}{chapter.1}% 22
+\BOOKMARK [0][-]{chapter.2}{\376\377\0002\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000i\000c\000a\000l\000\040\000I\000n\000d\000e\000x}{}% 23
+\BOOKMARK [1][-]{section.2.1}{\376\377\0002\000.\0001\000\040\000C\000l\000a\000s\000s\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000y}{chapter.2}% 24
+\BOOKMARK [0][-]{chapter.3}{\376\377\0003\000\040\000C\000l\000a\000s\000s\000\040\000I\000n\000d\000e\000x}{}% 25
+\BOOKMARK [1][-]{section.3.1}{\376\377\0003\000.\0001\000\040\000C\000l\000a\000s\000s\000\040\000L\000i\000s\000t}{chapter.3}% 26
+\BOOKMARK [0][-]{chapter.4}{\376\377\0004\000\040\000F\000i\000l\000e\000\040\000I\000n\000d\000e\000x}{}% 27
+\BOOKMARK [1][-]{section.4.1}{\376\377\0004\000.\0001\000\040\000F\000i\000l\000e\000\040\000L\000i\000s\000t}{chapter.4}% 28
+\BOOKMARK [0][-]{chapter.5}{\376\377\0005\000\040\000C\000l\000a\000s\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 29
+\BOOKMARK [1][-]{section.5.1}{\376\377\0005\000.\0001\000\040\000C\000l\000a\000s\000s\000C\000a\000l\000l\000e\000d\000J\000a\000n\000i\000n\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 30
+\BOOKMARK [1][-]{section.5.2}{\376\377\0005\000.\0002\000\040\000H\000a\000s\000h\000V\000a\000l\000u\000e\000M\000D\0005\000H\000a\000s\000h\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 31
+\BOOKMARK [1][-]{section.5.3}{\376\377\0005\000.\0003\000\040\000N\000S\000S\000t\000r\000i\000n\000g\000\050\000R\000e\000m\000o\000v\000e\000E\000m\000o\000j\000i\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 32
+\BOOKMARK [1][-]{section.5.4}{\376\377\0005\000.\0004\000\040\000N\000S\000S\000t\000r\000i\000n\000g\000\050\000X\000c\000o\000d\000e\000M\000e\000m\000b\000e\000r\000T\000y\000p\000e\000E\000x\000t\000e\000n\000s\000i\000o\000n\000s\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 33
+\BOOKMARK [1][-]{section.5.5}{\376\377\0005\000.\0005\000\040\000N\000S\000S\000t\000r\000i\000n\000g\000\050\000X\000c\000o\000d\000e\000S\000o\000u\000r\000c\000e\000T\000r\000e\000e\000T\000y\000p\000e\000E\000x\000t\000e\000n\000s\000i\000o\000n\000s\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 34
+\BOOKMARK [1][-]{section.5.6}{\376\377\0005\000.\0006\000\040\000X\000C\000A\000b\000s\000t\000r\000a\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 35
+\BOOKMARK [2][-]{subsection.5.6.1}{\376\377\0005\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.5.6}% 36
+\BOOKMARK [1][-]{section.5.7}{\376\377\0005\000.\0007\000\040\000<\000X\000C\000B\000u\000i\000l\000d\000F\000i\000l\000e\000>\000\040\000P\000r\000o\000t\000o\000c\000o\000l\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 37
+\BOOKMARK [2][-]{subsection.5.7.1}{\376\377\0005\000.\0007\000.\0001\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.7}% 38
+\BOOKMARK [3][-]{subsubsection.5.7.1.1}{\376\377\0005\000.\0007\000.\0001\000.\0001\000\040\000b\000e\000c\000o\000m\000e\000B\000u\000i\000l\000d\000F\000i\000l\000e}{subsection.5.7.1}% 39
+\BOOKMARK [3][-]{subsubsection.5.7.1.2}{\376\377\0005\000.\0007\000.\0001\000.\0002\000\040\000i\000s\000B\000u\000i\000l\000d\000F\000i\000l\000e}{subsection.5.7.1}% 40
+\BOOKMARK [1][-]{section.5.8}{\376\377\0005\000.\0008\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 41
+\BOOKMARK [1][-]{section.5.9}{\376\377\0005\000.\0009\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 42
+\BOOKMARK [1][-]{section.5.10}{\376\377\0005\000.\0001\0000\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 43
+\BOOKMARK [1][-]{section.5.11}{\376\377\0005\000.\0001\0001\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 44
+\BOOKMARK [1][-]{section.5.12}{\376\377\0005\000.\0001\0002\000\040\000X\000C\000C\000l\000a\000s\000s\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 45
+\BOOKMARK [2][-]{subsection.5.12.1}{\376\377\0005\000.\0001\0002\000.\0001\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.12}% 46
+\BOOKMARK [3][-]{subsubsection.5.12.1.1}{\376\377\0005\000.\0001\0002\000.\0001\000.\0001\000\040\000i\000n\000i\000t\000W\000i\000t\000h\000N\000a\000m\000e\000:}{subsection.5.12.1}% 47
+\BOOKMARK [3][-]{subsubsection.5.12.1.2}{\376\377\0005\000.\0001\0002\000.\0001\000.\0002\000\040\000i\000n\000i\000t\000W\000i\000t\000h\000N\000a\000m\000e\000:\000l\000a\000n\000g\000u\000a\000g\000e\000:}{subsection.5.12.1}% 48
+\BOOKMARK [1][-]{section.5.13}{\376\377\0005\000.\0001\0003\000\040\000X\000C\000C\000l\000a\000s\000s\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 49
+\BOOKMARK [1][-]{section.5.14}{\376\377\0005\000.\0001\0004\000\040\000X\000C\000F\000i\000l\000e\000O\000p\000e\000r\000a\000t\000i\000o\000n\000Q\000u\000e\000u\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 50
+\BOOKMARK [1][-]{section.5.15}{\376\377\0005\000.\0001\0005\000\040\000X\000C\000F\000i\000l\000e\000O\000p\000e\000r\000a\000t\000i\000o\000n\000Q\000u\000e\000u\000e\000\050\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 51
+\BOOKMARK [1][-]{section.5.16}{\376\377\0005\000.\0001\0006\000\040\000X\000C\000F\000r\000a\000m\000e\000w\000o\000r\000k\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 52
+\BOOKMARK [1][-]{section.5.17}{\376\377\0005\000.\0001\0007\000\040\000X\000C\000F\000r\000a\000m\000e\000w\000o\000r\000k\000P\000a\000t\000h\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 53
+\BOOKMARK [1][-]{section.5.18}{\376\377\0005\000.\0001\0008\000\040\000X\000C\000G\000r\000o\000u\000p\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 54
+\BOOKMARK [2][-]{subsection.5.18.1}{\376\377\0005\000.\0001\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.5.18}% 55
+\BOOKMARK [2][-]{subsection.5.18.2}{\376\377\0005\000.\0001\0008\000.\0002\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.18}% 56
+\BOOKMARK [3][-]{subsubsection.5.18.2.1}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\000\040\000a\000d\000d\000C\000l\000a\000s\000s\000:}{subsection.5.18.2}% 57
+\BOOKMARK [3][-]{subsubsection.5.18.2.2}{\376\377\0005\000.\0001\0008\000.\0002\000.\0002\000\040\000a\000d\000d\000C\000l\000a\000s\000s\000:\000t\000o\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 58
+\BOOKMARK [3][-]{subsubsection.5.18.2.3}{\376\377\0005\000.\0001\0008\000.\0002\000.\0003\000\040\000a\000d\000d\000F\000o\000l\000d\000e\000r\000R\000e\000f\000e\000r\000e\000n\000c\000e\000:}{subsection.5.18.2}% 59
+\BOOKMARK [3][-]{subsubsection.5.18.2.4}{\376\377\0005\000.\0001\0008\000.\0002\000.\0004\000\040\000a\000d\000d\000F\000r\000a\000m\000e\000w\000o\000r\000k\000:}{subsection.5.18.2}% 60
+\BOOKMARK [3][-]{subsubsection.5.18.2.5}{\376\377\0005\000.\0001\0008\000.\0002\000.\0005\000\040\000a\000d\000d\000F\000r\000a\000m\000e\000w\000o\000r\000k\000:\000t\000o\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 61
+\BOOKMARK [3][-]{subsubsection.5.18.2.6}{\376\377\0005\000.\0001\0008\000.\0002\000.\0006\000\040\000a\000d\000d\000G\000r\000o\000u\000p\000W\000i\000t\000h\000A\000l\000i\000a\000s\000:}{subsection.5.18.2}% 62
+\BOOKMARK [3][-]{subsubsection.5.18.2.7}{\376\377\0005\000.\0001\0008\000.\0002\000.\0007\000\040\000a\000d\000d\000G\000r\000o\000u\000p\000W\000i\000t\000h\000A\000l\000i\000a\000s\000:\000g\000r\000o\000u\000p\000T\000y\000p\000e\000:}{subsection.5.18.2}% 63
+\BOOKMARK [3][-]{subsubsection.5.18.2.8}{\376\377\0005\000.\0001\0008\000.\0002\000.\0008\000\040\000a\000d\000d\000G\000r\000o\000u\000p\000W\000i\000t\000h\000P\000a\000t\000h\000:}{subsection.5.18.2}% 64
+\BOOKMARK [3][-]{subsubsection.5.18.2.9}{\376\377\0005\000.\0001\0008\000.\0002\000.\0009\000\040\000a\000d\000d\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000:}{subsection.5.18.2}% 65
+\BOOKMARK [3][-]{subsubsection.5.18.2.10}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0000\000\040\000a\000d\000d\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000:}{subsection.5.18.2}% 66
+\BOOKMARK [3][-]{subsubsection.5.18.2.11}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0001\000\040\000a\000d\000d\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000:\000t\000o\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 67
+\BOOKMARK [3][-]{subsubsection.5.18.2.12}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0002\000\040\000a\000d\000d\000V\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000W\000i\000t\000h\000P\000a\000t\000h\000:}{subsection.5.18.2}% 68
+\BOOKMARK [3][-]{subsubsection.5.18.2.13}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0003\000\040\000a\000d\000d\000X\000i\000b\000:}{subsection.5.18.2}% 69
+\BOOKMARK [3][-]{subsubsection.5.18.2.14}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0004\000\040\000a\000d\000d\000X\000i\000b\000:\000t\000o\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 70
+\BOOKMARK [3][-]{subsubsection.5.18.2.15}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0005\000\040\000b\000u\000i\000l\000d\000F\000i\000l\000e\000K\000e\000y\000s}{subsection.5.18.2}% 71
+\BOOKMARK [3][-]{subsubsection.5.18.2.16}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0006\000\040\000m\000e\000m\000b\000e\000r\000s}{subsection.5.18.2}% 72
+\BOOKMARK [3][-]{subsubsection.5.18.2.17}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0007\000\040\000m\000e\000m\000b\000e\000r\000W\000i\000t\000h\000D\000i\000s\000p\000l\000a\000y\000N\000a\000m\000e\000:}{subsection.5.18.2}% 73
+\BOOKMARK [3][-]{subsubsection.5.18.2.18}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0008\000\040\000m\000e\000m\000b\000e\000r\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.18.2}% 74
+\BOOKMARK [3][-]{subsubsection.5.18.2.19}{\376\377\0005\000.\0001\0008\000.\0002\000.\0001\0009\000\040\000r\000e\000c\000u\000r\000s\000i\000v\000e\000M\000e\000m\000b\000e\000r\000s}{subsection.5.18.2}% 75
+\BOOKMARK [3][-]{subsubsection.5.18.2.20}{\376\377\0005\000.\0001\0008\000.\0002\000.\0002\0000\000\040\000r\000e\000m\000o\000v\000e\000C\000l\000a\000s\000s\000:\000f\000r\000o\000m\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 76
+\BOOKMARK [3][-]{subsubsection.5.18.2.21}{\376\377\0005\000.\0001\0008\000.\0002\000.\0002\0001\000\040\000r\000e\000m\000o\000v\000e\000F\000r\000a\000m\000e\000w\000o\000r\000k\000:\000f\000r\000o\000m\000T\000a\000r\000g\000e\000t\000s\000:}{subsection.5.18.2}% 77
+\BOOKMARK [3][-]{subsubsection.5.18.2.22}{\376\377\0005\000.\0001\0008\000.\0002\000.\0002\0002\000\040\000r\000e\000m\000o\000v\000e\000H\000e\000a\000d\000e\000r\000:}{subsection.5.18.2}% 78
+\BOOKMARK [3][-]{subsubsection.5.18.2.23}{\376\377\0005\000.\0001\0008\000.\0002\000.\0002\0003\000\040\000r\000e\000m\000o\000v\000e\000M\000e\000m\000b\000e\000r\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.18.2}% 79
+\BOOKMARK [2][-]{subsection.5.18.3}{\376\377\0005\000.\0001\0008\000.\0003\000\040\000P\000r\000o\000p\000e\000r\000t\000y\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.18}% 80
+\BOOKMARK [3][-]{subsubsection.5.18.3.1}{\376\377\0005\000.\0001\0008\000.\0003\000.\0001\000\040\000a\000l\000i\000a\000s}{subsection.5.18.3}% 81
+\BOOKMARK [3][-]{subsubsection.5.18.3.2}{\376\377\0005\000.\0001\0008\000.\0003\000.\0002\000\040\000c\000h\000i\000l\000d\000r\000e\000n}{subsection.5.18.3}% 82
+\BOOKMARK [3][-]{subsubsection.5.18.3.3}{\376\377\0005\000.\0001\0008\000.\0003\000.\0003\000\040\000k\000e\000y}{subsection.5.18.3}% 83
+\BOOKMARK [3][-]{subsubsection.5.18.3.4}{\376\377\0005\000.\0001\0008\000.\0003\000.\0004\000\040\000p\000a\000t\000h\000R\000e\000l\000a\000t\000i\000v\000e\000T\000o\000P\000a\000r\000e\000n\000t}{subsection.5.18.3}% 84
+\BOOKMARK [1][-]{section.5.19}{\376\377\0005\000.\0001\0009\000\040\000X\000C\000G\000r\000o\000u\000p\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 85
+\BOOKMARK [1][-]{section.5.20}{\376\377\0005\000.\0002\0000\000\040\000X\000C\000K\000e\000y\000B\000u\000i\000l\000d\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 86
+\BOOKMARK [1][-]{section.5.21}{\376\377\0005\000.\0002\0001\000\040\000X\000C\000K\000e\000y\000B\000u\000i\000l\000d\000e\000r\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 87
+\BOOKMARK [1][-]{section.5.22}{\376\377\0005\000.\0002\0002\000\040\000X\000c\000o\000d\000e\000F\000i\000l\000e\000R\000e\000f\000e\000r\000e\000n\000c\000e\000T\000y\000p\000e\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 88
+\BOOKMARK [1][-]{section.5.23}{\376\377\0005\000.\0002\0003\000\040\000<\000X\000c\000o\000d\000e\000G\000r\000o\000u\000p\000M\000e\000m\000b\000e\000r\000>\000\040\000P\000r\000o\000t\000o\000c\000o\000l\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 89
+\BOOKMARK [2][-]{subsection.5.23.1}{\376\377\0005\000.\0002\0003\000.\0001\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.23}% 90
+\BOOKMARK [3][-]{subsubsection.5.23.1.1}{\376\377\0005\000.\0002\0003\000.\0001\000.\0001\000\040\000g\000r\000o\000u\000p\000M\000e\000m\000b\000e\000r\000T\000y\000p\000e}{subsection.5.23.1}% 91
+\BOOKMARK [1][-]{section.5.24}{\376\377\0005\000.\0002\0004\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 92
+\BOOKMARK [2][-]{subsection.5.24.1}{\376\377\0005\000.\0002\0004\000.\0001\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.24}% 93
+\BOOKMARK [3][-]{subsubsection.5.24.1.1}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\000\040\000a\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000T\000a\000r\000g\000e\000t\000s}{subsection.5.24.1}% 94
+\BOOKMARK [3][-]{subsubsection.5.24.1.2}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\000\040\000c\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000s}{subsection.5.24.1}% 95
+\BOOKMARK [3][-]{subsubsection.5.24.1.3}{\376\377\0005\000.\0002\0004\000.\0001\000.\0003\000\040\000c\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000W\000i\000t\000h\000N\000a\000m\000e\000:}{subsection.5.24.1}% 96
+\BOOKMARK [3][-]{subsubsection.5.24.1.4}{\376\377\0005\000.\0002\0004\000.\0001\000.\0004\000\040\000f\000i\000l\000e\000s}{subsection.5.24.1}% 97
+\BOOKMARK [3][-]{subsubsection.5.24.1.5}{\376\377\0005\000.\0002\0004\000.\0001\000.\0005\000\040\000f\000i\000l\000e\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.24.1}% 98
+\BOOKMARK [3][-]{subsubsection.5.24.1.6}{\376\377\0005\000.\0002\0004\000.\0001\000.\0006\000\040\000f\000i\000l\000e\000W\000i\000t\000h\000N\000a\000m\000e\000:}{subsection.5.24.1}% 99
+\BOOKMARK [3][-]{subsubsection.5.24.1.7}{\376\377\0005\000.\0002\0004\000.\0001\000.\0007\000\040\000g\000r\000o\000u\000p\000F\000o\000r\000G\000r\000o\000u\000p\000M\000e\000m\000b\000e\000r\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.24.1}% 100
+\BOOKMARK [3][-]{subsubsection.5.24.1.8}{\376\377\0005\000.\0002\0004\000.\0001\000.\0008\000\040\000g\000r\000o\000u\000p\000s}{subsection.5.24.1}% 101
+\BOOKMARK [3][-]{subsubsection.5.24.1.9}{\376\377\0005\000.\0002\0004\000.\0001\000.\0009\000\040\000g\000r\000o\000u\000p\000W\000i\000t\000h\000D\000i\000s\000p\000l\000a\000y\000N\000a\000m\000e\000:}{subsection.5.24.1}% 102
+\BOOKMARK [3][-]{subsubsection.5.24.1.10}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0000\000\040\000g\000r\000o\000u\000p\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.24.1}% 103
+\BOOKMARK [3][-]{subsubsection.5.24.1.11}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0001\000\040\000g\000r\000o\000u\000p\000W\000i\000t\000h\000P\000a\000t\000h\000F\000r\000o\000m\000R\000o\000o\000t\000:}{subsection.5.24.1}% 104
+\BOOKMARK [3][-]{subsubsection.5.24.1.12}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0002\000\040\000g\000r\000o\000u\000p\000W\000i\000t\000h\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000:}{subsection.5.24.1}% 105
+\BOOKMARK [3][-]{subsubsection.5.24.1.13}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0003\000\040\000h\000e\000a\000d\000e\000r\000F\000i\000l\000e\000s}{subsection.5.24.1}% 106
+\BOOKMARK [3][-]{subsubsection.5.24.1.14}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0004\000\040\000i\000n\000i\000t\000W\000i\000t\000h\000F\000i\000l\000e\000P\000a\000t\000h\000:}{subsection.5.24.1}% 107
+\BOOKMARK [3][-]{subsubsection.5.24.1.15}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0005\000\040\000m\000a\000i\000n\000G\000r\000o\000u\000p}{subsection.5.24.1}% 108
+\BOOKMARK [3][-]{subsubsection.5.24.1.16}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0006\000\040\000o\000b\000j\000e\000c\000t\000i\000v\000e\000C\000F\000i\000l\000e\000s}{subsection.5.24.1}% 109
+\BOOKMARK [3][-]{subsubsection.5.24.1.17}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0007\000\040\000o\000b\000j\000e\000c\000t\000i\000v\000e\000C\000P\000l\000u\000s\000P\000l\000u\000s\000F\000i\000l\000e\000s}{subsection.5.24.1}% 110
+\BOOKMARK [3][-]{subsubsection.5.24.1.18}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0008\000\040\000o\000b\000j\000e\000c\000t\000s}{subsection.5.24.1}% 111
+\BOOKMARK [3][-]{subsubsection.5.24.1.19}{\376\377\0005\000.\0002\0004\000.\0001\000.\0001\0009\000\040\000p\000r\000u\000n\000e\000E\000m\000p\000t\000y\000G\000r\000o\000u\000p\000s}{subsection.5.24.1}% 112
+\BOOKMARK [3][-]{subsubsection.5.24.1.20}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0000\000\040\000r\000o\000o\000t\000G\000r\000o\000u\000p}{subsection.5.24.1}% 113
+\BOOKMARK [3][-]{subsubsection.5.24.1.21}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0001\000\040\000r\000o\000o\000t\000G\000r\000o\000u\000p\000s}{subsection.5.24.1}% 114
+\BOOKMARK [3][-]{subsubsection.5.24.1.22}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0002\000\040\000s\000a\000v\000e}{subsection.5.24.1}% 115
+\BOOKMARK [3][-]{subsubsection.5.24.1.23}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0003\000\040\000t\000a\000r\000g\000e\000t\000s}{subsection.5.24.1}% 116
+\BOOKMARK [3][-]{subsubsection.5.24.1.24}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0004\000\040\000t\000a\000r\000g\000e\000t\000W\000i\000t\000h\000N\000a\000m\000e\000:}{subsection.5.24.1}% 117
+\BOOKMARK [3][-]{subsubsection.5.24.1.25}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0005\000\040\000v\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000s}{subsection.5.24.1}% 118
+\BOOKMARK [3][-]{subsubsection.5.24.1.26}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0006\000\040\000v\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.24.1}% 119
+\BOOKMARK [3][-]{subsubsection.5.24.1.27}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0007\000\040\000v\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000W\000i\000t\000h\000N\000a\000m\000e\000:}{subsection.5.24.1}% 120
+\BOOKMARK [3][-]{subsubsection.5.24.1.28}{\376\377\0005\000.\0002\0004\000.\0001\000.\0002\0008\000\040\000x\000i\000b\000F\000i\000l\000e\000s}{subsection.5.24.1}% 121
+\BOOKMARK [1][-]{section.5.25}{\376\377\0005\000.\0002\0005\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000\050\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 122
+\BOOKMARK [1][-]{section.5.26}{\376\377\0005\000.\0002\0006\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000B\000u\000i\000l\000d\000C\000o\000n\000f\000i\000g\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 123
+\BOOKMARK [1][-]{section.5.27}{\376\377\0005\000.\0002\0007\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 124
+\BOOKMARK [1][-]{section.5.28}{\376\377\0005\000.\0002\0008\000\040\000X\000C\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 125
+\BOOKMARK [2][-]{subsection.5.28.1}{\376\377\0005\000.\0002\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.5.28}% 126
+\BOOKMARK [2][-]{subsection.5.28.2}{\376\377\0005\000.\0002\0008\000.\0002\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.28}% 127
+\BOOKMARK [3][-]{subsubsection.5.28.2.1}{\376\377\0005\000.\0002\0008\000.\0002\000.\0001\000\040\000b\000e\000c\000o\000m\000e\000B\000u\000i\000l\000d\000F\000i\000l\000e}{subsection.5.28.2}% 128
+\BOOKMARK [3][-]{subsubsection.5.28.2.2}{\376\377\0005\000.\0002\0008\000.\0002\000.\0002\000\040\000b\000u\000i\000l\000d\000F\000i\000l\000e\000K\000e\000y}{subsection.5.28.2}% 129
+\BOOKMARK [3][-]{subsubsection.5.28.2.3}{\376\377\0005\000.\0002\0008\000.\0002\000.\0003\000\040\000b\000u\000i\000l\000d\000P\000h\000a\000s\000e}{subsection.5.28.2}% 130
+\BOOKMARK [3][-]{subsubsection.5.28.2.4}{\376\377\0005\000.\0002\0008\000.\0002\000.\0004\000\040\000i\000s\000B\000u\000i\000l\000d\000F\000i\000l\000e}{subsection.5.28.2}% 131
+\BOOKMARK [3][-]{subsubsection.5.28.2.5}{\376\377\0005\000.\0002\0008\000.\0002\000.\0005\000\040\000r\000e\000m\000o\000v\000e\000B\000u\000i\000l\000d\000F\000i\000l\000e}{subsection.5.28.2}% 132
+\BOOKMARK [3][-]{subsubsection.5.28.2.6}{\376\377\0005\000.\0002\0008\000.\0002\000.\0006\000\040\000s\000e\000t\000C\000o\000m\000p\000i\000l\000e\000r\000F\000l\000a\000g\000s\000:}{subsection.5.28.2}% 133
+\BOOKMARK [3][-]{subsubsection.5.28.2.7}{\376\377\0005\000.\0002\0008\000.\0002\000.\0007\000\040\000s\000e\000t\000W\000e\000a\000k\000R\000e\000f\000e\000r\000e\000n\000c\000e}{subsection.5.28.2}% 134
+\BOOKMARK [1][-]{section.5.29}{\376\377\0005\000.\0002\0009\000\040\000X\000C\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 135
+\BOOKMARK [1][-]{section.5.30}{\376\377\0005\000.\0003\0000\000\040\000X\000C\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 136
+\BOOKMARK [1][-]{section.5.31}{\376\377\0005\000.\0003\0001\000\040\000X\000C\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\050\000\051\000\040\000C\000a\000t\000e\000g\000o\000r\000y\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 137
+\BOOKMARK [1][-]{section.5.32}{\376\377\0005\000.\0003\0002\000\040\000X\000C\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 138
+\BOOKMARK [1][-]{section.5.33}{\376\377\0005\000.\0003\0003\000\040\000X\000C\000T\000a\000r\000g\000e\000t\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 139
+\BOOKMARK [2][-]{subsection.5.33.1}{\376\377\0005\000.\0003\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.5.33}% 140
+\BOOKMARK [1][-]{section.5.34}{\376\377\0005\000.\0003\0004\000\040\000X\000C\000T\000a\000r\000g\000e\000t\000T\000e\000s\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 141
+\BOOKMARK [1][-]{section.5.35}{\376\377\0005\000.\0003\0005\000\040\000X\000C\000V\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 142
+\BOOKMARK [2][-]{subsection.5.35.1}{\376\377\0005\000.\0003\0005\000.\0001\000\040\000M\000e\000t\000h\000o\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.35}% 143
+\BOOKMARK [3][-]{subsubsection.5.35.1.1}{\376\377\0005\000.\0003\0005\000.\0001\000.\0001\000\040\000a\000d\000d\000D\000a\000t\000a\000M\000o\000d\000e\000l\000S\000o\000u\000r\000c\000e\000:}{subsection.5.35.1}% 144
+\BOOKMARK [3][-]{subsubsection.5.35.1.2}{\376\377\0005\000.\0003\0005\000.\0001\000.\0002\000\040\000m\000e\000m\000b\000e\000r\000W\000i\000t\000h\000D\000i\000s\000p\000l\000a\000y\000N\000a\000m\000e\000:}{subsection.5.35.1}% 145
+\BOOKMARK [3][-]{subsubsection.5.35.1.3}{\376\377\0005\000.\0003\0005\000.\0001\000.\0003\000\040\000m\000e\000m\000b\000e\000r\000W\000i\000t\000h\000K\000e\000y\000:}{subsection.5.35.1}% 146
+\BOOKMARK [2][-]{subsection.5.35.2}{\376\377\0005\000.\0003\0005\000.\0002\000\040\000P\000r\000o\000p\000e\000r\000t\000y\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{section.5.35}% 147
+\BOOKMARK [3][-]{subsubsection.5.35.2.1}{\376\377\0005\000.\0003\0005\000.\0002\000.\0001\000\040\000a\000l\000i\000a\000s}{subsection.5.35.2}% 148
+\BOOKMARK [3][-]{subsubsection.5.35.2.2}{\376\377\0005\000.\0003\0005\000.\0002\000.\0002\000\040\000k\000e\000y}{subsection.5.35.2}% 149
+\BOOKMARK [3][-]{subsubsection.5.35.2.3}{\376\377\0005\000.\0003\0005\000.\0002\000.\0003\000\040\000p\000a\000t\000h\000R\000e\000l\000a\000t\000i\000v\000e\000T\000o\000P\000a\000r\000e\000n\000t}{subsection.5.35.2}% 150
+\BOOKMARK [3][-]{subsubsection.5.35.2.4}{\376\377\0005\000.\0003\0005\000.\0002\000.\0004\000\040\000v\000e\000r\000s\000i\000o\000n\000s}{subsection.5.35.2}% 151
+\BOOKMARK [1][-]{section.5.36}{\376\377\0005\000.\0003\0006\000\040\000X\000C\000X\000i\000b\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e}{chapter.5}% 152
+\BOOKMARK [0][-]{chapter.6}{\376\377\0006\000\040\000F\000i\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 153
+\BOOKMARK [1][-]{section.6.1}{\376\377\0006\000.\0001\000\040\000N\000S\000S\000t\000r\000i\000n\000g\000+\000R\000e\000m\000o\000v\000e\000E\000m\000o\000j\000i\000.\000h}{chapter.6}% 154
+\BOOKMARK [1][-]{section.6.2}{\376\377\0006\000.\0002\000\040\000X\000C\000A\000b\000s\000t\000r\000a\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 155
+\BOOKMARK [1][-]{section.6.3}{\376\377\0006\000.\0003\000\040\000X\000C\000B\000u\000i\000l\000d\000F\000i\000l\000e\000.\000h}{chapter.6}% 156
+\BOOKMARK [1][-]{section.6.4}{\376\377\0006\000.\0004\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000.\000h}{chapter.6}% 157
+\BOOKMARK [1][-]{section.6.5}{\376\377\0006\000.\0005\000\040\000X\000C\000B\000u\000i\000l\000d\000S\000h\000e\000l\000l\000S\000c\000r\000i\000p\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 158
+\BOOKMARK [1][-]{section.6.6}{\376\377\0006\000.\0006\000\040\000X\000C\000C\000l\000a\000s\000s\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 159
+\BOOKMARK [1][-]{section.6.7}{\376\377\0006\000.\0007\000\040\000X\000C\000F\000i\000l\000e\000O\000p\000e\000r\000a\000t\000i\000o\000n\000Q\000u\000e\000u\000e\000.\000h}{chapter.6}% 160
+\BOOKMARK [1][-]{section.6.8}{\376\377\0006\000.\0008\000\040\000X\000C\000F\000r\000a\000m\000e\000w\000o\000r\000k\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 161
+\BOOKMARK [1][-]{section.6.9}{\376\377\0006\000.\0009\000\040\000X\000C\000G\000r\000o\000u\000p\000.\000h}{chapter.6}% 162
+\BOOKMARK [1][-]{section.6.10}{\376\377\0006\000.\0001\0000\000\040\000X\000C\000K\000e\000y\000B\000u\000i\000l\000d\000e\000r\000.\000h}{chapter.6}% 163
+\BOOKMARK [1][-]{section.6.11}{\376\377\0006\000.\0001\0001\000\040\000X\000c\000o\000d\000e\000E\000d\000i\000t\000o\000r\000.\000h}{chapter.6}% 164
+\BOOKMARK [1][-]{section.6.12}{\376\377\0006\000.\0001\0002\000\040\000X\000c\000o\000d\000e\000G\000r\000o\000u\000p\000M\000e\000m\000b\000e\000r\000.\000h}{chapter.6}% 165
+\BOOKMARK [1][-]{section.6.13}{\376\377\0006\000.\0001\0003\000\040\000X\000c\000o\000d\000e\000M\000e\000m\000b\000e\000r\000T\000y\000p\000e\000.\000h}{chapter.6}% 166
+\BOOKMARK [1][-]{section.6.14}{\376\377\0006\000.\0001\0004\000\040\000X\000c\000o\000d\000e\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000T\000y\000p\000e\000.\000h}{chapter.6}% 167
+\BOOKMARK [1][-]{section.6.15}{\376\377\0006\000.\0001\0005\000\040\000X\000c\000o\000d\000e\000S\000o\000u\000r\000c\000e\000T\000r\000e\000e\000T\000y\000p\000e\000.\000h}{chapter.6}% 168
+\BOOKMARK [1][-]{section.6.16}{\376\377\0006\000.\0001\0006\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000+\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000.\000h}{chapter.6}% 169
+\BOOKMARK [1][-]{section.6.17}{\376\377\0006\000.\0001\0007\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000.\000h}{chapter.6}% 170
+\BOOKMARK [1][-]{section.6.18}{\376\377\0006\000.\0001\0008\000\040\000X\000C\000P\000r\000o\000j\000e\000c\000t\000B\000u\000i\000l\000d\000C\000o\000n\000f\000i\000g\000.\000h}{chapter.6}% 171
+\BOOKMARK [1][-]{section.6.19}{\376\377\0006\000.\0001\0009\000\040\000X\000C\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000.\000h}{chapter.6}% 172
+\BOOKMARK [1][-]{section.6.20}{\376\377\0006\000.\0002\0000\000\040\000X\000C\000S\000o\000u\000r\000c\000e\000F\000i\000l\000e\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 173
+\BOOKMARK [1][-]{section.6.21}{\376\377\0006\000.\0002\0001\000\040\000X\000C\000S\000u\000b\000P\000r\000o\000j\000e\000c\000t\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 174
+\BOOKMARK [1][-]{section.6.22}{\376\377\0006\000.\0002\0002\000\040\000X\000C\000T\000a\000r\000g\000e\000t\000.\000h}{chapter.6}% 175
+\BOOKMARK [1][-]{section.6.23}{\376\377\0006\000.\0002\0003\000\040\000X\000C\000V\000e\000r\000s\000i\000o\000n\000G\000r\000o\000u\000p\000.\000h}{chapter.6}% 176
+\BOOKMARK [1][-]{section.6.24}{\376\377\0006\000.\0002\0004\000\040\000X\000C\000X\000i\000b\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000.\000h}{chapter.6}% 177
+\BOOKMARK [1][-]{section.6.25}{\376\377\0006\000.\0002\0005\000\040\000C\000l\000a\000s\000s\000C\000a\000l\000l\000e\000d\000J\000a\000n\000i\000n\000e\000.\000h}{chapter.6}% 178
+\BOOKMARK [1][-]{section.6.26}{\376\377\0006\000.\0002\0006\000\040\000X\000C\000T\000e\000s\000t\000R\000e\000s\000o\000u\000r\000c\000e\000U\000t\000i\000l\000s\000.\000h}{chapter.6}% 179
diff --git a/doc/latex/refman.pdf b/doc/latex/refman.pdf
new file mode 100644
index 0000000..80df4c4
Binary files /dev/null and b/doc/latex/refman.pdf differ
diff --git a/doc/latex/refman.tex b/doc/latex/refman.tex
new file mode 100644
index 0000000..9fcf829
--- /dev/null
+++ b/doc/latex/refman.tex
@@ -0,0 +1,261 @@
+  % Handle batch mode
+  % to overcome problems with too many open files
+  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
+  % Set document class depending on configuration
+  \documentclass[twoside]{book}
+  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
+  \usepackage{ifthen}
+  \ifx\requestedLaTeXdate\undefined
+    \usepackage{array}
+  \else
+    \usepackage{array}[=2016-10-06]
+  \fi
+  %%
+  % Packages required by doxygen
+  \usepackage{fixltx2e} % for \textsubscript
+  \usepackage{doxygen}
+  \usepackage{graphicx}
+  \usepackage[utf8]{inputenc}
+  \usepackage{makeidx}
+  \PassOptionsToPackage{warn}{textcomp}
+  \usepackage{textcomp}
+  \usepackage[nointegrals]{wasysym}
+  \usepackage{ifxetex}
+  % NLS support packages
+  % Define default fonts
+  % Font selection
+  \usepackage[T1]{fontenc}
+  % set main and monospaced font
+  \usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\renewcommand{\familydefault}{\sfdefault}
+  \usepackage{sectsty}
+  \allsectionsfont{%
+    \fontseries{bc}\selectfont%
+    \color{darkgray}%
+  }
+  \renewcommand{\DoxyLabelFont}{%
+    \fontseries{bc}\selectfont%
+    \color{darkgray}%
+  }
+  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
+   % Arguments of doxygenemoji:
+   % 1) ':<text>:' form of the emoji, already LaTeX-escaped
+   % 2) file with the name of the emoji without the .png extension
+   % in case image exist use this otherwise use the ':<text>:' form
+   \newcommand{\doxygenemoji}[2]{%
+     \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
+   }
+  % Page & text layout
+  \usepackage{geometry}
+  \geometry{%
+    a4paper,%
+    top=2.5cm,%
+    bottom=2.5cm,%
+    left=2.5cm,%
+    right=2.5cm%
+  }
+  % Allow a bit of overflow to go unnoticed by other means
+  \tolerance=750
+  \hfuzz=15pt
+  \hbadness=750
+  \setlength{\emergencystretch}{15pt}
+  \setlength{\parindent}{0cm}
+  \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
+  \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
+  \doxynormalparskip
+  % Redefine paragraph/subparagraph environments, using sectsty fonts
+  \makeatletter
+  \renewcommand{\paragraph}{%
+    \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
+      \normalfont\normalsize\bfseries\SS@parafont%
+    }%
+  }
+  \renewcommand{\subparagraph}{%
+    \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
+      \normalfont\normalsize\bfseries\SS@subparafont%
+    }%
+  }
+  \makeatother
+  \makeatletter
+  \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
+  \makeatother
+  % Headers & footers
+  \usepackage{fancyhdr}
+  \pagestyle{fancyplain}
+  \renewcommand{\footrulewidth}{0.4pt}
+  \fancypagestyle{fancyplain}{
+    \fancyhf{}
+    \fancyhead[LE, RO]{\bfseries\thepage}
+    \fancyhead[LO]{\bfseries\rightmark}
+    \fancyhead[RE]{\bfseries\leftmark}
+    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
+  }
+  \fancypagestyle{plain}{
+    \fancyhf{}
+    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
+    \renewcommand{\headrulewidth}{0pt}
+  }
+  \pagestyle{fancyplain}
+  \renewcommand{\chaptermark}[1]{%
+    \markboth{#1}{}%
+  }
+  \renewcommand{\sectionmark}[1]{%
+    \markright{\thesection\ #1}%
+  }
+  % ToC, LoF, LoT, bibliography, and index
+  % Indices & bibliography
+  \usepackage{natbib}
+  \usepackage[titles]{tocloft}
+  \setcounter{tocdepth}{3}
+  \setcounter{secnumdepth}{5}
+  % creating indexes
+  \makeindex
+  \usepackage{newunicodechar}
+  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
+  \newunicodechar{²}{${}^{2}$}% Superscript two
+  \newunicodechar{³}{${}^{3}$}% Superscript three
+  % Hyperlinks
+    % Hyperlinks (required, but should be loaded last)
+    \ifpdf
+      \usepackage[pdftex,pagebackref=true]{hyperref}
+    \else
+      \ifxetex
+        \usepackage[pagebackref=true]{hyperref}
+      \else
+        \usepackage[ps2pdf,pagebackref=true]{hyperref}
+      \fi
+    \fi
+    \hypersetup{%
+      colorlinks=true,%
+      linkcolor=blue,%
+      citecolor=blue,%
+      unicode,%
+      pdftitle=Xcode\+Editor-\/master,%
+      pdfsubject=%
+    }
+  % Custom commands used by the header
+  % Custom commands
+  \newcommand{\clearemptydoublepage}{%
+    \newpage{\pagestyle{empty}\cleardoublepage}%
+  }
+  % caption style definition
+  \usepackage{caption}
+  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
+  % in page table of contents
+  \usepackage{etoc}
+  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
+  % prevent numbers overlap the titles in toc
+  \renewcommand{\numberline}[1]{#1~}
+% End of preamble, now comes the document contents
+%===== C O N T E N T S =====
+\begin{document}
+  \raggedbottom
+  % Titlepage & ToC
+    % To avoid duplicate page anchors due to reuse of same numbers for
+    % the index (be it as roman numbers)
+    \hypersetup{pageanchor=false,
+                bookmarksnumbered=true,
+                pdfencoding=unicode
+               }
+  \pagenumbering{alph}
+  \begin{titlepage}
+  \vspace*{7cm}
+  \begin{center}%
+  {\Large Xcode\+Editor-\/master}\\
+  \vspace*{1cm}
+  {\large Generated by Doxygen 1.9.3}\\
+  \end{center}
+  \end{titlepage}
+  \clearemptydoublepage
+  \pagenumbering{roman}
+  \tableofcontents
+  \clearemptydoublepage
+  \pagenumbering{arabic}
+  % re-enable anchors again
+  \hypersetup{pageanchor=true}
+%--- Begin generated contents ---
+\chapter{Description}
+\label{md__r_e_a_d_m_e}
+\Hypertarget{md__r_e_a_d_m_e}
+\input{md__r_e_a_d_m_e}
+\chapter{Hierarchical Index}
+\input{hierarchy}
+\chapter{Class Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Class Documentation}
+\input{interface_class_called_janine}
+\input{struct_hash_value_m_d5_hash}
+\input{category_n_s_string_07_remove_emoji_08}
+\input{category_n_s_string_07_xcode_member_type_extensions_08}
+\input{category_n_s_string_07_xcode_source_tree_type_extensions_08}
+\input{interface_x_c_abstract_definition}
+\input{protocol_x_c_build_file-p}
+\input{interface_x_c_build_shell_script}
+\input{interface_x_c_build_shell_script_definition}
+\input{interface_x_c_build_shell_script_definition_tests}
+\input{interface_x_c_build_shell_script_tests}
+\input{interface_x_c_class_definition}
+\input{interface_x_c_class_definition_tests}
+\input{interface_x_c_file_operation_queue}
+\input{category_x_c_file_operation_queue_07_08}
+\input{interface_x_c_framework_definition}
+\input{interface_x_c_framework_path}
+\input{interface_x_c_group}
+\input{interface_x_c_group_tests}
+\input{interface_x_c_key_builder}
+\input{interface_x_c_key_builder_tests}
+\input{interface_xcode_file_reference_type_tests}
+\input{protocol_xcode_group_member-p}
+\input{interface_x_c_project}
+\input{category_x_c_project_07_sub_project_08}
+\input{interface_x_c_project_build_config}
+\input{interface_x_c_project_tests}
+\input{interface_x_c_source_file}
+\input{interface_x_c_source_file_definition}
+\input{interface_x_c_sub_project_definition}
+\input{category_x_c_sub_project_definition_07_08}
+\input{interface_x_c_sub_project_definition_tests}
+\input{interface_x_c_target}
+\input{interface_x_c_target_tests}
+\input{interface_x_c_version_group}
+\input{interface_x_c_xib_definition}
+\chapter{File Documentation}
+\input{_n_s_string_09_remove_emoji_8h_source}
+\input{_x_c_abstract_definition_8h_source}
+\input{_x_c_build_file_8h_source}
+\input{_x_c_build_shell_script_8h_source}
+\input{_x_c_build_shell_script_definition_8h_source}
+\input{_x_c_class_definition_8h_source}
+\input{_x_c_file_operation_queue_8h_source}
+\input{_x_c_framework_definition_8h_source}
+\input{_x_c_group_8h_source}
+\input{_x_c_key_builder_8h_source}
+\input{_xcode_editor_8h_source}
+\input{_xcode_group_member_8h_source}
+\input{_xcode_member_type_8h_source}
+\input{_xcode_source_file_type_8h_source}
+\input{_xcode_source_tree_type_8h_source}
+\input{_x_c_project_09_sub_project_8h_source}
+\input{_x_c_project_8h_source}
+\input{_x_c_project_build_config_8h_source}
+\input{_x_c_source_file_8h_source}
+\input{_x_c_source_file_definition_8h_source}
+\input{_x_c_sub_project_definition_8h_source}
+\input{_x_c_target_8h_source}
+\input{_x_c_version_group_8h_source}
+\input{_x_c_xib_definition_8h_source}
+\input{_class_called_janine_8h_source}
+\input{_x_c_test_resource_utils_8h_source}
+%--- End generated contents ---
+% Index
+  \backmatter
+  \newpage
+  \phantomsection
+  \clearemptydoublepage
+  \addcontentsline{toc}{chapter}{\indexname}
+  \printindex
+% Required for some languages (in combination with latexdocumentpre from the header)
+\end{document}
diff --git a/doc/latex/refman.toc b/doc/latex/refman.toc
new file mode 100644
index 0000000..f142002
--- /dev/null
+++ b/doc/latex/refman.toc
@@ -0,0 +1,180 @@
+\@ifundefined {etoctocstyle}{\let \etoc@startlocaltoc \@gobble \let \etoc@settocdepth \@gobble \let \etoc@depthtag \@gobble \let \etoc@setlocaltop \@gobble }{}
+\contentsline {chapter}{\numberline {1}Description}{1}{chapter.1}% 
+\contentsline {section}{\numberline {1.1}Usage}{1}{section.1.1}% 
+\contentsline {subsubsection}{\numberline {1.1.0.1}Adding Source Files to a Project}{1}{subsubsection.1.1.0.1}% 
+\contentsline {subsubsection}{\numberline {1.1.0.2}Duplicating Targets}{1}{subsubsection.1.1.0.2}% 
+\contentsline {subsubsection}{\numberline {1.1.0.3}Specifying Source File Belongs to Target}{1}{subsubsection.1.1.0.3}% 
+\contentsline {subsubsection}{\numberline {1.1.0.4}Adding a Xib File}{1}{subsubsection.1.1.0.4}% 
+\contentsline {subsubsection}{\numberline {1.1.0.5}Adding a Framework}{1}{subsubsection.1.1.0.5}% 
+\contentsline {subsubsection}{\numberline {1.1.0.6}Adding an Image Resource}{2}{subsubsection.1.1.0.6}% 
+\contentsline {subsubsection}{\numberline {1.1.0.7}Adding Asset Catalog (\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Image\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Set)}{2}{subsubsection.1.1.0.7}% 
+\contentsline {subsubsection}{\numberline {1.1.0.8}Adding a Header}{2}{subsubsection.1.1.0.8}% 
+\contentsline {subsubsection}{\numberline {1.1.0.9}Adding a sub-\/project}{2}{subsubsection.1.1.0.9}% 
+\contentsline {subsubsection}{\numberline {1.1.0.10}Removing a sub-\/project}{2}{subsubsection.1.1.0.10}% 
+\contentsline {subsubsection}{\numberline {1.1.0.11}Configuring targets}{2}{subsubsection.1.1.0.11}% 
+\contentsline {subsubsection}{\numberline {1.1.0.12}Adding a Library}{3}{subsubsection.1.1.0.12}% 
+\contentsline {subsubsection}{\numberline {1.1.0.13}File write behavior}{3}{subsubsection.1.1.0.13}% 
+\contentsline {section}{\numberline {1.2}Building}{3}{section.1.2}% 
+\contentsline {section}{\numberline {1.3}Feature Requests and Contributions}{3}{section.1.3}% 
+\contentsline {section}{\numberline {1.4}Compatibility}{3}{section.1.4}% 
+\contentsline {section}{\numberline {1.5}Who\textquotesingle {}s using it?}{3}{section.1.5}% 
+\contentsline {section}{\numberline {1.6}Authors}{4}{section.1.6}% 
+\contentsline {subsubsection}{\numberline {1.6.0.1}With contributions from\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}:}{4}{subsubsection.1.6.0.1}% 
+\contentsline {section}{\numberline {1.7}LICENSE}{4}{section.1.7}% 
+\contentsline {chapter}{\numberline {2}Hierarchical Index}{5}{chapter.2}% 
+\contentsline {section}{\numberline {2.1}Class Hierarchy}{5}{section.2.1}% 
+\contentsline {chapter}{\numberline {3}Class Index}{7}{chapter.3}% 
+\contentsline {section}{\numberline {3.1}Class List}{7}{section.3.1}% 
+\contentsline {chapter}{\numberline {4}File Index}{9}{chapter.4}% 
+\contentsline {section}{\numberline {4.1}File List}{9}{section.4.1}% 
+\contentsline {chapter}{\numberline {5}Class Documentation}{11}{chapter.5}% 
+\contentsline {section}{\numberline {5.1}Class\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Called\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Janine Class Reference}{11}{section.5.1}% 
+\contentsline {section}{\numberline {5.2}Hash\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Value\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}MD5\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Hash Struct Reference}{11}{section.5.2}% 
+\contentsline {section}{\numberline {5.3}NSString(Remove\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Emoji) Category Reference}{11}{section.5.3}% 
+\contentsline {section}{\numberline {5.4}NSString(Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Member\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Extensions) Category Reference}{12}{section.5.4}% 
+\contentsline {section}{\numberline {5.5}NSString(Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tree\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Extensions) Category Reference}{12}{section.5.5}% 
+\contentsline {section}{\numberline {5.6}XCAbstract\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{13}{section.5.6}% 
+\contentsline {subsection}{\numberline {5.6.1}Detailed Description}{13}{subsection.5.6.1}% 
+\contentsline {section}{\numberline {5.7}$<$XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File$>$ Protocol Reference}{13}{section.5.7}% 
+\contentsline {subsection}{\numberline {5.7.1}Method Documentation}{14}{subsection.5.7.1}% 
+\contentsline {subsubsection}{\numberline {5.7.1.1}becomeBuildFile}{14}{subsubsection.5.7.1.1}% 
+\contentsline {subsubsection}{\numberline {5.7.1.2}isBuildFile}{14}{subsubsection.5.7.1.2}% 
+\contentsline {section}{\numberline {5.8}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script Class Reference}{14}{section.5.8}% 
+\contentsline {section}{\numberline {5.9}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{15}{section.5.9}% 
+\contentsline {section}{\numberline {5.10}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{16}{section.5.10}% 
+\contentsline {section}{\numberline {5.11}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{16}{section.5.11}% 
+\contentsline {section}{\numberline {5.12}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{17}{section.5.12}% 
+\contentsline {subsection}{\numberline {5.12.1}Method Documentation}{17}{subsection.5.12.1}% 
+\contentsline {subsubsection}{\numberline {5.12.1.1}initWithName:}{17}{subsubsection.5.12.1.1}% 
+\contentsline {subsubsection}{\numberline {5.12.1.2}initWithName:language:}{18}{subsubsection.5.12.1.2}% 
+\contentsline {section}{\numberline {5.13}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{18}{section.5.13}% 
+\contentsline {section}{\numberline {5.14}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Queue Class Reference}{18}{section.5.14}% 
+\contentsline {section}{\numberline {5.15}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Queue() Category Reference}{19}{section.5.15}% 
+\contentsline {section}{\numberline {5.16}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{19}{section.5.16}% 
+\contentsline {section}{\numberline {5.17}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Path Class Reference}{20}{section.5.17}% 
+\contentsline {section}{\numberline {5.18}XCGroup Class Reference}{20}{section.5.18}% 
+\contentsline {subsection}{\numberline {5.18.1}Detailed Description}{22}{subsection.5.18.1}% 
+\contentsline {subsection}{\numberline {5.18.2}Method Documentation}{22}{subsection.5.18.2}% 
+\contentsline {subsubsection}{\numberline {5.18.2.1}addClass:}{22}{subsubsection.5.18.2.1}% 
+\contentsline {subsubsection}{\numberline {5.18.2.2}addClass:toTargets:}{22}{subsubsection.5.18.2.2}% 
+\contentsline {subsubsection}{\numberline {5.18.2.3}addFolderReference:}{22}{subsubsection.5.18.2.3}% 
+\contentsline {subsubsection}{\numberline {5.18.2.4}addFramework:}{22}{subsubsection.5.18.2.4}% 
+\contentsline {subsubsection}{\numberline {5.18.2.5}addFramework:toTargets:}{22}{subsubsection.5.18.2.5}% 
+\contentsline {subsubsection}{\numberline {5.18.2.6}addGroupWithAlias:}{23}{subsubsection.5.18.2.6}% 
+\contentsline {subsubsection}{\numberline {5.18.2.7}addGroupWithAlias:groupType:}{23}{subsubsection.5.18.2.7}% 
+\contentsline {subsubsection}{\numberline {5.18.2.8}addGroupWithPath:}{23}{subsubsection.5.18.2.8}% 
+\contentsline {subsubsection}{\numberline {5.18.2.9}addSourceFile:}{23}{subsubsection.5.18.2.9}% 
+\contentsline {subsubsection}{\numberline {5.18.2.10}addSubProject:}{23}{subsubsection.5.18.2.10}% 
+\contentsline {subsubsection}{\numberline {5.18.2.11}addSubProject:toTargets:}{23}{subsubsection.5.18.2.11}% 
+\contentsline {subsubsection}{\numberline {5.18.2.12}addVersionGroupWithPath:}{24}{subsubsection.5.18.2.12}% 
+\contentsline {subsubsection}{\numberline {5.18.2.13}addXib:}{24}{subsubsection.5.18.2.13}% 
+\contentsline {subsubsection}{\numberline {5.18.2.14}addXib:toTargets:}{24}{subsubsection.5.18.2.14}% 
+\contentsline {subsubsection}{\numberline {5.18.2.15}buildFileKeys}{24}{subsubsection.5.18.2.15}% 
+\contentsline {subsubsection}{\numberline {5.18.2.16}members}{24}{subsubsection.5.18.2.16}% 
+\contentsline {subsubsection}{\numberline {5.18.2.17}memberWithDisplayName:}{24}{subsubsection.5.18.2.17}% 
+\contentsline {subsubsection}{\numberline {5.18.2.18}memberWithKey:}{24}{subsubsection.5.18.2.18}% 
+\contentsline {subsubsection}{\numberline {5.18.2.19}recursiveMembers}{25}{subsubsection.5.18.2.19}% 
+\contentsline {subsubsection}{\numberline {5.18.2.20}removeClass:fromTargets:}{25}{subsubsection.5.18.2.20}% 
+\contentsline {subsubsection}{\numberline {5.18.2.21}removeFramework:fromTargets:}{25}{subsubsection.5.18.2.21}% 
+\contentsline {subsubsection}{\numberline {5.18.2.22}removeHeader:}{25}{subsubsection.5.18.2.22}% 
+\contentsline {subsubsection}{\numberline {5.18.2.23}removeMemberWithKey:}{25}{subsubsection.5.18.2.23}% 
+\contentsline {subsection}{\numberline {5.18.3}Property Documentation}{25}{subsection.5.18.3}% 
+\contentsline {subsubsection}{\numberline {5.18.3.1}alias}{25}{subsubsection.5.18.3.1}% 
+\contentsline {subsubsection}{\numberline {5.18.3.2}children}{26}{subsubsection.5.18.3.2}% 
+\contentsline {subsubsection}{\numberline {5.18.3.3}key}{26}{subsubsection.5.18.3.3}% 
+\contentsline {subsubsection}{\numberline {5.18.3.4}pathRelativeToParent}{26}{subsubsection.5.18.3.4}% 
+\contentsline {section}{\numberline {5.19}XCGroup\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{26}{section.5.19}% 
+\contentsline {section}{\numberline {5.20}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Builder Class Reference}{26}{section.5.20}% 
+\contentsline {section}{\numberline {5.21}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Builder\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{27}{section.5.21}% 
+\contentsline {section}{\numberline {5.22}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Reference\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{27}{section.5.22}% 
+\contentsline {section}{\numberline {5.23}$<$Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Group\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Member$>$ Protocol Reference}{28}{section.5.23}% 
+\contentsline {subsection}{\numberline {5.23.1}Method Documentation}{28}{subsection.5.23.1}% 
+\contentsline {subsubsection}{\numberline {5.23.1.1}groupMemberType}{28}{subsubsection.5.23.1.1}% 
+\contentsline {section}{\numberline {5.24}XCProject Class Reference}{28}{section.5.24}% 
+\contentsline {subsection}{\numberline {5.24.1}Method Documentation}{30}{subsection.5.24.1}% 
+\contentsline {subsubsection}{\numberline {5.24.1.1}applicationTargets}{30}{subsubsection.5.24.1.1}% 
+\contentsline {subsubsection}{\numberline {5.24.1.2}configurations}{30}{subsubsection.5.24.1.2}% 
+\contentsline {subsubsection}{\numberline {5.24.1.3}configurationWithName:}{30}{subsubsection.5.24.1.3}% 
+\contentsline {subsubsection}{\numberline {5.24.1.4}files}{30}{subsubsection.5.24.1.4}% 
+\contentsline {subsubsection}{\numberline {5.24.1.5}fileWithKey:}{31}{subsubsection.5.24.1.5}% 
+\contentsline {subsubsection}{\numberline {5.24.1.6}fileWithName:}{31}{subsubsection.5.24.1.6}% 
+\contentsline {subsubsection}{\numberline {5.24.1.7}groupForGroupMemberWithKey:}{31}{subsubsection.5.24.1.7}% 
+\contentsline {subsubsection}{\numberline {5.24.1.8}groups}{31}{subsubsection.5.24.1.8}% 
+\contentsline {subsubsection}{\numberline {5.24.1.9}groupWithDisplayName:}{31}{subsubsection.5.24.1.9}% 
+\contentsline {subsubsection}{\numberline {5.24.1.10}groupWithKey:}{31}{subsubsection.5.24.1.10}% 
+\contentsline {subsubsection}{\numberline {5.24.1.11}groupWithPathFromRoot:}{31}{subsubsection.5.24.1.11}% 
+\contentsline {subsubsection}{\numberline {5.24.1.12}groupWithSourceFile:}{32}{subsubsection.5.24.1.12}% 
+\contentsline {subsubsection}{\numberline {5.24.1.13}headerFiles}{32}{subsubsection.5.24.1.13}% 
+\contentsline {subsubsection}{\numberline {5.24.1.14}initWithFilePath:}{32}{subsubsection.5.24.1.14}% 
+\contentsline {subsubsection}{\numberline {5.24.1.15}mainGroup}{32}{subsubsection.5.24.1.15}% 
+\contentsline {subsubsection}{\numberline {5.24.1.16}objectiveCFiles}{32}{subsubsection.5.24.1.16}% 
+\contentsline {subsubsection}{\numberline {5.24.1.17}objectiveCPlusPlusFiles}{32}{subsubsection.5.24.1.17}% 
+\contentsline {subsubsection}{\numberline {5.24.1.18}objects}{32}{subsubsection.5.24.1.18}% 
+\contentsline {subsubsection}{\numberline {5.24.1.19}pruneEmptyGroups}{33}{subsubsection.5.24.1.19}% 
+\contentsline {subsubsection}{\numberline {5.24.1.20}rootGroup}{33}{subsubsection.5.24.1.20}% 
+\contentsline {subsubsection}{\numberline {5.24.1.21}rootGroups}{33}{subsubsection.5.24.1.21}% 
+\contentsline {subsubsection}{\numberline {5.24.1.22}save}{33}{subsubsection.5.24.1.22}% 
+\contentsline {subsubsection}{\numberline {5.24.1.23}targets}{33}{subsubsection.5.24.1.23}% 
+\contentsline {subsubsection}{\numberline {5.24.1.24}targetWithName:}{33}{subsubsection.5.24.1.24}% 
+\contentsline {subsubsection}{\numberline {5.24.1.25}versionGroups}{33}{subsubsection.5.24.1.25}% 
+\contentsline {subsubsection}{\numberline {5.24.1.26}versionGroupWithKey:}{34}{subsubsection.5.24.1.26}% 
+\contentsline {subsubsection}{\numberline {5.24.1.27}versionGroupWithName:}{34}{subsubsection.5.24.1.27}% 
+\contentsline {subsubsection}{\numberline {5.24.1.28}xibFiles}{34}{subsubsection.5.24.1.28}% 
+\contentsline {section}{\numberline {5.25}XCProject(Sub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project) Category Reference}{34}{section.5.25}% 
+\contentsline {section}{\numberline {5.26}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Build\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Config Class Reference}{35}{section.5.26}% 
+\contentsline {section}{\numberline {5.27}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{35}{section.5.27}% 
+\contentsline {section}{\numberline {5.28}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File Class Reference}{36}{section.5.28}% 
+\contentsline {subsection}{\numberline {5.28.1}Detailed Description}{36}{subsection.5.28.1}% 
+\contentsline {subsection}{\numberline {5.28.2}Method Documentation}{36}{subsection.5.28.2}% 
+\contentsline {subsubsection}{\numberline {5.28.2.1}becomeBuildFile}{37}{subsubsection.5.28.2.1}% 
+\contentsline {subsubsection}{\numberline {5.28.2.2}buildFileKey}{37}{subsubsection.5.28.2.2}% 
+\contentsline {subsubsection}{\numberline {5.28.2.3}buildPhase}{37}{subsubsection.5.28.2.3}% 
+\contentsline {subsubsection}{\numberline {5.28.2.4}isBuildFile}{37}{subsubsection.5.28.2.4}% 
+\contentsline {subsubsection}{\numberline {5.28.2.5}removeBuildFile}{37}{subsubsection.5.28.2.5}% 
+\contentsline {subsubsection}{\numberline {5.28.2.6}setCompilerFlags:}{37}{subsubsection.5.28.2.6}% 
+\contentsline {subsubsection}{\numberline {5.28.2.7}setWeakReference}{38}{subsubsection.5.28.2.7}% 
+\contentsline {section}{\numberline {5.29}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{38}{section.5.29}% 
+\contentsline {section}{\numberline {5.30}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{39}{section.5.30}% 
+\contentsline {section}{\numberline {5.31}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition() Category Reference}{40}{section.5.31}% 
+\contentsline {section}{\numberline {5.32}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{40}{section.5.32}% 
+\contentsline {section}{\numberline {5.33}XCTarget Class Reference}{40}{section.5.33}% 
+\contentsline {subsection}{\numberline {5.33.1}Detailed Description}{41}{subsection.5.33.1}% 
+\contentsline {section}{\numberline {5.34}XCTarget\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tests Class Reference}{42}{section.5.34}% 
+\contentsline {section}{\numberline {5.35}XCVersion\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Group Class Reference}{42}{section.5.35}% 
+\contentsline {subsection}{\numberline {5.35.1}Method Documentation}{43}{subsection.5.35.1}% 
+\contentsline {subsubsection}{\numberline {5.35.1.1}addDataModelSource:}{43}{subsubsection.5.35.1.1}% 
+\contentsline {subsubsection}{\numberline {5.35.1.2}memberWithDisplayName:}{43}{subsubsection.5.35.1.2}% 
+\contentsline {subsubsection}{\numberline {5.35.1.3}memberWithKey:}{43}{subsubsection.5.35.1.3}% 
+\contentsline {subsection}{\numberline {5.35.2}Property Documentation}{43}{subsection.5.35.2}% 
+\contentsline {subsubsection}{\numberline {5.35.2.1}alias}{43}{subsubsection.5.35.2.1}% 
+\contentsline {subsubsection}{\numberline {5.35.2.2}key}{44}{subsubsection.5.35.2.2}% 
+\contentsline {subsubsection}{\numberline {5.35.2.3}pathRelativeToParent}{44}{subsubsection.5.35.2.3}% 
+\contentsline {subsubsection}{\numberline {5.35.2.4}versions}{44}{subsubsection.5.35.2.4}% 
+\contentsline {section}{\numberline {5.36}XCXib\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition Class Reference}{44}{section.5.36}% 
+\contentsline {chapter}{\numberline {6}File Documentation}{47}{chapter.6}% 
+\contentsline {section}{\numberline {6.1}NSString+\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Remove\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Emoji.h}{47}{section.6.1}% 
+\contentsline {section}{\numberline {6.2}XCAbstract\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{47}{section.6.2}% 
+\contentsline {section}{\numberline {6.3}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{48}{section.6.3}% 
+\contentsline {section}{\numberline {6.4}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{48}{section.6.4}% 
+\contentsline {section}{\numberline {6.5}XCBuild\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Shell\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Script\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{49}{section.6.5}% 
+\contentsline {section}{\numberline {6.6}XCClass\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{49}{section.6.6}% 
+\contentsline {section}{\numberline {6.7}XCFile\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Operation\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Queue.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{50}{section.6.7}% 
+\contentsline {section}{\numberline {6.8}XCFramework\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{51}{section.6.8}% 
+\contentsline {section}{\numberline {6.9}XCGroup.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{51}{section.6.9}% 
+\contentsline {section}{\numberline {6.10}XCKey\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Builder.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{53}{section.6.10}% 
+\contentsline {section}{\numberline {6.11}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Editor.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{53}{section.6.11}% 
+\contentsline {section}{\numberline {6.12}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Group\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Member.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{54}{section.6.12}% 
+\contentsline {section}{\numberline {6.13}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Member\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{54}{section.6.13}% 
+\contentsline {section}{\numberline {6.14}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{55}{section.6.14}% 
+\contentsline {section}{\numberline {6.15}Xcode\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Source\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Tree\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Type.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{56}{section.6.15}% 
+\contentsline {section}{\numberline {6.16}XCProject+\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Sub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project.h}{56}{section.6.16}% 
+\contentsline {section}{\numberline {6.17}XCProject.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{57}{section.6.17}% 
+\contentsline {section}{\numberline {6.18}XCProject\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Build\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Config.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{58}{section.6.18}% 
+\contentsline {section}{\numberline {6.19}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{59}{section.6.19}% 
+\contentsline {section}{\numberline {6.20}XCSource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}File\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{60}{section.6.20}% 
+\contentsline {section}{\numberline {6.21}XCSub\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Project\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{60}{section.6.21}% 
+\contentsline {section}{\numberline {6.22}XCTarget.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{61}{section.6.22}% 
+\contentsline {section}{\numberline {6.23}XCVersion\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Group.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{62}{section.6.23}% 
+\contentsline {section}{\numberline {6.24}XCXib\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Definition.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{63}{section.6.24}% 
+\contentsline {section}{\numberline {6.25}Class\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Called\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Janine.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{64}{section.6.25}% 
+\contentsline {section}{\numberline {6.26}XCTest\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Resource\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}Utils.\discretionary {\unhbox \voidb@x \hbox {\relax \fontsize {7}{8}\selectfont $\leftarrow \joinrel \rhook $}}{}{}h}{64}{section.6.26}% 
diff --git a/doc/latex/struct_hash_value_m_d5_hash.tex b/doc/latex/struct_hash_value_m_d5_hash.tex
new file mode 100644
index 0000000..4161318
--- /dev/null
+++ b/doc/latex/struct_hash_value_m_d5_hash.tex
@@ -0,0 +1,13 @@
+\hypertarget{struct_hash_value_m_d5_hash}{}\doxysection{Hash\+Value\+MD5\+Hash Struct Reference}
+\label{struct_hash_value_m_d5_hash}\index{HashValueMD5Hash@{HashValueMD5Hash}}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\Hypertarget{struct_hash_value_m_d5_hash_adc99db30c947c996c6e20aaed14e5a7b}\label{struct_hash_value_m_d5_hash_adc99db30c947c996c6e20aaed14e5a7b}} 
+char {\bfseries value} \mbox{[}MD5\+\_\+\+DIGEST\+\_\+\+LENGTH\mbox{]}
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+XCKey\+Builder.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/tabu_doxygen.sty b/doc/latex/tabu_doxygen.sty
new file mode 100644
index 0000000..3f17d1d
--- /dev/null
+++ b/doc/latex/tabu_doxygen.sty
@@ -0,0 +1,2557 @@
+%%
+%% This is file `tabu.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tabu.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% Copyright (FC) 2010-2011 - lppl
+%% 
+%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars
+%% 
+%% **********************************************************************************************
+%% \begin{tabu}               { preamble } => default target: \linewidth or \linegoal
+%% \begin{tabu} to     <dimen>{ preamble } => target specified
+%% \begin{tabu} spread <dimen>{ preamble } => target relative to the ``natural width''
+%% 
+%%  tabu works in text and in math modes.
+%% 
+%%  X columns: automatic width adjustment + horizontal and vertical alignment
+%%  \begin{tabu}   { X[4c] X[1c] X[-2ml]  }
+%% 
+%%  Horizontal lines and / or leaders:
+%%         \hline\hline                          => double horizontal line
+%%         \firsthline\hline                     => for nested tabulars
+%%         \lasthline\hline                      => for nested tabulars
+%%         \tabucline[line spec]{column-column}  => ``funny'' lines (dash/leader)
+%%  Automatic lines / leaders :
+%%         \everyrow{\hline\hline}
+%% 
+%%  Vertical lines and / or leaders:
+%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }
+%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }
+%% 
+%%  Fixed vertical spacing adjustment:
+%%         \extrarowheight=<dimen>     \extrarowdepth=<dimen>
+%%    or:     \extrarowsep=<dimen>               => may be prefixed by \global
+%% 
+%%  Dynamic vertical spacing adjustment:
+%%       \abovetabulinesep=<dimen>  \belowtabulinesep=<dimen>
+%%   or:      \tabulinesep=<dimen>               => may be prefixed by \global
+%% 
+%%  delarray.sty shortcuts: in math and text modes
+%%  \begin{tabu} ....        \({ preamble }\)
+%% 
+%%  Algorithms reports:
+%%            \tracingtabu=1             \tracingtabu=2
+%% 
+%% **********************************************************************************************
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% 
+%% This work consists of the main source file tabu.dtx
+%% and the derived files
+%%    tabu.sty, tabu.pdf, tabu.ins
+%% 
+%% tabu : Flexible LaTeX tabulars
+%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
+%% 
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]
+\RequirePackage{array}[2008/09/09]
+\RequirePackage{varwidth}[2009/03/30]
+\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
+\let\tabu@AtEnd\@empty
+\def\TMP@EnsureCode#1={%
+    \edef\tabu@AtEnd{\tabu@AtEnd
+                     \catcode#1 \the\catcode#1}%
+    \catcode#1=%
+}% \TMP@EnsureCode
+\TMP@EnsureCode 33 = 12 % !
+\TMP@EnsureCode 58 = 12 % : (for siunitx)
+\TMP@EnsureCode124 = 12 % |
+\TMP@EnsureCode 36 =  3 % $ = math shift
+\TMP@EnsureCode 38 =  4 % & = tab alignment character
+\TMP@EnsureCode 32 = 10 % space
+\TMP@EnsureCode 94 =  7 % ^
+\TMP@EnsureCode 95 =  8 % _
+%% Constants --------------------------------------------------------
+\newcount \c@taburow        \def\thetaburow {\number\c@taburow}
+\newcount \tabu@nbcols
+\newcount \tabu@cnt
+\newcount \tabu@Xcol
+\let\tabu@start \@tempcnta
+\let\tabu@stop  \@tempcntb
+\newcount \tabu@alloc  \tabu@alloc=\m@ne
+\newcount \tabu@nested
+\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc}
+\newdimen \tabu@target
+\newdimen \tabu@spreadtarget
+\newdimen \tabu@naturalX
+\newdimen \tabucolX
+\let\tabu@DELTA \@tempdimc
+\let\tabu@thick \@tempdima
+\let\tabu@on    \@tempdimb
+\let\tabu@off   \@tempdimc
+\newdimen \tabu@Xsum
+\newdimen \extrarowdepth
+\newdimen \abovetabulinesep
+\newdimen \belowtabulinesep
+\newdimen \tabustrutrule      \tabustrutrule \z@
+\newtoks \tabu@thebody
+\newtoks \tabu@footnotes
+\newsavebox \tabu@box
+\newsavebox \tabu@arstrutbox
+\newsavebox \tabu@hleads
+\newsavebox \tabu@vleads
+\newif \iftabu@colortbl
+\newif \iftabu@siunitx
+\newif \iftabu@measuring
+\newif \iftabu@spread
+\newif \iftabu@negcoef
+\newif \iftabu@everyrow
+\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue}
+\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse}
+\newif \iftabu@long
+\newif \iftabuscantokens
+\def\tabu@rescan {\tabu@verbatim \scantokens  }
+%% Utilities (for internal usage) -----------------------------------
+\def\tabu@gobblespace #1  {#1}
+\def\tabu@gobbletoken #1#2{#1}
+\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex}
+\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble
+                  \else\ifx \@sptoken\@let@token
+                    \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX
+                  \fi\fi
+}% \tabu@gobblex
+\def\tabu@X{^^J}
+{\obeyspaces
+\global\let\tabu@spxiii= % saves an active space (for \ifx)
+\gdef\tabu@@spxiii{ }}
+\def\tabu@ifenvir {% only for \multicolumn
+    \expandafter\tabu@if@nvir\csname\@currenvir\endcsname
+}% \tabu@ifenvir
+\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else
+                              \ifx\longtabu#1first\else
+                              second\fi\fi oftwo\endcsname
+}% \tabu@ifenvir
+\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi}
+{\catcode`\&=3
+\gdef\tabu@strtrim  #1{% #1 = control sequence to trim
+    \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi
+            \let\tabu@c@l@r \@empty       \let#1\@empty
+    \else   \expandafter  \tabu@trimspaces  #1&#1\@nnil
+    \fi
+}% \tabu@strtrim
+\gdef\tabu@trimspaces #1&#2\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& &#2}%
+\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&}
+\gdef\tabu@lastspace #1&#2&#3{\def #3{#1}%
+    \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi
+    \tabu@trimspaces #1&#3\@nnil}
+}% \catcode
+\def\tabu@sanitizearg #1#2{{%
+    \csname \ifcsname if@safe@actives\endcsname         % <babel>
+                      @safe@activestrue\else
+                      relax\fi       \endcsname
+    \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2%
+    \expandafter}\expandafter\def\expandafter#2\expandafter{#2}%
+}% \tabu@sanitizearg
+\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}%
+    \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!!
+}% \tabu@textbar
+\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi}
+\def\tabu@everyrow@egroup{%
+    \iftabu@everyrow \expandafter \endgroup \the\toks@
+    \else            \ifnum0=`{\fi}%
+    \fi
+}% \tabu@everyrow@egroup
+\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule
+    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+    width  \z@}%
+}% \tabu@arstrut
+\def\tabu@rearstrut {%
+    \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax
+    \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth  \relax
+    \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima
+            \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi
+        \tabu@mkarstrut
+    \fi
+}% \tabu@rearstrut
+\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi}
+\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox
+    \hbox to\z@{\hbox to\z@{\hss
+    {\tabu@DBG{cyan}\vrule
+    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+    depth  \z@
+    width  \tabustrutrule}\kern-\tabustrutrule
+    {\tabu@DBG{pink}\vrule
+    height \z@
+    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+    width \tabustrutrule}}}%
+}% \tabu@DBG@arstrut
+\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
+                                                              \@nextchar}}%
+\def\tabu@savedecl{\ifcat$\d@llarend\else
+       \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode
+}% \tabu@savedecl
+\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@}
+\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k }
+\let\tabu@trialh@@k \@empty
+\def\tabu@nowrite #1#{{\afterassignment}\toks@}
+\let\tabu@write\write
+\let\tabu@immediate\immediate
+\def\tabu@WRITE{\begingroup
+   \def\immediate\write{\aftergroup\endgroup
+                  \tabu@immediate\tabu@write}%
+}% \tabu@WRITE
+\expandafter\def\expandafter\tabu@GenericError\expandafter{%
+                      \expandafter\tabu@WRITE\GenericError}
+\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}}
+\def\tabu@noxfootnote [#1]{\@gobble}
+\def\tabu@nocolor #1#{\@gobble}
+\newcommand*\tabu@norowcolor[2][]{}
+\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
+                          \futurelet\@let@token \tabu@m@ybesiunitx}
+\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {%
+    \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi
+    \tabu@temp}% \tabu@m@ybesiunitx
+}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname
+\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}%
+%% Fixed vertical spacing adjustment: \extrarowsep ------------------
+\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}%
+    \iftabu@everyrow    \aftergroup\tabu@Gextra
+    \else               \aftergroup\tabu@n@Gextra
+    \fi
+    \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra
+}% \extrarowsep
+\def\tabu@extra {\@ifnextchar_%
+    {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}
+    {\ifx ^\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}%
+    \else   \let\tabu@temp \@empty
+            \afterassignment \tabu@setextrasep \extrarowdepth
+    \fi \tabu@temp}%
+}% \tabu@extra
+\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@extr@ #1#2{\@ifnextchar^%
+    {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}
+    {\ifx _\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}%
+    \else   \let\tabu@temp \@empty
+            \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+    \fi \tabu@temp}%
+}% \tabu@extr@
+\def\tabu@setextrasep {\extrarowheight=\extrarowdepth
+    \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+}% \tabu@setextrasep
+\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi}
+\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi}
+\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra}
+\let\tabu@C@extra \z@
+\let\tabu@G@extra \@empty
+%% Dynamic vertical spacing adjustment: \tabulinesep ----------------
+\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}%
+    \iftabu@everyrow    \aftergroup\tabu@Glinesep
+    \else               \aftergroup\tabu@n@Glinesep
+    \fi
+    \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep
+}% \tabulinesep
+\def\tabu@linesep {\@ifnextchar_%
+    {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}
+    {\ifx ^\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}%
+     \else  \let\tabu@temp \@empty
+            \afterassignment \tabu@setlinesep \abovetabulinesep
+     \fi \tabu@temp}%
+}% \tabu@linesep
+\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@sets@p #1#2{\@ifnextchar^%
+    {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}
+    {\ifx _\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}%
+    \else   \let\tabu@temp \@empty
+            \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+    \fi \tabu@temp}%
+}% \tabu@sets@p
+\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep
+    \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+}% \tabu@setlinesep
+\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi}
+\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi}
+\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep}
+\let\tabu@C@linesep \z@
+\let\tabu@G@linesep \@empty
+%% \global\extrarowsep  and  \global\tabulinesep  -------------------
+\def\tabu@Gsave #1#2#3#4{\xdef#1{#1%
+    \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}%
+}% \tabu@Gsave
+\def\tabu@Grestore#1#2{%
+    \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax
+    \ifcat$\the\toks\currentgrouplevel$\else
+        \global\let#1\@empty \global\let#2\z@
+        \the\toks\currentgrouplevel
+    \fi
+}% \tabu@Grestore
+%% Setting code for every row ---------------------------------------
+\newcommand*\everyrow{\tabu@everyrow@bgroup
+                      \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop
+}% \everyrow
+\def\tabu@evrstartstop {\@ifnextchar^%
+    {\afterassignment \tabu@evrstartstop \tabu@stop=}%
+    {\ifx ^\@let@token
+            \afterassignment\tabu@evrstartstop \tabu@start=%
+     \else  \afterassignment\tabu@everyr@w     \toks@
+     \fi}%
+}% \tabu@evrstartstop
+\def\tabu@everyr@w {%
+    \xdef\tabu@everyrow{%
+        \noexpand\tabu@everyrowfalse
+        \let\noalign \relax
+        \noexpand\tabu@rowfontreset
+        \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors
+        \let\noexpand\tabu@docline \noexpand\tabu@docline@evr
+        \the\toks@
+        \noexpand\tabu@evrh@@k
+        \noexpand\tabu@rearstrut
+        \global\advance\c@taburow \@ne}%
+    \iftabu@everyrow \toks@\expandafter
+        {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}%
+    \else \xdef\tabu@evr@G{\the\toks@}%
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@everyr@w
+\def\tabu@evr {\def\tabu@evrh@@k}         % for internal use only
+\tabu@evr{}
+%% line style and leaders -------------------------------------------
+\newcommand*\newtabulinestyle [1]{%
+    {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}%
+}% \newtabulinestyle
+\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}%
+    \tabu@sanitizearg {#1}\@tempa
+    \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi
+    \global\expandafter\let
+        \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi
+}% \tabu@newlinestyle
+\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}%
+    \iftabu@everyrow
+        \toks@\expandafter{\expandafter \def \expandafter
+                    \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}%
+        \gdef\tabu@ls@{\tabu@ls@L}%
+    \else
+        \global\let\tabu@ls@G \tabu@thestyle
+        \gdef\tabu@ls@{\tabu@ls@G}%
+    \fi
+    \tabu@everyrow@egroup
+}% \tabulinestyle
+\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor}
+\def\tabu@rulecolor #1{\toks@{}%
+    \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1%
+                                                    \tabu@temp
+                                                 \tabu@rulearc
+}% \tabu@rulecolor
+\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp
+    \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}%
+    \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}%
+    \fi
+    \tabu@temp
+}% \tabu@ruledrsc@
+\def\tabu@ruledrsc@   #1#{\tabu@rule@drsc@ {#1}}
+\def\tabu@rule@drsc@ #1#2{%
+    \iftabu@everyrow
+        \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}%
+        \else        \toks@{\def\CT@drsc@{\color #1{#2}}}%
+        \fi
+    \else
+        \ifx \\#1#2\\\global\let\CT@drsc@ \relax
+        \else        \gdef\CT@drsc@{\color #1{#2}}%
+        \fi
+    \fi
+    \tabu@rulearc
+}% \tabu@rule@drsc@
+\def\tabu@rulearc    #1#{\tabu@rule@arc@ {#1}}
+\def\tabu@rule@arc@ #1#2{%
+    \iftabu@everyrow
+        \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}%
+        \else        \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}%
+        \fi
+        \toks@\expandafter{\the\toks@
+            \let\tabu@arc@L  \CT@arc@
+            \let\tabu@drsc@L \CT@drsc@
+            \ignorespaces}%
+    \else
+        \ifx \\#1#2\\\gdef\CT@arc@{}%
+        \else        \gdef\CT@arc@{\color #1{#2}}%
+        \fi
+        \global\let\tabu@arc@G  \CT@arc@
+        \global\let\tabu@drsc@G \CT@drsc@
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@rule@arc@
+\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1}
+\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}}
+\def\tabu@rowc@lors #1#2#3{%
+    \toks@{}\@defaultunits \count@      =\number0#2\relax \@nnil
+            \@defaultunits \tabu@start  =\number0#1\relax \@nnil
+    \ifnum \count@<\tw@ \count@=\tw@ \fi
+    \advance\tabu@start \m@ne
+    \ifnum \tabu@start<\z@ \tabu@start \z@ \fi
+    \tabu@rowcolorseries #3\in@..\in@ \@nnil
+}% \tabu@rowcolors
+\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {%
+    \ifx \in@#1\relax
+        \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}%
+        \else   \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@
+        \fi
+    \else
+        \ifx \\#2\\\tabu@rowcolorserieserror \fi
+        \tabu@sanitizearg{#1}\tabu@temp
+        \tabu@sanitizearg{#2}\@tempa
+        \advance\count@ \m@ne
+    \iftabu@everyrow
+        \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{%
+            \ifnum ##2=\c@taburow
+                \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi
+            \ifnum \c@taburow<##2 \else
+                \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@
+                    \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+                \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+                \rowcolor{tabu@rc@\the\tabu@nested}\fi}%
+        }\edef\x{\noexpand\tabu@rc@           {\the\count@}
+                                          {\the\tabu@start}
+                                               {\tabu@temp}
+                                                  {\@tempa}%
+                }\x
+        \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}%
+        \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}%
+    \else   % inside \noalign
+        \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}%
+        \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}%
+        \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+        \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}%
+        \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{%
+            \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne
+                \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+            \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+            \rowcolor{tabu@rc@\the\tabu@nested}}%
+        }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x
+        \global\let\tabu@rc@G \tabu@rc@
+    \fi
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@rowcolorseries
+\tabuDisableCommands {\let\tabu@rc@ \@empty }
+\def\tabu@rowcolorserieserror {\PackageError{tabu}
+    {Invalid syntax for \string\taburowcolors
+    \MessageBreak Please look at the documentation!}\@ehd
+}% \tabu@rowcolorserieserror
+\newcommand*\tabureset {%
+    \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@
+    \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}%
+}% \tabureset
+%% Parsing the line styles ------------------------------------------
+\def\tabu@getline #1{\begingroup
+    \csname \ifcsname if@safe@actives\endcsname         % <babel>
+                      @safe@activestrue\else
+                      relax\fi       \endcsname
+    \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa
+    \let\tabu@thestyle \relax
+    \ifcsname tabu@linestyle@\@tempa \endcsname
+            \edef\tabu@thestyle{\endgroup
+                \def\tabu@thestyle{\expandafter\noexpand
+                    \csname tabu@linestyle@\@tempa\endcsname}%
+            }\tabu@thestyle
+    \else   \expandafter\tabu@definestyle \tabu@temp \@nil
+    \fi
+}% \tabu@getline
+\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter
+    \tabu@thick \maxdimen  \tabu@on \maxdimen   \tabu@off \maxdimen
+    \let\tabu@c@lon \@undefined  \let\tabu@c@loff \@undefined
+    \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs
+            \def\tabu@temp{\tabu@getparam{thick}}%
+    \else   \def\tabu@temp{\tabu@getparam{thick}\maxdimen}%
+    \fi
+    {%
+        \let\tabu@ \relax
+        \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-))
+        \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}%
+                        \expandafter}\expandafter
+                                \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-)
+    \def\;{\def\:}%
+    \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10)
+    \let\tabu@ \tabu@getcolor    \:%    all arguments are ready now ;-)
+    \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi
+    \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi
+    \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty        \fi
+    \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen
+                                  \tabu@on \tabulineon        \fi\fi
+    \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen
+                                  \tabu@off \tabulineoff      \fi\fi
+    \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi
+            \in@true    % <leaders>
+    \else   \in@false   % <rule>
+    \fi
+    \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}%
+    \else                       \edef\tabu@thick{\the\tabu@thick}%
+    \fi
+    \edef \tabu@thestyle ##1##2{\endgroup
+        \def\tabu@thestyle{%
+            \ifin@  \noexpand\tabu@leadersstyle {\tabu@thick}
+                                                {\the\tabu@on}{##1}
+                                                {\the\tabu@off}{##2}%
+            \else   \noexpand\tabu@rulesstyle
+                            {##1\vrule width \tabu@thick}%
+                            {##1\leaders \hrule height \tabu@thick \hfil}%
+            \fi}%
+    }\expandafter \expandafter
+        \expandafter \tabu@thestyle \expandafter
+            \expandafter \expandafter
+                {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}%
+}% \tabu@definestyle
+{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active
+    \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}}
+    \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space}
+}% \catcode
+\def\tabu@oxiii #1{%
+    \ifcase  \ifx n#1\z@ \else
+             \ifx f#1\@ne\else
+             \tw@       \fi\fi
+          \expandafter\tabu@onxiii
+    \or   \expandafter\tabu@ofxiii
+    \else o%
+    \fi#1}%
+\def\tabu@onxiii #1#2{%
+    \ifcase  \ifx  !#2\tw@          \else
+             \ifcat.\noexpand#2\z@  \else
+             \ifx \tabu@spxiii#2\@ne\else
+             \tw@               \fi\fi\fi
+          \tabu@getparam{on}#2\expandafter\@gobble
+    \or   \expandafter\tabu@onxiii    % (space is active)
+    \else o\expandafter\@firstofone
+    \fi{#1#2}}%
+\def\tabu@ofxiii #1#2{%
+    \ifx #2f\expandafter\tabu@offxiii
+    \else   o\expandafter\@firstofone
+    \fi{#1#2}}
+\def\tabu@offxiii #1#2{%
+    \ifcase \ifx  !#2\tw@           \else
+            \ifcat.\noexpand#2\z@   \else
+            \ifx\tabu@spxiii#2\@ne  \else
+            \tw@                \fi\fi\fi
+          \tabu@getparam{off}#2\expandafter\@gobble
+    \or   \expandafter\tabu@offxiii   % (space is active)
+    \else o\expandafter\@firstofone
+    \fi{#1#2}}
+\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=}
+\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef
+    \ifx \tabu@#1\else   % no more spec
+        \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi
+}% \tabu@getcolor
+\def\tabu@getc@l@r #1\tabu@ {%
+    \def\tabu@temp{#1}\tabu@strtrim \tabu@temp
+    \ifx \tabu@temp\@empty
+    \else%\ifcsname \string\color@\tabu@temp \endcsname  % if the color exists
+        \ifx \tabu@theparam \tabu@off   \let\tabu@c@loff \tabu@c@l@r
+        \else                           \let\tabu@c@lon  \tabu@c@l@r
+        \fi
+    %\else \tabu@warncolour{\tabu@temp}%
+    \fi%\fi
+    \tabu@ % next spec
+}% \tabu@getc@l@r
+\def\tabu@warncolour #1{\PackageWarning{tabu}
+    {Color #1 is not defined. Default color used}%
+}% \tabu@warncolour
+\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%
+    \ifx \tabu@leaders\tabu@leaders@G \else
+                \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi
+}% \tabu@leadersstyle
+\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined
+        \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}%
+}% \tabu@rulesstyle
+%% The leaders boxes ------------------------------------------------
+\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+    {\let\color \tabu@color % => during trials ->  \color = \tabu@nocolor
+    {%                      %    but the leaders boxes should have colors !
+    \def\@therule{\vrule}\def\@thick{height}\def\@length{width}%
+    \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}%
+    \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}%
+    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+    \global\let\tabu@thehleaders \tabu@theleaders
+    }%
+    {%
+    \def\@therule{\hrule}\def\@thick{width}\def\@length{height}%
+    \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}%
+    \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}%
+    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+    \global\let\tabu@thevleaders \tabu@theleaders
+    }%
+    \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%
+    }%
+}% \tabu@LEADERS
+\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@}
+\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+    \global\setbox \tabu@leads=\@box{%
+        {#3\tabu@therule{#1}{#2}}%
+        \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi
+        {#3\tabu@therule{#1}{#2}}}%
+    \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss
+        {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}%
+    \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {%
+        {##1\tabu@therule{#1}{#2}}%
+        \xleaders \copy\tabu@leads \@ss
+        \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}%
+    }\tabu@theleaders{#3}%
+}% \tabu@l@@d@rs
+%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
+\newcommand*\tabu {\tabu@longfalse
+    \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
+    \else  \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
+    \expandafter\let\csname tabu*\endcsname \tabu
+    \expandafter\def\csname endtabu*\endcsname{\endtabu}%
+    \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {tabu}
+\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
+\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu}
+\newcommand*\longtabu {\tabu@longtrue
+   \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
+   \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
+   \LTchunksize=\@M
+   \expandafter\let\csname tabu*\endcsname \tabu
+   \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}%
+   \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
+   \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {longtabu}
+\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu}
+\def\tabu@nolongtabu{\PackageError{tabu}
+   {longtabu requires the longtable package}\@ehd}
+%% Read the target and  then : \tabular or \@array ------------------
+\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
+\def\tabu@sett@rget {\tabu@target \z@
+   \ifcase \ifx \bgroup\@let@token   \z@  \else
+           \ifx \@sptoken\@let@token \@ne \else
+           \if t\@let@token          \tw@ \else
+           \if s\@let@token          \thr@@\else
+           \z@\fi\fi\fi\fi
+         \expandafter\tabu@begin
+   \or   \expandafter\tabu@gobblespace\expandafter\tabu@settarget
+   \or   \expandafter\tabu@to
+   \or   \expandafter\tabu@spread
+   \fi
+}% \tabu@sett@rget
+\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget}
+\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget}
+\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target }
+\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget }
+\def\tabu@linegoalt@rget {%
+   \ifx \tabu@temp\LNGL@setlinegoal
+        \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal
+   \tabu@begin
+}% \tabu@linegoalt@rget
+\def\tabu@begin #1#{%
+    \iftabu@measuring \expandafter\tabu@nestedmeasure \fi
+    \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty
+    \else                   \edef\tabu@halignto{\tabu@halignto\the\tabu@target}%
+    \fi
+    \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil
+}% \tabu@begin
+\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup
+   \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}%
+   \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }%
+}% \tabu@tabu@
+\def\tabu@nestedmeasure {%
+    \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax
+            \tabu@spreadtrue
+    \else   \begingroup \iffalse{\fi \ifnum0=`}\fi
+            \toks@{}\def\tabu@stack{b}%
+            \expandafter\tabu@collectbody\expandafter\tabu@quickrule
+                                         \expandafter\endgroup
+    \fi
+}% \tabu@nestedmeasure
+\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target}
+%% \tabu@setup  \tabu@init  \tabu@indent
+\def\tabu@setup{\tabu@alloc@
+    \ifcase \tabu@nested
+        \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@
+            \let\tabu@afterendpar \par
+        \fi\fi\fi
+        \def\tabu@aligndefault{c}\tabu@init \tabu@indent
+    \else       % <nested tabu>
+        \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth
+    \fi
+    \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined
+    \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}%
+    \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu...
+              \let\@endpbox   \tabu@endpbox   % idem "    "    "    "    "    "
+              \let\@tabarray  \tabu@tabarray  % idem "    "    "    "    "    "
+    \tabu@setcleanup \tabu@setreset
+}% \tabu@setup
+\def\tabu@init{\tabu@starttimer \tabu@measuringfalse
+    \edef\tabu@hfuzz  {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}%
+    \let\firsthline    \tabu@firsthline   \let\lasthline      \tabu@lasthline
+    \let\firstline     \tabu@firstline    \let\lastline       \tabu@lastline
+    \let\hline         \tabu@hline        \let\@xhline        \tabu@xhline
+    \let\color         \tabu@color        \let\@arstrutbox    \tabu@arstrutbox
+    \iftabu@colortbl\else\let\LT@@hline   \tabu@LT@@hline \fi
+    \tabu@trivlist     %<restore \\=\@normalcr inside lists>
+    \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext
+    \let\@xfootnote    \tabu@xfootnote    \let\centering      \tabu@centering
+    \let\raggedright   \tabu@raggedright  \let\raggedleft     \tabu@raggedleft
+    \let\tabudecimal   \tabu@tabudecimal  \let\Centering      \tabu@Centering
+    \let\RaggedRight   \tabu@RaggedRight  \let\RaggedLeft     \tabu@RaggedLeft
+    \let\justifying    \tabu@justifying   \let\rowfont        \tabu@rowfont
+    \let\fbox          \tabu@fbox         \let\color@b@x      \tabu@color@b@x
+    \let\tabu@@everycr \everycr           \let\tabu@@everypar \everypar
+    \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok  \tabu@prepnext@tok
+    \let\tabu@multicolumnORI\multicolumn  \let\multicolumn    \tabu@multicolumn
+    \let\tabu@startpbox \@startpbox      % for nested tabu inside longtabu pfff !!!
+    \let\tabu@endpbox   \@endpbox        % idem  "    "    "    "    "    "    "
+    \let\tabu@tabarray  \@tabarray       % idem  "    "    "    "    "    "    "
+    \tabu@adl@fix      \let\endarray      \tabu@endarray % <fix> colortbl & arydshln (delarray)
+    \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi
+}% \tabu@init
+\def\tabu@indent{% correction for indentation
+    \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget
+    \everypar\expandafter{%
+        \the\everypar\everypar\expandafter{\the\everypar}%
+            \setbox\z@=\lastbox
+            \ifdim\wd\z@>\z@ \edef\tabu@thetarget
+                {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi
+            \box\z@}%
+    \fi\fi
+}% \tabu@indent
+\def\tabu@setcleanup {% saves last global assignments
+    \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax
+        \def\tabu@aftergroupcleanup{%
+                \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}%
+    \else
+        \def\tabu@aftergroupcleanup{%
+                \aftergroup\aftergroup\aftergroup\tabu@cleanup
+                \let\tabu@aftergroupcleanup \relax}%
+    \fi
+    \let\tabu@arc@Gsave         \tabu@arc@G
+    \let\tabu@arc@G             \tabu@arc@L   % <init>
+    \let\tabu@drsc@Gsave        \tabu@drsc@G
+    \let\tabu@drsc@G            \tabu@drsc@L  % <init>
+    \let\tabu@ls@Gsave          \tabu@ls@G
+    \let\tabu@ls@G              \tabu@ls@L    % <init>
+    \let\tabu@rc@Gsave          \tabu@rc@G
+    \let\tabu@rc@G              \tabu@rc@L    % <init>
+    \let\tabu@evr@Gsave         \tabu@evr@G
+    \let\tabu@evr@G             \tabu@evr@L   % <init>
+    \let\tabu@celllalign@save   \tabu@celllalign
+    \let\tabu@cellralign@save   \tabu@cellralign
+    \let\tabu@cellleft@save     \tabu@cellleft
+    \let\tabu@cellright@save    \tabu@cellright
+    \let\tabu@@celllalign@save  \tabu@@celllalign
+    \let\tabu@@cellralign@save  \tabu@@cellralign
+    \let\tabu@@cellleft@save    \tabu@@cellleft
+    \let\tabu@@cellright@save   \tabu@@cellright
+    \let\tabu@rowfontreset@save \tabu@rowfontreset
+    \let\tabu@@rowfontreset@save\tabu@@rowfontreset
+    \let\tabu@rowfontreset      \@empty
+    \edef\tabu@alloc@save      {\the\tabu@alloc}%   restore at \tabu@reset
+    \edef\c@taburow@save       {\the\c@taburow}%
+    \edef\tabu@naturalX@save   {\the\tabu@naturalX}%
+    \let\tabu@naturalXmin@save  \tabu@naturalXmin
+    \let\tabu@naturalXmax@save  \tabu@naturalXmax
+    \let\tabu@mkarstrut@save    \tabu@mkarstrut
+    \edef\tabu@clarstrut{%
+        \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax
+        \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax
+        \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}%
+}% \tabu@setcleanup
+\def\tabu@cleanup {\begingroup
+    \globaldefs\@ne         \tabu@everyrowtrue
+    \let\tabu@arc@G         \tabu@arc@Gsave
+    \let\CT@arc@            \tabu@arc@G
+    \let\tabu@drsc@G        \tabu@drsc@Gsave
+    \let\CT@drsc@           \tabu@drsc@G
+    \let\tabu@ls@G          \tabu@ls@Gsave
+    \let\tabu@ls@           \tabu@ls@G
+    \let\tabu@rc@G          \tabu@rc@Gsave
+    \let\tabu@rc@           \tabu@rc@G
+    \let\CT@do@color        \relax
+    \let\tabu@evr@G         \tabu@evr@Gsave
+    \let\tabu@celllalign    \tabu@celllalign@save
+    \let\tabu@cellralign    \tabu@cellralign@save
+    \let\tabu@cellleft      \tabu@cellleft@save
+    \let\tabu@cellright     \tabu@cellright@save
+    \let\tabu@@celllalign   \tabu@@celllalign@save
+    \let\tabu@@cellralign   \tabu@@cellralign@save
+    \let\tabu@@cellleft     \tabu@@cellleft@save
+    \let\tabu@@cellright    \tabu@@cellright@save
+    \let\tabu@rowfontreset  \tabu@rowfontreset@save
+    \let\tabu@@rowfontreset \tabu@@rowfontreset@save
+    \tabu@naturalX         =\tabu@naturalX@save
+    \let\tabu@naturalXmax   \tabu@naturalXmax@save
+    \let\tabu@naturalXmin   \tabu@naturalXmin@save
+    \let\tabu@mkarstrut     \tabu@mkarstrut@save
+    \c@taburow             =\c@taburow@save
+    \ifcase \tabu@nested    \tabu@alloc \m@ne\fi
+    \endgroup               % <end of \globaldefs>
+    \ifcase \tabu@nested
+        \the\tabu@footnotes \global\tabu@footnotes{}%
+        \tabu@afterendpar   \tabu@elapsedtime
+    \fi
+    \tabu@clarstrut
+    \everyrow\expandafter   {\tabu@evr@G}%
+}% \tabu@cleanup
+\let\tabu@afterendpar \relax
+\def\tabu@setreset {%
+    \edef\tabu@savedparams {%         \relax for \tabu@message@save
+        \ifmmode \col@sep \the\arraycolsep
+        \else    \col@sep \the\tabcolsep \fi    \relax
+        \arrayrulewidth   \the\arrayrulewidth   \relax
+        \doublerulesep    \the\doublerulesep    \relax
+        \extratabsurround \the\extratabsurround \relax
+        \extrarowheight   \the\extrarowheight   \relax
+        \extrarowdepth    \the\extrarowdepth    \relax
+        \abovetabulinesep \the\abovetabulinesep \relax
+        \belowtabulinesep \the\belowtabulinesep \relax
+        \def\noexpand\arraystretch{\arraystretch}%
+        \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}%
+    \begingroup
+        \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu
+        \ifx \tabu@arc@L\relax  \else \tabu@setsave \tabu@arc@L \fi
+        \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi
+        \tabu@setsave \tabu@ls@L      \tabu@setsave \tabu@evr@L
+        \expandafter \endgroup \expandafter
+            \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena
+                \let\tabu@arc@G  \tabu@arc@L
+                \let\tabu@drsc@G \tabu@drsc@L
+                \let\tabu@ls@G   \tabu@ls@L
+                \let\tabu@rc@G   \tabu@rc@L
+                \let\tabu@evr@G  \tabu@evr@L}%
+    \def\tabu@reset{\tabu@savedparams
+        \tabu@everyrowtrue  \c@taburow \z@
+        \let\CT@arc@        \tabu@arc@L
+        \let\CT@drsc@       \tabu@drsc@L
+        \let\tabu@ls@       \tabu@ls@L
+        \let\tabu@rc@       \tabu@rc@L
+        \global\tabu@alloc  \tabu@alloc@save
+        \everyrow\expandafter{\tabu@evr@L}}%
+}% \tabu@reset
+\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}}
+\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}}
+%% The Rewriting Process -------------------------------------------
+\def\tabu@newcolumntype #1{%
+    \expandafter\tabu@new@columntype
+        \csname NC@find@\string#1\expandafter\endcsname
+        \csname NC@rewrite@\string#1\endcsname
+        {#1}%
+}% \tabu@newcolumntype
+\def\tabu@new@columntype #1#2#3{%
+    \def#1##1#3{\NC@{##1}}%
+    \let#2\relax \newcommand*#2%
+}% \tabu@new@columntype
+\def\tabu@privatecolumntype #1{%
+    \expandafter\tabu@private@columntype
+        \csname NC@find@\string#1\expandafter\endcsname
+        \csname NC@rewrite@\string#1\expandafter\endcsname
+        \csname tabu@NC@find@\string#1\expandafter\endcsname
+        \csname tabu@NC@rewrite@\string#1\endcsname
+        {#1}%
+}% \tabu@privatecolumntype
+\def\tabu@private@columntype#1#2#3#4{%
+    \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}%
+    \tabu@new@columntype#3#4%
+}% \tabu@private@columntype
+\let\tabu@privatecolumns \@empty
+\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
+    \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
+                                          \NC@do #1}}%
+\let\tabu@highprioritycolumns \@empty
+%% The  |  ``column'' : rewriting process --------------------------
+\tabu@privatecolumntype |{\tabu@rewritevline}
+\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
+                \expandafter \NC@find \tabu@rewritten}
+\def\tabu@lines #1{%
+    \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi
+    \NC@list\expandafter{\the\NC@list \NC@do #1}%
+}% \tabu@lines@
+\def\tabu@vlinearg #1{%
+    \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}%
+    \else\tabu@getline {#1}%
+    \fi
+    \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}%
+    }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}%
+    \expandafter \tabu@keepls \tabu@thestyle \@nil
+}% \tabu@vlinearg
+\def\tabu@keepls #1\@nil{%
+    \ifcat $\@cdr #1\@nil $%
+    \ifx \relax#1\else
+    \ifx \tabu@ls@#1\else
+        \let#1\relax
+        \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+                \tabu@savels\noexpand#1}\fi\fi\fi
+}% \tabu@keepls
+\def\tabu@thevline {\begingroup
+    \ifdefined\tabu@leaders
+        \setbox\@tempboxa=\vtop to\dimexpr
+                      \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}%
+        \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox
+        \box\@tempboxa
+    \else
+                \tabu@thevrule
+    \fi             \endgroup
+}% \tabu@thevline
+\def\tabu@savels #1{%
+    \expandafter\let\csname\string#1\endcsname #1%
+    \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset
+                                                    \tabu@resetls#1}}%
+\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}%
+%% \multicolumn inside tabu environment -----------------------------
+\tabu@newcolumntype \tabu@rewritemulticolumn{%
+    \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group
+    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+    \tabu@savedecl
+    \tabu@privatecolumns
+    \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}%
+    \let\tabu@savels \relax
+    \NC@find
+}% \tabu@rewritemulticolumn
+\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup}
+\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI}
+\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup
+    \tabu@everyrowtrue
+    \NC@list{\NC@do \tabu@rewritemulticolumn}%
+    \expandafter\@gobbletwo % gobbles \multispan{#1}
+         \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}%
+                {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
+                {#3}}%
+}% \tabu@multic@lumn
+%% The X column(s): rewriting process -----------------------------
+\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
+\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
+\def\tabu@siunitx   #1{\@ifnextchar \bgroup
+                     {\tabu@rewriteX@Ss{#1}}
+                      {\tabu@nosiunitx{#1}}}
+\def\tabu@rewriteX@Ss #1#2{\@temptokena{}%
+    \@defaultunits \let\tabu@temp =#2\relax\@nnil
+    \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi
+        \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}%
+            }\expandafter\NC@find \the\@temptokena \relax
+        }\expandafter\NC@rewrite@S \@gobble #2\relax
+    \else \tabu@siunitxerror
+    \fi
+    \expandafter \NC@find \tabu@rewritten
+}% \tabu@rewriteX@Ss
+\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column !
+        \MessageBreak X column can only embed siunitx S or s columns}\@ehd
+}% \tabu@siunitxerror
+\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}%
+    \iftabu@measuring
+    \else \tabu@measuringtrue % first X column found in the preamble
+        \let\@halignto \relax   \let\tabu@halignto \relax
+        \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@
+        \else          \tabu@spreadtarget \z@ \fi
+        \ifdim \tabu@target=\z@
+                \setlength\tabu@target \tabu@thetarget
+                \tabu@message{\tabu@message@defaulttarget}%
+        \else   \tabu@message{\tabu@message@target}\fi
+    \fi
+}% \tabu@rewriteX
+\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax
+                                \def\tabu@rewritten{l}}
+\def\tabu@Xarg #1#2#3{%
+   \advance\tabu@Xcol \@ne      \let\tabu@Xlcr  \@empty
+   \let\tabu@Xdisp    \@empty   \let\tabu@Xmath \@empty
+    \ifx\\#1\\%    <shortcut when no option>
+         \def\tabu@rewritten{p}\tabucolX \p@        % <default coef = 1>
+    \else
+         \let\tabu@rewritten \@empty   \let\tabu@temp \@empty  \tabucolX \z@
+         \tabu@Xparse {}#1\relax
+    \fi
+    \tabu@Xrewritten{#2}{#3}%
+}% \tabu@Xarg
+\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest}
+\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}}
+\def\tabu@Xtest{%
+   \ifcase \ifx \relax\@let@token \z@ \else
+           \if ,\@let@token \m@ne\else
+           \if p\@let@token 1\else
+           \if m\@let@token 2\else
+           \if b\@let@token 3\else
+           \if l\@let@token 4\else
+           \if c\@let@token 5\else
+           \if r\@let@token 6\else
+           \if j\@let@token 7\else
+           \if L\@let@token 8\else
+           \if C\@let@token 9\else
+           \if R\@let@token 10\else
+           \if J\@let@token 11\else
+           \ifx \@sptoken\@let@token 12\else
+           \if .\@let@token 13\else
+           \if -\@let@token 13\else
+           \ifcat $\@let@token 14\else
+           15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+   \or \tabu@Xtype {p}%
+   \or \tabu@Xtype {m}%
+   \or \tabu@Xtype {b}%
+   \or \tabu@Xalign \raggedright\relax
+   \or \tabu@Xalign \centering\relax
+   \or \tabu@Xalign \raggedleft\relax
+   \or \tabu@Xalign \tabu@justify\relax
+   \or \tabu@Xalign \RaggedRight\raggedright
+   \or \tabu@Xalign \Centering\centering
+   \or \tabu@Xalign \RaggedLeft\raggedleft
+   \or \tabu@Xalign \justifying\tabu@justify
+   \or \expandafter \tabu@Xparsespace
+   \or \expandafter \tabu@Xcoef
+   \or \expandafter \tabu@Xm@th
+   \or \tabu@Xcoef{}%
+   \else\expandafter \tabu@Xparse
+   \fi
+}% \tabu@Xtest
+\def\tabu@Xalign #1#2{%
+    \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu}
+       {Duplicate horizontal alignment specification}\fi
+    \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax
+    \else       \def\tabu@Xlcr{#2}\let#2\relax\fi
+    \expandafter\tabu@Xparse
+}% \tabu@Xalign
+\def\tabu@Xtype #1{%
+    \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu}
+            {Duplicate vertical alignment specification}\fi
+    \def\tabu@rewritten{#1}\expandafter\tabu@Xparse
+}% \tabu@Xtype
+\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}%
+    \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi
+}% \tabu@Xcoef
+\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@
+    \tabu@Xparse{}%
+}% \tabu@Xc@ef
+\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp}
+\def\tabu@Xd@sp{\let\tabu@Xmath=$%
+    \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}%
+            \expandafter\tabu@Xparse
+    \else   \expandafter\tabu@Xparse\expandafter{\expandafter}%
+    \fi
+}% \tabu@Xd@sp
+\def\tabu@Xrewritten {%
+   \ifx  \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi
+   \ifdim \tabucolX<\z@         \tabu@negcoeftrue
+   \else\ifdim \tabucolX=\z@    \tabucolX \p@
+   \fi\fi
+   \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}%
+   \edef\tabu@Xcoefs{\tabu@Xcoefs    \tabu@      \tabu@temp}%
+   \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{%
+        >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}%
+                    \tabu@rewritten {\tabu@hsize \tabu@temp}%
+        <{##2\ifx$\tabu@Xmath$\fi}}%
+   }\tabu@rewritten
+}% \tabu@Xrewritten
+\def\tabu@hsize #1#2{%
+    \ifdim #2\p@<\z@
+        \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else
+        \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi
+        \fi
+   \else #2\tabucolX
+   \fi
+}% \tabu@hsize
+%% \usetabu  and  \preamble: rewriting process ---------------------
+\tabu@privatecolumntype \usetabu [1]{%
+    \ifx\\#1\\\tabu@saveerr{}\else
+        \@ifundefined{tabu@saved@\string#1}
+            {\tabu@saveerr{#1}}
+            {\let\tabu@rewriteX \tabu@rewriteXrestore
+             \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}%
+    \fi
+}% \NC@rewrite@\usetabu
+\tabu@privatecolumntype \preamble [1]{%
+    \ifx\\#1\\\tabu@saveerr{}\else
+        \@ifundefined{tabu@saved@\string#1}
+            {\tabu@saveerr{#1}}
+            {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}%
+    \fi
+}% \NC@rewrite@\preamble
+%% Controlling the rewriting process -------------------------------
+\tabu@newcolumntype \tabu@rewritefirst{%
+    \iftabu@long    \aftergroup \tabu@longpream  % <the whole implementation is here !>
+    \else           \aftergroup \tabu@pream
+    \fi
+    \let\tabu@          \relax      \let\tabu@hsize     \relax
+    \let\tabu@Xcoefs    \@empty     \let\tabu@savels    \relax
+    \tabu@Xcol          \z@         \tabu@cnt           \tw@
+    \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse
+    \global\setbox\@arstrutbox \box\@arstrutbox
+    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+    \NC@list\expandafter{\the\NC@list \NC@do X}%
+    \iftabu@siunitx     % <siunitx S and s columns>
+            \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi
+    \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}%
+    \expandafter\def\expandafter\tabu@NC@list\expandafter{%
+                    \the\expandafter\NC@list \tabu@NC@list}%    % * | X S <original>
+    \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu
+                         \expandafter \NC@do \expandafter\preamble
+                         \the\NC@list \NC@do \tabu@rewritemiddle
+                                      \NC@do \tabu@rewritelast}%
+    \tabu@savedecl
+    \tabu@privatecolumns
+    \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle
+}% NC@rewrite@\tabu@rewritefirst
+\tabu@newcolumntype \tabu@rewritemiddle{%
+    \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast
+}% \NC@rewrite@\tabu@rewritemiddle
+\tabu@newcolumntype \tabu@rewritelast{%
+    \ifx \tabu@temp\tabu@prev   \advance\tabu@cnt \m@ne
+            \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle
+                                               \NC@do \tabu@rewritelast}%
+    \else \let\tabu@prev\tabu@temp
+    \fi
+    \ifcase \tabu@cnt   \expandafter\tabu@endrewrite
+    \else               \expandafter\NC@find \expandafter\tabu@rewritemiddle
+    \fi
+}% \NC@rewrite@\tabu@rewritelast
+%% Choosing the strategy --------------------------------------------
+\def\tabu@endrewrite {%
+    \let\tabu@temp \NC@find
+    \ifx \@arrayright\relax \let\@arrayright \@empty  \fi
+    \count@=%
+        \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print
+             \iftabu@measuring
+                \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+                    \tabu@target        \csname tabu@\the\tabu@nested.T\endcsname
+                    \tabucolX           \csname tabu@\the\tabu@nested.X\endcsname
+                    \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}%
+             \fi
+        \else\iftabu@measuring        4       % X columns
+                \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer
+                    \tabu@target        \the\tabu@target
+                    \tabu@spreadtarget  \the\tabu@spreadtarget}%
+                    \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}%
+                    \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}%
+                 \let\tabu@Xcoefs \relax
+             \else\ifcase\tabu@nested \thr@@  % outer, no X
+                                      \global\let\tabu@afterendpar \relax
+                  \else               \@ne    % inner, no X, outer in mode 1 or 2
+                  \fi
+                  \ifdefined\tabu@usetabu
+                  \else \ifdim\tabu@target=\z@
+                  \else \let\tabu@temp \tabu@extracolsep
+                  \fi\fi
+             \fi
+        \fi
+    \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}%
+    \tabu@temp
+}% \tabu@endrewrite
+\def\tabu@extracolsep{\@defaultunits    \expandafter\let
+    \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil
+    \ifx \tabu@temp\@sptoken
+        \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep
+    \else
+        \edef\tabu@temp{\noexpand\NC@find
+            \if |\noexpand\tabu@temp        @%
+            \else\if !\noexpand\tabu@temp   @%
+            \else                           !%
+            \fi\fi
+            {\noexpand\extracolsep\noexpand\@flushglue}}%
+    \fi
+    \tabu@temp
+}% \tabu@extrac@lsep
+%% Implementing the strategy ----------------------------------------
+\long\def\tabu@pream #1\@preamble {%
+    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
+    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
+    \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi
+    \let\tabu@savedpreamble \@preamble
+    \global\let\tabu@elapsedtime \relax
+    \tabu@thebody ={#1\tabu@aftergroupcleanup}%
+    \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody
+                                                \@preamble}%
+    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+    \tabu@select
+}% \tabu@pream
+\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{%
+    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
+    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
+    \let\tabu@savedpreamble \@preamble
+    \global\let\tabu@elapsedtime \relax
+    \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}%
+    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+    \tabu@select
+}% \tabu@longpream
+\def\tabu@select {%
+    \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi
+    \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi
+    \ifcase \count@
+        \global\let\tabu@elapsedtime \relax
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble       % vertical adjustment (inherited from outer)
+    \or      % exit in vertical measure + struts per cell because no X and outer in mode 3
+        \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+        \def\tabu@cellralign{\tabu@verticalspacing}%
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble
+    \or                            % exit without measure because no X and outer in mode 4
+        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble
+    \else                                   % needs trials
+        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+        \tabu@savecounters
+        \expandafter \tabu@setstrategy
+    \fi
+}% \tabu@select
+\def\tabu@@ {\gdef\tabu@mkpreambuffer}
+%% Protections to set up before trials ------------------------------
+\def\tabu@setstrategy {\begingroup  % <trials group>
+    \tabu@trialh@@k    \tabu@cnt    \z@  % number of trials
+    \hbadness          \@M          \let\hbadness          \@tempcnta
+    \hfuzz             \maxdimen    \let\hfuzz             \@tempdima
+    \let\write         \tabu@nowrite\let\GenericError      \tabu@GenericError
+    \let\savetabu      \@gobble     \let\tabudefaulttarget \linewidth
+    \let\@footnotetext \@gobble     \let\@xfootnote        \tabu@xfootnote
+    \let\color         \tabu@nocolor\let\rowcolor          \tabu@norowcolor
+    \let\tabu@aftergroupcleanup \relax % only after the last trial
+    \tabu@mkpreambuffer
+    \ifnum \count@>\thr@@ \let\@halignto \@empty  \tabucolX@init
+                          \def\tabu@lasttry{\m@ne\p@}\fi
+    \begingroup \iffalse{\fi \ifnum0=`}\fi
+        \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi %
+                                  \tabu@collectbody \tabu@strategy %
+}% \tabu@setstrategy
+\def\tabu@savecounters{%
+    \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}%
+    \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax
+}% \tabu@savecounters
+\def\tabucolX@init {%  \tabucolX <= \tabu@target / (sum coefs > 0)
+    \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs
+    \ifdim \dimen@>\z@
+        \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax
+        \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+    \fi
+}% \tabucolX@init
+\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum
+    \ifdim #2\p@>\z@ #2\p@  \advance\dimen@ #2\p@
+    \else           -#2\p@  \tabu@negcoeftrue
+                            \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax
+                            \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+                            \tabu@wddef{#1}{0pt}%
+    \fi
+}% \tabu@Xinit
+%% Collecting the environment body ----------------------------------
+\long\def\tabu@collectbody #1#2\end #3{%
+    \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
+    \ifx \tabu@stack\@empty
+        \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
+                \def\tabu@end@envir{\end{#3}}%
+                \iftabuscantokens
+                    \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}%
+                    \else        \def\tabu@endenvir {\let\endarray \@empty
+                                                     \end{#3}\tabu@gobbleX}%
+                    \fi
+                \else           \def\tabu@endenvir  {\end{#3}}\fi}%
+        \let\tabu@collectbody \tabu@endofcollect
+    \else\def\tabu@temp{#3}%
+        \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }%
+        \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}%
+        \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}%
+        \else \toks@\expandafter{\the\toks@ #2\end{#3}}%
+        \fi\fi\fi
+    \fi
+    \tabu@collectbody{#1}%
+}% \tabu@collectbody
+\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}%
+\def\tabu@endofcollect #1{\ifnum0=`{}\fi
+                          \expandafter\endgroup \the\toks@  #1%
+}% \tabu@endofcollect
+%% The trials: switching between strategies -------------------------
+\def\tabu@strategy {\relax  % stops \count@ assignment !
+    \ifcase\count@          % case 0 = print with vertical adjustment (outer is finished)
+        \expandafter \tabu@endoftrials
+    \or                     % case 1 = exit in vertical measure (outer in mode 3)
+        \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}%
+        \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}%
+        \expandafter \tabu@endoftrials
+    \or                     % case 2 = exit with a rule replacing the table (outer in mode 4)
+        \expandafter \tabu@quickend
+    \or                     % case 3 = outer is in mode 3 because of no X
+        \begingroup
+            \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+            \def\tabu@cellralign{\tabu@verticalspacing}%
+            \expandafter \tabu@measuring
+    \else                   % case 4 = horizontal measure
+        \begingroup
+            \global\let\tabu@elapsedtime \tabu@message@etime
+            \long\def\multicolumn##1##2##3{\multispan{##1}}%
+            \let\tabu@startpboxORI \@startpbox
+            \iftabu@spread
+                    \def\tabu@naturalXmax {\z@}%
+                    \let\tabu@naturalXmin \tabu@naturalXmax
+                    \tabu@evr{\global\tabu@naturalX \z@}%
+                    \let\@startpbox \tabu@startpboxmeasure
+            \else\iftabu@negcoef
+                    \let\@startpbox \tabu@startpboxmeasure
+            \else   \let\@startpbox \tabu@startpboxquick
+            \fi\fi
+            \expandafter \tabu@measuring
+    \fi
+}% \tabu@strategy
+\def\tabu@measuring{\expandafter \tabu@trial \expandafter
+                                                \count@ \the\count@ \tabu@endtrial
+}% \tabu@measuring
+\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi}
+\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+    \ifx \tabu@savecounters\relax \else
+                \let\tabu@savecounters \relax \tabu@clckpt \fi
+    $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+       \expandafter{\expandafter \tabuthepreamble
+                         \the\tabu@thebody
+                         \csname tabu@adl@endtrial\endcsname
+                         \endarray}$\egroup             % got \tabu@box
+}% \tabu@shorttrial
+\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+    \ifx \tabu@savecounters\relax \else
+                \let\tabu@savecounters \relax \tabu@clckpt \fi
+    \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+       \expandafter{\expandafter \tabuthepreamble
+                         \the\tabu@thebody
+                         \tabuendlongtrial}\egroup      % got \tabu@box
+}% \tabu@longtrial
+\def\tabuendlongtrial{% no @ allowed for \scantokens
+    \LT@echunk  \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne
+                \LT@get@widths
+}% \tabuendlongtrial
+\def\tabu@adl@endtrial{% <arydshln in nested trials - problem for global column counters!>
+    \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails !
+\def\tabu@seteverycr {\tabu@reset
+    \everycr \expandafter{\the\everycr  \tabu@everycr}%
+    \let\everycr \tabu@noeverycr                      % <for ialign>
+}% \tabu@seteverycr
+\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@}
+\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr}
+\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi}
+\def\tabu@endoftrials {%
+    \iftabuscantokens   \expandafter\@firstoftwo
+    \else               \expandafter\@secondoftwo
+    \fi
+        {\expandafter \tabu@closetrialsgroup \expandafter
+         \tabu@rescan \expandafter{%
+                    \expandafter\tabuthepreamble
+                        \the\expandafter\tabu@thebody
+                                    \iftabu@long \else \endarray \fi}}
+        {\expandafter\tabu@closetrialsgroup \expandafter
+                    \tabuthepreamble
+                        \the\tabu@thebody}%
+                                        \tabu@endenvir      % Finish !
+}% \tabu@endoftrials
+\def\tabu@closetrialsgroup {%
+    \toks@\expandafter{\tabu@endenvir}%
+    \edef\tabu@bufferX{\endgroup
+        \tabucolX       \the\tabucolX
+        \tabu@target    \the\tabu@target
+        \tabu@cnt       \the\tabu@cnt
+        \def\noexpand\tabu@endenvir{\the\toks@}%
+        %Quid de \@halignto = \tabu@halignto ??
+    }% \tabu@bufferX
+    \tabu@bufferX
+    \ifcase\tabu@nested % print out (outer in mode 0)
+        \global\tabu@cnt \tabu@cnt
+        \tabu@evr{\tabu@verticaldynamicadjustment}%
+        \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty
+        \let\@finalstrut \tabu@finalstrut
+    \else               % vertical measure of nested tabu
+        \tabu@evr{\tabu@verticalinit}%
+        \tabu@celllalign@def{\tabu@verticalmeasure}%
+        \def\tabu@cellralign{\tabu@verticalspacing}%
+    \fi
+    \tabu@clckpt \let\@halignto \tabu@halignto
+    \let\@halignto \@empty
+    \tabu@seteverycr
+    \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@
+        \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts)
+    \fi\fi
+}% \tabu@closetrialsgroup
+\def\tabu@quickend {\expandafter \endgroup \expandafter
+                        \tabu@target \the\tabu@target \tabu@quickrule
+                        \let\endarray \relax \tabu@endenvir
+}% \tabu@quickend
+\def\tabu@endtrial {\relax      % stops \count@ assignment !
+    \ifcase \count@ \tabu@err   % case 0 = impossible here
+    \or             \tabu@err   % case 1 = impossible here
+    \or             \tabu@err   % case 2 = impossible here
+    \or                         % case 3 = outer goes into mode 0
+        \def\tabu@bufferX{\endgroup}\count@ \z@
+    \else                       % case 4 = outer goes into mode 3
+        \iftabu@spread  \tabu@spreadarith % inner into mode 1 (outer in mode 3)
+        \else           \tabu@arith       %              or 2 (outer in mode 4)
+        \fi
+        \count@=%
+            \ifcase\tabu@nested     \thr@@  % outer goes into mode 3
+            \else\iftabu@measuring  \tw@    % outer is in mode 4
+            \else                   \@ne    % outer is in mode 3
+            \fi\fi
+        \edef\tabu@bufferX{\endgroup
+                           \tabucolX        \the\tabucolX
+                           \tabu@target     \the\tabu@target}%
+    \fi
+    \expandafter \tabu@bufferX \expandafter
+                                    \count@ \the\count@  \tabu@strategy
+}% \tabu@endtrial
+\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}}
+%% The algorithms: compute the widths / stop or go on ---------------
+\def\tabu@arithnegcoef {%
+    \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs
+}% \tabu@arithnegcoef
+\def\tabu@arith@negcoef #1#2{%
+    \ifdim #2\p@>\z@    \advance\dimen@     #2\p@       % saturated by definition
+                        \advance\@tempdima  #2\tabucolX
+    \else
+        \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated
+                        \advance\dimen@     -#2\p@
+                        \advance\@tempdima  -#2\tabucolX
+        \else
+                        \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised
+                        \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised
+                        \advance\dimen@     -#2\p@ % saturated (natural width = tabu@target)
+                        \fi
+        \fi
+    \fi
+}% \tabu@arith@negcoef
+\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
+    \ifdim \@tempdima=\z@
+        \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}%
+    \else
+        \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2}
+                    *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}%
+    \fi
+}% \tabu@givespace
+\def\tabu@arith {\advance\tabu@cnt \@ne
+    \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi
+    \tabu@arithnegcoef
+    \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % <incompressible material>
+    \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax
+    \tabu@message{\tabu@message@arith}%
+    \ifdim \tabu@DELTA <\tabu@hfuzz
+        \ifdim \tabu@DELTA<\z@          % wd (tabu)<\tabu@target ?
+            \let\tabu@ \tabu@givespace \tabu@Xcoefs
+            \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message
+        \else   % already converged: nothing to do but nearly impossible...
+        \fi
+        \tabucolX \maxdimen
+        \tabu@measuringfalse
+    \else                               % need for narrower X columns
+        \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax
+        \tabu@measuringtrue
+        \@whilesw \iftabu@measuring\fi {%
+            \advance\tabu@cnt \@ne
+            \tabu@arithnegcoef
+            \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here
+            \tabu@message{\tabu@header
+                \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+                \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@
+                \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+                \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+                \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else
+                \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@
+                \fi}%
+            \ifdim -\tabu@DELTA<\tabu@hfuzz
+                \advance\@tempdima \@tempdimb % for message
+                \tabu@measuringfalse
+            \else
+                \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax
+            \fi
+        }%
+    \fi
+    \tabu@message{\tabu@message@reached}%
+    \edef\tabu@bufferX{\endgroup \tabu@cnt    \the\tabu@cnt
+                                 \tabucolX    \the\tabucolX
+                                 \tabu@target \the\tabu@target}%
+}% \tabu@arith
+\def\tabu@spreadarith {%
+    \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs
+    \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}%
+    \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax
+    \iftabu@measuring
+        \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+        \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}%
+    \else
+        \tabu@message{\tabu@message@spreadarith}%
+        \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target
+            \tabu@message{(tabu) spread
+                \ifdim \@tempdimc>\tabu@target useless here: default target used%
+                \else too large: reduced to fit default target\fi.}%
+        \else
+            \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+            \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}%
+        \fi
+        \begingroup \let\tabu@wddef \@gobbletwo
+            \@tempdimb \@tempdima
+            \tabucolX@init
+            \tabu@arithnegcoef
+            \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax
+        \expandafter\endgroup \expandafter\tabucolX \the\tabucolX
+        \tabu@arith
+    \fi
+}% \tabu@spreadarith
+\def\tabu@spread@arith #1#2{%
+    \ifdim #2\p@>\z@ \advance\dimen@ #2\p@
+    \else            \advance\@tempdima \tabu@wd{#1}\relax
+    \fi
+}% \tabu@spread@arith
+%% Reporting in the .log file ---------------------------------------
+\def\tabu@message@defaulttarget{%
+    \ifnum\tabu@nested=\z@^^J(tabu) Default target:
+    \ifx\tabudefaulttarget\linewidth    \string\linewidth
+        \ifdim \tabu@thetarget=\linewidth \else
+            -\the\dimexpr\linewidth-\tabu@thetarget\fi  =
+    \else\ifx\tabudefaulttarget\linegoal\string\linegoal=
+    \fi\fi
+    \else (tabu) Default target (nested): \fi
+    \the\tabu@target \on@line
+    \ifnum\tabu@nested=\z@ , page \the\c@page\fi}
+\def\tabu@message@target {^^J(tabu) Target specified:
+   \the\tabu@target \on@line, page \the\c@page}
+\def\tabu@message@arith {\tabu@header
+    \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+    \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@
+    \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+    \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+    \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else
+    \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@
+    \fi
+}% \tabu@message@arith
+\def\tabu@message@spreadarith {\tabu@spreadheader
+   \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@
+   \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@
+   \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@
+   \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@
+   \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target
+                  \else  \@tempdimc+\tabu@spreadtarget \fi
+                  {}{}{}{}{}\@@}
+\def\tabu@message@negcoef #1#2{
+    \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]:
+    \space width = \tabu@wd {#1}
+        \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname
+    \ifdim -\tabu@pt#2\tabucolX<\tabu@target
+    < \number-\rem@pt#2 X
+    = \the\dimexpr -\tabu@pt#2\tabucolX \relax
+    \else
+    <= \the\tabu@target\space < \number-\rem@pt#2 X\fi}
+\def\tabu@message@reached{\tabu@header
+     ******* Reached Target:
+            hfuzz = \tabu@hfuzz\on@line\space *******}
+\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}%
+    \tabu@message{(tabu)\tabu@spaces Time elapsed during measure:
+    \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec
+    \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime)
+    -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax
+    *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space
+                                        cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}}
+\def\tabu@message@verticalsp {%
+    \ifdim \@tempdima>\tabu@ht
+        \ifdim \@tempdimb>\tabu@dp
+        \expandafter\expandafter\expandafter\string\tabu@ht =
+            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@
+        \expandafter\expandafter\expandafter\string\tabu@dp =
+            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J%
+        \else
+        \expandafter\expandafter\expandafter\string\tabu@ht =
+            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J%
+        \fi
+    \else\ifdim \@tempdimb>\tabu@dp
+        \tabu@spaces\tabu@spaces\tabu@spaces
+        \expandafter\expandafter\expandafter\string\tabu@dp =
+            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi
+    \fi
+}% \tabu@message@verticalsp
+\edef\tabu@spaces{\@spaces}
+\def\tabu@strippt{\expandafter\tabu@pt\the}
+{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}}
+\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr}
+\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt}
+\def\do #1{%
+    \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{%
+    \ifnum##1<10 #1 #1\else
+    \ifnum##1<100 #1 \else
+    \ifnum##1<\@m #1\fi\fi\fi
+    ##1.##2##3##4##5##6##7##8#1}%
+    \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }%
+    \def\tabu@titles{\ifnum \tabu@nested=\z@
+      (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target
+                  #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}%
+    \def\tabu@spreadheader{%
+      (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.
+                                                      #1 New Target^^J%
+      (tabu) sprd}
+    \def\tabu@message@save {\begingroup
+        \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@}
+        \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt
+                                                     \dimexpr####1\p@{ }{ }}}%
+        \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}%
+        \let\CT@arc@ \relax \let\@preamble \@gobble
+        \let\tabu@savedpream  \@firstofone
+        \let\tabu@savedparams \@firstofone
+        \def\tabu@target ####1\relax   {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}%
+        \def\tabucolX ####1\relax      {(tabu) X columns width#1 = \x{####1}^^J}%
+        \def\tabu@nbcols ####1\relax   {(tabu) Number of columns: \z{####1}^^J}%
+        \def\tabu@aligndefault    ####1{(tabu) Default alignment: #1 #1 ####1^^J}%
+        \def\col@sep ####1\relax       {(tabu) column sep #1 #1 #1 = \x{####1}^^J}%
+        \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}%
+        \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}%
+        \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}%
+        \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}%
+        \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}%
+        \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }%
+        \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}%
+        \def\arraystretch         ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}%
+        \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}%
+        \def\tabu@arc@L           ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%
+        \def\tabu@drsc@L          ####1{(tabu) tabudoublerulecolor=  ####1^^J}%
+        \def\tabu@evr@L           ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}%
+        \def\tabu@ls@L            ####1{(tabu) line style = \detokenize{####1}^^J}%
+        \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}%
+        \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}%
+        \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo
+        \tabu@message{%
+         (tabu) \string\savetabu{\tabu@temp}: \on@line^^J%
+         \tabu@usetabu \@nil^^J}%
+        \endgroup}
+}\do{ }
+%% Measuring the natural width (varwidth) - store the results -------
+\def\tabu@startpboxmeasure #1{\bgroup   % entering \vtop
+    \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}%
+    \ifodd 1\ifx \tabu@temp\@empty 0 \else      % starts with \tabu@hsize ?
+            \iftabu@spread           \else      % if spread -> measure
+            \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure
+        \let\@startpbox \tabu@startpboxORI      % restore immediately (nesting)
+        \tabu@measuringtrue                     % for the quick option...
+        \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi
+        \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target
+                                        \tabu@target=\tabu@temp\tabucolX \fi\fi
+        \setbox\tabu@box  \hbox \bgroup
+            \begin{varwidth}\tabu@target
+                \let\FV@ListProcessLine \tabu@FV@ListProcessLine  % \hbox to natural width...
+                \narrowragged \arraybackslash \parfillskip \@flushglue
+                \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi
+                \bgroup \aftergroup\tabu@endpboxmeasure
+                \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi
+    \else \expandafter\@gobble
+                            \tabu@startpboxquick{#1}% \@gobble \bgroup
+    \fi
+}% \tabu@startpboxmeasure
+\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty
+                                          \bgroup\color@begingroup}
+\def\tabu@endpboxmeasure {%
+    \@finalstrut \@arstrutbox
+                    \end{varwidth}\egroup    % <got my \tabu@box>
+    \ifdim \tabu@temp\p@ <\z@   % neg coef
+        \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box
+            \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}%
+            \tabu@debug{\tabu@message@endpboxmeasure}%
+        \fi
+    \else                       % spread coef>0
+        \global\advance \tabu@naturalX \wd\tabu@box
+        \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax
+        \ifdim \tabu@naturalXmax <\tabu@naturalX
+            \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi
+        \ifdim \tabu@naturalXmin <\@tempdima
+            \xdef\tabu@naturalXmin {\the\@tempdima}\fi
+    \fi
+   \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target
+}% \tabu@endpboxmeasure
+\def\tabu@wddef #1{\expandafter\xdef
+                   \csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@wd    #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd
+    \the\tabu@Xcol. X[\tabu@temp]:
+    target = \the\tabucolX \space
+    \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol
+    =\tabu@wd\tabu@Xcol
+}% \tabu@message@endpboxmeasure
+\def\tabu@startpboxquick {\bgroup
+    \let\@startpbox \tabu@startpboxORI  % restore immediately
+    \let\tabu \tabu@quick               % \begin is expanded before...
+    \expandafter\@gobble \@startpbox    % gobbles \bgroup
+}% \tabu@startpboxquick
+\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
+    \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
+}% \tabu@quick
+\def\tabu@endquick {%
+    \ifodd 1\ifx\tabu@end@envir\tabu@endtabu  \else
+            \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
+            \endgroup
+    \else   \let\endtabu \relax
+            \tabu@end@envir
+    \fi
+}% \tabu@quick
+\def\tabu@endtabu   {\end{tabu}}
+\def\tabu@endtabus  {\end{tabu*}}
+%% Measuring the heights and depths - store the results -------------
+\def\tabu@verticalmeasure{\everypar{}%
+    \ifnum \currentgrouptype>12         % 14=semi-simple, 15=math shift group
+        \setbox\tabu@box =\hbox\bgroup
+            \let\tabu@verticalspacing \tabu@verticalsp@lcr
+            \d@llarbegin                % after \hbox ...
+    \else
+        \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop
+                        \else\ifnum\currentgrouptype=12\vcenter
+                        \else\vbox\fi\fi}%
+        \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
+            \let\tabu@verticalspacing \tabu@verticalsp@pmb
+    \fi
+}% \tabu@verticalmeasure
+\def\tabu@verticalsp@lcr{%
+    \d@llarend \egroup       % <got my \tabu@box>
+    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
+    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
+    \noindent\vrule height\@tempdima depth\@tempdimb
+}% \tabu@verticalsp@lcr
+\def\tabu@verticalsp@pmb{% inserts struts as needed
+    \par \expandafter\egroup
+            \expandafter$\expandafter
+                    \egroup \expandafter
+                            \@tempdimc \the\prevdepth
+    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
+    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
+    \let\@finalstrut \@gobble
+    \hrule height\@tempdima depth\@tempdimb width\hsize
+%%    \box\tabu@box
+}% \tabu@verticalsp@pmb
+
+\def\tabu@verticalinit{%
+    \ifnum \c@taburow=\z@ \tabu@rearstrut \fi       % after \tabu@reset !
+    \advance\c@taburow \@ne
+    \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}%
+    \advance\c@taburow \m@ne
+}% \tabu@verticalinit
+\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@ht                      {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@dp                      {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@verticaldynamicadjustment {%
+    \advance\c@taburow \@ne
+        \extrarowheight \dimexpr\tabu@ht - \ht\strutbox
+        \extrarowdepth  \dimexpr\tabu@dp - \dp\strutbox
+        \let\arraystretch \@empty
+    \advance\c@taburow \m@ne
+}% \tabu@verticaldynamicadjustment
+\def\tabuphantomline{\crcr \noalign{%
+    {\globaldefs \@ne
+        \setbox\@arstrutbox     \box\voidb@x
+        \let\tabu@@celllalign   \tabu@celllalign
+        \let\tabu@@cellralign   \tabu@cellralign
+        \let\tabu@@cellleft     \tabu@cellleft
+        \let\tabu@@cellright    \tabu@cellright
+        \let\tabu@@thevline     \tabu@thevline
+        \let\tabu@celllalign    \@empty
+        \let\tabu@cellralign    \@empty
+        \let\tabu@cellright     \@empty
+        \let\tabu@cellleft      \@empty
+        \let\tabu@thevline      \relax}%
+    \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}%
+    \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr
+        \noalign{\tabu@rearstrut
+            {\globaldefs\@ne
+                \let\tabu@celllalign \tabu@@celllalign
+                \let\tabu@cellralign \tabu@@cellralign
+                \let\tabu@cellleft   \tabu@@cellleft
+                \let\tabu@cellright  \tabu@@cellright
+                \let\tabu@thevline   \tabu@@thevline}}}%
+    \expandafter}\the\toks@
+}% \tabuphantomline
+%% \firsthline and \lasthline corrections ---------------------------
+\def\tabu@firstline {\tabu@hlineAZ  \tabu@firsthlinecorrection     {}}
+\def\tabu@firsthline{\tabu@hlineAZ  \tabu@firsthlinecorrection \hline}
+\def\tabu@lastline  {\tabu@hlineAZ  \tabu@lasthlinecorrection      {}}
+\def\tabu@lasthline {\tabu@hlineAZ  \tabu@lasthlinecorrection  \hline}
+\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument)
+    \noalign{\ifnum0=`}\fi
+    {\CT@arc@\hrule height\arrayrulewidth}%
+    \futurelet \tabu@temp \tabu@xhline
+}% \tabu@hline
+\def\tabu@xhline{%
+    \ifx \tabu@temp \hline
+        {\ifx \CT@drsc@\relax \vskip
+         \else\ifx \CT@drsc@\@empty \vskip
+         \else \CT@drsc@\hrule height
+         \fi\fi
+         \doublerulesep}%
+    \fi
+    \ifnum0=`{\fi}%
+}% \tabu@xhline
+\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@
+    \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}%
+    \tabu@hlineAZsurround
+}% \tabu@hlineAZ
+\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{%
+    \extratabsurround #1\let\tabucline \tabucline@scan
+    \let\hline     \tabu@hlinescan \let\firsthline \hline
+    \let\cline     \tabu@clinescan \let\lasthline  \hline
+    \expandafter \futurelet \expandafter \tabu@temp
+                \expandafter \tabu@nexthlineAZ \tabu@temp
+}% \tabu@hlineAZsurround
+\def\tabu@hlinescan   {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline}
+\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}}
+\def\tabucline@scan{\@testopt \tabucline@sc@n {}}
+\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}}
+\def\tabu@nexthlineAZ{%
+    \ifx \tabu@temp\hline \else
+    \ifx \tabu@temp\cline \else
+    \ifx \tabu@temp\tabucline \else
+         \tabu@hlinecorrection
+    \fi\fi\fi
+}% \tabu@nexthlineAZ
+\def\tabu@xhlineAZ #1{%
+    \toks@\expandafter{\the\toks@ #1}%
+    \@tempdimc \tabu@thick                  % The last line width
+    \ifcase\count@ \@tempdimb \tabu@thick   % The first line width
+    \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax
+    \fi
+    \advance\count@ \@ne    \futurelet \tabu@temp \tabu@nexthlineAZ
+}% \tabu@xhlineAZ
+\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1
+    \@tempdima \dimexpr \ht\@arstrutbox+\dimen@
+    \edef\firsthline{%      <local in \noalign>
+        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+                    height \the\dimexpr\@tempdima+\extratabsurround
+                    depth  \dp\@arstrutbox
+                    width  \tabustrutrule}\hss}\cr
+        \noalign{\vskip -\the\dimexpr   \@tempdima+\@tempdimb
+                                        +\dp\@arstrutbox \relax}%
+        \the\toks@
+   }\ifnum0=`{\fi
+            \expandafter}\firsthline % we are then !
+}% \tabu@firsthlinecorrection
+\def\tabu@lasthlinecorrection{%
+    \@tempdima \dimexpr  \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc
+    \edef\lasthline{%   <local in \noalign>
+        \the\toks@
+        \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}%
+        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+                    depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@
+                                       +\extratabsurround-\@tempdimc
+                    height \z@
+                    width \tabustrutrule}\hss}\cr
+    }\ifnum0=`{\fi
+            \expandafter}\lasthline % we are then !
+}% \tabu@lasthlinecorrection
+\def\tabu@LT@@hline{%
+    \ifx\LT@next\hline
+        \global\let\LT@next \@gobble
+        \ifx \CT@drsc@\relax
+            \gdef\CT@LT@sep{%
+                \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
+        \else
+            \gdef\CT@LT@sep{%
+                \multispan\LT@cols{%
+                \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
+        \fi
+    \else
+        \global\let\LT@next\empty
+        \gdef\CT@LT@sep{%
+            \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
+    \fi
+    \ifnum0=`{\fi}%
+    \multispan\LT@cols
+        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+    \CT@LT@sep
+    \multispan\LT@cols
+        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+    \noalign{\penalty\@M}%
+    \LT@next
+}% \tabu@LT@@hline
+%% Horizontal lines : \tabucline ------------------------------------
+\let\tabu@start \@tempcnta
+\let\tabu@stop  \@tempcntb
+\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline}
+\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}%
+   \ifnum \tabu@stop<\z@   \toks@{}%
+   \else \tabu@clinearg{#1}\tabu@thestyle
+        \edef\tabucline{\toks@{%
+            \ifnum \tabu@start>\z@ \omit
+                  \tabu@multispan\tabu@start {\span\omit}&\fi
+            \omit \tabu@multispan\tabu@stop {\span\omit}%
+                                        \tabu@thehline\cr
+        }}\tabucline
+        \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}%
+    \fi
+    \futurelet \tabu@temp \tabu@xcline
+}% \tabu@cline
+\def\tabu@clinearg #1{%
+    \ifx\\#1\\\let\tabu@thestyle \tabu@ls@
+    \else \@defaultunits \expandafter\let\expandafter\@tempa
+                                    \romannumeral-`\0#1\relax \@nnil
+        \ifx \hbox\@tempa           \tabu@clinebox{#1}%
+        \else\ifx \box\@tempa       \tabu@clinebox{#1}%
+        \else\ifx \vbox\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \vtop\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \copy\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \leaders\@tempa   \tabu@clineleads{#1}%
+        \else\ifx \cleaders\@tempa  \tabu@clineleads{#1}%
+        \else\ifx \xleaders\@tempa  \tabu@clineleads{#1}%
+        \else\tabu@getline {#1}%
+        \fi\fi\fi\fi\fi\fi\fi\fi
+    \fi
+}% \tabu@clinearg
+\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}}
+\def\tabu@clineleads #1{%
+    \let\tabu@thestyle \relax \let\tabu@leaders \@undefined
+    \gdef\tabu@thehrule{#1}}
+\def\tabu@thehline{\begingroup
+    \ifdefined\tabu@leaders
+            \noexpand\tabu@thehleaders
+    \else   \noexpand\tabu@thehrule
+    \fi            \endgroup
+}% \tabu@thehline
+\def\tabu@xcline{%
+    \ifx \tabu@temp\tabucline
+        \toks@\expandafter{\the\toks@ \noalign
+        {\ifx\CT@drsc@\relax \vskip
+         \else \CT@drsc@\hrule height
+         \fi
+         \doublerulesep}}%
+    \fi
+    \tabu@docline
+}% \tabu@xcline
+\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@}
+\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}%
+              \ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
+\def\tabu@multispan #1#2{%
+    \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan
+    \else                   \expandafter\@gobbletwo
+    \fi  {#1-1}{#2}%
+}% \tabu@multispan
+\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
+\def\tabu@start@stop #1-#2\@nnil{%
+   \@defaultunits   \tabu@start\number 0#1\relax    \@nnil
+   \@defaultunits   \tabu@stop \number 0#2\relax    \@nnil
+   \tabu@stop   \ifnum \tabu@start>\tabu@nbcols     \m@ne
+                \else\ifnum \tabu@stop=\z@          \tabu@nbcols
+                \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols
+                \else                               \tabu@stop
+                \fi\fi\fi
+   \advance\tabu@start \m@ne
+   \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi
+}% \tabu@start@stop
+%% Numbers: siunitx S columns  (and \tabudecimal) -------------------
+\def\tabu@tabudecimal #1{%
+    \def\tabu@decimal{#1}\@temptokena{}%
+    \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces
+    \tabu@scandecimal
+}% \tabu@tabudecimal
+\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@}
+\def\tabu@skipdecimal#1{#1\tabu@scandecimal}
+\def\tabu@getdecimal@ignorespaces{%
+    \ifcase 0\ifx\tabu@temp\ignorespaces\else
+             \ifx\tabu@temp\@sptoken1\else
+             2\fi\fi\relax
+            \let\tabu@getdecimal@ \tabu@getdecimal
+            \expandafter\tabu@skipdecimal
+    \or     \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal
+    \else   \expandafter\tabu@skipdecimal
+    \fi
+}% \tabu@getdecimal@ignorespaces
+\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}%
+                        \tabu@scandecimal}
+\def\do#1{%
+    \def\tabu@get@decimalspace#1{%
+        \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}%
+}\do{ }
+\let\tabu@@tabudecimal \tabu@tabudecimal
+\def\tabu@getdecimal{%
+   \ifcase    0\ifx 0\tabu@temp\else
+               \ifx 1\tabu@temp\else
+               \ifx 2\tabu@temp\else
+               \ifx 3\tabu@temp\else
+               \ifx 4\tabu@temp\else
+               \ifx 5\tabu@temp\else
+               \ifx 6\tabu@temp\else
+               \ifx 7\tabu@temp\else
+               \ifx 8\tabu@temp\else
+               \ifx 9\tabu@temp\else
+               \ifx .\tabu@temp\else
+               \ifx ,\tabu@temp\else
+               \ifx -\tabu@temp\else
+               \ifx +\tabu@temp\else
+               \ifx e\tabu@temp\else
+               \ifx E\tabu@temp\else
+               \ifx\tabu@cellleft\tabu@temp1\else
+               \ifx\ignorespaces\tabu@temp1\else
+               \ifx\@sptoken\tabu@temp2\else
+            3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+       \expandafter\tabu@get@decimal
+   \or \expandafter\tabu@skipdecimal
+   \or \expandafter\tabu@get@decimalspace
+   \else\expandafter\tabu@printdecimal
+   \fi
+}% \tabu@getdecimal
+\def\tabu@printdecimal{%
+    \edef\tabu@temp{\the\@temptokena}%
+    \ifx\tabu@temp\@empty\else
+    \ifx\tabu@temp\space\else
+        \expandafter\tabu@decimal\expandafter{\the\@temptokena}%
+    \fi\fi
+}% \tabu@printdecimal
+%% Verbatim inside X columns ----------------------------------------
+\def\tabu@verbatim{%
+    \let\verb \tabu@verb
+    \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd
+}% \tabu@verbatim
+\let\tabu@ltx@verb \verb
+\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb}
+\def\tabu@fancyvrb {%
+    \def\tabu@FV@DefineCheckEnd ##1{%
+        \def\tabu@FV@DefineCheckEnd{%
+            ##1% <original definition (if fancyvrb is loaded)>
+            \let\FV@CheckEnd     \tabu@FV@CheckEnd
+            \let\FV@@CheckEnd    \tabu@FV@@CheckEnd
+            \let\FV@@@CheckEnd   \tabu@FV@@@CheckEnd
+            \edef\FV@EndScanning{%
+            \def\noexpand\next{\noexpand\end{\FV@EnvironName}}%
+                \global\let\noexpand\FV@EnvironName\relax
+                \noexpand\next}%
+            \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}%
+    }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd}
+}% \tabu@fancyvrb
+\def\tabu@FV@CheckEnd  #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil}
+\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}}
+\begingroup
+\catcode`\[1      \catcode`\]2
+\@makeother\{     \@makeother\}
+   \edef\x[\endgroup
+      \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3%
+   ]\x               \@nil{\def\@tempa{#2}\def\@tempb{#3}}
+\def\tabu@FV@ListProcessLine #1{%
+  \hbox {%to \hsize{%
+    \kern\leftmargin
+    \hbox {%to \linewidth{%
+      \FV@LeftListNumber
+      \FV@LeftListFrame
+      \FancyVerbFormatLine{#1}\hss
+%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
+%%      \FV@RightListFrame}%
+      \FV@RightListFrame
+      \FV@RightListNumber}%
+%% DG/SR modification end
+    \hss}}
+%% \savetabu --------------------------------------------------------
+\newcommand*\savetabu[1]{\noalign{%
+    \tabu@sanitizearg{#1}\tabu@temp
+    \ifx \tabu@temp\@empty  \tabu@savewarn{}{The tabu will not be saved}\else
+        \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}%
+        \ifdefined\tabu@restored \expandafter\let
+            \csname tabu@saved@\tabu@temp \endcsname \tabu@restored
+        \else {\tabu@save}%
+        \fi
+    \fi}%
+}% \savetabu
+\def\tabu@save {%
+    \toks0\expandafter{\tabu@saved@}%
+    \iftabu@negcoef
+        \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}%
+        \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi
+    \toks1\expandafter{\tabu@savedpream}%
+    \toks2\expandafter{\tabu@savedpreamble}%
+    \let\@preamble \relax
+    \let\tabu@savedpream \relax \let\tabu@savedparams \relax
+    \edef\tabu@preamble{%
+        \def\noexpand\tabu@aligndefault{\tabu@align}%
+        \def\tabu@savedparams {\noexpand\the\toks0}%
+        \def\tabu@savedpream  {\noexpand\the\toks1}}%
+    \edef\tabu@usetabu{%
+        \def\@preamble {\noexpand\the\toks2}%
+        \tabu@target \the\tabu@target \relax
+        \tabucolX    \the\tabucolX    \relax
+        \tabu@nbcols \the\tabu@nbcols \relax
+        \def\noexpand\tabu@aligndefault{\tabu@align}%
+        \def\tabu@savedparams {\noexpand\the\toks0}%
+        \def\tabu@savedpream  {\noexpand\the\toks1}}%
+    \let\tabu@aligndefault \relax \let\@sharp \relax
+    \edef\@tempa{\noexpand\tabu@s@ved
+                          {\tabu@usetabu}
+                         {\tabu@preamble}
+                            {\the\toks1}}\@tempa
+    \tabu@message@save
+}% \tabu@save
+\long\def\tabu@s@ved #1#2#3{%
+    \def\tabu@usetabu{#1}% <for \tabu@message@save>
+    \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{%
+        \ifodd ##1%     \usetabu
+            \tabu@measuringfalse \tabu@spreadfalse  % Just in case...
+            \gdef\tabu@usetabu {%
+                \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi
+                \global\let\tabu@usetabu \@undefined
+                \def\@halignto {to\tabu@target}%
+                #1%
+                \ifx \tabu@align\tabu@aligndefault@text
+                \ifnum \tabu@nested=\z@
+                       \let\tabu@align \tabu@aligndefault \fi\fi}%
+        \else     %     \preamble
+            \gdef\tabu@preamble {%
+                \global\let\tabu@preamble \@undefined
+                #2%
+                \ifx \tabu@align\tabu@aligndefault@text
+                \ifnum \tabu@nested=\z@
+                       \let\tabu@align \tabu@aligndefault \fi\fi}%
+        \fi
+        #3}%
+}% \tabu@s@ved
+\def\tabu@aligndefault@text {\tabu@aligndefault}%
+\def\tabu@warn@usetabu {\PackageWarning{tabu}
+    {Specifying a target with \string\usetabu\space is useless
+    \MessageBreak The target cannot be changed!}}
+\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi}
+\def\tabu@savewarn#1#2{\PackageInfo{tabu}
+    {User-name `#1' already used for \string\savetabu
+    \MessageBreak #2}}%
+\def\tabu@saveerr#1{\PackageError{tabu}
+    {User-name `#1' is unknown for \string\usetabu
+    \MessageBreak I cannot restore an unknown preamble!}\@ehd}
+%% \rowfont ---------------------------------------------------------
+\newskip \tabu@cellskip
+\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi
+                    {\ifnum0=`}\fi    \tabu@row@font}
+\newcommand*\tabu@row@font[2][]{%
+    \ifnum7=\currentgrouptype
+        \global\let\tabu@@cellleft    \tabu@cellleft
+        \global\let\tabu@@cellright   \tabu@cellright
+        \global\let\tabu@@celllalign  \tabu@celllalign
+        \global\let\tabu@@cellralign  \tabu@cellralign
+        \global\let\tabu@@rowfontreset\tabu@rowfontreset
+    \fi
+    \global\let\tabu@rowfontreset \tabu@rowfont@reset
+    \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}%
+    \ifcsname tabu@cell@#1\endcsname       % row alignment
+            \csname tabu@cell@#1\endcsname \fi
+    \ifnum0=`{\fi}% end of group / noalign group
+}% \rowfont
+\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}%
+\def\tabu@rowfont@reset{%
+    \global\let\tabu@rowfontreset \tabu@@rowfontreset
+    \global\let\tabu@cellleft     \tabu@@cellleft
+    \global\let\tabu@cellright    \tabu@@cellright
+    \global\let\tabu@cellfont     \@empty
+    \global\let\tabu@celllalign   \tabu@@celllalign
+    \global\let\tabu@cellralign   \tabu@@cellralign
+}% \tabu@@rowfontreset
+\let\tabu@rowfontreset \@empty     % overwritten \AtBeginDocument if colortbl
+%% \tabu@prepnext@tok -----------------------------------------------
+\newif \iftabu@cellright
+\def\tabu@prepnext@tok{%
+    \ifnum \count@<\z@   % <first initialisation>
+            \@tempcnta  \@M   % <not initialized by array.sty>
+            \tabu@nbcols\z@
+            \let\tabu@fornoopORI \@fornoop
+            \tabu@cellrightfalse
+    \else
+        \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left
+                \advance \tabu@nbcols \@ne
+                \iftabu@cellright % before-previous token is right and is finished
+                    \tabu@cellrightfalse % <only once>
+                    \tabu@righttok
+                \fi
+                \tabu@lefttok
+        \or                     % (case 1) previous token is right
+                \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop
+        \else % special column: do not change the token
+                \iftabu@cellright    % before-previous token is right
+                    \tabu@cellrightfalse
+                    \tabu@righttok
+                \fi
+        \fi % \ifcase
+    \fi
+    \tabu@prepnext@tokORI
+}% \tabu@prepnext@tok
+\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@}
+\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{%
+    \ifx \in@#2\else
+        \let\@fornoop \tabu@fornoopORI
+        \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}%
+        \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}%
+        \expandafter\prepnext@tok
+    \fi
+}% \tabu@lastnoop
+\def\tabu@righttok{%
+    \advance \count@ \m@ne
+    \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}%
+    \advance \count@ \@ne
+}% \tabu@righttok
+\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign
+                                    \the\toks\count@ \tabu@cellleft}% after because of $
+}% \tabu@lefttok
+%% Neutralisation of glues ------------------------------------------
+\let\tabu@cellleft   \@empty
+\let\tabu@cellright  \@empty
+\tabu@celllalign@def{\tabu@cellleft}%
+\let\tabu@cellralign \@empty
+\def\tabu@cell@align #1#2#3{%
+    \let\tabu@maybesiunitx \toks@ \tabu@celllalign
+    \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}%
+    \toks@\expandafter{\tabu@cellralign #2}%
+    \xdef\tabu@cellralign{\the\toks@}%
+    \toks@\expandafter{\tabu@cellleft #3}%
+    \xdef\tabu@cellleft{\the\toks@}%
+}% \tabu@cell@align
+\def\tabu@cell@l{% force alignment to left
+   \tabu@cell@align
+      {\tabu@removehfil \raggedright \tabu@cellleft}% left
+      {\tabu@flush1\tabu@ignorehfil}%                 right
+      \raggedright
+}% \tabu@cell@l
+\def\tabu@cell@c{% force alignment to center
+   \tabu@cell@align
+      {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft}
+      {\tabu@flush{.5}\tabu@ignorehfil}
+      \centering
+}% \tabu@cell@c
+\def\tabu@cell@r{% force alignment to right
+   \tabu@cell@align
+      {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft}
+      \tabu@ignorehfil
+      \raggedleft
+}% \tabu@cell@r
+\def\tabu@cell@j{% force justification (for p, m, b columns)
+      \tabu@cell@align
+         {\tabu@justify\tabu@cellleft}
+         {}
+         \tabu@justify
+}% \tabu@cell@j
+\def\tabu@justify{%
+   \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip
+   \parfillskip\@flushglue
+}% \tabu@justify
+%% ragged2e settings
+\def\tabu@cell@L{% force alignment to left (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \RaggedRight \tabu@cellleft}
+      {\tabu@flush 1\tabu@ignorehfil}
+      \RaggedRight
+}% \tabu@cell@L
+\def\tabu@cell@C{% force alignment to center (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft}
+      {\tabu@flush{.5}\tabu@ignorehfil}
+      \Centering
+}% \tabu@cell@C
+\def\tabu@cell@R{% force alignment to right (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft}
+      \tabu@ignorehfil
+      \RaggedLeft
+}% \tabu@cell@R
+\def\tabu@cell@J{% force justification (ragged2e)
+   \tabu@cell@align
+      {\justifying \tabu@cellleft}
+      {}
+      \justifying
+}% \tabu@cell@J
+\def\tabu@flush#1{%
+    \iftabu@colortbl      % colortbl uses \hfill rather than \hfil
+        \hskip \ifnum13<\currentgrouptype \stretch{#1}%
+        \else  \ifdim#1pt<\p@ \tabu@cellskip
+        \else  \stretch{#1}
+        \fi\fi \relax
+    \else                % array.sty
+        \ifnum 13<\currentgrouptype
+                \hfil \hskip1sp \relax  \fi
+    \fi
+}% \tabu@flush
+\let\tabu@hfil  \hfil
+\let\tabu@hfill \hfill
+\let\tabu@hskip \hskip
+\def\tabu@removehfil{%
+    \iftabu@colortbl
+        \unkern \tabu@cellskip =\lastskip
+        \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip
+        \else \tabu@cellskip \z@skip
+        \fi
+    \else
+        \ifdim\lastskip=1sp\unskip\fi
+        \ifnum\gluestretchorder\lastskip =\@ne
+            \hfilneg % \hfilneg for array.sty but not for colortbl...
+        \fi
+    \fi
+}% \tabu@removehfil
+\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
+\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil
+   \def\hfil{\let\hfil \tabu@hfil}%   local to (alignment template) group
+}% \tabu@nohfil
+\def\tabu@colortblalignments {% if colortbl
+    \def\tabu@nohfil{%
+        \def\hfil  {\let\hfil \tabu@hfil}% local to (alignment template) group
+        \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff...
+        \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local
+}% \tabu@colortblalignments
+%% Taking care of footnotes and hyperfootnotes ----------------------
+\long\def\tabu@footnotetext #1{%
+   \edef\@tempa{\the\tabu@footnotes
+      \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}%
+   \global\tabu@footnotes\expandafter{\@tempa {#1}}}%
+\long\def\tabu@xfootnotetext [#1]#2{%
+   \global\tabu@footnotes\expandafter{\the\tabu@footnotes
+                               \footnotetext [{#1}]{#2}}}
+\let\tabu@xfootnote \@xfootnote
+\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }}
+\long\def\tabu@Hy@xfootnote [#1]{%
+   \begingroup
+      \value\@mpfn #1\relax
+      \protected@xdef \@thefnmark  {\thempfn}%
+   \endgroup
+   \@footnotemark \tabu@Hy@ftntxt {#1}%
+}% \tabu@Hy@xfootnote
+\long\def\tabu@Hy@ftntxt #1#2{%
+    \edef\@tempa{%
+        \the\tabu@footnotes
+        \begingroup
+            \value\@mpfn #1\relax
+            \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}%
+            \expandafter \noexpand \expandafter
+                \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}%
+    }%
+    \global\tabu@footnotes\expandafter{\@tempa {#2}%
+                                         \endgroup}%
+}% \tabu@Hy@ftntxt
+\long\def\tabu@Hy@footnotetext #1#2{%
+    \H@@footnotetext{%
+        \ifHy@nesting
+            \hyper@@anchor {#1}{#2}%
+        \else
+            \Hy@raisedlink{%
+                \hyper@@anchor {#1}{\relax}%
+            }%
+            \def\@currentHref {#1}%
+            \let\@currentlabelname \@empty
+            #2%
+        \fi
+    }%
+}% \tabu@Hy@footnotetext
+%% No need for \arraybackslash ! ------------------------------------
+\def\tabu@latextwoe {%
+\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@centering   \centering   \arraybackslash
+\tabu@temp \tabu@raggedleft  \raggedleft  \arraybackslash
+\tabu@temp \tabu@raggedright \raggedright \arraybackslash
+}% \tabu@latextwoe
+\def\tabu@raggedtwoe {%
+\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@Centering   \Centering   \arraybackslash
+\tabu@temp \tabu@RaggedLeft  \RaggedLeft  \arraybackslash
+\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash
+\tabu@temp \tabu@justifying  \justifying  \arraybackslash
+}% \tabu@raggedtwoe
+\def\tabu@normalcrbackslash{\let\\\@normalcr}
+\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{%
+                       \expandafter\tabu@normalcrbackslash \@trivlist}}
+%% Utilities: \fbox  \fcolorbox  and \tabudecimal -------------------
+\def\tabu@fbox      {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox}
+\def\tabu@beginfbox {\bgroup \kern\fboxsep
+                     \bgroup\aftergroup\tabu@endfbox}
+\def\tabu@endfbox   {\kern\fboxsep\egroup\egroup
+                     \@frameb@x\relax}
+\def\tabu@color@b@x #1#2{\leavevmode \bgroup
+    \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}%
+    \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox
+}% \tabu@color@b@x
+\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup
+       \aftergroup\tabu@endcolor@b@x \set@color}
+\def\tabu@endcolor@b@x {\kern\fboxsep \egroup
+    \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@
+    \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@
+    \tabu@docolor@b@x \egroup
+}% \tabu@endcolor@b@x
+%% Corrections (arydshln, delarray, colortbl) -----------------------
+\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray
+    \iftabu@colortbl
+        \ifdefined\adl@array  % <colortbl + arydshln>
+        \def\tabu@endarray{%
+            \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup %<original>
+            \@arrayright      % <FC>
+            \gdef\@preamble{}}% <FC>
+        \else                 % <colortbl / no arydshln>
+        \def\tabu@endarray{%
+            \crcr \egroup \egroup    %<original>
+            \@arrayright             % <FC>
+            \gdef\@preamble{}\CT@end}%
+        \fi
+    \else
+        \ifdefined\adl@array  % <arydshln / no colortbl>
+        \def\tabu@endarray{%
+            \adl@endarray \egroup \adl@arrayrestore \egroup %<original>
+            \@arrayright      % <FC>
+            \gdef\@preamble{}}% <FC>
+    \else                   % <no arydshln / no colotbl + \@arrayright missing>
+        \PackageWarning{tabu}
+        {\string\@arrayright\space is missing from the
+        \MessageBreak definition of \string\endarray.
+        \MessageBreak Compatibility with delarray.sty is broken.}%
+    \fi\fi
+}% \tabu@fix@arrayright
+\def\tabu@adl@xarraydashrule #1#2#3{%
+     \ifnum\@lastchclass=\adl@class@start\else
+     \ifnum\@lastchclass=\@ne\else
+     \ifnum\@lastchclass=5 \else % <FC> @-arg (class 5) and !-arg (class 1)
+             \adl@leftrulefalse \fi\fi           % must be treated the same
+     \fi
+     \ifadl@zwvrule\else \ifadl@inactive\else
+             \@addtopreamble{\vrule\@width\arrayrulewidth
+                     \@height\z@ \@depth\z@}\fi \fi
+     \ifadl@leftrule
+             \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
+                     {\number#1}#3}%
+     \else   \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
+                     {\number#2}#3}
+     \fi
+}% \tabu@adl@xarraydashrule
+\def\tabu@adl@act@endpbox {%
+    \unskip \ifhmode \nobreak \fi    \@finalstrut \@arstrutbox
+    \egroup \egroup
+    \adl@colhtdp \box\adl@box \hfil
+}% \tabu@adl@act@endpbox
+\def\tabu@adl@fix {%
+    \let\adl@xarraydashrule \tabu@adl@xarraydashrule % <fix> arydshln
+    \let\adl@act@endpbox    \tabu@adl@act@endpbox    % <fix> arydshln
+    \let\adl@act@@endpbox   \tabu@adl@act@endpbox    % <fix> arydshln
+    \let\@preamerror        \@preamerr               % <fix> arydshln
+}% \tabu@adl@fix
+%% Correction for longtable' \@startbox definition ------------------
+%%    => \everypar is ``missing'' : TeX should be in vertical mode
+\def\tabu@LT@startpbox #1{%
+    \bgroup
+        \let\@footnotetext\LT@p@ftntext
+        \setlength\hsize{#1}%
+        \@arrayparboxrestore
+        \everypar{%
+            \vrule \@height \ht\@arstrutbox \@width \z@
+            \everypar{}}%
+}% \tabu@LT@startpbox
+%% \tracingtabu  and  the package options ------------------
+\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}}
+\DeclareOption{linegoal}{%
+   \AtEndOfPackage{%
+      \RequirePackage{linegoal}[2010/12/07]%
+      \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX
+}}
+\DeclareOption{scantokens}{\tabuscantokenstrue}
+\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}}
+\def\tracingtabu {\begingroup\@ifnextchar=%
+    {\afterassignment\tabu@tracing\count@}
+    {\afterassignment\tabu@tracing\count@1\relax}}
+\def\tabu@tracing{\expandafter\endgroup
+    \expandafter\tabu@tr@cing \the\count@ \relax
+}% \tabu@tracing
+\def\tabu@tr@cing #1\relax {%
+    \ifnum#1>\thr@@ \let\tabu@tracinglines\message
+    \else           \let\tabu@tracinglines\@gobble
+    \fi
+    \ifnum#1>\tw@   \let\tabu@DBG        \tabu@@DBG
+                    \def\tabu@mkarstrut {\tabu@DBG@arstrut}%
+                    \tabustrutrule      1.5\p@
+    \else           \let\tabu@DBG        \@gobble
+                    \def\tabu@mkarstrut {\tabu@arstrut}%
+                    \tabustrutrule      \z@
+    \fi
+    \ifnum#1>\@ne   \let\tabu@debug      \message
+    \else           \let\tabu@debug      \@gobble
+    \fi
+    \ifnum#1>\z@
+        \let\tabu@message             \message
+        \let\tabu@tracing@save        \tabu@message@save
+        \let\tabu@starttimer          \tabu@pdftimer
+    \else
+        \let\tabu@message             \@gobble
+        \let\tabu@tracing@save        \@gobble
+        \let\tabu@starttimer          \relax
+    \fi
+}% \tabu@tr@cing
+%% Setup \AtBeginDocument
+\AtBeginDocument{\tabu@AtBeginDocument}
+\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined
+    \ifdefined\arrayrulecolor   \tabu@colortbltrue       % <colortbl>
+                                \tabu@colortblalignments % different glues are used
+    \else                       \tabu@colortblfalse \fi
+    \ifdefined\CT@arc@ \else \let\CT@arc@  \relax \fi
+    \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi
+    \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@
+    \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname   % <siunitx: ok>
+            \expandafter\ifx
+                \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax
+            \tabu@siunitxtrue
+    \else   \let\tabu@maybesiunitx   \@firstofone                % <not siunitx: setup>
+            \let\tabu@siunitx        \tabu@nosiunitx
+            \tabu@siunitxfalse
+    \fi
+    \ifdefined\adl@array        % <arydshln>
+    \else     \let\tabu@adl@fix \relax
+              \let\tabu@adl@endtrial \@empty \fi
+    \ifdefined\longtable        % <longtable>
+    \else     \let\longtabu \tabu@nolongtabu \fi
+    \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi
+    \csname\ifcsname ifHy@hyperfootnotes\endcsname % <hyperfootnotes>
+            ifHy@hyperfootnotes\else iffalse\fi\endcsname
+        \let\tabu@footnotetext \tabu@Hy@ftntext
+        \let\tabu@xfootnote    \tabu@Hy@xfootnote \fi
+    \ifdefined\FV@DefineCheckEnd% <fancyvrb>
+            \tabu@fancyvrb  \fi
+    \ifdefined\color            % <color / xcolor>
+        \let\tabu@color \color
+        \def\tabu@leavevmodecolor ##1{%
+            \def\tabu@leavevmodecolor {\leavevmode ##1}%
+        }\expandafter\tabu@leavevmodecolor\expandafter{\color}%
+    \else
+        \let\tabu@color           \tabu@nocolor
+        \let\tabu@leavevmodecolor \@firstofone \fi
+    \tabu@latextwoe
+    \ifdefined\@raggedtwoe@everyselectfont    % <ragged2e>
+        \tabu@raggedtwoe
+    \else
+        \let\tabu@cell@L \tabu@cell@l
+        \let\tabu@cell@R \tabu@cell@r
+        \let\tabu@cell@C \tabu@cell@c
+        \let\tabu@cell@J \tabu@cell@j   \fi
+    \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}%
+    \ifin@ \let\tabu@endarray \endarray
+    \else  \tabu@fix@arrayright \fi% <fix for colortbl & arydshln (delarray)>
+    \everyrow{}%
+}% \tabu@AtBeginDocument
+\def\tabu@warn@cellspace{%
+    \PackageWarning{tabu}{%
+                  Package cellspace has some limitations
+    \MessageBreak And redefines some macros of array.sty.
+    \MessageBreak Please use \string\tabulinesep\space to control
+    \MessageBreak vertical spacing of lines inside tabu environment}%
+}% \tabu@warn@cellspace
+%% tabu Package initialisation
+\tabuscantokensfalse
+\let\tabu@arc@G         \relax
+\let\tabu@drsc@G        \relax
+\let\tabu@evr@G         \@empty
+\let\tabu@rc@G          \@empty
+\def\tabu@ls@G          {\tabu@linestyle@}%
+\let\tabu@@rowfontreset \@empty % <init>
+\let\tabu@@celllalign   \@empty
+\let\tabu@@cellralign   \@empty
+\let\tabu@@cellleft     \@empty
+\let\tabu@@cellright    \@empty
+\def\tabu@naturalXmin   {\z@}
+\def\tabu@naturalXmax   {\z@}
+\let\tabu@rowfontreset  \@empty
+\def\tabulineon {4pt}\let\tabulineoff \tabulineon
+\tabu@everyrowtrue
+\ifdefined\pdfelapsedtime                   % <pdfTeX>
+        \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}%
+\else   \let\tabu@pdftimer \relax \let\tabu@message@etime \relax
+\fi
+\tracingtabu=\z@
+\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@
+\tabulinestyle{}
+\taburowcolors{}
+\let\tabudefaulttarget  \linewidth
+\ProcessOptions*                % \ProcessOptions* is quicker !
+\endinput
+%%
+%% End of file `tabu.sty'.
diff --git a/doc/man/man3/ClassCalledJanine.3 b/doc/man/man3/ClassCalledJanine.3
new file mode 100644
index 0000000..9e3635e
--- /dev/null
+++ b/doc/man/man3/ClassCalledJanine.3
@@ -0,0 +1,14 @@
+.TH "ClassCalledJanine" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+ClassCalledJanine
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/HashValueMD5Hash.3 b/doc/man/man3/HashValueMD5Hash.3
new file mode 100644
index 0000000..516c66c
--- /dev/null
+++ b/doc/man/man3/HashValueMD5Hash.3
@@ -0,0 +1,19 @@
+.TH "HashValueMD5Hash" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+HashValueMD5Hash
+.SH SYNOPSIS
+.br
+.PP
+.SS "Public Attributes"
+
+.in +1c
+.ti -1c
+.RI "char \fBvalue\fP [MD5_DIGEST_LENGTH]"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/NSString(RemoveEmoji).3 b/doc/man/man3/NSString(RemoveEmoji).3
new file mode 100644
index 0000000..243a267
--- /dev/null
+++ b/doc/man/man3/NSString(RemoveEmoji).3
@@ -0,0 +1,25 @@
+.TH "NSString(RemoveEmoji)" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+NSString(RemoveEmoji)
+.SH SYNOPSIS
+.br
+.PP
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(BOOL) \- \fBisIncludingEmoji\fP"
+.br
+.ti -1c
+.RI "(instancetype) \- \fBstringByRemovingEmoji\fP"
+.br
+.ti -1c
+.RI "((deprecated) \- \fB__attribute__\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/NSString(XcodeMemberTypeExtensions).3 b/doc/man/man3/NSString(XcodeMemberTypeExtensions).3
new file mode 100644
index 0000000..9bc3aa2
--- /dev/null
+++ b/doc/man/man3/NSString(XcodeMemberTypeExtensions).3
@@ -0,0 +1,65 @@
+.TH "NSString(XcodeMemberTypeExtensions)" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+NSString(XcodeMemberTypeExtensions)
+.SH SYNOPSIS
+.br
+.PP
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(XcodeMemberType) \- \fBxce_asMemberType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasFileReferenceType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasFileReferenceOrReferenceProxyType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasReferenceProxyType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasGroupType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasProjectType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasNativeTargetType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasBuildFileType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasBuildConfigurationType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasContainerItemProxyType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasResourcesBuildPhaseType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasShellScriptBuildPhase\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasSourcesOrFrameworksBuildPhaseType\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBxce_hasVersionedGroupType\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSString *) + \fBxce_stringFromMemberType:\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/NSString(XcodeSourceTreeTypeExtensions).3 b/doc/man/man3/NSString(XcodeSourceTreeTypeExtensions).3
new file mode 100644
index 0000000..9deb5e9
--- /dev/null
+++ b/doc/man/man3/NSString(XcodeSourceTreeTypeExtensions).3
@@ -0,0 +1,26 @@
+.TH "NSString(XcodeSourceTreeTypeExtensions)" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+NSString(XcodeSourceTreeTypeExtensions)
+.SH SYNOPSIS
+.br
+.PP
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(XcodeSourceTreeType) \- \fBxce_asSourceTreeType\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSString *) + \fBxce_stringFromSourceTreeType:\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCAbstractDefinition.3 b/doc/man/man3/XCAbstractDefinition.3
new file mode 100644
index 0000000..9c9ba4a
--- /dev/null
+++ b/doc/man/man3/XCAbstractDefinition.3
@@ -0,0 +1,35 @@
+.TH "XCAbstractDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCAbstractDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#import <XCAbstractDefinition\&.h>\fP
+.PP
+Inherits NSObject\&.
+.PP
+Inherited by \fBXCBuildShellScriptDefinition\fP, \fBXCClassDefinition\fP, \fBXCFrameworkDefinition\fP, \fBXCSourceFileDefinition\fP, \fBXCSubProjectDefinition\fP, and \fBXCXibDefinition\fP\&.
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "XCFileOperationType \fB_fileOperationType\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "XCFileOperationType \fBfileOperationType\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP 
+Holds properties to all types of resource that can be added to an Xcode project\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCBuildFile-p.3 b/doc/man/man3/XCBuildFile-p.3
new file mode 100644
index 0000000..746e6cb
--- /dev/null
+++ b/doc/man/man3/XCBuildFile-p.3
@@ -0,0 +1,42 @@
+.TH "<XCBuildFile>" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+<XCBuildFile>
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits <NSObject>\&.
+.PP
+Inherited by \fBXCGroup\fP, \fBXCSourceFile\fP, and \fBXCVersionGroup\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(void) \- \fBbecomeBuildFile\fP"
+.br
+.ti -1c
+.RI "(XcodeMemberType) \- \fBbuildPhase\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBbuildFileKey\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisBuildFile\fP"
+.br
+.in -1c
+.SH "Method Documentation"
+.PP 
+.SS "\- (void) becomeBuildFile "
+
+.PP
+Reimplemented in \fBXCSourceFile\fP\&.
+.SS "\- (BOOL) isBuildFile "
+
+.PP
+Reimplemented in \fBXCSourceFile\fP\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCBuildShellScript.3 b/doc/man/man3/XCBuildShellScript.3
new file mode 100644
index 0000000..8287cd0
--- /dev/null
+++ b/doc/man/man3/XCBuildShellScript.3
@@ -0,0 +1,63 @@
+.TH "XCBuildShellScript" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCBuildShellScript
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(instancetype _Nonnull) \- \fBinitWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCBuildShellScript\fP *_Nonnull) + \fBshellScriptWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "BOOL \fBrunOnlyForDeploymentPostprocessing\fP"
+.br
+.ti -1c
+.RI "NSString * \fBshellScript\fP"
+.br
+.ti -1c
+.RI "NSString * \fBshellPath\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBfiles\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBinputPaths\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBoutputPaths\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCBuildShellScriptDefinition.3 b/doc/man/man3/XCBuildShellScriptDefinition.3
new file mode 100644
index 0000000..d7b1763
--- /dev/null
+++ b/doc/man/man3/XCBuildShellScriptDefinition.3
@@ -0,0 +1,63 @@
+.TH "XCBuildShellScriptDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCBuildShellScriptDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(instancetype _Nonnull) \- \fBinitWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCBuildShellScriptDefinition\fP *_Nonnull) + \fBshellScriptDefinitionWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "BOOL \fBrunOnlyForDeploymentPostprocessing\fP"
+.br
+.ti -1c
+.RI "NSString * \fBshellScript\fP"
+.br
+.ti -1c
+.RI "NSString * \fBshellPath\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBfiles\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBinputPaths\fP"
+.br
+.ti -1c
+.RI "NSArray< NSString * > * \fBoutputPaths\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCBuildShellScriptDefinitionTests.3 b/doc/man/man3/XCBuildShellScriptDefinitionTests.3
new file mode 100644
index 0000000..5f60ebb
--- /dev/null
+++ b/doc/man/man3/XCBuildShellScriptDefinitionTests.3
@@ -0,0 +1,14 @@
+.TH "XCBuildShellScriptDefinitionTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCBuildShellScriptDefinitionTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCBuildShellScriptTests.3 b/doc/man/man3/XCBuildShellScriptTests.3
new file mode 100644
index 0000000..045f479
--- /dev/null
+++ b/doc/man/man3/XCBuildShellScriptTests.3
@@ -0,0 +1,14 @@
+.TH "XCBuildShellScriptTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCBuildShellScriptTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCClassDefinition.3 b/doc/man/man3/XCClassDefinition.3
new file mode 100644
index 0000000..6d18142
--- /dev/null
+++ b/doc/man/man3/XCClassDefinition.3
@@ -0,0 +1,81 @@
+.TH "XCClassDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCClassDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithName:\fP"
+.br
+.ti -1c
+.RI "(id) \- \fBinitWithName:language:\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisObjectiveC\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisObjectiveCPlusPlus\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisCPlusPlus\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBheaderFileName\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBsourceFileName\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCClassDefinition\fP *) + \fBclassDefinitionWithName:\fP"
+.br
+.ti -1c
+.RI "(\fBXCClassDefinition\fP *) + \fBclassDefinitionWithName:language:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_className\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_header\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_source\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBclassName\fP"
+.br
+.ti -1c
+.RI "NSString * \fBheader\fP"
+.br
+.ti -1c
+.RI "NSString * \fBsource\fP"
+.br
+.in -1c
+.SH "Method Documentation"
+.PP 
+.SS "\- (id) initWithName: (NSString*) fileName"
+Initializes a new objective-c class definition\&. 
+.SS "\- (id) \fBinitWithName:\fP (NSString*) className(ClassDefinitionLanguage) language"
+Initializes a new class definition with the specified language\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCClassDefinitionTests.3 b/doc/man/man3/XCClassDefinitionTests.3
new file mode 100644
index 0000000..c7f97f4
--- /dev/null
+++ b/doc/man/man3/XCClassDefinitionTests.3
@@ -0,0 +1,14 @@
+.TH "XCClassDefinitionTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCClassDefinitionTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCFileOperationQueue().3 b/doc/man/man3/XCFileOperationQueue().3
new file mode 100644
index 0000000..8d0e9d6
--- /dev/null
+++ b/doc/man/man3/XCFileOperationQueue().3
@@ -0,0 +1,31 @@
+.TH "XCFileOperationQueue()" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCFileOperationQueue()
+.SH SYNOPSIS
+.br
+.PP
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSString *) \- \fBdestinationPathFor:inProjectDirectory:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBperformFileWrites\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBperformCopyFrameworks\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBperformFileDeletions\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBperformCreateDirectories\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCFileOperationQueue.3 b/doc/man/man3/XCFileOperationQueue.3
new file mode 100644
index 0000000..54b2e89
--- /dev/null
+++ b/doc/man/man3/XCFileOperationQueue.3
@@ -0,0 +1,42 @@
+.TH "XCFileOperationQueue" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCFileOperationQueue
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithBaseDirectory:\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBfileWithName:existsInProjectDirectory:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBqueueTextFile:inDirectory:withContents:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBqueueDataFile:inDirectory:withContents:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBqueueFrameworkWithFilePath:inDirectory:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBqueueDeletion:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBqueueDirectory:inDirectory:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBcommitFileOperations\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCFrameworkDefinition.3 b/doc/man/man3/XCFrameworkDefinition.3
new file mode 100644
index 0000000..32894c7
--- /dev/null
+++ b/doc/man/man3/XCFrameworkDefinition.3
@@ -0,0 +1,63 @@
+.TH "XCFrameworkDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCFrameworkDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithFilePath:copyToDestination:\fP"
+.br
+.ti -1c
+.RI "(id) \- \fBinitWithFilePath:copyToDestination:sourceTree:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBfileName\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCFrameworkDefinition\fP *) + \fBframeworkDefinitionWithFilePath:copyToDestination:\fP"
+.br
+.ti -1c
+.RI "(\fBXCFrameworkDefinition\fP *) + \fBframeworkDefinitionWithFilePath:copyToDestination:sourceTree:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_filePath\fP"
+.br
+.ti -1c
+.RI "BOOL \fB_copyToDestination\fP"
+.br
+.ti -1c
+.RI "XcodeSourceTreeType \fB_sourceTree\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBfilePath\fP"
+.br
+.ti -1c
+.RI "BOOL \fBcopyToDestination\fP"
+.br
+.ti -1c
+.RI "XcodeSourceTreeType \fBsourceTree\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCFrameworkPath.3 b/doc/man/man3/XCFrameworkPath.3
new file mode 100644
index 0000000..823d96d
--- /dev/null
+++ b/doc/man/man3/XCFrameworkPath.3
@@ -0,0 +1,14 @@
+.TH "XCFrameworkPath" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCFrameworkPath
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCGroup.3 b/doc/man/man3/XCGroup.3
new file mode 100644
index 0000000..85d9b6e
--- /dev/null
+++ b/doc/man/man3/XCGroup.3
@@ -0,0 +1,223 @@
+.TH "XCGroup" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCGroup
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#import <XCGroup\&.h>\fP
+.PP
+Inherits NSObject, \fB<XcodeGroupMember>\fP, and \fB<XCBuildFile>\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithProject:key:alias:path:children:\fP"
+.br
+.ti -1c
+.RI "(id) \- \fBinitWithProject:key:alias:path:children:memberType:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromParentGroup\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromParentDeletingChildren:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBparentGroup\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisRootGroup\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisEmpty\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddClass:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddClass:toTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveClass:fromTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveHeader:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddFramework:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFramework:fromTargets:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBaddGroupWithPath:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBaddGroupWithAlias:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBaddGroupWithAlias:groupType:\fP"
+.br
+.ti -1c
+.RI "(\fBXCVersionGroup\fP *) \- \fBaddVersionGroupWithPath:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddFolderReference:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddFileReference:withType:\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) \- \fBaddFramework:toTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddSourceFile:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddXib:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddXib:toTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddSubProject:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddSubProject:toTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveSubProject:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveSubProject:fromTargets:\fP"
+.br
+.ti -1c
+.RI "(NSArray< id< \fBXcodeGroupMember\fP > > *) \- \fBmembers\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBrecursiveMembers\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBbuildFileKeys\fP"
+.br
+.ti -1c
+.RI "(id< \fBXcodeGroupMember\fP >) \- \fBmemberWithKey:\fP"
+.br
+.ti -1c
+.RI "(id< \fBXcodeGroupMember\fP >) \- \fBmemberWithDisplayName:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveMemberWithKey:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCGroup\fP *) + \fBgroupWithProject:key:alias:path:children:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) + \fBgroupWithProject:key:alias:path:children:memberType:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_pathRelativeToParent\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_alias\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBalias\fP"
+.br
+.ti -1c
+.RI "NSString * \fBpathRelativeToParent\fP"
+.br
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSMutableArray< id< \fBXcodeGroupMember\fP > > * \fBchildren\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP 
+Represents a _group container in an Xcode project\&. A group can contain members of type \fC\fBXCSourceFile\fP\fP or other groups\&. 
+.SH "Method Documentation"
+.PP 
+.SS "\- (void) addClass: (\fBXCClassDefinition\fP*) classDefinition"
+Adds a class to the _group, as specified by the ClassDefinition\&. If the _group already contains a class by the same name, the contents will be updated\&. 
+.SS "\- (void) \fBaddClass:\fP (\fBXCClassDefinition\fP *) classDefinition(NSArray< \fBXCTarget\fP * > *) targets"
+Adds a class to the _group, making it a member of the specified [targets](\fBXCTarget\fP)\&. 
+.SS "\- (void) addFolderReference: (NSString*) sourceFolder"
+Adds a reference to a folder 
+.SS "\- (void) addFramework: (\fBXCFrameworkDefinition\fP*) frameworkDefinition"
+Adds a framework to the _group\&. If the _group already contains the framework, the contents will be updated if the framework definition's copyToDestination flag is yes, otherwise it will be ignored\&. 
+.SS "\- (\fBXCSourceFile\fP *) \fBaddFramework:\fP (\fBXCFrameworkDefinition\fP *) framework(NSArray< \fBXCTarget\fP * > *) targets"
+Adds a framework to the _group, making it a member of the specified targets\&. 
+.SS "\- (\fBXCGroup\fP *) addGroupWithAlias: (NSString *) alias"
+Adds a _group with an alias to this _group\&. 
+.SS "\- (\fBXCGroup\fP *) \fBaddGroupWithAlias:\fP (NSString *) alias(XcodeMemberType) type"
+Adds a _group with an alias to this _group and a particular type (only PBXGroupType and PBXVariantGroupType are valid) 
+.SS "\- (\fBXCGroup\fP *) addGroupWithPath: (NSString*) path"
+Adds a _group with a path relative to this _group\&. 
+.SS "\- (void) addSourceFile: (\fBXCSourceFileDefinition\fP*) sourceFileDefinition"
+Adds a source file of arbitrary type - image resource, header, etc\&. 
+.SS "\- (void) addSubProject: (\fBXCSubProjectDefinition\fP*) projectDefinition"
+Adds a sub-project to the _group\&. If the _group already contains a sub-project by the same name, the contents will be updated\&. Returns boolean success/fail; if method fails, caller should assume that project file is corrupt (or file format has changed)\&. 
+.SS "\- (void) \fBaddSubProject:\fP (\fBXCSubProjectDefinition\fP *) projectDefinition(NSArray< \fBXCTarget\fP * > *) targets"
+Adds a sub-project to the _group, making it a member of the specified [targets](\fBXCTarget\fP)\&. 
+.SS "\- (\fBXCVersionGroup\fP *) addVersionGroupWithPath: (NSString*) path"
+Adds a version group with a path relative to this group\&. 
+.SS "\- (void) addXib: (\fBXCXibDefinition\fP*) xibDefinition"
+Adds a xib file to the _group\&. If the _group already contains a class by the same name, the contents will be updated\&. 
+.SS "\- (void) \fBaddXib:\fP (\fBXCXibDefinition\fP *) xibDefinition(NSArray< \fBXCTarget\fP * > *) targets"
+Adds a xib to the _group, making it a member of the specified [targets](\fBXCTarget\fP)\&. 
+.SS "\- (NSArray *) buildFileKeys "
+Keys of members from this group 
+.SS "\- (NSArray< id< \fBXcodeGroupMember\fP > > *) members "
+Instances of \fC\fBXCSourceFile\fP\fP and \fC\fBXCGroup\fP\fP returned as the type \fC\fBXcodeGroupMember\fP\fP\&. 
+.SS "\- (id< \fBXcodeGroupMember\fP >) memberWithDisplayName: (NSString*) name"
+Returns the child with the specified name, or nil\&. 
+.SS "\- (id< \fBXcodeGroupMember\fP >) memberWithKey: (NSString*) key"
+Returns the child with the specified key, or nil\&. 
+.SS "\- (NSArray *) recursiveMembers "
+Keys of members from this group and any child groups\&. 
+.SS "\- (void) removeClass: (\fBXCClassDefinition\fP*) classDefinition(NSArray*) targets"
+Removes a class from the _group 
+.SS "\- (void) removeFramework: (\fBXCFrameworkDefinition\fP *) frameworkDefinition(NSArray *) targets"
+Removes a framework from the _group 
+.SS "\- (void) removeHeader: (\fBXCClassDefinition\fP*) classDefinition"
+Removes a header from the _group 
+.SS "\- (void) removeMemberWithKey: (NSString*) key"
+Remove the member with the specified key 
+.SH "Property Documentation"
+.PP 
+.SS "\- (NSString*) alias\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The alias of the group, which can be used to give the group a name other than the last path component\&.
+.PP
+See: [\fBXcodeGroupMember\fP displayName] 
+.SS "\- (NSMutableArray<id<\fBXcodeGroupMember\fP> >*) children\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+An array containing the groups members as \fC\fBXcodeGroupMember\fP\fP types\&. 
+.SS "\- (NSString*) key\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The group's unique key\&. 
+.SS "\- (NSString*) pathRelativeToParent\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The path of the group relative to the group's parent\&.
+.PP
+See: [\fBXcodeGroupMember\fP displayName] 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCGroupTests.3 b/doc/man/man3/XCGroupTests.3
new file mode 100644
index 0000000..305666e
--- /dev/null
+++ b/doc/man/man3/XCGroupTests.3
@@ -0,0 +1,14 @@
+.TH "XCGroupTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCGroupTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCKeyBuilder.3 b/doc/man/man3/XCKeyBuilder.3
new file mode 100644
index 0000000..6e0d5e7
--- /dev/null
+++ b/doc/man/man3/XCKeyBuilder.3
@@ -0,0 +1,41 @@
+.TH "XCKeyBuilder" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCKeyBuilder
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitHashValueMD5HashWithBytes:length:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBbuild\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCKeyBuilder\fP *) + \fBforItemNamed:\fP"
+.br
+.ti -1c
+.RI "(\fBXCKeyBuilder\fP *) + \fBcreateUnique\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "unsigned char \fB_value\fP [HASH_VALUE_STORAGE_SIZE]"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCKeyBuilderTests.3 b/doc/man/man3/XCKeyBuilderTests.3
new file mode 100644
index 0000000..f7de049
--- /dev/null
+++ b/doc/man/man3/XCKeyBuilderTests.3
@@ -0,0 +1,14 @@
+.TH "XCKeyBuilderTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCKeyBuilderTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCProject(SubProject).3 b/doc/man/man3/XCProject(SubProject).3
new file mode 100644
index 0000000..62ce71d
--- /dev/null
+++ b/doc/man/man3/XCProject(SubProject).3
@@ -0,0 +1,49 @@
+.TH "XCProject(SubProject)" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCProject(SubProject)
+.SH SYNOPSIS
+.br
+.PP
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSString *) \- \fBreferenceProxyKeyForName:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBbuildProductsForTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddAsTargetDependency:toTargets:\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBkeysForProjectObjectsOfType:withIdentifier:singleton:required:\fP"
+.br
+.ti -1c
+.RI "(NSMutableDictionary *) \- \fBPBXProjectDict\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveProxies:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddProxies:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromProjectReferences:forProductsGroup:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveTargetDependencies:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBcontainerItemProxyKeyForName:proxyType:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBproductsGroupKeyForKey:\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCProject.3 b/doc/man/man3/XCProject.3
new file mode 100644
index 0000000..b4e30fb
--- /dev/null
+++ b/doc/man/man3/XCProject.3
@@ -0,0 +1,259 @@
+.TH "XCProject" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCProject
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithFilePath:\fP"
+.br
+.ti -1c
+.RI "(id< \fBXcodeGroupMember\fP >) \- \fBgroupMemberWithKey:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBfiles\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) \- \fBfileWithKey:\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) \- \fBfileWithName:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBheaderFiles\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBobjectiveCFiles\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBobjectiveCPlusPlusFiles\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBxibFiles\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBimagePNGFiles\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBfilePath\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCGroup\fP * > *) \- \fBgroups\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBrootGroup\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCGroup\fP * > *) \- \fBrootGroups\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBmainGroup\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBgroupWithKey:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBgroupWithDisplayName:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBgroupWithPathFromRoot:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBgroupForGroupMemberWithKey:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBgroupWithSourceFile:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBpruneEmptyGroups\fP"
+.br
+.ti -1c
+.RI "(NSArray *) \- \fBversionGroups\fP"
+.br
+.ti -1c
+.RI "(\fBXCVersionGroup\fP *) \- \fBversionGroupWithKey:\fP"
+.br
+.ti -1c
+.RI "(\fBXCVersionGroup\fP *) \- \fBversionGroupWithName:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCTarget\fP * > *) \- \fBtargets\fP"
+.br
+.ti -1c
+.RI "(\fBXCTarget\fP *) \- \fBtargetWithName:\fP"
+.br
+.ti -1c
+.RI "(NSArray *) \- \fBapplicationTargets\fP"
+.br
+.ti -1c
+.RI "(NSDictionary< NSString *, \fBXCProjectBuildConfig\fP * > *) \- \fBconfigurations\fP"
+.br
+.ti -1c
+.RI "(\fBXCProjectBuildConfig\fP *) \- \fBconfigurationWithName:\fP"
+.br
+.ti -1c
+.RI "(\fBXCProjectBuildConfig\fP *) \- \fBdefaultConfiguration\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveObjectWithKey:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBsave\fP"
+.br
+.ti -1c
+.RI "(NSMutableDictionary *) \- \fBobjects\fP"
+.br
+.ti -1c
+.RI "(NSMutableDictionary *) \- \fBdataStore\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBdropCache\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBreferenceProxyKeyForName:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBbuildProductsForTargets:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddAsTargetDependency:toTargets:\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBkeysForProjectObjectsOfType:withIdentifier:singleton:required:\fP"
+.br
+.ti -1c
+.RI "(NSMutableDictionary *) \- \fBPBXProjectDict\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveProxies:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddProxies:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromProjectReferences:forProductsGroup:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveTargetDependencies:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBcontainerItemProxyKeyForName:proxyType:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBproductsGroupKeyForKey:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCProject\fP *) + \fBprojectWithFilePath:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "\fBXCFileOperationQueue\fP * \fB_fileOperationQueue\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_filePath\fP"
+.br
+.ti -1c
+.RI "NSMutableDictionary * \fB_dataStore\fP"
+.br
+.ti -1c
+.RI "NSMutableArray * \fB_targets\fP"
+.br
+.ti -1c
+.RI "NSMutableDictionary * \fB_groups\fP"
+.br
+.ti -1c
+.RI "NSMutableDictionary * \fB_versionGroups\fP"
+.br
+.ti -1c
+.RI "NSMutableDictionary * \fB_configurations\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_defaultConfigurationName\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_rootObjectKey\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "\fBXCFileOperationQueue\fP * \fBfileOperationQueue\fP"
+.br
+.in -1c
+.SH "Method Documentation"
+.PP 
+.SS "\- (NSArray *) applicationTargets "
+Lists the targets which are of application type\&. 
+.SS "\- (NSDictionary *) configurations "
+Lists the configurations in an xcode project\&. 
+.SS "\- (\fBXCProjectBuildConfig\fP *) configurationWithName: (NSString*) name"
+Returns the configuration with the specified name, or nil\&. 
+.SS "\- (NSArray *) files "
+Returns all file resources in the project, as an array of \fC\fBXCSourceFile\fP\fP objects\&. 
+.SS "\- (\fBXCSourceFile\fP *) fileWithKey: (NSString*) key"
+Returns the project file with the specified key, or nil\&. 
+.SS "\- (\fBXCSourceFile\fP *) fileWithName: (NSString*) name"
+Returns the project file with the specified name, or nil\&. If more than one project file matches the specified name, which one is returned is undefined\&. 
+.SS "\- (\fBXCGroup\fP *) groupForGroupMemberWithKey: (NSString*) key"
+Returns the parent _group for the _group or file with the given key; 
+.SS "\- (NSArray *) groups "
+Lists the groups in an xcode project, returning an array of \fC\fBXCGroup\fP\fP objects\&. 
+.SS "\- (\fBXCGroup\fP *) groupWithDisplayName: (NSString*) name"
+Returns the \fIfirst\fP group in the project with the given name, or nil\&. 
+.SS "\- (\fBXCGroup\fP *) groupWithKey: (NSString*) key"
+Returns the group with the given key, or nil\&. 
+.SS "\- (\fBXCGroup\fP *) groupWithPathFromRoot: (NSString*) path"
+Returns the _group with the specified display name path - the directory relative to the root _group\&. Eg Source/Main 
+.SS "\- (\fBXCGroup\fP *) groupWithSourceFile: (\fBXCSourceFile\fP*) sourceFile"
+Returns the parent group for the group or file with the source file 
+.SS "\- (NSArray *) headerFiles "
+Returns all header files in the project, as an array of \fC\fBXCSourceFile\fP\fP objects\&. 
+.SS "\- (id) initWithFilePath: (NSString*) filePath"
+Creates a new project editor instance with the specified Project\&.xcodeproj file\&. 
+.SS "\- (\fBXCGroup\fP *) mainGroup "
+Returns the main group under root object 
+.SS "\- (NSArray *) objectiveCFiles "
+Returns all implementation obj-c implementation files in the project, as an array of \fC\fBXCSourceFile\fP\fP objects\&. 
+.SS "\- (NSArray *) objectiveCPlusPlusFiles "
+Returns all implementation obj-c++ implementation files in the project, as an array of \fC\fBXCSourceFile\fP\fP objects\&. 
+.SS "\- (NSMutableDictionary *) objects "
+Raw project data\&. 
+.SS "\- (void) pruneEmptyGroups "
+Removes all empty groups from the project\&. 
+.SS "\- (\fBXCGroup\fP *) rootGroup "
+Returns the root (top-level) _group\&. 
+.SS "\- (NSArray *) rootGroups "
+Returns the root (top-level) groups, if there are multiple\&. An array of rootGroup if there is only one\&. 
+.SS "\- (void) save "
+Saves a project after editing\&. 
+.SS "\- (NSArray *) targets "
+Lists the targets in an xcode project, returning an array of \fC\fBXCTarget\fP\fP objects\&. 
+.SS "\- (\fBXCTarget\fP *) targetWithName: (NSString*) name"
+Returns the target with the specified name, or nil\&. 
+.SS "\- (NSArray *) versionGroups "
+Lists the version groups in an xcode project, returning an array of \fC\fBXCVersionGroup\fP\fP objects\&. 
+.SS "\- (\fBXCVersionGroup\fP *) versionGroupWithKey: (NSString*) key"
+Returns the version group with the given key, or nil\&. 
+.SS "\- (\fBXCVersionGroup\fP *) versionGroupWithName: (NSString*) name"
+Returns the version group with the given file name, or nil\&. 
+.SS "\- (NSArray *) xibFiles "
+Returns all the xib files in the project, as an array of \fC\fBXCSourceFile\fP\fP objects\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCProjectBuildConfig.3 b/doc/man/man3/XCProjectBuildConfig.3
new file mode 100644
index 0000000..b78483f
--- /dev/null
+++ b/doc/man/man3/XCProjectBuildConfig.3
@@ -0,0 +1,53 @@
+.TH "XCProjectBuildConfig" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCProjectBuildConfig
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(instancetype) \- \fBinitWithProject:key:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddBuildSettings:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddOrReplaceSetting:forKey:\fP"
+.br
+.ti -1c
+.RI "(id< NSCopying >) \- \fBvalueForKey:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveSettingByKey:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSDictionary< NSString *, NSString * > *) + \fBbuildConfigurationsFromArray:inProject:\fP"
+.br
+.ti -1c
+.RI "(NSString *) + \fBduplicatedBuildConfigurationListWithKey:inProject:withBuildConfigurationVisitor:\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSDictionary * \fBspecifiedBuildSettings\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCProjectTests.3 b/doc/man/man3/XCProjectTests.3
new file mode 100644
index 0000000..7ee888d
--- /dev/null
+++ b/doc/man/man3/XCProjectTests.3
@@ -0,0 +1,14 @@
+.TH "XCProjectTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCProjectTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCSourceFile.3 b/doc/man/man3/XCSourceFile.3
new file mode 100644
index 0000000..8ef1198
--- /dev/null
+++ b/doc/man/man3/XCSourceFile.3
@@ -0,0 +1,107 @@
+.TH "XCSourceFile" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCSourceFile
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#import <XCSourceFile\&.h>\fP
+.PP
+Inherits NSObject, \fB<XcodeGroupMember>\fP, and \fB<XCBuildFile>\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithProject:key:type:name:sourceTree:path:\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisBuildFile\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBcanBecomeBuildFile\fP"
+.br
+.ti -1c
+.RI "(XcodeMemberType) \- \fBbuildPhase\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBbuildFileKey\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBbecomeBuildFile\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveBuildFile\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBsetCompilerFlags:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBsetWeakReference\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) + \fBsourceFileWithProject:key:type:name:sourceTree:path:\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "XcodeSourceFileType \fBtype\fP"
+.br
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "NSString * \fBsourceTree\fP"
+.br
+.ti -1c
+.RI "NSString * \fBpath\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP 
+Represents a file resource in an xcode project\&. 
+.SH "Method Documentation"
+.PP 
+.SS "\- (void) becomeBuildFile "
+Adds this file to the project as an \fCxcode_BuildFile\fP, ready to be included in targets\&. 
+.PP
+Reimplemented from \fB<XCBuildFile>\fP\&.
+.SS "\- (NSString *) buildFileKey "
+
+.PP
+Reimplemented from \fB<XCBuildFile>\fP\&.
+.SS "\- (XcodeMemberType) buildPhase "
+
+.PP
+Reimplemented from \fB<XCBuildFile>\fP\&.
+.SS "\- (BOOL) isBuildFile "
+If yes, indicates the file is able to be included for compilation in an \fC\fBXCTarget\fP\fP\&. 
+.PP
+Reimplemented from \fB<XCBuildFile>\fP\&.
+.SS "\- (void) removeBuildFile "
+Removes this file as an \fCxcode_BuildFile\fP from the project\&. 
+.SS "\- (void) setCompilerFlags: (NSString *) value"
+Method for setting Compiler Flags for individual build files
+.PP
+\fBParameters\fP
+.RS 4
+\fIvalue\fP String value to set in Compiler Flags 
+.RE
+.PP
+
+.SS "\- (void) setWeakReference "
+Method for setting the build file is a weak reference 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCSourceFileDefinition.3 b/doc/man/man3/XCSourceFileDefinition.3
new file mode 100644
index 0000000..c2343f2
--- /dev/null
+++ b/doc/man/man3/XCSourceFileDefinition.3
@@ -0,0 +1,63 @@
+.TH "XCSourceFileDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCSourceFileDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithName:text:type:\fP"
+.br
+.ti -1c
+.RI "(id) \- \fBinitWithName:data:type:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCSourceFileDefinition\fP *) + \fBsourceDefinitionWithName:text:type:\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFileDefinition\fP *) + \fBsourceDefinitionWithName:data:type:\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFileDefinition\fP *) + \fBsourceDefinitionWithAssetCatalogName:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_sourceFileName\fP"
+.br
+.ti -1c
+.RI "XcodeSourceFileType \fB_type\fP"
+.br
+.ti -1c
+.RI "NSData * \fB_data\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBsourceFileName\fP"
+.br
+.ti -1c
+.RI "NSData * \fBdata\fP"
+.br
+.ti -1c
+.RI "XcodeSourceFileType \fBtype\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCSubProjectDefinition().3 b/doc/man/man3/XCSubProjectDefinition().3
new file mode 100644
index 0000000..302ef3b
--- /dev/null
+++ b/doc/man/man3/XCSubProjectDefinition().3
@@ -0,0 +1,19 @@
+.TH "XCSubProjectDefinition()" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCSubProjectDefinition()
+.SH SYNOPSIS
+.br
+.PP
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBrelativePath\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCSubProjectDefinition.3 b/doc/man/man3/XCSubProjectDefinition.3
new file mode 100644
index 0000000..1aa62ae
--- /dev/null
+++ b/doc/man/man3/XCSubProjectDefinition.3
@@ -0,0 +1,99 @@
+.TH "XCSubProjectDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCSubProjectDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithName:path:parentProject:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBprojectFileName\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBfullPathName\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBbuildProductNames\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBprojectKey\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBpathRelativeToProjectRoot\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBinitFullProjectPath:groupPath:\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCSubProjectDefinition\fP *) + \fBwithName:path:parentProject:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_name\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_path\fP"
+.br
+.ti -1c
+.RI "XcodeSourceFileType \fB_type\fP"
+.br
+.ti -1c
+.RI "\fBXCProject\fP * \fB_subProject\fP"
+.br
+.ti -1c
+.RI "\fBXCProject\fP * \fB_parentProject\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_fullProjectPath\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_relativePath\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "NSString * \fBpath\fP"
+.br
+.ti -1c
+.RI "XcodeSourceFileType \fBtype\fP"
+.br
+.ti -1c
+.RI "\fBXCProject\fP * \fBsubProject\fP"
+.br
+.ti -1c
+.RI "\fBXCProject\fP * \fBparentProject\fP"
+.br
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSString * \fBfullProjectPath\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCSubProjectDefinitionTests.3 b/doc/man/man3/XCSubProjectDefinitionTests.3
new file mode 100644
index 0000000..627dc87
--- /dev/null
+++ b/doc/man/man3/XCSubProjectDefinitionTests.3
@@ -0,0 +1,14 @@
+.TH "XCSubProjectDefinitionTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCSubProjectDefinitionTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCTarget.3 b/doc/man/man3/XCTarget.3
new file mode 100644
index 0000000..be94cfc
--- /dev/null
+++ b/doc/man/man3/XCTarget.3
@@ -0,0 +1,125 @@
+.TH "XCTarget" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCTarget
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#import <XCTarget\&.h>\fP
+.PP
+Inherits NSObject\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithProject:key:name:productName:productReference:productType:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBresources\fP"
+.br
+.ti -1c
+.RI "(NSArray< id< \fBXCBuildFile\fP > > *) \- \fBmembers\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCBuildShellScript\fP * > *) \- \fBbuildShellScripts\fP"
+.br
+.ti -1c
+.RI "(NSDictionary< NSString *, \fBXCProjectBuildConfig\fP * > *) \- \fBconfigurations\fP"
+.br
+.ti -1c
+.RI "(\fBXCProjectBuildConfig\fP *) \- \fBconfigurationWithName:\fP"
+.br
+.ti -1c
+.RI "(\fBXCProjectBuildConfig\fP *) \- \fBdefaultConfiguration\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddMember:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBmakeAndAddShellScript:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveShellScriptByName:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveMemberWithKey:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveMembersWithKeys:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveResourceWithKey:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveResourcesWithKeys:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddDependency:\fP"
+.br
+.ti -1c
+.RI "(instancetype) \- \fBduplicateWithTargetName:productName:\fP"
+.br
+.ti -1c
+.RI "(BOOL) \- \fBisApplicationType\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCTarget\fP *) + \fBtargetWithProject:key:name:productName:productReference:productType:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "\fBXCProject\fP * \fB_project\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_name\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_productName\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_productReference\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_productType\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_defaultConfigurationName\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "NSString * \fBproductName\fP"
+.br
+.ti -1c
+.RI "NSString * \fBproductReference\fP"
+.br
+.ti -1c
+.RI "NSString * \fBproductType\fP"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP 
+Represents a target in an xcode project\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCTargetTests.3 b/doc/man/man3/XCTargetTests.3
new file mode 100644
index 0000000..a61909f
--- /dev/null
+++ b/doc/man/man3/XCTargetTests.3
@@ -0,0 +1,14 @@
+.TH "XCTargetTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCTargetTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCVersionGroup.3 b/doc/man/man3/XCVersionGroup.3
new file mode 100644
index 0000000..214a03e
--- /dev/null
+++ b/doc/man/man3/XCVersionGroup.3
@@ -0,0 +1,106 @@
+.TH "XCVersionGroup" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCVersionGroup
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits NSObject, \fB<XcodeGroupMember>\fP, and \fB<XCBuildFile>\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithProject:key:path:children:currentVersion:\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromParentGroup\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBremoveFromParentDeletingChildren:\fP"
+.br
+.ti -1c
+.RI "(\fBXCGroup\fP *) \- \fBparentGroup\fP"
+.br
+.ti -1c
+.RI "(void) \- \fBaddDataModelSource:\fP"
+.br
+.ti -1c
+.RI "(NSArray< \fBXCSourceFile\fP * > *) \- \fBmembers\fP"
+.br
+.ti -1c
+.RI "(NSArray< NSString * > *) \- \fBbuildFileKeys\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) \- \fBmemberWithKey:\fP"
+.br
+.ti -1c
+.RI "(\fBXCSourceFile\fP *) \- \fBmemberWithDisplayName:\fP"
+.br
+.ti -1c
+.RI "(NSDictionary *) \- \fBasDictionary\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCVersionGroup\fP *) + \fBversionGroupWithProject:key:path:children:currentVersion:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_pathRelativeToParent\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_key\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBalias\fP"
+.br
+.ti -1c
+.RI "NSString * \fBpathRelativeToParent\fP"
+.br
+.ti -1c
+.RI "NSString * \fBkey\fP"
+.br
+.ti -1c
+.RI "NSMutableArray * \fBversions\fP"
+.br
+.ti -1c
+.RI "NSString * \fBcurrentVersion\fP"
+.br
+.in -1c
+.SH "Method Documentation"
+.PP 
+.SS "\- (void) addDataModelSource: (\fBXCSourceFileDefinition\fP*) sourceFileDefinition"
+Adds a source file\&. The only valid file type is XCDataModel 
+.SS "\- (id< \fBXcodeGroupMember\fP >) memberWithDisplayName: (NSString*) name"
+Returns the child with the specified name, or nil\&. 
+.SS "\- (\fBXCSourceFile\fP *) memberWithKey: (NSString*) key"
+Returns the child with the specified key, or nil\&. 
+.SH "Property Documentation"
+.PP 
+.SS "\- (NSString*) alias\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The alias of the group, which can be used to give the group a name other than the last path component\&.
+.PP
+See: [\fBXcodeGroupMember\fP displayName] 
+.SS "\- (NSString*) key\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The group's unique key\&. 
+.SS "\- (NSString*) pathRelativeToParent\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+The path of the group relative to the group's parent\&.
+.PP
+See: [\fBXcodeGroupMember\fP displayName] 
+.SS "\- (NSMutableArray*) versions\fC [read]\fP, \fC [nonatomic]\fP, \fC [strong]\fP"
+An array containing the groups members as \fC\fBXcodeGroupMember\fP\fP types\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XCXibDefinition.3 b/doc/man/man3/XCXibDefinition.3
new file mode 100644
index 0000000..724da39
--- /dev/null
+++ b/doc/man/man3/XCXibDefinition.3
@@ -0,0 +1,57 @@
+.TH "XCXibDefinition" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XCXibDefinition
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits \fBXCAbstractDefinition\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(id) \- \fBinitWithName:\fP"
+.br
+.ti -1c
+.RI "(id) \- \fBinitWithName:content:\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBxibFileName\fP"
+.br
+.in -1c
+.SS "Class Methods"
+
+.in +1c
+.ti -1c
+.RI "(\fBXCXibDefinition\fP *) + \fBxibDefinitionWithName:\fP"
+.br
+.ti -1c
+.RI "(\fBXCXibDefinition\fP *) + \fBxibDefinitionWithName:content:\fP"
+.br
+.in -1c
+.SS "Protected Attributes"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fB_name\fP"
+.br
+.ti -1c
+.RI "NSString * \fB_content\fP"
+.br
+.in -1c
+.SS "Properties"
+
+.in +1c
+.ti -1c
+.RI "NSString * \fBname\fP"
+.br
+.ti -1c
+.RI "NSString * \fBcontent\fP"
+.br
+.in -1c
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XcodeFileReferenceTypeTests.3 b/doc/man/man3/XcodeFileReferenceTypeTests.3
new file mode 100644
index 0000000..7e36d8b
--- /dev/null
+++ b/doc/man/man3/XcodeFileReferenceTypeTests.3
@@ -0,0 +1,14 @@
+.TH "XcodeFileReferenceTypeTests" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+XcodeFileReferenceTypeTests
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits XCTestCase\&.
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/XcodeGroupMember-p.3 b/doc/man/man3/XcodeGroupMember-p.3
new file mode 100644
index 0000000..c4b457f
--- /dev/null
+++ b/doc/man/man3/XcodeGroupMember-p.3
@@ -0,0 +1,36 @@
+.TH "<XcodeGroupMember>" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+<XcodeGroupMember>
+.SH SYNOPSIS
+.br
+.PP
+.PP
+Inherits <NSObject>\&.
+.PP
+Inherited by \fBXCGroup\fP, \fBXCSourceFile\fP, and \fBXCVersionGroup\fP\&.
+.SS "Instance Methods"
+
+.in +1c
+.ti -1c
+.RI "(NSString *) \- \fBkey\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBdisplayName\fP"
+.br
+.ti -1c
+.RI "(NSString *) \- \fBpathRelativeToProjectRoot\fP"
+.br
+.ti -1c
+.RI "(XcodeMemberType) \- \fBgroupMemberType\fP"
+.br
+.in -1c
+.SH "Method Documentation"
+.PP 
+.SS "\- (XcodeMemberType) groupMemberType "
+Group members can either be other groups (PBXGroup) or source files (PBXFileReference)\&. 
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for XcodeEditor-master from the source code\&.
diff --git a/doc/man/man3/md__r_e_a_d_m_e.3 b/doc/man/man3/md__r_e_a_d_m_e.3
new file mode 100644
index 0000000..a9c73fb
--- /dev/null
+++ b/doc/man/man3/md__r_e_a_d_m_e.3
@@ -0,0 +1,254 @@
+.TH "md__r_e_a_d_m_e" 3 "Fri Mar 4 2022" "Version 1.1" "XcodeEditor-master" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+md__r_e_a_d_m_e \- Description 
+An API for manipulating Xcode project files\&.
+.SH "Usage"
+.PP
+.SS "Adding Source Files to a Project"
+.PP
+.nf
+XCProject* project = [[XCProject alloc] initWithFilePath:@"MyProject\&.xcodeproj"];
+XCGroup* group = [project groupWithPathFromRoot:@"Main"];
+XCClassDefinition* classDefinition = [[XCClassDefinition alloc] initWithName:@"MyNewClass"];
+[classDefinition setHeader:@"<some-header-text>"];
+[classDefinition setSource:@"<some-impl-text>"];
+
+[group addClass:classDefinition];
+[project save];
+.fi
+.PP
+.SS "Duplicating Targets"
+It will be added to project as well\&.
+.PP
+.PP
+.nf
+XCTarget* target = [project targetWithName:@"SomeTarget"];
+XCTarget* duplicated = [target duplicateWithTargetName:@"DuplicatedTarget" productName:@"NewProduct"];
+.fi
+.PP
+.SS "Specifying Source File Belongs to Target"
+.PP
+.nf
+XCSourceFile* sourceFile = [project fileWithName:@"MyNewClass\&.m"];
+XCTarget* examples = [project targetWithName:@"Examples"];
+[examples addMember:sourceFile];
+[project save];
+.fi
+.PP
+.SS "Adding a Xib File"
+This time, we'll use a convenience method on \fBXCGroup\fP to specify the targets at the same time:
+.PP
+.PP
+.nf
+XCXibDefinition* xibDefinition = [[XCXibDefinition alloc] initWithName:@"MyXibFile" content:@"<xibXml>"];
+[group addXib:xibDefinition toTargets:[project targets]];
+[project save];
+.fi
+.PP
+.SS "Adding a Framework"
+.PP
+.nf
+XCFrameworkDefinition* frameworkDefinition =
+    [[XCFrameworkDefinition alloc] initWithFilePath:@"<framework path>" copyToDestination:NO];
+[group addFramework:frameworkDefinition toTargets:[project targets]];
+[project save];
+.fi
+.PP
+ Setting copyToDestination to YES, will cause the framework to be first copied to the group's directory within the project, and subsequently linked from there\&.
+.SS "Adding an Image Resource"
+.PP
+.nf
+XCSourceFileDefinition* sourceFileDefinition = [[XCSourceFileDefinition alloc]
+    initWithName:@"MyImageFile\&.png" data:[NSData dataWithContentsOfFile:<your image file name>]
+    type:ImageResourcePNG];
+
+[group addSourceFile:sourceFileDefinition];
+[project save];
+.fi
+.PP
+.SS "Adding Asset Catalog (ImageSet)"
+.PP
+.nf
+XCSourceFileDefinition* sourceFileDefinition = [XCSourceFileDefinition sourceDefinitionWithAssetCatalogName:<path to asset catalog>];
+
+[group addSourceFile:sourceFileDefinition];
+[project save];
+.fi
+.PP
+.SS "Adding a Header"
+.PP
+.nf
+XCSourceFileDefinition* header = [[XCSourceFileDefinition alloc]
+    initWithName:@"SomeHeader\&.h" text:<your header text> type:SourceCodeHeader];
+
+[group addSourceFile:header];
+[project save];
+.fi
+.PP
+.SS "Adding a sub-project"
+.PP
+.nf
+subProjectDefinition = [XCSubProjectDefinition withName:@"mySubproject" projPath=@"/Path/To/Subproject" type:XcodeProject];
+[group addSubProject:subProjectDefinition toTargets:[project targets]];
+.fi
+.PP
+.SS "Removing a sub-project"
+.PP
+.nf
+[group removeSubProject:subProjectDefinition];  //TODO: project should be able to remove itself from parent\&.
+.fi
+.PP
+.SS "Configuring targets"
+We can add/update linker flags, header search paths, C-flags, etc to a target\&. Here we'll add header search paths:
+.PP
+.PP
+.nf
+XCTarget* target = [_project targetWithName:_projectName];
+for (NSString* configName in [target configurations])
+{
+    XCBuildConfiguration* configuration = [target configurationWithName:configName];
+    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];
+    [headerPaths addObject:@"$(inherited)"];
+    [headerPaths addObject:@"$(SRCROOT)/include"];        
+    [configuration addOrReplaceSetting:headerPaths forKey:@"HEADER_SEARCH_PATHS"];
+}
+.fi
+.PP
+.PP
+\&. \&. \&. these settings are added by key, as they would appear in a make file\&. (Xcode provides more human friendly descriptions)\&. To find the key for a given build setting, consult the compiler docs\&. Common settings are:
+.PP
+.IP "\(bu" 2
+HEADER_SEARCH_PATHS
+.IP "\(bu" 2
+OTHER_LD_FLAGS
+.IP "\(bu" 2
+CLANG_CXX_LANGUAGE_STANDARD
+.IP "\(bu" 2
+CODE_SIGN_IDENTITY
+.IP "\(bu" 2
+GCC_C_LANGUAGE_STANDARD
+.IP "\(bu" 2
+INFOPLIST_FILE
+.IP "\(bu" 2
+LIBRARY_SEARCH_PATHS
+.IP "\(bu" 2
+PRODUCT_NAME
+.IP "\(bu" 2
+PROVISIONING_PROFILE
+.PP
+.SS "Adding a Library"
+.PP
+.nf
+XCSourceFile * libSourceFile = [project fileWithName:@"libAmazing\&.a"];
+
+XCTarget* target = [project targetWithName:self\&.mProject\&.projectName];
+[target addMember:libSourceFile];
+
+for (NSString* configName in [target configurations]) {
+    XCProjectBuildConfig* configuration = [target configurationWithName:configName];
+    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];
+    [headerPaths addObject:@"$(inherited)"];
+    [headerPaths addObject:@"$(PROJECT_DIR)/Amazing"];
+    [configuration addOrReplaceSetting:headerPaths forKey:@"LIBRARY_SEARCH_PATHS"];
+}
+.fi
+.PP
+.SS "File write behavior"
+.PP
+.nf
+//Creates the reference in the project and writes the contents to disk\&. If a file already exists at the 
+//specified location, its contents will be updated\&.
+[definition setFileOperationStyle:FileOperationStyleOverwrite]; 
+.fi
+.PP
+.PP
+.PP
+.nf
+//Creates the reference in the project\&. If a file already exists at the specified location, the contents will 
+//not be updated\&.
+[definition setFileOperationStyle:FileOperationStyleAcceptExisting]; 
+.fi
+.PP
+.PP
+.PP
+.nf
+//Creates the reference in the project, but does not write to disk\&. The filesystem is expected to be updated 
+//through some other means\&.
+[definition setFileOperationStyle:FileOperationStyleReferenceOnly]; 
+.fi
+.PP
+.SH "Building"
+.PP
+Open the project in XCode and choose Product/Build\&. Alternatively install with CocoaPods\&.
+.SH "Feature Requests and Contributions"
+.PP
+\&. \&. \&. are very welcome\&.
+.PP
+If you're using the API shoot me an email and tell me what you're doing with it\&.
+.SH "Compatibility"
+.PP
+.IP "\(bu" 2
+Xcode-editor has been tested on Xcode 4+\&. It should also work on earlier versions of Xcode\&.
+.IP "\(bu" 2
+The AppCode IDE from JetBrains is now supported too!
+.IP "\(bu" 2
+Supports both ARC and MRR modes of memory management\&.
+.PP
+.SH "Who's using it?"
+.PP
+.IP "\(bu" 2
+\fCApportable\fP : Develop Android applications using Xcode, Objective-C and Cocoa APIs
+.IP "\(bu" 2
+\fCXamarin\fP: The Calabash automated functional testing for mobile applications\&.
+.IP "\(bu" 2
+\fCPeckham\fP : A great plugin for managing Xcode imports
+.IP "\(bu" 2
+\fCLevel Helper\fP: A RAD framework for developing 2D games on iOS & Android\&.
+.IP "\(bu" 2
+\fCText Mate\fP: The missing Text Editor for OSX\&.
+.PP
+.SH "Authors"
+.PP
+.IP "\(bu" 2
+\fCJasper Blues\fP - \fCjasper@appsquick\&.ly\fP
+.PP
+.SS "With contributions from:"
+.IP "\(bu" 2
+\fCConnor Duggan\fP - lots of bug fixes, maintenance and enhancements\&.
+.IP "\(bu" 2
+\fCAlexander Smirnov\fP - Cleaned up, generalized and contributed back the changes from the Calabash fork\&.
+.IP "\(bu" 2
+Zach Drayer - lots of fixes and features to support TextMate\&.
+.IP "\(bu" 2
+Janine Ohmer - support adding and removing sub-projects (http://www.synapticats.com)\&.
+.IP "\(bu" 2
+Bogdan Vladu - support adding and removing groups (www\&.levelhelper\&.org)\&.
+.IP "\(bu" 2
+Chris Ross of Hidden Memory (http://www.hiddenmemory.co.uk/)
+.IP "\(bu" 2
+Paul Taykalo
+.IP "\(bu" 2
+Vladislav Alekseev
+.IP "\(bu" 2
+Felix Schneider - bug fixes\&.
+.IP "\(bu" 2
+Isak Sky - mutable XCSourceFiles\&.
+.IP "\(bu" 2
+\fCDerk-Jan Hartman\fP : Adding folder references, by-file compiler flags\&.
+.IP "\(bu" 2
+\fCStoneSpb\fP : Speed improvements
+.IP "\(bu" 2
+\fCCe Zheng\fP : Fixes relating to Xcode 7, xcconfig support and others\&.
+.PP
+.PP
+Thanks!
+.SH "LICENSE"
+.PP
+Apache License, Version 2\&.0, January 2004, http://www.apache.org/licenses/
+.PP
+.IP "\(bu" 2
+© 2011 - 2012 Jasper Blues and contributors\&. 
+.PP
+
diff --git a/doc/rtf/interface_class_called_janine.png b/doc/rtf/interface_class_called_janine.png
new file mode 100644
index 0000000..a83a4aa
Binary files /dev/null and b/doc/rtf/interface_class_called_janine.png differ
diff --git a/doc/rtf/interface_x_c_abstract_definition.png b/doc/rtf/interface_x_c_abstract_definition.png
new file mode 100644
index 0000000..15dca55
Binary files /dev/null and b/doc/rtf/interface_x_c_abstract_definition.png differ
diff --git a/doc/rtf/interface_x_c_build_shell_script.png b/doc/rtf/interface_x_c_build_shell_script.png
new file mode 100644
index 0000000..7661d21
Binary files /dev/null and b/doc/rtf/interface_x_c_build_shell_script.png differ
diff --git a/doc/rtf/interface_x_c_build_shell_script_definition.png b/doc/rtf/interface_x_c_build_shell_script_definition.png
new file mode 100644
index 0000000..96f5c8b
Binary files /dev/null and b/doc/rtf/interface_x_c_build_shell_script_definition.png differ
diff --git a/doc/rtf/interface_x_c_build_shell_script_definition_tests.png b/doc/rtf/interface_x_c_build_shell_script_definition_tests.png
new file mode 100644
index 0000000..511f313
Binary files /dev/null and b/doc/rtf/interface_x_c_build_shell_script_definition_tests.png differ
diff --git a/doc/rtf/interface_x_c_build_shell_script_tests.png b/doc/rtf/interface_x_c_build_shell_script_tests.png
new file mode 100644
index 0000000..34882cb
Binary files /dev/null and b/doc/rtf/interface_x_c_build_shell_script_tests.png differ
diff --git a/doc/rtf/interface_x_c_class_definition.png b/doc/rtf/interface_x_c_class_definition.png
new file mode 100644
index 0000000..41a2b2b
Binary files /dev/null and b/doc/rtf/interface_x_c_class_definition.png differ
diff --git a/doc/rtf/interface_x_c_class_definition_tests.png b/doc/rtf/interface_x_c_class_definition_tests.png
new file mode 100644
index 0000000..2ac4bb5
Binary files /dev/null and b/doc/rtf/interface_x_c_class_definition_tests.png differ
diff --git a/doc/rtf/interface_x_c_file_operation_queue.png b/doc/rtf/interface_x_c_file_operation_queue.png
new file mode 100644
index 0000000..f0077d6
Binary files /dev/null and b/doc/rtf/interface_x_c_file_operation_queue.png differ
diff --git a/doc/rtf/interface_x_c_framework_definition.png b/doc/rtf/interface_x_c_framework_definition.png
new file mode 100644
index 0000000..104d3fd
Binary files /dev/null and b/doc/rtf/interface_x_c_framework_definition.png differ
diff --git a/doc/rtf/interface_x_c_framework_path.png b/doc/rtf/interface_x_c_framework_path.png
new file mode 100644
index 0000000..5e2ab95
Binary files /dev/null and b/doc/rtf/interface_x_c_framework_path.png differ
diff --git a/doc/rtf/interface_x_c_group.png b/doc/rtf/interface_x_c_group.png
new file mode 100644
index 0000000..602ecff
Binary files /dev/null and b/doc/rtf/interface_x_c_group.png differ
diff --git a/doc/rtf/interface_x_c_group_tests.png b/doc/rtf/interface_x_c_group_tests.png
new file mode 100644
index 0000000..585fd04
Binary files /dev/null and b/doc/rtf/interface_x_c_group_tests.png differ
diff --git a/doc/rtf/interface_x_c_key_builder.png b/doc/rtf/interface_x_c_key_builder.png
new file mode 100644
index 0000000..118524f
Binary files /dev/null and b/doc/rtf/interface_x_c_key_builder.png differ
diff --git a/doc/rtf/interface_x_c_key_builder_tests.png b/doc/rtf/interface_x_c_key_builder_tests.png
new file mode 100644
index 0000000..3525349
Binary files /dev/null and b/doc/rtf/interface_x_c_key_builder_tests.png differ
diff --git a/doc/rtf/interface_x_c_project.png b/doc/rtf/interface_x_c_project.png
new file mode 100644
index 0000000..8d22f79
Binary files /dev/null and b/doc/rtf/interface_x_c_project.png differ
diff --git a/doc/rtf/interface_x_c_project_build_config.png b/doc/rtf/interface_x_c_project_build_config.png
new file mode 100644
index 0000000..10112f7
Binary files /dev/null and b/doc/rtf/interface_x_c_project_build_config.png differ
diff --git a/doc/rtf/interface_x_c_project_tests.png b/doc/rtf/interface_x_c_project_tests.png
new file mode 100644
index 0000000..30c58e7
Binary files /dev/null and b/doc/rtf/interface_x_c_project_tests.png differ
diff --git a/doc/rtf/interface_x_c_source_file.png b/doc/rtf/interface_x_c_source_file.png
new file mode 100644
index 0000000..2cab42e
Binary files /dev/null and b/doc/rtf/interface_x_c_source_file.png differ
diff --git a/doc/rtf/interface_x_c_source_file_definition.png b/doc/rtf/interface_x_c_source_file_definition.png
new file mode 100644
index 0000000..8261c6c
Binary files /dev/null and b/doc/rtf/interface_x_c_source_file_definition.png differ
diff --git a/doc/rtf/interface_x_c_sub_project_definition.png b/doc/rtf/interface_x_c_sub_project_definition.png
new file mode 100644
index 0000000..d41b122
Binary files /dev/null and b/doc/rtf/interface_x_c_sub_project_definition.png differ
diff --git a/doc/rtf/interface_x_c_sub_project_definition_tests.png b/doc/rtf/interface_x_c_sub_project_definition_tests.png
new file mode 100644
index 0000000..0cddc38
Binary files /dev/null and b/doc/rtf/interface_x_c_sub_project_definition_tests.png differ
diff --git a/doc/rtf/interface_x_c_target.png b/doc/rtf/interface_x_c_target.png
new file mode 100644
index 0000000..551c399
Binary files /dev/null and b/doc/rtf/interface_x_c_target.png differ
diff --git a/doc/rtf/interface_x_c_target_tests.png b/doc/rtf/interface_x_c_target_tests.png
new file mode 100644
index 0000000..61c2d1a
Binary files /dev/null and b/doc/rtf/interface_x_c_target_tests.png differ
diff --git a/doc/rtf/interface_x_c_version_group.png b/doc/rtf/interface_x_c_version_group.png
new file mode 100644
index 0000000..51380cc
Binary files /dev/null and b/doc/rtf/interface_x_c_version_group.png differ
diff --git a/doc/rtf/interface_x_c_xib_definition.png b/doc/rtf/interface_x_c_xib_definition.png
new file mode 100644
index 0000000..4e4c450
Binary files /dev/null and b/doc/rtf/interface_x_c_xib_definition.png differ
diff --git a/doc/rtf/interface_xcode_file_reference_type_tests.png b/doc/rtf/interface_xcode_file_reference_type_tests.png
new file mode 100644
index 0000000..2a87738
Binary files /dev/null and b/doc/rtf/interface_xcode_file_reference_type_tests.png differ
diff --git a/doc/rtf/protocol_x_c_build_file-p.png b/doc/rtf/protocol_x_c_build_file-p.png
new file mode 100644
index 0000000..8386d9e
Binary files /dev/null and b/doc/rtf/protocol_x_c_build_file-p.png differ
diff --git a/doc/rtf/protocol_xcode_group_member-p.png b/doc/rtf/protocol_xcode_group_member-p.png
new file mode 100644
index 0000000..d34a9e6
Binary files /dev/null and b/doc/rtf/protocol_xcode_group_member-p.png differ
diff --git a/doc/rtf/refman.rtf b/doc/rtf/refman.rtf
new file mode 100644
index 0000000..c8d97a0
--- /dev/null
+++ b/doc/rtf/refman.rtf
@@ -0,0 +1,5916 @@
+{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033
+{\fonttbl {\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
+{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
+{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}
+}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green128\blue0;\red96\green64\blue32;\rede0\green128\blue0;\red128\green0\blue0;\red128\green96\blue32;\red0\green32\blue128;\red0\green128\blue128;\red255\green0\blue255;\red0\green0\blue0;\red112\green0\blue112;\red255\green0\blue0;}
+{\stylesheet
+{\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}
+{\paperw11900\paperh16840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect}
+{\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid \sbasedon0 \snext0 heading 1;}
+{\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 2;}
+{\s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 3;}
+{\s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}
+{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}
+{\s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid \sbasedon0 \snext15 Title;}
+{\s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid \sbasedon0 \snext16 Subtitle;}
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid \sbasedon0 \snext17 BodyText;}
+{\s18\widctlpar\fs22\cgrid \sbasedon0 \snext18 DenseText;}
+{\s28\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext28 header;}
+{\s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid \sbasedon0 \snext29 footer;}
+{\s30\li360\sa60\sb120\keepn\widctlpar\adjustright \b\f1\fs20\cgrid \sbasedon0 \snext30 GroupHeader;}
+{\s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext41 Code Example 0;}
+{\s41\li360\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext42 Code Example 1;}
+{\s42\li720\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext43 Code Example 2;}
+{\s43\li1080\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext44 Code Example 3;}
+{\s44\li1440\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext45 Code Example 4;}
+{\s45\li1800\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext46 Code Example 5;}
+{\s46\li2160\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext47 Code Example 6;}
+{\s47\li2520\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext48 Code Example 7;}
+{\s48\li2880\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext49 Code Example 8;}
+{\s49\li3240\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext50 Code Example 9;}
+{\s50\li3600\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext51 Code Example 10;}
+{\s51\li3960\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext52 Code Example 11;}
+{\s52\li4320\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext53 Code Example 12;}
+{\s53\li4680\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid \sbasedon0 \snext53 Code Example 13;}
+{\s60\li0\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext61 List Continue 0;}
+{\s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext62 List Continue 1;}
+{\s62\li720\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext63 List Continue 2;}
+{\s63\li1080\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext64 List Continue 3;}
+{\s64\li1440\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext65 List Continue 4;}
+{\s65\li1800\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext66 List Continue 5;}
+{\s66\li2160\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext67 List Continue 6;}
+{\s67\li2520\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext68 List Continue 7;}
+{\s68\li2880\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext69 List Continue 8;}
+{\s69\li3240\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext70 List Continue 9;}
+{\s70\li3600\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext71 List Continue 10;}
+{\s71\li3960\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext72 List Continue 11;}
+{\s72\li4320\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext73 List Continue 12;}
+{\s73\li4680\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid \sbasedon0 \snext73 List Continue 13;}
+{\s80\li0\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext81 DescContinue 0;}
+{\s81\li360\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext82 DescContinue 1;}
+{\s82\li720\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext83 DescContinue 2;}
+{\s83\li1080\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext84 DescContinue 3;}
+{\s84\li1440\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext85 DescContinue 4;}
+{\s85\li1800\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext86 DescContinue 5;}
+{\s86\li2160\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext87 DescContinue 6;}
+{\s87\li2520\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext88 DescContinue 7;}
+{\s88\li2880\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext89 DescContinue 8;}
+{\s89\li3240\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext90 DescContinue 9;}
+{\s90\li3600\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext91 DescContinue 10;}
+{\s91\li3960\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext92 DescContinue 11;}
+{\s92\li4320\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext93 DescContinue 12;}
+{\s93\li4680\widctlpar\ql\adjustright \fs20\cgrid \sbasedon0 \snext93 DescContinue 13;}
+{\s100\li0\sa30\sb30\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext101 LatexTOC 0;}
+{\s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext102 LatexTOC 1;}
+{\s102\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext103 LatexTOC 2;}
+{\s103\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext104 LatexTOC 3;}
+{\s104\li1440\sa18\sb18\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext105 LatexTOC 4;}
+{\s105\li1800\sa15\sb15\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext106 LatexTOC 5;}
+{\s106\li2160\sa12\sb12\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext107 LatexTOC 6;}
+{\s107\li2520\sa9\sb9\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext108 LatexTOC 7;}
+{\s108\li2880\sa6\sb6\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext109 LatexTOC 8;}
+{\s109\li3240\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext110 LatexTOC 9;}
+{\s110\li3600\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext111 LatexTOC 10;}
+{\s111\li3960\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext112 LatexTOC 11;}
+{\s112\li4320\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext113 LatexTOC 12;}
+{\s113\li4680\sa3\sb3\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext113 LatexTOC 13;}
+{\s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext121 \sautoupd List Bullet 0;}
+{\s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext122 \sautoupd List Bullet 1;}
+{\s122\fi-360\li1080\widctlpar\jclisttab\tx1080{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext123 \sautoupd List Bullet 2;}
+{\s123\fi-360\li1440\widctlpar\jclisttab\tx1440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext124 \sautoupd List Bullet 3;}
+{\s124\fi-360\li1800\widctlpar\jclisttab\tx1800{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext125 \sautoupd List Bullet 4;}
+{\s125\fi-360\li2160\widctlpar\jclisttab\tx2160{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext126 \sautoupd List Bullet 5;}
+{\s126\fi-360\li2520\widctlpar\jclisttab\tx2520{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext127 \sautoupd List Bullet 6;}
+{\s127\fi-360\li2880\widctlpar\jclisttab\tx2880{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext128 \sautoupd List Bullet 7;}
+{\s128\fi-360\li3240\widctlpar\jclisttab\tx3240{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext129 \sautoupd List Bullet 8;}
+{\s129\fi-360\li3600\widctlpar\jclisttab\tx3600{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext130 \sautoupd List Bullet 9;}
+{\s130\fi-360\li3960\widctlpar\jclisttab\tx3960{\*\pn \pnlvlbody\ilvl0\ls11\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext131 \sautoupd List Bullet 10;}
+{\s131\fi-360\li4320\widctlpar\jclisttab\tx4320{\*\pn \pnlvlbody\ilvl0\ls12\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext132 \sautoupd List Bullet 11;}
+{\s132\fi-360\li4680\widctlpar\jclisttab\tx4680{\*\pn \pnlvlbody\ilvl0\ls13\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext133 \sautoupd List Bullet 12;}
+{\s133\fi-360\li5040\widctlpar\jclisttab\tx5040{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid \sbasedon0 \snext133 \sautoupd List Bullet 13;}
+{\s140\fi-360\li360\widctlpar\fs20\cgrid \sbasedon0 \snext141 \sautoupd List Enum 0;}
+{\s141\fi-360\li720\widctlpar\fs20\cgrid \sbasedon0 \snext142 \sautoupd List Enum 1;}
+{\s142\fi-360\li1080\widctlpar\fs20\cgrid \sbasedon0 \snext143 \sautoupd List Enum 2;}
+{\s143\fi-360\li1440\widctlpar\fs20\cgrid \sbasedon0 \snext144 \sautoupd List Enum 3;}
+{\s144\fi-360\li1800\widctlpar\fs20\cgrid \sbasedon0 \snext145 \sautoupd List Enum 4;}
+{\s145\fi-360\li2160\widctlpar\fs20\cgrid \sbasedon0 \snext146 \sautoupd List Enum 5;}
+{\s146\fi-360\li2520\widctlpar\fs20\cgrid \sbasedon0 \snext147 \sautoupd List Enum 6;}
+{\s147\fi-360\li2880\widctlpar\fs20\cgrid \sbasedon0 \snext148 \sautoupd List Enum 7;}
+{\s148\fi-360\li3240\widctlpar\fs20\cgrid \sbasedon0 \snext149 \sautoupd List Enum 8;}
+{\s149\fi-360\li3600\widctlpar\fs20\cgrid \sbasedon0 \snext150 \sautoupd List Enum 9;}
+{\s150\fi-360\li3960\widctlpar\fs20\cgrid \sbasedon0 \snext151 \sautoupd List Enum 10;}
+{\s151\fi-360\li4320\widctlpar\fs20\cgrid \sbasedon0 \snext152 \sautoupd List Enum 11;}
+{\s152\fi-360\li4680\widctlpar\fs20\cgrid \sbasedon0 \snext153 \sautoupd List Enum 12;}
+{\s153\fi-360\li5040\widctlpar\fs20\cgrid \sbasedon0 \snext153 \sautoupd List Enum 13;}
+}
+{\info 
+{\title {\comment XcodeEditor-master  {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+1.1 \par
+}}XcodeEditor-master}
+{\comment Generated by doxygen1.9.3.}
+{\creatim \yr2022\mo3\dy4\hr19\min48\sec53}
+}\pard\plain 
+\sectd\pgnlcrm
+{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
+\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid 
+\vertalc\qc\par\par\par\par\par\par\par
+\pard\plain \s15\qc\sb240\sa60\widctlpar\outlinelevel0\adjustright \b\f1\fs32\kerning28\cgrid 
+{\field\fldedit {\*\fldinst TITLE \\*MERGEFORMAT}{\fldrslt XcodeEditor-master}}\par
+\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid 
+\par
+\par\par\par\par\par\par\par\par\par\par\par\par
+\pard\plain \s16\qc\sa60\widctlpar\outlinelevel1\adjustright \f1\cgrid 
+{\field\fldedit {\*\fldinst AUTHOR \\*MERGEFORMAT}{\fldrslt AUTHOR}}\par
+Version 1.1\par{\field\fldedit {\*\fldinst CREATEDATE \\*MERGEFORMAT}{\fldrslt Fri Mar 4 2022 }}\par
+\page\page\vertalt
+\pard\plain 
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Table of Contents\par
+\pard\plain \par
+{\field\fldedit {\*\fldinst TOC \\f \\*MERGEFORMAT}{\fldrslt Table of contents}}\par
+\pard\plain 
+\sect \sbkpage \pgndec \pgnrestart
+\sect \sectd \sbknone
+{\footer \s29\widctlpar\tqc\tx4320\tqr\tx8640\qr\adjustright \fs20\cgrid {\chpgn}}
+
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+Description{\tc \v Description}\par \pard\plain 
+{\bkmkstart AAAAAAAAPQ}
+{\bkmkend AAAAAAAAPQ}
+\par \pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+An API for manipulating Xcode project files.\par
+{\bkmkstart AAAAAAAABA}
+{\bkmkend AAAAAAAABA}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Usage
+\par}
+{\tc\tcl2 \v Usage}
+{\bkmkstart AAAAAAAABB}
+{\bkmkend AAAAAAAABB}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding Source Files to a Project
+\par}
+{\tc\tcl4 \v Adding Source Files to a Project}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCProject* project = [[XCProject alloc] initWithFilePath:@"MyProject.xcodeproj"];\par
+XCGroup* group = [project groupWithPathFromRoot:@"Main"];\par
+XCClassDefinition* classDefinition = [[XCClassDefinition alloc] initWithName:@"MyNewClass"];\par
+[classDefinition setHeader:@"<some-header-text>"];\par
+[classDefinition setSource:@"<some-impl-text>"];\par
+\par
+[group addClass:classDefinition];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABC}
+{\bkmkend AAAAAAAABC}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Duplicating Targets
+\par}
+{\tc\tcl4 \v Duplicating Targets}
+It will be added to project as well.\par
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCTarget* target = [project targetWithName:@"SomeTarget"];\par
+XCTarget* duplicated = [target duplicateWithTargetName:@"DuplicatedTarget" productName:@"NewProduct"];\par
+}
+\par}
+{\bkmkstart AAAAAAAABD}
+{\bkmkend AAAAAAAABD}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Specifying Source File Belongs to Target
+\par}
+{\tc\tcl4 \v Specifying Source File Belongs to Target}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCSourceFile* sourceFile = [project fileWithName:@"MyNewClass.m"];\par
+XCTarget* examples = [project targetWithName:@"Examples"];\par
+[examples addMember:sourceFile];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABE}
+{\bkmkend AAAAAAAABE}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding a Xib File
+\par}
+{\tc\tcl4 \v Adding a Xib File}
+This time, we'll use a convenience method on {\b XCGroup} to specify the targets at the same time:\par
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCXibDefinition* xibDefinition = [[XCXibDefinition alloc] initWithName:@"MyXibFile" content:@"<xibXml>"];\par
+[group addXib:xibDefinition toTargets:[project targets]];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABF}
+{\bkmkend AAAAAAAABF}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding a Framework
+\par}
+{\tc\tcl4 \v Adding a Framework}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCFrameworkDefinition* frameworkDefinition =\par
+    [[XCFrameworkDefinition alloc] initWithFilePath:@"<framework path>" copyToDestination:NO];\par
+[group addFramework:frameworkDefinition toTargets:[project targets]];\par
+[project save];\par
+}
+ Setting copyToDestination to YES, will cause the framework to be first copied to the group's directory within the project, and subsequently linked from there.\par}
+{\bkmkstart AAAAAAAABG}
+{\bkmkend AAAAAAAABG}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding an Image Resource
+\par}
+{\tc\tcl4 \v Adding an Image Resource}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCSourceFileDefinition* sourceFileDefinition = [[XCSourceFileDefinition alloc]\par
+    initWithName:@"MyImageFile.png" data:[NSData dataWithContentsOfFile:<your image file name>]\par
+    type:ImageResourcePNG];\par
+\par
+[group addSourceFile:sourceFileDefinition];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABH}
+{\bkmkend AAAAAAAABH}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding Asset Catalog (ImageSet)
+\par}
+{\tc\tcl4 \v Adding Asset Catalog (ImageSet)}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCSourceFileDefinition* sourceFileDefinition = [XCSourceFileDefinition sourceDefinitionWithAssetCatalogName:<path to asset catalog>];\par
+\par
+[group addSourceFile:sourceFileDefinition];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABI}
+{\bkmkend AAAAAAAABI}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding a Header
+\par}
+{\tc\tcl4 \v Adding a Header}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCSourceFileDefinition* header = [[XCSourceFileDefinition alloc]\par
+    initWithName:@"SomeHeader.h" text:<your header text> type:SourceCodeHeader];\par
+\par
+[group addSourceFile:header];\par
+[project save];\par
+}
+\par}
+{\bkmkstart AAAAAAAABJ}
+{\bkmkend AAAAAAAABJ}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding a sub-project
+\par}
+{\tc\tcl4 \v Adding a sub-project}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid subProjectDefinition = [XCSubProjectDefinition withName:@"mySubproject" projPath=@"/Path/To/Subproject" type:XcodeProject];\par
+[group addSubProject:subProjectDefinition toTargets:[project targets]];\par
+}
+\par}
+{\bkmkstart AAAAAAAABK}
+{\bkmkend AAAAAAAABK}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Removing a sub-project
+\par}
+{\tc\tcl4 \v Removing a sub-project}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid [group removeSubProject:subProjectDefinition];  {\cf20 //TODO: project should be able to remove itself from parent.}\par
+}
+\par}
+{\bkmkstart AAAAAAAABL}
+{\bkmkend AAAAAAAABL}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Configuring targets
+\par}
+{\tc\tcl4 \v Configuring targets}
+We can add/update linker flags, header search paths, C-flags, etc to a target. Here we'll add header search paths:\par
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCTarget* target = [_project targetWithName:_projectName];\par
+{\cf19 for} (NSString* configName in [target configurations])\par
+\{\par
+    XCBuildConfiguration* configuration = [target configurationWithName:configName];\par
+    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];\par
+    [headerPaths addObject:@"$(inherited)"];\par
+    [headerPaths addObject:@"$(SRCROOT)/include"];        \par
+    [configuration addOrReplaceSetting:headerPaths forKey:@"HEADER_SEARCH_PATHS"];\par
+\}\par
+}
+\par
+. . . these settings are added by key, as they would appear in a make file. (Xcode provides more human friendly descriptions). To find the key for a given build setting, consult the compiler docs. Common settings are:\par
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+HEADER_SEARCH_PATHS\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+OTHER_LD_FLAGS\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+CLANG_CXX_LANGUAGE_STANDARD\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+CODE_SIGN_IDENTITY\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+GCC_C_LANGUAGE_STANDARD\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+INFOPLIST_FILE\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+LIBRARY_SEARCH_PATHS\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+PRODUCT_NAME\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+PROVISIONING_PROFILE\par}
+\par
+\par}
+{\bkmkstart AAAAAAAABM}
+{\bkmkend AAAAAAAABM}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Adding a Library
+\par}
+{\tc\tcl4 \v Adding a Library}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid XCSourceFile * libSourceFile = [project fileWithName:@"libAmazing.a"];\par
+\par
+XCTarget* target = [project targetWithName:self.mProject.projectName];\par
+[target addMember:libSourceFile];\par
+\par
+for (NSString* configName in [target configurations]) \{\par
+    XCProjectBuildConfig* configuration = [target configurationWithName:configName];\par
+    NSMutableArray* headerPaths = [[NSMutableArray alloc] init];\par
+    [headerPaths addObject:@"$(inherited)"];\par
+    [headerPaths addObject:@"$(PROJECT_DIR)/Amazing"];\par
+    [configuration addOrReplaceSetting:headerPaths forKey:@"LIBRARY_SEARCH_PATHS"];\par
+\}\par
+}
+\par}
+{\bkmkstart AAAAAAAABN}
+{\bkmkend AAAAAAAABN}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+File write behavior
+\par}
+{\tc\tcl4 \v File write behavior}
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid {\cf20 //Creates the reference in the project and writes the contents to disk. If a file already exists at the }\par
+{\cf20 //specified location, its contents will be updated.}\par
+[definition setFileOperationStyle:FileOperationStyleOverwrite]; \par
+}
+\par
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid {\cf20 //Creates the reference in the project. If a file already exists at the specified location, the contents will }\par
+{\cf20 //not be updated.}\par
+[definition setFileOperationStyle:FileOperationStyleAcceptExisting]; \par
+}
+\par
+{
+\par
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid {\cf20 //Creates the reference in the project, but does not write to disk. The filesystem is expected to be updated }\par
+{\cf20 //through some other means.}\par
+[definition setFileOperationStyle:FileOperationStyleReferenceOnly]; \par
+}
+\par}
+\par}
+{\bkmkstart AAAAAAAABO}
+{\bkmkend AAAAAAAABO}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Building
+\par}
+{\tc\tcl2 \v Building}
+Open the project in XCode and choose Product/Build. Alternatively install with CocoaPods.\par}
+{\bkmkstart AAAAAAAABP}
+{\bkmkend AAAAAAAABP}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Feature Requests and Contributions
+\par}
+{\tc\tcl2 \v Feature Requests and Contributions}
+. . . are very welcome.\par
+If you're using the API shoot me an email and tell me what you're doing with it.\par}
+{\bkmkstart AAAAAAAABQ}
+{\bkmkend AAAAAAAABQ}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Compatibility
+\par}
+{\tc\tcl2 \v Compatibility}
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Xcode-editor has been tested on Xcode 4+. It should also work on earlier versions of Xcode.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+The AppCode IDE from JetBrains is now supported too!\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Supports both ARC and MRR modes of memory management.\par}
+\par
+\par}
+{\bkmkstart AAAAAAAABR}
+{\bkmkend AAAAAAAABR}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Who's using it?
+\par}
+{\tc\tcl2 \v Who's using it?}
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Apportable} : Develop Android applications using Xcode, Objective-C and Cocoa APIs\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Xamarin}: The Calabash automated functional testing for mobile applications.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Peckham} : A great plugin for managing Xcode imports\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Level Helper}: A RAD framework for developing 2D games on iOS & Android.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Text Mate}: The missing Text Editor for OSX.\par}
+\par
+\par}
+{\bkmkstart AAAAAAAABS}
+{\bkmkend AAAAAAAABS}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Authors
+\par}
+{\tc\tcl2 \v Authors}
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Jasper Blues} - {\f2 jasper@appsquick.ly}\par}
+\par
+{\bkmkstart AAAAAAAABT}
+{\bkmkend AAAAAAAABT}
+{{\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+With contributions from:
+\par}
+{\tc\tcl4 \v With contributions from:}
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Connor Duggan} - lots of bug fixes, maintenance and enhancements.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Alexander Smirnov} - Cleaned up, generalized and contributed back the changes from the Calabash fork.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Zach Drayer - lots of fixes and features to support TextMate.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Janine Ohmer - support adding and removing sub-projects ({\f2 http://www.synapticats.com}).\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Bogdan Vladu - support adding and removing groups (www.levelhelper.org).\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Chris Ross of Hidden Memory ({\f2 http://www.hiddenmemory.co.uk/})\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Paul Taykalo\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Vladislav Alekseev\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Felix Schneider - bug fixes.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+Isak Sky - mutable XCSourceFiles.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Derk-Jan Hartman} : Adding folder references, by-file compiler flags.\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 StoneSpb} : Speed improvements\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+{\f2 Ce Zheng} : Fixes relating to Xcode 7, xcconfig support and others.\par}
+\par
+Thanks!\par}
+\par}
+{\bkmkstart AAAAAAAABU}
+{\bkmkend AAAAAAAABU}
+{{\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+LICENSE
+\par}
+{\tc\tcl2 \v LICENSE}
+Apache License, Version 2.0, January 2004, {\f2 http://www.apache.org/licenses/}\par
+{
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+\'A9 2011 - 2012 Jasper Blues and contributors. \par}
+\par
+\par}
+}}
+
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+Hierarchical Index\par \pard\plain 
+{\tc \v Hierarchical Index}
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Class Hierarchy\par \pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid This inheritance list is sorted roughly, but not completely, alphabetically:}
+{
+\par
+\pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+HashValueMD5Hash\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+NSObject
+{
+\par
+\pard\plain \s102\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+ClassCalledJanine\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCAbstractDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACV \\*MERGEFORMAT}{\fldrslt pagenum}}
+{
+\par
+\pard\plain \s103\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+XCBuildShellScriptDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADR \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCClassDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCFrameworkDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFL \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSourceFileDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALU \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSubProjectDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAMG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCXibDefinition\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAPG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+}\par
+XCBuildShellScript\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCFileOperationQueue\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCFrameworkPath\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFX \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCKeyBuilder\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHQ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCProject\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAID \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCProjectBuildConfig\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSourceFile\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCTarget\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANH \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCVersionGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAON \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+}\par
+<NSObject>
+{
+\par
+\pard\plain \s102\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+<XCBuildFile>\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}
+{
+\par
+\pard\plain \s103\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+XCGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSourceFile\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCVersionGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAON \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+}\par
+<XcodeGroupMember>\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHY \\*MERGEFORMAT}{\fldrslt pagenum}}
+{
+\par
+\pard\plain \s103\li1080\sa21\sb21\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+XCGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSourceFile\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCVersionGroup\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAON \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+}\par
+}\par
+NSString(RemoveEmoji)\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+NSString(XcodeMemberTypeExtensions)\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACC \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+NSString(XcodeSourceTreeTypeExtensions)\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACS \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCFileOperationQueue()\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCProject(SubProject)\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKJ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSubProjectDefinition()\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANE \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCTestCase
+{
+\par
+\pard\plain \s102\li720\sa24\sb24\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+XCBuildShellScriptDefinitionTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAED \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCBuildShellScriptTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEE \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCClassDefinitionTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCGroupTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHP \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCKeyBuilderTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCProjectTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCSubProjectDefinitionTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XCTargetTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAOM \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+XcodeFileReferenceTypeTests\tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHX \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+}\par
+}
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+Class Index\par \pard\plain 
+{\tc \v Class Index}
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+Class List\par \pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here are the classes, structs, unions and interfaces with brief descriptions:}
+{
+\par
+\pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+{\b {\b ClassCalledJanine} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b HashValueMD5Hash} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b NSString(RemoveEmoji)} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAABY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b NSString(XcodeMemberTypeExtensions)} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACC \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b NSString(XcodeSourceTreeTypeExtensions)} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACS \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCAbstractDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b <XCBuildFile>} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScript} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScriptDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAADR \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScriptDefinitionTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAED \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScriptTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEE \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCClassDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCClassDefinitionTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFileOperationQueue} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAEW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFileOperationQueue()} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFrameworkDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFL \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFrameworkPath} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFX \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCGroup} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAFY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCGroupTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHP \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCKeyBuilder} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHQ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCKeyBuilderTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeFileReferenceTypeTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHX \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b <XcodeGroupMember>} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAHY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProject} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAID \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProject(SubProject)} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKJ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProjectBuildConfig} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAKV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProjectTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSourceFile} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSourceFileDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAALU \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSubProjectDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAMG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSubProjectDefinition()} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANE \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSubProjectDefinitionTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCTarget} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAANH \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCTargetTests} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAOM \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCVersionGroup} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAON \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCXibDefinition} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAPG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+\par}
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+File Index\par \pard\plain 
+{\tc \v File Index}
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+File List\par \pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Here is a list of all documented files with brief descriptions:}
+{
+\par
+\pard\plain \s101\li360\sa27\sb27\widctlpar\tqr\tldot\tx8640\adjustright \fs20\cgrid 
+{\b {\b NSString+RemoveEmoji.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAA \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCAbstractDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAB \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildFile.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAC \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScript.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAD \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCBuildShellScriptDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAE \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCClassDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAF \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFileOperationQueue.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAG \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCFrameworkDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAH \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCGroup.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAI \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCKeyBuilder.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAJ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeEditor.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAK \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeGroupMember.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAL \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeMemberType.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAM \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeSourceFileType.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAN \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XcodeSourceTreeType.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAO \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProject+SubProject.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAP \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProject.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAQ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCProjectBuildConfig.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAR \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSourceFile.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAS \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSourceFileDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAT \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCSubProjectDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAU \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCTarget.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAV \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCVersionGroup.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAW \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCXibDefinition.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAX \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b ClassCalledJanine.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAY \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+{\b {\b XCTestResourceUtils.h} } \tab {\field\fldedit {\*\fldinst PAGEREF AAAAAAAAAZ \\*MERGEFORMAT}{\fldrslt pagenum}}
+\par
+\par}
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+Class Documentation{\tc \v Class Documentation}
+\par \pard\plain 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+ClassCalledJanine Class Reference\par \pard\plain 
+{\tc\tcl2 \v ClassCalledJanine}
+{\xe \v ClassCalledJanine}
+{\bkmkstart AAAAAAAABV}
+{\bkmkend AAAAAAAABV}
+Inheritance diagram for ClassCalledJanine:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_class_called_janine.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+ClassCalledJanine.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+HashValueMD5Hash Struct Reference\par \pard\plain 
+{\tc\tcl2 \v HashValueMD5Hash}
+{\xe \v HashValueMD5Hash}
+{\bkmkstart AAAAAAAABW}
+{\bkmkend AAAAAAAABW}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Public Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+char {\b value} [MD5_DIGEST_LENGTH]{\bkmkstart AAAAAAAABX}
+{\bkmkend AAAAAAAABX}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this struct was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCKeyBuilder.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+NSString(RemoveEmoji) Category Reference\par \pard\plain 
+{\tc\tcl2 \v NSString(RemoveEmoji)}
+{\xe \v NSString(RemoveEmoji)}
+{\bkmkstart AAAAAAAABY}
+{\bkmkend AAAAAAAABY}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isIncludingEmoji}{\bkmkstart AAAAAAAABZ}
+{\bkmkend AAAAAAAABZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(instancetype) - {\b stringByRemovingEmoji}{\bkmkstart AAAAAAAACA}
+{\bkmkend AAAAAAAACA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+((deprecated) - {\b __attribute__}{\bkmkstart AAAAAAAACB}
+{\bkmkend AAAAAAAACB}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString+RemoveEmoji.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString+RemoveEmoji.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+NSString(XcodeMemberTypeExtensions) Category Reference\par \pard\plain 
+{\tc\tcl2 \v NSString(XcodeMemberTypeExtensions)}
+{\xe \v NSString(XcodeMemberTypeExtensions)}
+{\bkmkstart AAAAAAAACC}
+{\bkmkend AAAAAAAACC}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(XcodeMemberType) - {\b xce_asMemberType}{\bkmkstart AAAAAAAACD}
+{\bkmkend AAAAAAAACD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasFileReferenceType}{\bkmkstart AAAAAAAACE}
+{\bkmkend AAAAAAAACE}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasFileReferenceOrReferenceProxyType}{\bkmkstart AAAAAAAACF}
+{\bkmkend AAAAAAAACF}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasReferenceProxyType}{\bkmkstart AAAAAAAACG}
+{\bkmkend AAAAAAAACG}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasGroupType}{\bkmkstart AAAAAAAACH}
+{\bkmkend AAAAAAAACH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasProjectType}{\bkmkstart AAAAAAAACI}
+{\bkmkend AAAAAAAACI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasNativeTargetType}{\bkmkstart AAAAAAAACJ}
+{\bkmkend AAAAAAAACJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasBuildFileType}{\bkmkstart AAAAAAAACK}
+{\bkmkend AAAAAAAACK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasBuildConfigurationType}{\bkmkstart AAAAAAAACL}
+{\bkmkend AAAAAAAACL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasContainerItemProxyType}{\bkmkstart AAAAAAAACM}
+{\bkmkend AAAAAAAACM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasResourcesBuildPhaseType}{\bkmkstart AAAAAAAACN}
+{\bkmkend AAAAAAAACN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasShellScriptBuildPhase}{\bkmkstart AAAAAAAACO}
+{\bkmkend AAAAAAAACO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasSourcesOrFrameworksBuildPhaseType}{\bkmkstart AAAAAAAACP}
+{\bkmkend AAAAAAAACP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b xce_hasVersionedGroupType}{\bkmkstart AAAAAAAACQ}
+{\bkmkend AAAAAAAACQ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) + {\b xce_stringFromMemberType:}{\bkmkstart AAAAAAAACR}
+{\bkmkend AAAAAAAACR}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeMemberType.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeMemberType.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+NSString(XcodeSourceTreeTypeExtensions) Category Reference\par \pard\plain 
+{\tc\tcl2 \v NSString(XcodeSourceTreeTypeExtensions)}
+{\xe \v NSString(XcodeSourceTreeTypeExtensions)}
+{\bkmkstart AAAAAAAACS}
+{\bkmkend AAAAAAAACS}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(XcodeSourceTreeType) - {\b xce_asSourceTreeType}{\bkmkstart AAAAAAAACT}
+{\bkmkend AAAAAAAACT}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) + {\b xce_stringFromSourceTreeType:}{\bkmkstart AAAAAAAACU}
+{\bkmkend AAAAAAAACU}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeSourceTreeType.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeSourceTreeType.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCAbstractDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCAbstractDefinition}
+{\xe \v XCAbstractDefinition}
+{\bkmkstart AAAAAAAACV}
+{\bkmkend AAAAAAAACV}
+\par
+{
+{\f2 #import <XCAbstractDefinition.h>}}\par
+Inheritance diagram for XCAbstractDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_abstract_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XCFileOperationType {\b _fileOperationType}{\bkmkstart AAAAAAAACW}
+{\bkmkend AAAAAAAACW}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XCFileOperationType {\b fileOperationType}{\bkmkstart AAAAAAAACX}
+{\bkmkend AAAAAAAACX}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Holds properties to all types of resource that can be added to an Xcode project. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCAbstractDefinition.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+<XCBuildFile> Protocol Reference\par \pard\plain 
+{\tc\tcl2 \v <XCBuildFile>}
+{\xe \v <XCBuildFile>}
+{\bkmkstart AAAAAAAACY}
+{\bkmkend AAAAAAAACY}
+Inheritance diagram for <XCBuildFile>:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "protocol_x_c_build_file-p.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b becomeBuildFile}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(XcodeMemberType) - {\b buildPhase}{\bkmkstart AAAAAAAACZ}
+{\bkmkend AAAAAAAACZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b buildFileKey}{\bkmkstart AAAAAAAADA}
+{\bkmkend AAAAAAAADA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(BOOL) - {\b isBuildFile}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v becomeBuildFile\:<XCBuildFile>}
+{\xe \v <XCBuildFile>\:becomeBuildFile}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) becomeBuildFile }}
+\par
+{\bkmkstart AAAAAAAADB}
+{\bkmkend AAAAAAAADB}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+Reimplemented in {\b XCSourceFile} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAADC \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\xe \v isBuildFile\:<XCBuildFile>}
+{\xe \v <XCBuildFile>\:isBuildFile}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (BOOL) isBuildFile }}
+\par
+{\bkmkstart AAAAAAAADD}
+{\bkmkend AAAAAAAADD}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+Reimplemented in {\b XCSourceFile} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAADE \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this protocol was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildFile.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScript Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScript}
+{\xe \v XCBuildShellScript}
+{\bkmkstart AAAAAAAADF}
+{\bkmkend AAAAAAAADF}
+Inheritance diagram for XCBuildShellScript:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_build_shell_script.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(instancetype _Nonnull) - {\b initWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:}{\bkmkstart AAAAAAAADG}
+{\bkmkend AAAAAAAADG}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCBuildShellScript} *_Nonnull) + {\b shellScriptWithProject:key:name:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:}{\bkmkstart AAAAAAAADH}
+{\bkmkend AAAAAAAADH}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAADI}
+{\bkmkend AAAAAAAADI}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAADJ}
+{\bkmkend AAAAAAAADJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAADK}
+{\bkmkend AAAAAAAADK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+BOOL {\b runOnlyForDeploymentPostprocessing}{\bkmkstart AAAAAAAADL}
+{\bkmkend AAAAAAAADL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b shellScript}{\bkmkstart AAAAAAAADM}
+{\bkmkend AAAAAAAADM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b shellPath}{\bkmkstart AAAAAAAADN}
+{\bkmkend AAAAAAAADN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b files}{\bkmkstart AAAAAAAADO}
+{\bkmkend AAAAAAAADO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b inputPaths}{\bkmkstart AAAAAAAADP}
+{\bkmkend AAAAAAAADP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b outputPaths}{\bkmkstart AAAAAAAADQ}
+{\bkmkend AAAAAAAADQ}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildShellScript.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScriptDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScriptDefinition}
+{\xe \v XCBuildShellScriptDefinition}
+{\bkmkstart AAAAAAAADR}
+{\bkmkend AAAAAAAADR}
+Inheritance diagram for XCBuildShellScriptDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_build_shell_script_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(instancetype _Nonnull) - {\b initWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:}{\bkmkstart AAAAAAAADS}
+{\bkmkend AAAAAAAADS}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCBuildShellScriptDefinition} *_Nonnull) + {\b shellScriptDefinitionWithName:files:inputPaths:outputPaths:runOnlyForDeploymentPostprocessing:shellPath:shellScript:}{\bkmkstart AAAAAAAADT}
+{\bkmkend AAAAAAAADT}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAADU}
+{\bkmkend AAAAAAAADU}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAADV}
+{\bkmkend AAAAAAAADV}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAADW}
+{\bkmkend AAAAAAAADW}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+BOOL {\b runOnlyForDeploymentPostprocessing}{\bkmkstart AAAAAAAADX}
+{\bkmkend AAAAAAAADX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b shellScript}{\bkmkstart AAAAAAAADY}
+{\bkmkend AAAAAAAADY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b shellPath}{\bkmkstart AAAAAAAADZ}
+{\bkmkend AAAAAAAADZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b files}{\bkmkstart AAAAAAAAEA}
+{\bkmkend AAAAAAAAEA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b inputPaths}{\bkmkstart AAAAAAAAEB}
+{\bkmkend AAAAAAAAEB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSArray< NSString * > * {\b outputPaths}{\bkmkstart AAAAAAAAEC}
+{\bkmkend AAAAAAAAEC}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildShellScriptDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildShellScriptDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScriptDefinitionTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScriptDefinitionTests}
+{\xe \v XCBuildShellScriptDefinitionTests}
+{\bkmkstart AAAAAAAAED}
+{\bkmkend AAAAAAAAED}
+Inheritance diagram for XCBuildShellScriptDefinitionTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_build_shell_script_definition_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildShellScriptDefinitionTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScriptTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScriptTests}
+{\xe \v XCBuildShellScriptTests}
+{\bkmkstart AAAAAAAAEE}
+{\bkmkend AAAAAAAAEE}
+Inheritance diagram for XCBuildShellScriptTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_build_shell_script_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCBuildShellScriptTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCClassDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCClassDefinition}
+{\xe \v XCClassDefinition}
+{\bkmkstart AAAAAAAAEF}
+{\bkmkend AAAAAAAAEF}
+Inheritance diagram for XCClassDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_class_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(id) - {\b initWithName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(id) - {\b initWithName:language:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isObjectiveC}{\bkmkstart AAAAAAAAEG}
+{\bkmkend AAAAAAAAEG}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isObjectiveCPlusPlus}{\bkmkstart AAAAAAAAEH}
+{\bkmkend AAAAAAAAEH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isCPlusPlus}{\bkmkstart AAAAAAAAEI}
+{\bkmkend AAAAAAAAEI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b headerFileName}{\bkmkstart AAAAAAAAEJ}
+{\bkmkend AAAAAAAAEJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b sourceFileName}{\bkmkstart AAAAAAAAEK}
+{\bkmkend AAAAAAAAEK}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCClassDefinition} *) + {\b classDefinitionWithName:}{\bkmkstart AAAAAAAAEL}
+{\bkmkend AAAAAAAAEL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCClassDefinition} *) + {\b classDefinitionWithName:language:}{\bkmkstart AAAAAAAAEM}
+{\bkmkend AAAAAAAAEM}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _className}{\bkmkstart AAAAAAAAEN}
+{\bkmkend AAAAAAAAEN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _header}{\bkmkstart AAAAAAAAEO}
+{\bkmkend AAAAAAAAEO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _source}{\bkmkstart AAAAAAAAEP}
+{\bkmkend AAAAAAAAEP}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b className}{\bkmkstart AAAAAAAAEQ}
+{\bkmkend AAAAAAAAEQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b header}{\bkmkstart AAAAAAAAER}
+{\bkmkend AAAAAAAAER}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b source}{\bkmkstart AAAAAAAAES}
+{\bkmkend AAAAAAAAES}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v initWithName:\:XCClassDefinition}
+{\xe \v XCClassDefinition\:initWithName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id) initWithName: (NSString*)  {\i fileName}}}
+\par
+{\bkmkstart AAAAAAAAET}
+{\bkmkend AAAAAAAAET}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initializes a new objective-c class definition. \par
+}}
+{\xe \v initWithName:language:\:XCClassDefinition}
+{\xe \v XCClassDefinition\:initWithName:language:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id) {\b initWithName:} (NSString*)  {\i className} language: (ClassDefinitionLanguage)  {\i language}}}
+\par
+{\bkmkstart AAAAAAAAEU}
+{\bkmkend AAAAAAAAEU}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Initializes a new class definition with the specified language. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCClassDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCClassDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCClassDefinitionTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCClassDefinitionTests}
+{\xe \v XCClassDefinitionTests}
+{\bkmkstart AAAAAAAAEV}
+{\bkmkend AAAAAAAAEV}
+Inheritance diagram for XCClassDefinitionTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_class_definition_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCClassDefinitionTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFileOperationQueue Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCFileOperationQueue}
+{\xe \v XCFileOperationQueue}
+{\bkmkstart AAAAAAAAEW}
+{\bkmkend AAAAAAAAEW}
+Inheritance diagram for XCFileOperationQueue:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_file_operation_queue.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithBaseDirectory:}{\bkmkstart AAAAAAAAEX}
+{\bkmkend AAAAAAAAEX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b fileWithName:existsInProjectDirectory:}{\bkmkstart AAAAAAAAEY}
+{\bkmkend AAAAAAAAEY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b queueTextFile:inDirectory:withContents:}{\bkmkstart AAAAAAAAEZ}
+{\bkmkend AAAAAAAAEZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b queueDataFile:inDirectory:withContents:}{\bkmkstart AAAAAAAAFA}
+{\bkmkend AAAAAAAAFA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b queueFrameworkWithFilePath:inDirectory:}{\bkmkstart AAAAAAAAFB}
+{\bkmkend AAAAAAAAFB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b queueDeletion:}{\bkmkstart AAAAAAAAFC}
+{\bkmkend AAAAAAAAFC}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b queueDirectory:inDirectory:}{\bkmkstart AAAAAAAAFD}
+{\bkmkend AAAAAAAAFD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b commitFileOperations}{\bkmkstart AAAAAAAAFE}
+{\bkmkend AAAAAAAAFE}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCFileOperationQueue.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCFileOperationQueue.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFileOperationQueue() Category Reference\par \pard\plain 
+{\tc\tcl2 \v XCFileOperationQueue()}
+{\xe \v XCFileOperationQueue()}
+{\bkmkstart AAAAAAAAFF}
+{\bkmkend AAAAAAAAFF}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b destinationPathFor:inProjectDirectory:}{\bkmkstart AAAAAAAAFG}
+{\bkmkend AAAAAAAAFG}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b performFileWrites}{\bkmkstart AAAAAAAAFH}
+{\bkmkend AAAAAAAAFH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b performCopyFrameworks}{\bkmkstart AAAAAAAAFI}
+{\bkmkend AAAAAAAAFI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b performFileDeletions}{\bkmkstart AAAAAAAAFJ}
+{\bkmkend AAAAAAAAFJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b performCreateDirectories}{\bkmkstart AAAAAAAAFK}
+{\bkmkend AAAAAAAAFK}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCFileOperationQueue.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFrameworkDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCFrameworkDefinition}
+{\xe \v XCFrameworkDefinition}
+{\bkmkstart AAAAAAAAFL}
+{\bkmkend AAAAAAAAFL}
+Inheritance diagram for XCFrameworkDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_framework_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithFilePath:copyToDestination:}{\bkmkstart AAAAAAAAFM}
+{\bkmkend AAAAAAAAFM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithFilePath:copyToDestination:sourceTree:}{\bkmkstart AAAAAAAAFN}
+{\bkmkend AAAAAAAAFN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b fileName}{\bkmkstart AAAAAAAAFO}
+{\bkmkend AAAAAAAAFO}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCFrameworkDefinition} *) + {\b frameworkDefinitionWithFilePath:copyToDestination:}{\bkmkstart AAAAAAAAFP}
+{\bkmkend AAAAAAAAFP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCFrameworkDefinition} *) + {\b frameworkDefinitionWithFilePath:copyToDestination:sourceTree:}{\bkmkstart AAAAAAAAFQ}
+{\bkmkend AAAAAAAAFQ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _filePath}{\bkmkstart AAAAAAAAFR}
+{\bkmkend AAAAAAAAFR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+BOOL {\b _copyToDestination}{\bkmkstart AAAAAAAAFS}
+{\bkmkend AAAAAAAAFS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceTreeType {\b _sourceTree}{\bkmkstart AAAAAAAAFT}
+{\bkmkend AAAAAAAAFT}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b filePath}{\bkmkstart AAAAAAAAFU}
+{\bkmkend AAAAAAAAFU}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+BOOL {\b copyToDestination}{\bkmkstart AAAAAAAAFV}
+{\bkmkend AAAAAAAAFV}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceTreeType {\b sourceTree}{\bkmkstart AAAAAAAAFW}
+{\bkmkend AAAAAAAAFW}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCFrameworkDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCFrameworkDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFrameworkPath Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCFrameworkPath}
+{\xe \v XCFrameworkPath}
+{\bkmkstart AAAAAAAAFX}
+{\bkmkend AAAAAAAAFX}
+Inheritance diagram for XCFrameworkPath:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_framework_path.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCGroupTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCGroup Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCGroup}
+{\xe \v XCGroup}
+{\bkmkstart AAAAAAAAFY}
+{\bkmkend AAAAAAAAFY}
+\par
+{
+{\f2 #import <XCGroup.h>}}\par
+Inheritance diagram for XCGroup:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_group.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithProject:key:alias:path:children:}{\bkmkstart AAAAAAAAFZ}
+{\bkmkend AAAAAAAAFZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithProject:key:alias:path:children:memberType:}{\bkmkstart AAAAAAAAGA}
+{\bkmkend AAAAAAAAGA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromParentGroup}{\bkmkstart AAAAAAAAGB}
+{\bkmkend AAAAAAAAGB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromParentDeletingChildren:}{\bkmkstart AAAAAAAAGC}
+{\bkmkend AAAAAAAAGC}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCGroup} *) - {\b parentGroup}{\bkmkstart AAAAAAAAGD}
+{\bkmkend AAAAAAAAGD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isRootGroup}{\bkmkstart AAAAAAAAGE}
+{\bkmkend AAAAAAAAGE}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isEmpty}{\bkmkstart AAAAAAAAGF}
+{\bkmkend AAAAAAAAGF}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addClass:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addClass:toTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b removeClass:fromTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b removeHeader:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addFramework:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b removeFramework:fromTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b addGroupWithPath:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b addGroupWithAlias:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b addGroupWithAlias:groupType:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCVersionGroup} *) - {\b addVersionGroupWithPath:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addFolderReference:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addFileReference:withType:}{\bkmkstart AAAAAAAAGG}
+{\bkmkend AAAAAAAAGG}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCSourceFile} *) - {\b addFramework:toTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addSourceFile:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addXib:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addXib:toTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addSubProject:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addSubProject:toTargets:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeSubProject:}{\bkmkstart AAAAAAAAGH}
+{\bkmkend AAAAAAAAGH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeSubProject:fromTargets:}{\bkmkstart AAAAAAAAGI}
+{\bkmkend AAAAAAAAGI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< id< {\b XcodeGroupMember} > > *) - {\b members}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< NSString * > *) - {\b recursiveMembers}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< NSString * > *) - {\b buildFileKeys}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(id< {\b XcodeGroupMember} >) - {\b memberWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(id< {\b XcodeGroupMember} >) - {\b memberWithDisplayName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b removeMemberWithKey:}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCGroup} *) + {\b groupWithProject:key:alias:path:children:}{\bkmkstart AAAAAAAAGJ}
+{\bkmkend AAAAAAAAGJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCGroup} *) + {\b groupWithProject:key:alias:path:children:memberType:}{\bkmkstart AAAAAAAAGK}
+{\bkmkend AAAAAAAAGK}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _pathRelativeToParent}{\bkmkstart AAAAAAAAGL}
+{\bkmkend AAAAAAAAGL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAAGM}
+{\bkmkend AAAAAAAAGM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _alias}{\bkmkstart AAAAAAAAGN}
+{\bkmkend AAAAAAAAGN}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b alias}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b pathRelativeToParent}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b key}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSMutableArray< id< {\b XcodeGroupMember} > > * {\b children}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Represents a _group container in an Xcode project. A group can contain members of type {\f2 {\b XCSourceFile}}  or other groups. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v addClass:\:XCGroup}
+{\xe \v XCGroup\:addClass:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addClass: ({\b XCClassDefinition}*)  {\i classDefinition}}}
+\par
+{\bkmkstart AAAAAAAAGO}
+{\bkmkend AAAAAAAAGO}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a class to the _group, as specified by the ClassDefinition. If the _group already contains a class by the same name, the contents will be updated. \par
+}}
+{\xe \v addClass:toTargets:\:XCGroup}
+{\xe \v XCGroup\:addClass:toTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) {\b addClass:} ({\b XCClassDefinition} *)  {\i classDefinition} toTargets: (NSArray< {\b XCTarget} * > *)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAGP}
+{\bkmkend AAAAAAAAGP}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a class to the _group, making it a member of the specified [targets]({\b XCTarget}). \par
+}}
+{\xe \v addFolderReference:\:XCGroup}
+{\xe \v XCGroup\:addFolderReference:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addFolderReference: (NSString*)  {\i sourceFolder}}}
+\par
+{\bkmkstart AAAAAAAAGQ}
+{\bkmkend AAAAAAAAGQ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a reference to a folder \par
+}}
+{\xe \v addFramework:\:XCGroup}
+{\xe \v XCGroup\:addFramework:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addFramework: ({\b XCFrameworkDefinition}*)  {\i frameworkDefinition}}}
+\par
+{\bkmkstart AAAAAAAAGR}
+{\bkmkend AAAAAAAAGR}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a framework to the _group. If the _group already contains the framework, the contents will be updated if the framework definition's copyToDestination flag is yes, otherwise it will be ignored. \par
+}}
+{\xe \v addFramework:toTargets:\:XCGroup}
+{\xe \v XCGroup\:addFramework:toTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCSourceFile} *) {\b addFramework:} ({\b XCFrameworkDefinition} *)  {\i framework} toTargets: (NSArray< {\b XCTarget} * > *)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAGS}
+{\bkmkend AAAAAAAAGS}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a framework to the _group, making it a member of the specified targets. \par
+}}
+{\xe \v addGroupWithAlias:\:XCGroup}
+{\xe \v XCGroup\:addGroupWithAlias:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) addGroupWithAlias: (NSString *)  {\i alias}}}
+\par
+{\bkmkstart AAAAAAAAGT}
+{\bkmkend AAAAAAAAGT}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a _group with an alias to this _group. \par
+}}
+{\xe \v addGroupWithAlias:groupType:\:XCGroup}
+{\xe \v XCGroup\:addGroupWithAlias:groupType:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) {\b addGroupWithAlias:} (NSString *)  {\i alias} groupType: (XcodeMemberType)  {\i type}}}
+\par
+{\bkmkstart AAAAAAAAGU}
+{\bkmkend AAAAAAAAGU}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a _group with an alias to this _group and a particular type (only PBXGroupType and PBXVariantGroupType are valid) \par
+}}
+{\xe \v addGroupWithPath:\:XCGroup}
+{\xe \v XCGroup\:addGroupWithPath:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) addGroupWithPath: (NSString*)  {\i path}}}
+\par
+{\bkmkstart AAAAAAAAGV}
+{\bkmkend AAAAAAAAGV}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a _group with a path relative to this _group. \par
+}}
+{\xe \v addSourceFile:\:XCGroup}
+{\xe \v XCGroup\:addSourceFile:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addSourceFile: ({\b XCSourceFileDefinition}*)  {\i sourceFileDefinition}}}
+\par
+{\bkmkstart AAAAAAAAGW}
+{\bkmkend AAAAAAAAGW}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a source file of arbitrary type - image resource, header, etc. \par
+}}
+{\xe \v addSubProject:\:XCGroup}
+{\xe \v XCGroup\:addSubProject:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addSubProject: ({\b XCSubProjectDefinition}*)  {\i projectDefinition}}}
+\par
+{\bkmkstart AAAAAAAAGX}
+{\bkmkend AAAAAAAAGX}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a sub-project to the _group. If the _group already contains a sub-project by the same name, the contents will be updated. Returns boolean success/fail; if method fails, caller should assume that project file is corrupt (or file format has changed). \par
+}}
+{\xe \v addSubProject:toTargets:\:XCGroup}
+{\xe \v XCGroup\:addSubProject:toTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) {\b addSubProject:} ({\b XCSubProjectDefinition} *)  {\i projectDefinition} toTargets: (NSArray< {\b XCTarget} * > *)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAGY}
+{\bkmkend AAAAAAAAGY}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a sub-project to the _group, making it a member of the specified [targets]({\b XCTarget}). \par
+}}
+{\xe \v addVersionGroupWithPath:\:XCGroup}
+{\xe \v XCGroup\:addVersionGroupWithPath:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCVersionGroup} *) addVersionGroupWithPath: (NSString*)  {\i path}}}
+\par
+{\bkmkstart AAAAAAAAGZ}
+{\bkmkend AAAAAAAAGZ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a version group with a path relative to this group. \par
+}}
+{\xe \v addXib:\:XCGroup}
+{\xe \v XCGroup\:addXib:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addXib: ({\b XCXibDefinition}*)  {\i xibDefinition}}}
+\par
+{\bkmkstart AAAAAAAAHA}
+{\bkmkend AAAAAAAAHA}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a xib file to the _group. If the _group already contains a class by the same name, the contents will be updated. \par
+}}
+{\xe \v addXib:toTargets:\:XCGroup}
+{\xe \v XCGroup\:addXib:toTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) {\b addXib:} ({\b XCXibDefinition} *)  {\i xibDefinition} toTargets: (NSArray< {\b XCTarget} * > *)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAHB}
+{\bkmkend AAAAAAAAHB}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a xib to the _group, making it a member of the specified [targets]({\b XCTarget}). \par
+}}
+{\xe \v buildFileKeys\:XCGroup}
+{\xe \v XCGroup\:buildFileKeys}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) buildFileKeys }}
+\par
+{\bkmkstart AAAAAAAAHC}
+{\bkmkend AAAAAAAAHC}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Keys of members from this group \par
+}}
+{\xe \v members\:XCGroup}
+{\xe \v XCGroup\:members}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray< id< {\b XcodeGroupMember} > > *) members }}
+\par
+{\bkmkstart AAAAAAAAHD}
+{\bkmkend AAAAAAAAHD}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Instances of {\f2 {\b XCSourceFile}}  and {\f2 {\b XCGroup}}  returned as the type {\f2 {\b XcodeGroupMember}} . \par
+}}
+{\xe \v memberWithDisplayName:\:XCGroup}
+{\xe \v XCGroup\:memberWithDisplayName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id< {\b XcodeGroupMember} >) memberWithDisplayName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAHE}
+{\bkmkend AAAAAAAAHE}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the child with the specified name, or nil. \par
+}}
+{\xe \v memberWithKey:\:XCGroup}
+{\xe \v XCGroup\:memberWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id< {\b XcodeGroupMember} >) memberWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAHF}
+{\bkmkend AAAAAAAAHF}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the child with the specified key, or nil. \par
+}}
+{\xe \v recursiveMembers\:XCGroup}
+{\xe \v XCGroup\:recursiveMembers}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) recursiveMembers }}
+\par
+{\bkmkstart AAAAAAAAHG}
+{\bkmkend AAAAAAAAHG}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Keys of members from this group and any child groups. \par
+}}
+{\xe \v removeClass:fromTargets:\:XCGroup}
+{\xe \v XCGroup\:removeClass:fromTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) removeClass: ({\b XCClassDefinition}*)  {\i classDefinition} fromTargets: (NSArray*)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAHH}
+{\bkmkend AAAAAAAAHH}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Removes a class from the _group \par
+}}
+{\xe \v removeFramework:fromTargets:\:XCGroup}
+{\xe \v XCGroup\:removeFramework:fromTargets:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) removeFramework: ({\b XCFrameworkDefinition} *)  {\i frameworkDefinition} fromTargets: (NSArray *)  {\i targets}}}
+\par
+{\bkmkstart AAAAAAAAHI}
+{\bkmkend AAAAAAAAHI}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Removes a framework from the _group \par
+}}
+{\xe \v removeHeader:\:XCGroup}
+{\xe \v XCGroup\:removeHeader:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) removeHeader: ({\b XCClassDefinition}*)  {\i classDefinition}}}
+\par
+{\bkmkstart AAAAAAAAHJ}
+{\bkmkend AAAAAAAAHJ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Removes a header from the _group \par
+}}
+{\xe \v removeMemberWithKey:\:XCGroup}
+{\xe \v XCGroup\:removeMemberWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) removeMemberWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAHK}
+{\bkmkend AAAAAAAAHK}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Remove the member with the specified key \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Property Documentation\par
+\pard\plain 
+{\xe \v alias\:XCGroup}
+{\xe \v XCGroup\:alias}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) alias{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAHL}
+{\bkmkend AAAAAAAAHL}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The alias of the group, which can be used to give the group a name other than the last path component.\par
+See: [{\b XcodeGroupMember} displayName] \par
+}}
+{\xe \v children\:XCGroup}
+{\xe \v XCGroup\:children}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSMutableArray<id<{\b XcodeGroupMember}> >*) children{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAHM}
+{\bkmkend AAAAAAAAHM}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+An array containing the groups members as {\f2 {\b XcodeGroupMember}}  types. \par
+}}
+{\xe \v key\:XCGroup}
+{\xe \v XCGroup\:key}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) key{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAHN}
+{\bkmkend AAAAAAAAHN}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The group's unique key. \par
+}}
+{\xe \v pathRelativeToParent\:XCGroup}
+{\xe \v XCGroup\:pathRelativeToParent}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) pathRelativeToParent{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAHO}
+{\bkmkend AAAAAAAAHO}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The path of the group relative to the group's parent.\par
+See: [{\b XcodeGroupMember} displayName] \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCGroup.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCGroup.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCGroupTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCGroupTests}
+{\xe \v XCGroupTests}
+{\bkmkstart AAAAAAAAHP}
+{\bkmkend AAAAAAAAHP}
+Inheritance diagram for XCGroupTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_group_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCGroupTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCKeyBuilder Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCKeyBuilder}
+{\xe \v XCKeyBuilder}
+{\bkmkstart AAAAAAAAHQ}
+{\bkmkend AAAAAAAAHQ}
+Inheritance diagram for XCKeyBuilder:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_key_builder.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initHashValueMD5HashWithBytes:length:}{\bkmkstart AAAAAAAAHR}
+{\bkmkend AAAAAAAAHR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b build}{\bkmkstart AAAAAAAAHS}
+{\bkmkend AAAAAAAAHS}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCKeyBuilder} *) + {\b forItemNamed:}{\bkmkstart AAAAAAAAHT}
+{\bkmkend AAAAAAAAHT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCKeyBuilder} *) + {\b createUnique}{\bkmkstart AAAAAAAAHU}
+{\bkmkend AAAAAAAAHU}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+unsigned char {\b _value} [HASH_VALUE_STORAGE_SIZE]{\bkmkstart AAAAAAAAHV}
+{\bkmkend AAAAAAAAHV}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCKeyBuilder.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCKeyBuilder.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCKeyBuilderTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCKeyBuilderTests}
+{\xe \v XCKeyBuilderTests}
+{\bkmkstart AAAAAAAAHW}
+{\bkmkend AAAAAAAAHW}
+Inheritance diagram for XCKeyBuilderTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_key_builder_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCKeyBuilderTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeFileReferenceTypeTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XcodeFileReferenceTypeTests}
+{\xe \v XcodeFileReferenceTypeTests}
+{\bkmkstart AAAAAAAAHX}
+{\bkmkend AAAAAAAAHX}
+Inheritance diagram for XcodeFileReferenceTypeTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_xcode_file_reference_type_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeFileReferenceTypeTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+<XcodeGroupMember> Protocol Reference\par \pard\plain 
+{\tc\tcl2 \v <XcodeGroupMember>}
+{\xe \v <XcodeGroupMember>}
+{\bkmkstart AAAAAAAAHY}
+{\bkmkend AAAAAAAAHY}
+Inheritance diagram for <XcodeGroupMember>:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "protocol_xcode_group_member-p.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b key}{\bkmkstart AAAAAAAAHZ}
+{\bkmkend AAAAAAAAHZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b displayName}{\bkmkstart AAAAAAAAIA}
+{\bkmkend AAAAAAAAIA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b pathRelativeToProjectRoot}{\bkmkstart AAAAAAAAIB}
+{\bkmkend AAAAAAAAIB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(XcodeMemberType) - {\b groupMemberType}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v groupMemberType\:<XcodeGroupMember>}
+{\xe \v <XcodeGroupMember>\:groupMemberType}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (XcodeMemberType) groupMemberType }}
+\par
+{\bkmkstart AAAAAAAAIC}
+{\bkmkend AAAAAAAAIC}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Group members can either be other groups (PBXGroup) or source files (PBXFileReference). \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this protocol was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XcodeGroupMember.h\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProject Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCProject}
+{\xe \v XCProject}
+{\bkmkstart AAAAAAAAID}
+{\bkmkend AAAAAAAAID}
+Inheritance diagram for XCProject:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_project.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(id) - {\b initWithFilePath:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id< {\b XcodeGroupMember} >) - {\b groupMemberWithKey:}{\bkmkstart AAAAAAAAIE}
+{\bkmkend AAAAAAAAIE}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCSourceFile} * > *) - {\b files}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCSourceFile} *) - {\b fileWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCSourceFile} *) - {\b fileWithName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCSourceFile} * > *) - {\b headerFiles}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCSourceFile} * > *) - {\b objectiveCFiles}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCSourceFile} * > *) - {\b objectiveCPlusPlusFiles}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCSourceFile} * > *) - {\b xibFiles}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCSourceFile} * > *) - {\b imagePNGFiles}{\bkmkstart AAAAAAAAIF}
+{\bkmkend AAAAAAAAIF}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b filePath}{\bkmkstart AAAAAAAAIG}
+{\bkmkend AAAAAAAAIG}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCGroup} * > *) - {\b groups}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b rootGroup}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCGroup} * > *) - {\b rootGroups}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b mainGroup}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b groupWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b groupWithDisplayName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b groupWithPathFromRoot:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b groupForGroupMemberWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCGroup} *) - {\b groupWithSourceFile:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b pruneEmptyGroups}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray *) - {\b versionGroups}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCVersionGroup} *) - {\b versionGroupWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCVersionGroup} *) - {\b versionGroupWithName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray< {\b XCTarget} * > *) - {\b targets}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCTarget} *) - {\b targetWithName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSArray *) - {\b applicationTargets}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSDictionary< NSString *, {\b XCProjectBuildConfig} * > *) - {\b configurations}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCProjectBuildConfig} *) - {\b configurationWithName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCProjectBuildConfig} *) - {\b defaultConfiguration}{\bkmkstart AAAAAAAAIH}
+{\bkmkend AAAAAAAAIH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeObjectWithKey:}{\bkmkstart AAAAAAAAII}
+{\bkmkend AAAAAAAAII}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b save}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSMutableDictionary *) - {\b objects}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSMutableDictionary *) - {\b dataStore}{\bkmkstart AAAAAAAAIJ}
+{\bkmkend AAAAAAAAIJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b dropCache}{\bkmkstart AAAAAAAAIK}
+{\bkmkend AAAAAAAAIK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b referenceProxyKeyForName:}{\bkmkstart AAAAAAAAIL}
+{\bkmkend AAAAAAAAIL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCSourceFile} * > *) - {\b buildProductsForTargets:}{\bkmkstart AAAAAAAAIM}
+{\bkmkend AAAAAAAAIM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addAsTargetDependency:toTargets:}{\bkmkstart AAAAAAAAIN}
+{\bkmkend AAAAAAAAIN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< NSString * > *) - {\b keysForProjectObjectsOfType:withIdentifier:singleton:required:}{\bkmkstart AAAAAAAAIO}
+{\bkmkend AAAAAAAAIO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSMutableDictionary *) - {\b PBXProjectDict}{\bkmkstart AAAAAAAAIP}
+{\bkmkend AAAAAAAAIP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeProxies:}{\bkmkstart AAAAAAAAIQ}
+{\bkmkend AAAAAAAAIQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addProxies:}{\bkmkstart AAAAAAAAIR}
+{\bkmkend AAAAAAAAIR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromProjectReferences:forProductsGroup:}{\bkmkstart AAAAAAAAIS}
+{\bkmkend AAAAAAAAIS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeTargetDependencies:}{\bkmkstart AAAAAAAAIT}
+{\bkmkend AAAAAAAAIT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b containerItemProxyKeyForName:proxyType:}{\bkmkstart AAAAAAAAIU}
+{\bkmkend AAAAAAAAIU}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b productsGroupKeyForKey:}{\bkmkstart AAAAAAAAIV}
+{\bkmkend AAAAAAAAIV}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCProject} *) + {\b projectWithFilePath:}{\bkmkstart AAAAAAAAIW}
+{\bkmkend AAAAAAAAIW}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCFileOperationQueue} * {\b _fileOperationQueue}{\bkmkstart AAAAAAAAIX}
+{\bkmkend AAAAAAAAIX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _filePath}{\bkmkstart AAAAAAAAIY}
+{\bkmkend AAAAAAAAIY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSMutableDictionary * {\b _dataStore}{\bkmkstart AAAAAAAAIZ}
+{\bkmkend AAAAAAAAIZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSMutableArray * {\b _targets}{\bkmkstart AAAAAAAAJA}
+{\bkmkend AAAAAAAAJA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSMutableDictionary * {\b _groups}{\bkmkstart AAAAAAAAJB}
+{\bkmkend AAAAAAAAJB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSMutableDictionary * {\b _versionGroups}{\bkmkstart AAAAAAAAJC}
+{\bkmkend AAAAAAAAJC}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSMutableDictionary * {\b _configurations}{\bkmkstart AAAAAAAAJD}
+{\bkmkend AAAAAAAAJD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _defaultConfigurationName}{\bkmkstart AAAAAAAAJE}
+{\bkmkend AAAAAAAAJE}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _rootObjectKey}{\bkmkstart AAAAAAAAJF}
+{\bkmkend AAAAAAAAJF}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCFileOperationQueue} * {\b fileOperationQueue}{\bkmkstart AAAAAAAAJG}
+{\bkmkend AAAAAAAAJG}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v applicationTargets\:XCProject}
+{\xe \v XCProject\:applicationTargets}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) applicationTargets }}
+\par
+{\bkmkstart AAAAAAAAJH}
+{\bkmkend AAAAAAAAJH}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Lists the targets which are of application type. \par
+}}
+{\xe \v configurations\:XCProject}
+{\xe \v XCProject\:configurations}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSDictionary *) configurations }}
+\par
+{\bkmkstart AAAAAAAAJI}
+{\bkmkend AAAAAAAAJI}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Lists the configurations in an xcode project. \par
+}}
+{\xe \v configurationWithName:\:XCProject}
+{\xe \v XCProject\:configurationWithName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCProjectBuildConfig} *) configurationWithName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAJJ}
+{\bkmkend AAAAAAAAJJ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the configuration with the specified name, or nil. \par
+}}
+{\xe \v files\:XCProject}
+{\xe \v XCProject\:files}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) files }}
+\par
+{\bkmkstart AAAAAAAAJK}
+{\bkmkend AAAAAAAAJK}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns all file resources in the project, as an array of {\f2 {\b XCSourceFile}}  objects. \par
+}}
+{\xe \v fileWithKey:\:XCProject}
+{\xe \v XCProject\:fileWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCSourceFile} *) fileWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAJL}
+{\bkmkend AAAAAAAAJL}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the project file with the specified key, or nil. \par
+}}
+{\xe \v fileWithName:\:XCProject}
+{\xe \v XCProject\:fileWithName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCSourceFile} *) fileWithName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAJM}
+{\bkmkend AAAAAAAAJM}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the project file with the specified name, or nil. If more than one project file matches the specified name, which one is returned is undefined. \par
+}}
+{\xe \v groupForGroupMemberWithKey:\:XCProject}
+{\xe \v XCProject\:groupForGroupMemberWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) groupForGroupMemberWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAJN}
+{\bkmkend AAAAAAAAJN}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the parent _group for the _group or file with the given key; \par
+}}
+{\xe \v groups\:XCProject}
+{\xe \v XCProject\:groups}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) groups }}
+\par
+{\bkmkstart AAAAAAAAJO}
+{\bkmkend AAAAAAAAJO}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Lists the groups in an xcode project, returning an array of {\f2 {\b XCGroup}}  objects. \par
+}}
+{\xe \v groupWithDisplayName:\:XCProject}
+{\xe \v XCProject\:groupWithDisplayName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) groupWithDisplayName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAJP}
+{\bkmkend AAAAAAAAJP}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the {\i first}  group in the project with the given name, or nil. \par
+}}
+{\xe \v groupWithKey:\:XCProject}
+{\xe \v XCProject\:groupWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) groupWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAJQ}
+{\bkmkend AAAAAAAAJQ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the group with the given key, or nil. \par
+}}
+{\xe \v groupWithPathFromRoot:\:XCProject}
+{\xe \v XCProject\:groupWithPathFromRoot:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) groupWithPathFromRoot: (NSString*)  {\i path}}}
+\par
+{\bkmkstart AAAAAAAAJR}
+{\bkmkend AAAAAAAAJR}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the _group with the specified display name path - the directory relative to the root _group. Eg Source/Main \par
+}}
+{\xe \v groupWithSourceFile:\:XCProject}
+{\xe \v XCProject\:groupWithSourceFile:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) groupWithSourceFile: ({\b XCSourceFile}*)  {\i sourceFile}}}
+\par
+{\bkmkstart AAAAAAAAJS}
+{\bkmkend AAAAAAAAJS}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the parent group for the group or file with the source file \par
+}}
+{\xe \v headerFiles\:XCProject}
+{\xe \v XCProject\:headerFiles}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) headerFiles }}
+\par
+{\bkmkstart AAAAAAAAJT}
+{\bkmkend AAAAAAAAJT}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns all header files in the project, as an array of {\f2 {\b XCSourceFile}}  objects. \par
+}}
+{\xe \v initWithFilePath:\:XCProject}
+{\xe \v XCProject\:initWithFilePath:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id) initWithFilePath: (NSString*)  {\i filePath}}}
+\par
+{\bkmkstart AAAAAAAAJU}
+{\bkmkend AAAAAAAAJU}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Creates a new project editor instance with the specified Project.xcodeproj file. \par
+}}
+{\xe \v mainGroup\:XCProject}
+{\xe \v XCProject\:mainGroup}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) mainGroup }}
+\par
+{\bkmkstart AAAAAAAAJV}
+{\bkmkend AAAAAAAAJV}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the main group under root object \par
+}}
+{\xe \v objectiveCFiles\:XCProject}
+{\xe \v XCProject\:objectiveCFiles}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) objectiveCFiles }}
+\par
+{\bkmkstart AAAAAAAAJW}
+{\bkmkend AAAAAAAAJW}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns all implementation obj-c implementation files in the project, as an array of {\f2 {\b XCSourceFile}}  objects. \par
+}}
+{\xe \v objectiveCPlusPlusFiles\:XCProject}
+{\xe \v XCProject\:objectiveCPlusPlusFiles}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) objectiveCPlusPlusFiles }}
+\par
+{\bkmkstart AAAAAAAAJX}
+{\bkmkend AAAAAAAAJX}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns all implementation obj-c++ implementation files in the project, as an array of {\f2 {\b XCSourceFile}}  objects. \par
+}}
+{\xe \v objects\:XCProject}
+{\xe \v XCProject\:objects}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSMutableDictionary *) objects }}
+\par
+{\bkmkstart AAAAAAAAJY}
+{\bkmkend AAAAAAAAJY}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Raw project data. \par
+}}
+{\xe \v pruneEmptyGroups\:XCProject}
+{\xe \v XCProject\:pruneEmptyGroups}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) pruneEmptyGroups }}
+\par
+{\bkmkstart AAAAAAAAJZ}
+{\bkmkend AAAAAAAAJZ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Removes all empty groups from the project. \par
+}}
+{\xe \v rootGroup\:XCProject}
+{\xe \v XCProject\:rootGroup}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCGroup} *) rootGroup }}
+\par
+{\bkmkstart AAAAAAAAKA}
+{\bkmkend AAAAAAAAKA}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the root (top-level) _group. \par
+}}
+{\xe \v rootGroups\:XCProject}
+{\xe \v XCProject\:rootGroups}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) rootGroups }}
+\par
+{\bkmkstart AAAAAAAAKB}
+{\bkmkend AAAAAAAAKB}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the root (top-level) groups, if there are multiple. An array of rootGroup if there is only one. \par
+}}
+{\xe \v save\:XCProject}
+{\xe \v XCProject\:save}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) save }}
+\par
+{\bkmkstart AAAAAAAAKC}
+{\bkmkend AAAAAAAAKC}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Saves a project after editing. \par
+}}
+{\xe \v targets\:XCProject}
+{\xe \v XCProject\:targets}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) targets }}
+\par
+{\bkmkstart AAAAAAAAKD}
+{\bkmkend AAAAAAAAKD}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Lists the targets in an xcode project, returning an array of {\f2 {\b XCTarget}}  objects. \par
+}}
+{\xe \v targetWithName:\:XCProject}
+{\xe \v XCProject\:targetWithName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCTarget} *) targetWithName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAKE}
+{\bkmkend AAAAAAAAKE}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the target with the specified name, or nil. \par
+}}
+{\xe \v versionGroups\:XCProject}
+{\xe \v XCProject\:versionGroups}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) versionGroups }}
+\par
+{\bkmkstart AAAAAAAAKF}
+{\bkmkend AAAAAAAAKF}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Lists the version groups in an xcode project, returning an array of {\f2 {\b XCVersionGroup}}  objects. \par
+}}
+{\xe \v versionGroupWithKey:\:XCProject}
+{\xe \v XCProject\:versionGroupWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCVersionGroup} *) versionGroupWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAKG}
+{\bkmkend AAAAAAAAKG}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the version group with the given key, or nil. \par
+}}
+{\xe \v versionGroupWithName:\:XCProject}
+{\xe \v XCProject\:versionGroupWithName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCVersionGroup} *) versionGroupWithName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAKH}
+{\bkmkend AAAAAAAAKH}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the version group with the given file name, or nil. \par
+}}
+{\xe \v xibFiles\:XCProject}
+{\xe \v XCProject\:xibFiles}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSArray *) xibFiles }}
+\par
+{\bkmkstart AAAAAAAAKI}
+{\bkmkend AAAAAAAAKI}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns all the xib files in the project, as an array of {\f2 {\b XCSourceFile}}  objects. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProject.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProject.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProject(SubProject) Category Reference\par \pard\plain 
+{\tc\tcl2 \v XCProject(SubProject)}
+{\xe \v XCProject(SubProject)}
+{\bkmkstart AAAAAAAAKJ}
+{\bkmkend AAAAAAAAKJ}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b referenceProxyKeyForName:}{\bkmkstart AAAAAAAAKK}
+{\bkmkend AAAAAAAAKK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCSourceFile} * > *) - {\b buildProductsForTargets:}{\bkmkstart AAAAAAAAKL}
+{\bkmkend AAAAAAAAKL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addAsTargetDependency:toTargets:}{\bkmkstart AAAAAAAAKM}
+{\bkmkend AAAAAAAAKM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< NSString * > *) - {\b keysForProjectObjectsOfType:withIdentifier:singleton:required:}{\bkmkstart AAAAAAAAKN}
+{\bkmkend AAAAAAAAKN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSMutableDictionary *) - {\b PBXProjectDict}{\bkmkstart AAAAAAAAKO}
+{\bkmkend AAAAAAAAKO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeProxies:}{\bkmkstart AAAAAAAAKP}
+{\bkmkend AAAAAAAAKP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addProxies:}{\bkmkstart AAAAAAAAKQ}
+{\bkmkend AAAAAAAAKQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromProjectReferences:forProductsGroup:}{\bkmkstart AAAAAAAAKR}
+{\bkmkend AAAAAAAAKR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeTargetDependencies:}{\bkmkstart AAAAAAAAKS}
+{\bkmkend AAAAAAAAKS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b containerItemProxyKeyForName:proxyType:}{\bkmkstart AAAAAAAAKT}
+{\bkmkend AAAAAAAAKT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b productsGroupKeyForKey:}{\bkmkstart AAAAAAAAKU}
+{\bkmkend AAAAAAAAKU}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProject+SubProject.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProject+SubProject.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProjectBuildConfig Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCProjectBuildConfig}
+{\xe \v XCProjectBuildConfig}
+{\bkmkstart AAAAAAAAKV}
+{\bkmkend AAAAAAAAKV}
+Inheritance diagram for XCProjectBuildConfig:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_project_build_config.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(instancetype) - {\b initWithProject:key:}{\bkmkstart AAAAAAAAKW}
+{\bkmkend AAAAAAAAKW}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addBuildSettings:}{\bkmkstart AAAAAAAAKX}
+{\bkmkend AAAAAAAAKX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addOrReplaceSetting:forKey:}{\bkmkstart AAAAAAAAKY}
+{\bkmkend AAAAAAAAKY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id< NSCopying >) - {\b valueForKey:}{\bkmkstart AAAAAAAAKZ}
+{\bkmkend AAAAAAAAKZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeSettingByKey:}{\bkmkstart AAAAAAAALA}
+{\bkmkend AAAAAAAALA}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSDictionary< NSString *, NSString * > *) + {\b buildConfigurationsFromArray:inProject:}{\bkmkstart AAAAAAAALB}
+{\bkmkend AAAAAAAALB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) + {\b duplicatedBuildConfigurationListWithKey:inProject:withBuildConfigurationVisitor:}{\bkmkstart AAAAAAAALC}
+{\bkmkend AAAAAAAALC}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAALD}
+{\bkmkend AAAAAAAALD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSDictionary * {\b specifiedBuildSettings}{\bkmkstart AAAAAAAALE}
+{\bkmkend AAAAAAAALE}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProjectBuildConfig.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProjectBuildConfig.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProjectTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCProjectTests}
+{\xe \v XCProjectTests}
+{\bkmkstart AAAAAAAALF}
+{\bkmkend AAAAAAAALF}
+Inheritance diagram for XCProjectTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_project_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCProjectTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSourceFile Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCSourceFile}
+{\xe \v XCSourceFile}
+{\bkmkstart AAAAAAAALG}
+{\bkmkend AAAAAAAALG}
+\par
+{
+{\f2 #import <XCSourceFile.h>}}\par
+Inheritance diagram for XCSourceFile:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_source_file.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithProject:key:type:name:sourceTree:path:}{\bkmkstart AAAAAAAALH}
+{\bkmkend AAAAAAAALH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(BOOL) - {\b isBuildFile}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b canBecomeBuildFile}{\bkmkstart AAAAAAAALI}
+{\bkmkend AAAAAAAALI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(XcodeMemberType) - {\b buildPhase}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(NSString *) - {\b buildFileKey}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b becomeBuildFile}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b removeBuildFile}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b setCompilerFlags:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b setWeakReference}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCSourceFile} *) + {\b sourceFileWithProject:key:type:name:sourceTree:path:}{\bkmkstart AAAAAAAALJ}
+{\bkmkend AAAAAAAALJ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceFileType {\b type}{\bkmkstart AAAAAAAALK}
+{\bkmkend AAAAAAAALK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAALL}
+{\bkmkend AAAAAAAALL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAALM}
+{\bkmkend AAAAAAAALM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b sourceTree}{\bkmkstart AAAAAAAALN}
+{\bkmkend AAAAAAAALN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b path}{\bkmkstart AAAAAAAALO}
+{\bkmkend AAAAAAAALO}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Represents a file resource in an xcode project. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v becomeBuildFile\:XCSourceFile}
+{\xe \v XCSourceFile\:becomeBuildFile}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) becomeBuildFile }}
+\par
+{\bkmkstart AAAAAAAADC}
+{\bkmkend AAAAAAAADC}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds this file to the project as an {\f2 xcode_BuildFile} , ready to be included in targets. \par
+}{
+Reimplemented from {\b <XCBuildFile>} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\xe \v buildFileKey\:XCSourceFile}
+{\xe \v XCSourceFile\:buildFileKey}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString *) buildFileKey }}
+\par
+{\bkmkstart AAAAAAAALP}
+{\bkmkend AAAAAAAALP}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+Reimplemented from {\b <XCBuildFile>} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\xe \v buildPhase\:XCSourceFile}
+{\xe \v XCSourceFile\:buildPhase}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (XcodeMemberType) buildPhase }}
+\par
+{\bkmkstart AAAAAAAALQ}
+{\bkmkend AAAAAAAALQ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+\par
+{
+Reimplemented from {\b <XCBuildFile>} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\xe \v isBuildFile\:XCSourceFile}
+{\xe \v XCSourceFile\:isBuildFile}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (BOOL) isBuildFile }}
+\par
+{\bkmkstart AAAAAAAADE}
+{\bkmkend AAAAAAAADE}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+If yes, indicates the file is able to be included for compilation in an {\f2 {\b XCTarget}} . \par
+}{
+Reimplemented from {\b <XCBuildFile>} ({\i p.{\field\fldedit {\*\fldinst PAGEREF AAAAAAAACY \\*MERGEFORMAT}{\fldrslt pagenum}}}).}\par
+}
+{\xe \v removeBuildFile\:XCSourceFile}
+{\xe \v XCSourceFile\:removeBuildFile}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) removeBuildFile }}
+\par
+{\bkmkstart AAAAAAAALR}
+{\bkmkend AAAAAAAALR}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Removes this file as an {\f2 xcode_BuildFile}  from the project. \par
+}}
+{\xe \v setCompilerFlags:\:XCSourceFile}
+{\xe \v XCSourceFile\:setCompilerFlags:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) setCompilerFlags: (NSString *)  {\i value}}}
+\par
+{\bkmkstart AAAAAAAALS}
+{\bkmkend AAAAAAAALS}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Method for setting Compiler Flags for individual build files\par
+{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid 
+Parameters\par}
+\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187
+\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748
+\pard \widctlpar\intbl\adjustright
+{{\i value} \cell }{String value to set in Compiler Flags \cell }
+{\row }
+}
+}}
+{\xe \v setWeakReference\:XCSourceFile}
+{\xe \v XCSourceFile\:setWeakReference}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) setWeakReference }}
+\par
+{\bkmkstart AAAAAAAALT}
+{\bkmkend AAAAAAAALT}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Method for setting the build file is a weak reference \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSourceFile.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSourceFile.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSourceFileDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCSourceFileDefinition}
+{\xe \v XCSourceFileDefinition}
+{\bkmkstart AAAAAAAALU}
+{\bkmkend AAAAAAAALU}
+Inheritance diagram for XCSourceFileDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_source_file_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithName:text:type:}{\bkmkstart AAAAAAAALV}
+{\bkmkend AAAAAAAALV}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithName:data:type:}{\bkmkstart AAAAAAAALW}
+{\bkmkend AAAAAAAALW}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCSourceFileDefinition} *) + {\b sourceDefinitionWithName:text:type:}{\bkmkstart AAAAAAAALX}
+{\bkmkend AAAAAAAALX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCSourceFileDefinition} *) + {\b sourceDefinitionWithName:data:type:}{\bkmkstart AAAAAAAALY}
+{\bkmkend AAAAAAAALY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCSourceFileDefinition} *) + {\b sourceDefinitionWithAssetCatalogName:}{\bkmkstart AAAAAAAALZ}
+{\bkmkend AAAAAAAALZ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _sourceFileName}{\bkmkstart AAAAAAAAMA}
+{\bkmkend AAAAAAAAMA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceFileType {\b _type}{\bkmkstart AAAAAAAAMB}
+{\bkmkend AAAAAAAAMB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSData * {\b _data}{\bkmkstart AAAAAAAAMC}
+{\bkmkend AAAAAAAAMC}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b sourceFileName}{\bkmkstart AAAAAAAAMD}
+{\bkmkend AAAAAAAAMD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSData * {\b data}{\bkmkstart AAAAAAAAME}
+{\bkmkend AAAAAAAAME}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceFileType {\b type}{\bkmkstart AAAAAAAAMF}
+{\bkmkend AAAAAAAAMF}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSourceFileDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSourceFileDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSubProjectDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCSubProjectDefinition}
+{\xe \v XCSubProjectDefinition}
+{\bkmkstart AAAAAAAAMG}
+{\bkmkend AAAAAAAAMG}
+Inheritance diagram for XCSubProjectDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_sub_project_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithName:path:parentProject:}{\bkmkstart AAAAAAAAMH}
+{\bkmkend AAAAAAAAMH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b projectFileName}{\bkmkstart AAAAAAAAMI}
+{\bkmkend AAAAAAAAMI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b fullPathName}{\bkmkstart AAAAAAAAMJ}
+{\bkmkend AAAAAAAAMJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< NSString * > *) - {\b buildProductNames}{\bkmkstart AAAAAAAAMK}
+{\bkmkend AAAAAAAAMK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b projectKey}{\bkmkstart AAAAAAAAML}
+{\bkmkend AAAAAAAAML}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b pathRelativeToProjectRoot}{\bkmkstart AAAAAAAAMM}
+{\bkmkend AAAAAAAAMM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b initFullProjectPath:groupPath:}{\bkmkstart AAAAAAAAMN}
+{\bkmkend AAAAAAAAMN}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCSubProjectDefinition} *) + {\b withName:path:parentProject:}{\bkmkstart AAAAAAAAMO}
+{\bkmkend AAAAAAAAMO}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _name}{\bkmkstart AAAAAAAAMP}
+{\bkmkend AAAAAAAAMP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _path}{\bkmkstart AAAAAAAAMQ}
+{\bkmkend AAAAAAAAMQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceFileType {\b _type}{\bkmkstart AAAAAAAAMR}
+{\bkmkend AAAAAAAAMR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCProject} * {\b _subProject}{\bkmkstart AAAAAAAAMS}
+{\bkmkend AAAAAAAAMS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCProject} * {\b _parentProject}{\bkmkstart AAAAAAAAMT}
+{\bkmkend AAAAAAAAMT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAAMU}
+{\bkmkend AAAAAAAAMU}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _fullProjectPath}{\bkmkstart AAAAAAAAMV}
+{\bkmkend AAAAAAAAMV}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _relativePath}{\bkmkstart AAAAAAAAMW}
+{\bkmkend AAAAAAAAMW}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAAMX}
+{\bkmkend AAAAAAAAMX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b path}{\bkmkstart AAAAAAAAMY}
+{\bkmkend AAAAAAAAMY}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+XcodeSourceFileType {\b type}{\bkmkstart AAAAAAAAMZ}
+{\bkmkend AAAAAAAAMZ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCProject} * {\b subProject}{\bkmkstart AAAAAAAANA}
+{\bkmkend AAAAAAAANA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCProject} * {\b parentProject}{\bkmkstart AAAAAAAANB}
+{\bkmkend AAAAAAAANB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAANC}
+{\bkmkend AAAAAAAANC}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b fullProjectPath}{\bkmkstart AAAAAAAAND}
+{\bkmkend AAAAAAAAND}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSubProjectDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSubProjectDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSubProjectDefinition() Category Reference\par \pard\plain 
+{\tc\tcl2 \v XCSubProjectDefinition()}
+{\xe \v XCSubProjectDefinition()}
+{\bkmkstart AAAAAAAANE}
+{\bkmkend AAAAAAAANE}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b relativePath}{\bkmkstart AAAAAAAANF}
+{\bkmkend AAAAAAAANF}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this category was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSubProjectDefinition.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSubProjectDefinitionTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCSubProjectDefinitionTests}
+{\xe \v XCSubProjectDefinitionTests}
+{\bkmkstart AAAAAAAANG}
+{\bkmkend AAAAAAAANG}
+Inheritance diagram for XCSubProjectDefinitionTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_sub_project_definition_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCSubProjectDefinitionTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCTarget Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCTarget}
+{\xe \v XCTarget}
+{\bkmkstart AAAAAAAANH}
+{\bkmkend AAAAAAAANH}
+\par
+{
+{\f2 #import <XCTarget.h>}}\par
+Inheritance diagram for XCTarget:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_target.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithProject:key:name:productName:productReference:productType:}{\bkmkstart AAAAAAAANI}
+{\bkmkend AAAAAAAANI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCSourceFile} * > *) - {\b resources}{\bkmkstart AAAAAAAANJ}
+{\bkmkend AAAAAAAANJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< id< {\b XCBuildFile} > > *) - {\b members}{\bkmkstart AAAAAAAANK}
+{\bkmkend AAAAAAAANK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCBuildShellScript} * > *) - {\b buildShellScripts}{\bkmkstart AAAAAAAANL}
+{\bkmkend AAAAAAAANL}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSDictionary< NSString *, {\b XCProjectBuildConfig} * > *) - {\b configurations}{\bkmkstart AAAAAAAANM}
+{\bkmkend AAAAAAAANM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCProjectBuildConfig} *) - {\b configurationWithName:}{\bkmkstart AAAAAAAANN}
+{\bkmkend AAAAAAAANN}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCProjectBuildConfig} *) - {\b defaultConfiguration}{\bkmkstart AAAAAAAANO}
+{\bkmkend AAAAAAAANO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addMember:}{\bkmkstart AAAAAAAANP}
+{\bkmkend AAAAAAAANP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b makeAndAddShellScript:}{\bkmkstart AAAAAAAANQ}
+{\bkmkend AAAAAAAANQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeShellScriptByName:}{\bkmkstart AAAAAAAANR}
+{\bkmkend AAAAAAAANR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeMemberWithKey:}{\bkmkstart AAAAAAAANS}
+{\bkmkend AAAAAAAANS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeMembersWithKeys:}{\bkmkstart AAAAAAAANT}
+{\bkmkend AAAAAAAANT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeResourceWithKey:}{\bkmkstart AAAAAAAANU}
+{\bkmkend AAAAAAAANU}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeResourcesWithKeys:}{\bkmkstart AAAAAAAANV}
+{\bkmkend AAAAAAAANV}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b addDependency:}{\bkmkstart AAAAAAAANW}
+{\bkmkend AAAAAAAANW}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(instancetype) - {\b duplicateWithTargetName:productName:}{\bkmkstart AAAAAAAANX}
+{\bkmkend AAAAAAAANX}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(BOOL) - {\b isApplicationType}{\bkmkstart AAAAAAAANY}
+{\bkmkend AAAAAAAANY}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCTarget} *) + {\b targetWithProject:key:name:productName:productReference:productType:}{\bkmkstart AAAAAAAANZ}
+{\bkmkend AAAAAAAANZ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+{\b XCProject} * {\b _project}{\bkmkstart AAAAAAAAOA}
+{\bkmkend AAAAAAAAOA}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAAOB}
+{\bkmkend AAAAAAAAOB}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _name}{\bkmkstart AAAAAAAAOC}
+{\bkmkend AAAAAAAAOC}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _productName}{\bkmkstart AAAAAAAAOD}
+{\bkmkend AAAAAAAAOD}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _productReference}{\bkmkstart AAAAAAAAOE}
+{\bkmkend AAAAAAAAOE}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _productType}{\bkmkstart AAAAAAAAOF}
+{\bkmkend AAAAAAAAOF}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _defaultConfigurationName}{\bkmkstart AAAAAAAAOG}
+{\bkmkend AAAAAAAAOG}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b key}{\bkmkstart AAAAAAAAOH}
+{\bkmkend AAAAAAAAOH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAAOI}
+{\bkmkend AAAAAAAAOI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b productName}{\bkmkstart AAAAAAAAOJ}
+{\bkmkend AAAAAAAAOJ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b productReference}{\bkmkstart AAAAAAAAOK}
+{\bkmkend AAAAAAAAOK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b productType}{\bkmkstart AAAAAAAAOL}
+{\bkmkend AAAAAAAAOL}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Detailed Description\par
+\pard\plain 
+{
+\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Represents a target in an xcode project. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCTarget.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCTarget.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCTargetTests Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCTargetTests}
+{\xe \v XCTargetTests}
+{\bkmkstart AAAAAAAAOM}
+{\bkmkend AAAAAAAAOM}
+Inheritance diagram for XCTargetTests:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_target_tests.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following file:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCTargetTests.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCVersionGroup Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCVersionGroup}
+{\xe \v XCVersionGroup}
+{\bkmkstart AAAAAAAAON}
+{\bkmkend AAAAAAAAON}
+Inheritance diagram for XCVersionGroup:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_version_group.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithProject:key:path:children:currentVersion:}{\bkmkstart AAAAAAAAOO}
+{\bkmkend AAAAAAAAOO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromParentGroup}{\bkmkstart AAAAAAAAOP}
+{\bkmkend AAAAAAAAOP}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(void) - {\b removeFromParentDeletingChildren:}{\bkmkstart AAAAAAAAOQ}
+{\bkmkend AAAAAAAAOQ}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCGroup} *) - {\b parentGroup}{\bkmkstart AAAAAAAAOR}
+{\bkmkend AAAAAAAAOR}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+(void) - {\b addDataModelSource:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< {\b XCSourceFile} * > *) - {\b members}{\bkmkstart AAAAAAAAOS}
+{\bkmkend AAAAAAAAOS}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSArray< NSString * > *) - {\b buildFileKeys}{\bkmkstart AAAAAAAAOT}
+{\bkmkend AAAAAAAAOT}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCSourceFile} *) - {\b memberWithKey:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+({\b XCSourceFile} *) - {\b memberWithDisplayName:}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSDictionary *) - {\b asDictionary}{\bkmkstart AAAAAAAAOU}
+{\bkmkend AAAAAAAAOU}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCVersionGroup} *) + {\b versionGroupWithProject:key:path:children:currentVersion:}{\bkmkstart AAAAAAAAOV}
+{\bkmkend AAAAAAAAOV}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _pathRelativeToParent}{\bkmkstart AAAAAAAAOW}
+{\bkmkend AAAAAAAAOW}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _key}{\bkmkstart AAAAAAAAOX}
+{\bkmkend AAAAAAAAOX}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b alias}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b pathRelativeToParent}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSString * {\b key}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+NSMutableArray * {\b versions}\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b currentVersion}{\bkmkstart AAAAAAAAOY}
+{\bkmkend AAAAAAAAOY}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Method Documentation\par
+\pard\plain 
+{\xe \v addDataModelSource:\:XCVersionGroup}
+{\xe \v XCVersionGroup\:addDataModelSource:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (void) addDataModelSource: ({\b XCSourceFileDefinition}*)  {\i sourceFileDefinition}}}
+\par
+{\bkmkstart AAAAAAAAOZ}
+{\bkmkend AAAAAAAAOZ}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Adds a source file. The only valid file type is XCDataModel \par
+}}
+{\xe \v memberWithDisplayName:\:XCVersionGroup}
+{\xe \v XCVersionGroup\:memberWithDisplayName:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (id< {\b XcodeGroupMember} >) memberWithDisplayName: (NSString*)  {\i name}}}
+\par
+{\bkmkstart AAAAAAAAPA}
+{\bkmkend AAAAAAAAPA}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the child with the specified name, or nil. \par
+}}
+{\xe \v memberWithKey:\:XCVersionGroup}
+{\xe \v XCVersionGroup\:memberWithKey:}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- ({\b XCSourceFile} *) memberWithKey: (NSString*)  {\i key}}}
+\par
+{\bkmkstart AAAAAAAAPB}
+{\bkmkend AAAAAAAAPB}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+Returns the child with the specified key, or nil. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Property Documentation\par
+\pard\plain 
+{\xe \v alias\:XCVersionGroup}
+{\xe \v XCVersionGroup\:alias}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) alias{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAPC}
+{\bkmkend AAAAAAAAPC}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The alias of the group, which can be used to give the group a name other than the last path component.\par
+See: [{\b XcodeGroupMember} displayName] \par
+}}
+{\xe \v key\:XCVersionGroup}
+{\xe \v XCVersionGroup\:key}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) key{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAPD}
+{\bkmkend AAAAAAAAPD}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The group's unique key. \par
+}}
+{\xe \v pathRelativeToParent\:XCVersionGroup}
+{\xe \v XCVersionGroup\:pathRelativeToParent}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSString*) pathRelativeToParent{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAPE}
+{\bkmkend AAAAAAAAPE}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+The path of the group relative to the group's parent.\par
+See: [{\b XcodeGroupMember} displayName] \par
+}}
+{\xe \v versions\:XCVersionGroup}
+{\xe \v XCVersionGroup\:versions}
+\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid {
+{\b 
+- (NSMutableArray*) versions{\f2 [read]}, {\f2 [nonatomic]}, {\f2 [strong]}}}
+\par
+{\bkmkstart AAAAAAAAPF}
+{\bkmkend AAAAAAAAPF}
+{
+\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid 
+{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid 
+An array containing the groups members as {\f2 {\b XcodeGroupMember}}  types. \par
+}}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCVersionGroup.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCVersionGroup.m\par
+}\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCXibDefinition Class Reference\par \pard\plain 
+{\tc\tcl2 \v XCXibDefinition}
+{\xe \v XCXibDefinition}
+{\bkmkstart AAAAAAAAPG}
+{\bkmkend AAAAAAAAPG}
+Inheritance diagram for XCXibDefinition:{
+\pard\plain 
+\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "interface_x_c_xib_definition.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Instance Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithName:}{\bkmkstart AAAAAAAAPH}
+{\bkmkend AAAAAAAAPH}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(id) - {\b initWithName:content:}{\bkmkstart AAAAAAAAPI}
+{\bkmkend AAAAAAAAPI}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+(NSString *) - {\b xibFileName}{\bkmkstart AAAAAAAAPJ}
+{\bkmkend AAAAAAAAPJ}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Class Methods\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCXibDefinition} *) + {\b xibDefinitionWithName:}{\bkmkstart AAAAAAAAPK}
+{\bkmkend AAAAAAAAPK}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+({\b XCXibDefinition} *) + {\b xibDefinitionWithName:content:}{\bkmkstart AAAAAAAAPL}
+{\bkmkend AAAAAAAAPL}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Protected Attributes\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _name}{\bkmkstart AAAAAAAAPM}
+{\bkmkend AAAAAAAAPM}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b _content}{\bkmkstart AAAAAAAAPN}
+{\bkmkend AAAAAAAAPN}
+\par
+}
+\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid 
+Properties\par
+\pard\plain 
+
+{
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b name}{\bkmkstart AAAAAAAAPO}
+{\bkmkend AAAAAAAAPO}
+\par
+\pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+
+NSString * {\b content}{\bkmkstart AAAAAAAAPP}
+{\bkmkend AAAAAAAAPP}
+\par
+}
+{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par}
+The documentation for this class was generated from the following files:{\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCXibDefinition.h\par
+\pard\plain \s121\fi-360\li720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid 
+XCXibDefinition.m\par
+}
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+File Documentation{\tc \v File Documentation}
+\par \pard\plain 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+NSString+RemoveEmoji.h\par \pard\plain 
+{\tc\tcl2 \v NSString+RemoveEmoji.h}
+{\xe \v NSString+RemoveEmoji.h}
+{\bkmkstart AAAAAAAAAA}
+{\bkmkend AAAAAAAAAA}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #import <Foundation/Foundation.h>}\par
+2 \par
+3 {\cf17 @interface }NSString (RemoveEmoji)\par
+4 \par
+5 - (BOOL)isIncludingEmoji;\par
+6 \par
+7 - (instancetype)stringByRemovingEmoji;\par
+8 \par
+9 - (instancetype)removedEmojiString __attribute__((deprecated));\par
+10 \par
+11 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCAbstractDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCAbstractDefinition.h}
+{\xe \v XCAbstractDefinition.h}
+{\bkmkstart AAAAAAAAAB}
+{\bkmkend AAAAAAAAAB}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 - 2013 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 \par
+15 {\cf17 typedef} {\cf17 enum}\par
+16 \{\par
+17 \par
+22         XCFileOperationTypeOverwrite,\par
+23 \par
+28         XCFileOperationTypeAcceptExisting,\par
+29 \par
+34         XCFileOperationTypeReferenceOnly\par
+35 \} XCFileOperationType;\par
+36 \par
+40 {\cf17 @interface }XCAbstractDefinition : NSObject\par
+41 \{\par
+42     XCFileOperationType _fileOperationType;\par
+43 \}\par
+44 \par
+45 {\cf17 @property}(nonatomic) XCFileOperationType fileOperationType;\par
+46 \par
+47 \par
+48 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildFile.h\par \pard\plain 
+{\tc\tcl2 \v XCBuildFile.h}
+{\xe \v XCBuildFile.h}
+{\bkmkstart AAAAAAAAAC}
+{\bkmkend AAAAAAAAAC}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf20 //}\par
+2 {\cf20 //  XCBuildFile.h}\par
+3 {\cf20 //  XcodeEditor}\par
+4 {\cf20 //}\par
+5 {\cf20 //  Created by joel on 01/02/16.}\par
+6 {\cf20 //  Copyright \'A9 2016 appsquickly. All rights reserved.}\par
+7 {\cf20 //}\par
+8 \par
+9 {\cf21 #import <Foundation/Foundation.h>}\par
+10 {\cf20 //#import "XcodeMemberType.h"}\par
+11 {\cf21 #import <XcodeEditor/XcodeMemberType.h>}\par
+12 \par
+13 {\cf17 @protocol }XCBuildFile <NSObject>\par
+14 \par
+15 - (void)becomeBuildFile;\par
+16 - (XcodeMemberType)buildPhase;\par
+17 - (NSString *)buildFileKey;\par
+18 - (BOOL)isBuildFile;\par
+19 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScript.h\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScript.h}
+{\xe \v XCBuildShellScript.h}
+{\bkmkstart AAAAAAAAAD}
+{\bkmkend AAAAAAAAAD}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf20 //}\par
+2 {\cf20 //  XCBuildShellScript.h}\par
+3 {\cf20 //  xcode-editor}\par
+4 {\cf20 //}\par
+5 {\cf20 //  Created by joel on 03/02/16.}\par
+6 {\cf20 //}\par
+7 {\cf20 //}\par
+8 \par
+9 {\cf21 #import <Foundation/Foundation.h>}\par
+10 {\cf21 #import <XcodeEditor/XcodeGroupMember.h>}\par
+11 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+12 \par
+13 {\cf17 @class} XCProject;\par
+14 \par
+15 {\cf17 @interface }XCBuildShellScript : NSObject\par
+16 \{\par
+17     NSString* _key;\par
+18 \par
+19 {\cf17 @private}\par
+20     XCProject*_project;\par
+21     BOOL _runOnlyForDeploymentPostprocessing;\par
+22     NSArray*_files;\par
+23     NSArray*_inputPaths;\par
+24     NSArray*_outputPaths;\par
+25     NSString*_name;\par
+26     NSString*_shellPath;\par
+27     NSString*_shellScript;\par
+28 \}\par
+29 \par
+30 {\cf17 @property}(nonatomic, strong, readonly,nonnull) NSString* key;\par
+31 {\cf17 @property}(nonatomic, strong, readonly,nonnull) NSString* name;\par
+32 {\cf17 @property}(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;\par
+33 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSString*shellScript;\par
+34 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSString*shellPath;\par
+35 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*files;\par
+36 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*inputPaths;\par
+37 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*outputPaths;\par
+38 \par
+39 {\cf20 //-------------------------------------------------------------------------------------------}\par
+40 {\cf21 #pragma mark - Initialization & Destruction}\par
+41 {\cf20 //-------------------------------------------------------------------------------------------}\par
+42 \par
+43 + (XCBuildShellScript*_Nonnull)shellScriptWithProject:(XCProject*_Nonnull)project\par
+44                                                   key:(NSString *_Nonnull)key\par
+45                                                  name:( NSString* _Nullable )name\par
+46                          files: (NSArray<NSString*>* _Nullable)files\par
+47                     inputPaths:(NSArray<NSString*>* _Nullable)inputPaths\par
+48                    outputPaths:(NSArray<NSString*>* _Nullable)outputPaths\par
+49 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing\par
+50                      shellPath:(NSString*_Nullable)shellPath\par
+51                    shellScript:(NSString*_Nonnull)shellScript;\par
+52 \par
+53 - (instancetype _Nonnull)initWithProject:(XCProject*_Nonnull)project\par
+54                                     key:(NSString *_Nonnull)key\par
+55                                     name:( NSString* _Nullable )name\par
+56                        files: (NSArray<NSString*>* _Nullable)files\par
+57                   inputPaths:(NSArray<NSString*>* _Nullable)inputPaths\par
+58                  outputPaths:(NSArray<NSString*>* _Nullable)outputPaths\par
+59 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing\par
+60                    shellPath:(NSString*_Nullable)shellPath\par
+61                  shellScript:(NSString*_Nonnull)shellScript;\par
+62 \par
+63 \par
+64 \par
+65 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCBuildShellScriptDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCBuildShellScriptDefinition.h}
+{\xe \v XCBuildShellScriptDefinition.h}
+{\bkmkstart AAAAAAAAAE}
+{\bkmkend AAAAAAAAAE}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf20 //}\par
+2 {\cf20 //  XCBuildShellScriptDefinition.h}\par
+3 {\cf20 //  xcode-editor}\par
+4 {\cf20 //}\par
+5 {\cf20 //  Created by joel on 03/02/16.}\par
+6 {\cf20 //}\par
+7 {\cf20 //}\par
+8 \par
+9 {\cf21 #import <Foundation/Foundation.h>}\par
+10 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+11 \par
+12 {\cf17 @interface }XCBuildShellScriptDefinition : XCAbstractDefinition\par
+13 \{\par
+14     NSString* _key;\par
+15     \par
+16 {\cf17 @private}\par
+17     BOOL _runOnlyForDeploymentPostprocessing;\par
+18     NSArray*_files;\par
+19     NSArray*_inputPaths;\par
+20     NSArray*_outputPaths;\par
+21     NSString*_name;\par
+22     NSString*_shellPath;\par
+23     NSString*_shellScript;\par
+24 \}\par
+25 \par
+26 {\cf17 @property}(nonatomic, strong, readonly,nonnull) NSString* key;\par
+27 {\cf17 @property}(nonatomic, strong, readonly,nonnull) NSString* name;\par
+28 {\cf17 @property}(nonatomic,readonly) BOOL runOnlyForDeploymentPostprocessing;\par
+29 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSString*shellScript;\par
+30 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSString*shellPath;\par
+31 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*files;\par
+32 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*inputPaths;\par
+33 {\cf17 @property}(nonatomic,nonnull,strong,readonly) NSArray<NSString*>*outputPaths;\par
+34 \par
+35 {\cf20 //-------------------------------------------------------------------------------------------}\par
+36 {\cf21 #pragma mark - Initialization & Destruction}\par
+37 {\cf20 //-------------------------------------------------------------------------------------------}\par
+38 \par
+39 + (XCBuildShellScriptDefinition*_Nonnull)shellScriptDefinitionWithName:( NSString* _Nullable )name\par
+40                                              files: (NSArray<NSString*>* _Nullable)files\par
+41                                         inputPaths:(NSArray<NSString*>* _Nullable)inputPaths\par
+42                                        outputPaths:(NSArray<NSString*>* _Nullable)outputPaths\par
+43                 runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing\par
+44                                          shellPath:(NSString*_Nullable)shellPath\par
+45                                        shellScript:(NSString*_Nonnull)shellScript;\par
+46 \par
+47 - (instancetype _Nonnull)initWithName:( NSString* _Nullable )name\par
+48                                 files: (NSArray<NSString*>* _Nullable)files\par
+49                            inputPaths:(NSArray<NSString*>* _Nullable)inputPaths\par
+50                           outputPaths:(NSArray<NSString*>* _Nullable)outputPaths\par
+51    runOnlyForDeploymentPostprocessing:(BOOL)runOnlyForDeploymentPostprocessing\par
+52                             shellPath:(NSString*_Nullable)shellPath\par
+53                           shellScript:(NSString*_Nonnull)shellScript;\par
+54 \par
+55 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCClassDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCClassDefinition.h}
+{\xe \v XCClassDefinition.h}
+{\bkmkstart AAAAAAAAAF}
+{\bkmkend AAAAAAAAAF}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 - 2013 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+15 \par
+16 {\cf17 typedef} {\cf17 enum}\par
+17 \{\par
+18     ObjectiveC,\par
+19     ObjectiveCPlusPlus,\par
+20     CPlusPlus,\par
+21 \} ClassDefinitionLanguage;\par
+22 \par
+23 {\cf17 @interface }XCClassDefinition : XCAbstractDefinition\par
+24 \{\par
+25 \par
+26     NSString* _className;\par
+27     NSString* _header;\par
+28     NSString* _source;\par
+29 \par
+30 {\cf17 @private}\par
+31     ClassDefinitionLanguage _language;\par
+32 \}\par
+33 \par
+34 {\cf17 @property}(strong, nonatomic, readonly) NSString* className;\par
+35 {\cf17 @property}(nonatomic, strong) NSString* header;\par
+36 {\cf17 @property}(nonatomic, strong) NSString* source;\par
+37 \par
+38 + (XCClassDefinition*)classDefinitionWithName:(NSString*)fileName;\par
+39 \par
+40 + (XCClassDefinition*)classDefinitionWithName:(NSString*)className language:(ClassDefinitionLanguage)language;\par
+41 \par
+45 - (id)initWithName:(NSString*)fileName;\par
+46 \par
+50 - (id)initWithName:(NSString*)className language:(ClassDefinitionLanguage)language;\par
+51 \par
+52 - (BOOL)isObjectiveC;\par
+53 \par
+54 - (BOOL)isObjectiveCPlusPlus;\par
+55 \par
+56 - (BOOL)isCPlusPlus;\par
+57 \par
+58 - (NSString*)headerFileName;\par
+59 \par
+60 - (NSString*)sourceFileName;\par
+61 \par
+62 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFileOperationQueue.h\par \pard\plain 
+{\tc\tcl2 \v XCFileOperationQueue.h}
+{\xe \v XCFileOperationQueue.h}
+{\bkmkstart AAAAAAAAAG}
+{\bkmkend AAAAAAAAAG}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 \par
+15 \par
+16 {\cf17 @interface }XCFileOperationQueue : NSObject\par
+17 \{\par
+18 \par
+19 {\cf17 @private}\par
+20     NSString* _baseDirectory;\par
+21     NSMutableDictionary* _filesToWrite;\par
+22     NSMutableDictionary* _frameworksToCopy;\par
+23     NSMutableArray* _filesToDelete;\par
+24     NSMutableArray* _directoriesToCreate;\par
+25 \}\par
+26 \par
+27 \par
+28 - (id)initWithBaseDirectory:(NSString*)baseDirectory;\par
+29 \par
+30 - (BOOL)fileWithName:(NSString*)name existsInProjectDirectory:(NSString*)directory;\par
+31 \par
+32 - (void)queueTextFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSString*)contents;\par
+33 \par
+34 - (void)queueDataFile:(NSString*)fileName inDirectory:(NSString*)directory withContents:(NSData*)contents;\par
+35 \par
+36 - (void)queueFrameworkWithFilePath:(NSString*)filePath inDirectory:(NSString*)directory;\par
+37 \par
+38 - (void)queueDeletion:(NSString*)filePath;\par
+39 \par
+40 - (void)queueDirectory:(NSString*)withName inDirectory:(NSString*)parentDirectory;\par
+41 \par
+42 - (void)commitFileOperations;\par
+43 \par
+44 {\cf17 @end}\par
+45 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCFrameworkDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCFrameworkDefinition.h}
+{\xe \v XCFrameworkDefinition.h}
+{\bkmkstart AAAAAAAAAH}
+{\bkmkend AAAAAAAAAH}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+16 {\cf21 #import <XcodeEditor/XcodeSourceTreeType.h>}\par
+17 \par
+18 {\cf17 @interface }XCFrameworkDefinition : XCAbstractDefinition\par
+19 \{\par
+20     NSString* _filePath;\par
+21     BOOL _copyToDestination;\par
+22     XcodeSourceTreeType _sourceTree;\par
+23 \}\par
+24 \par
+25 {\cf17 @property}(nonatomic, strong, readonly) NSString* filePath;\par
+26 {\cf17 @property}(nonatomic, readonly) BOOL copyToDestination;\par
+27 {\cf17 @property}(nonatomic, readonly) XcodeSourceTreeType sourceTree;\par
+28 \par
+29 + (XCFrameworkDefinition*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;\par
+30 + (XCFrameworkDefinition*)frameworkDefinitionWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination sourceTree:(XcodeSourceTreeType)sourceTree;\par
+31 \par
+32 - (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination;\par
+33 - (id)initWithFilePath:(NSString*)filePath copyToDestination:(BOOL)copyToDestination\par
+34             sourceTree:(XcodeSourceTreeType)sourceTree;\par
+35 \par
+36 - (NSString*)fileName;\par
+37 \par
+38 \par
+39 \par
+40 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCGroup.h\par \pard\plain 
+{\tc\tcl2 \v XCGroup.h}
+{\xe \v XCGroup.h}
+{\bkmkstart AAAAAAAAAI}
+{\bkmkend AAAAAAAAAI}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 {\cf21 #import <XcodeEditor/XcodeGroupMember.h>}\par
+15 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+16 {\cf21 #import <XcodeEditor/XCBuildFile.h>}\par
+17 \par
+18 {\cf17 @class} XCProject;\par
+19 {\cf17 @class} XCClassDefinition;\par
+20 {\cf17 @class} XCSourceFile;\par
+21 {\cf17 @class} XCXibDefinition;\par
+22 {\cf17 @class} XCFileOperationQueue;\par
+23 {\cf17 @class} XCFrameworkDefinition;\par
+24 {\cf17 @class} XCSourceFileDefinition;\par
+25 {\cf17 @class} XCSubProjectDefinition;\par
+26 {\cf17 @class} XCTarget;\par
+27 {\cf17 @class} XCVersionGroup;\par
+28 \par
+33 {\cf17 @interface }XCGroup : NSObject <XcodeGroupMember, XCBuildFile>\par
+34 \{\par
+35 \par
+36     NSString* _pathRelativeToParent;\par
+37     NSString* _key;\par
+38     NSString* _alias;\par
+39 \par
+40 \par
+41 {\cf17 @private}\par
+42     NSString* _pathRelativeToProjectRoot;\par
+43     NSMutableArray* _children;\par
+44     NSMutableArray* _members;\par
+45 \par
+46     NSNumber *_isBuildFile;\par
+47     NSString *_buildFileKey;\par
+48 \par
+49     XCFileOperationQueue* _fileOperationQueue;\par
+50     XCProject* _project;\par
+51     XcodeMemberType _memberType;\par
+52 \par
+53 \}\par
+54 \par
+55 \par
+61 {\cf17 @property}(nonatomic, strong, readonly) NSString* alias;\par
+62 \par
+68 {\cf17 @property}(nonatomic, strong, readonly) NSString* pathRelativeToParent;\par
+69 \par
+73 {\cf17 @property}(nonatomic, strong, readonly) NSString* key;\par
+74 \par
+78 {\cf17 @property}(nonatomic, strong, readonly) NSMutableArray<id<XcodeGroupMember>>* children;\par
+79 \par
+80 \par
+81 {\cf21 #pragma mark Initializers}\par
+82 \par
+83 + (XCGroup*)groupWithProject:(XCProject*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<{\cf18 id}<XcodeGroupMember>>*)children;\par
+84 \par
+85 + (XCGroup*)groupWithProject:(XCProject*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<{\cf18 id}<XcodeGroupMember>>*)children memberType:(XcodeMemberType)groupType;\par
+86 \par
+87 - (id)initWithProject:(XCProject*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<{\cf18 id}<XcodeGroupMember>>*)children;\par
+88 \par
+89 - (id)initWithProject:(XCProject*)project key:(NSString*)key alias:(NSString*)alias path:(NSString*)path children:(NSArray<{\cf18 id}<XcodeGroupMember>>*)children memberType:(XcodeMemberType)groupType;\par
+90 \par
+91 {\cf21 #pragma mark Parent group}\par
+92 \par
+93 - (void)removeFromParentGroup;\par
+94 \par
+95 - (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;\par
+96 \par
+97 - (XCGroup*)parentGroup;\par
+98 \par
+99 - (BOOL)isRootGroup;\par
+100 \par
+101 - (BOOL)isEmpty;\par
+102 \par
+103 {\cf21 #pragma mark Adding children}\par
+108 - (void)addClass:(XCClassDefinition*)classDefinition;\par
+109 \par
+113 - (void)addClass:(XCClassDefinition*)classDefinition toTargets:(NSArray<XCTarget*>*)targets;\par
+114 \par
+118 - (void)removeClass:(XCClassDefinition*)classDefinition fromTargets:(NSArray*)targets;\par
+119 \par
+123 - (void)removeHeader:(XCClassDefinition*)classDefinition;\par
+124 \par
+129 - (void)addFramework:(XCFrameworkDefinition*)frameworkDefinition;\par
+130 \par
+134 - (void) removeFramework:(XCFrameworkDefinition *)frameworkDefinition fromTargets:(NSArray *)targets;\par
+135 \par
+139 - (XCGroup*)addGroupWithPath:(NSString*)path;\par
+140 \par
+144 - (XCGroup*)addGroupWithAlias:(NSString *)alias;\par
+145 \par
+149 - (XCGroup*)addGroupWithAlias:(NSString *)alias groupType:(XcodeMemberType)type;\par
+150 \par
+154 - (XCVersionGroup*)addVersionGroupWithPath:(NSString*)path;\par
+155 \par
+159 - (void)addFolderReference:(NSString*)sourceFolder;\par
+160 \par
+161 - (void)addFileReference:(NSString *)filePath withType:(XcodeSourceFileType)type;\par
+162 \par
+166 - (XCSourceFile*)addFramework:(XCFrameworkDefinition*)framework toTargets:(NSArray<XCTarget*>*)targets;\par
+167 \par
+171 - (void)addSourceFile:(XCSourceFileDefinition*)sourceFileDefinition;\par
+172 \par
+173 \par
+177 - (void)addXib:(XCXibDefinition*)xibDefinition;\par
+178 \par
+182 - (void)addXib:(XCXibDefinition*)xibDefinition toTargets:(NSArray<XCTarget*>*)targets;\par
+183 \par
+190 - (void)addSubProject:(XCSubProjectDefinition*)projectDefinition;\par
+191 \par
+195 - (void)addSubProject:(XCSubProjectDefinition*)projectDefinition toTargets:(NSArray<XCTarget*>*)targets;\par
+196 \par
+197 - (void)removeSubProject:(XCSubProjectDefinition*)projectDefinition;\par
+198 \par
+199 - (void)removeSubProject:(XCSubProjectDefinition*)projectDefinition fromTargets:(NSArray<XCTarget*>*)targets;\par
+200 \par
+201 \par
+202 {\cf21 #pragma mark Locating children}\par
+206 - (NSArray<id<XcodeGroupMember>>*)members;\par
+207 \par
+211 - (NSArray<NSString*>*)recursiveMembers;\par
+212 \par
+216 - (NSArray<NSString*>*)buildFileKeys;\par
+217 \par
+221 - ({\cf18 id} <XcodeGroupMember>)memberWithKey:(NSString*)key;\par
+222 \par
+226 - ({\cf18 id} <XcodeGroupMember>)memberWithDisplayName:(NSString*)name;\par
+227 \par
+231 - (void)removeMemberWithKey:(NSString*)key;\par
+232 \par
+233 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCKeyBuilder.h\par \pard\plain 
+{\tc\tcl2 \v XCKeyBuilder.h}
+{\xe \v XCKeyBuilder.h}
+{\bkmkstart AAAAAAAAAJ}
+{\bkmkend AAAAAAAAAJ}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 - 2013 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 \par
+15 \par
+16 {\cf21 #define HASH_VALUE_STORAGE_SIZE 48}\par
+17 {\cf21 #define MD5_DIGEST_LENGTH 16}\par
+18 \par
+19 {\cf17 typedef} {\cf17 struct}\par
+20 \{\par
+21     {\cf18 char} value[MD5_DIGEST_LENGTH];\par
+22 \} HashValueMD5Hash;\par
+23 \par
+24 \par
+25 {\cf17 @interface }XCKeyBuilder : NSObject\par
+26 \{\par
+27     {\cf18 unsigned} {\cf18 char} _value[HASH_VALUE_STORAGE_SIZE];\par
+28 \}\par
+29 \par
+30 + (XCKeyBuilder*)forItemNamed:(NSString*)name;\par
+31 \par
+32 + (XCKeyBuilder*)createUnique;\par
+33 \par
+34 - (id)initHashValueMD5HashWithBytes:(const {\cf18 void}*)bytes length:(NSUInteger)length;\par
+35 \par
+36 - (NSString*)build;\par
+37 \par
+38 {\cf17 @end}\par
+39 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeEditor.h\par \pard\plain 
+{\tc\tcl2 \v XcodeEditor.h}
+{\xe \v XcodeEditor.h}
+{\bkmkstart AAAAAAAAAK}
+{\bkmkend AAAAAAAAAK}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 \par
+15 FOUNDATION_EXPORT {\cf18 double} XcodeEditorVersionNumber;\par
+16 \par
+18 FOUNDATION_EXPORT {\cf17 const} {\cf18 unsigned} {\cf18 char} XcodeEditorVersionString[];\par
+19 \par
+20 {\cf20 // In this header, you should import all the public headers of your framework using statements like #import <XcodeEditor/PublicHeader.h>}\par
+21 \par
+22 \par
+23 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+24 {\cf21 #import <XcodeEditor/XCGroup.h>}\par
+25 {\cf21 #import <XcodeEditor/XCClassDefinition.h>}\par
+26 {\cf21 #import <XcodeEditor/XCFileOperationQueue.h>}\par
+27 {\cf21 #import <XcodeEditor/XCFrameworkDefinition.h>}\par
+28 {\cf21 #import <XcodeEditor/XCProject.h>}\par
+29 {\cf21 #import <XcodeEditor/XCSourceFile.h>}\par
+30 {\cf21 #import <XcodeEditor/XCSourceFileDefinition.h>}\par
+31 {\cf21 #import <XcodeEditor/XCSubProjectDefinition.h>}\par
+32 {\cf21 #import <XcodeEditor/XCTarget.h>}\par
+33 {\cf21 #import <XcodeEditor/XCXibDefinition.h>}\par
+34 {\cf21 #import <XcodeEditor/XCKeyBuilder.h>}\par
+35 {\cf21 #import <XcodeEditor/XCProject+SubProject.h>}\par
+36 {\cf21 #import <XcodeEditor/XCProjectBuildConfig.h>}\par
+37 {\cf21 #import <XcodeEditor/XCBuildShellScript.h>}\par
+38 {\cf21 #import <XcodeEditor/XCBuildShellScriptDefinition.h>}\par
+39 {\cf21 #import <XcodeEditor/XCVersionGroup.h>}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeGroupMember.h\par \pard\plain 
+{\tc\tcl2 \v XcodeGroupMember.h}
+{\xe \v XcodeGroupMember.h}
+{\bkmkstart AAAAAAAAAL}
+{\bkmkend AAAAAAAAAL}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <XcodeEditor/XcodeMemberType.h>}\par
+15 \par
+16 {\cf17 @protocol }XcodeGroupMember <NSObject>\par
+17 \par
+18 - (NSString*)key;\par
+19 \par
+20 - (NSString*)displayName;\par
+21 \par
+22 - (NSString*)pathRelativeToProjectRoot;\par
+23 \par
+27 - (XcodeMemberType)groupMemberType;\par
+28 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeMemberType.h\par \pard\plain 
+{\tc\tcl2 \v XcodeMemberType.h}
+{\xe \v XcodeMemberType.h}
+{\bkmkstart AAAAAAAAAM}
+{\bkmkend AAAAAAAAAM}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 \par
+14 {\cf17 typedef} {\cf17 enum}\par
+15 \{\par
+16     PBXNilType,\par
+17     PBXBuildFileType,\par
+18     PBXContainerItemProxyType,\par
+19     PBXCopyFilesBuildPhaseType,\par
+20     PBXFileReferenceType,\par
+21     PBXFrameworksBuildPhaseType,\par
+22     PBXGroupType,\par
+23     PBXNativeTargetType,\par
+24     PBXProjectType,\par
+25     PBXReferenceProxyType,\par
+26     PBXResourcesBuildPhaseType,\par
+27     PBXSourcesBuildPhaseType,\par
+28     PBXTargetDependencyType,\par
+29     PBXVariantGroupType,\par
+30     XCBuildConfigurationType,\par
+31     XCConfigurationListType,\par
+32     PBXShellScriptBuildPhase,\par
+33     XCVersionGroupType\par
+34 \} XcodeMemberType;\par
+35 \par
+36 {\cf17 @interface }NSString (XcodeMemberTypeExtensions)\par
+37 \par
+38 + (NSString*)xce_stringFromMemberType:(XcodeMemberType)nodeType;\par
+39 \par
+40 - (XcodeMemberType)xce_asMemberType;\par
+41 \par
+42 - (BOOL)xce_hasFileReferenceType;\par
+43 - (BOOL)xce_hasFileReferenceOrReferenceProxyType;\par
+44 - (BOOL)xce_hasReferenceProxyType;\par
+45 - (BOOL)xce_hasGroupType;\par
+46 - (BOOL)xce_hasProjectType;\par
+47 - (BOOL)xce_hasNativeTargetType;\par
+48 - (BOOL)xce_hasBuildFileType;\par
+49 - (BOOL)xce_hasBuildConfigurationType;\par
+50 - (BOOL)xce_hasContainerItemProxyType;\par
+51 - (BOOL)xce_hasResourcesBuildPhaseType;\par
+52 - (BOOL)xce_hasShellScriptBuildPhase;\par
+53 - (BOOL)xce_hasSourcesOrFrameworksBuildPhaseType;\par
+54 - (BOOL)xce_hasVersionedGroupType;\par
+55 \par
+56 {\cf17 @end}\par
+57 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeSourceFileType.h\par \pard\plain 
+{\tc\tcl2 \v XcodeSourceFileType.h}
+{\xe \v XcodeSourceFileType.h}
+{\bkmkstart AAAAAAAAAN}
+{\bkmkend AAAAAAAAAN}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 \par
+14 {\cf17 typedef} NS_OPTIONS(NSInteger, XcodeSourceFileType)\par
+15 \{\par
+16     FileTypeNil = 0,             {\cf20 // Unknown filetype}\par
+17     Framework = 1,               {\cf20 // .framework}\par
+18     PropertyList = 2,            {\cf20 // .plist}\par
+19     SourceCodeHeader = 3,        {\cf20 // .h}\par
+20     SourceCodeObjC = 4,          {\cf20 // .m}\par
+21     SourceCodeObjCPlusPlus = 5,  {\cf20 // .mm}\par
+22     SourceCodeCPlusPlus = 6,     {\cf20 // .cpp}\par
+23     XibFile = 7,                 {\cf20 // .xib}\par
+24     ImageResourcePNG = 8,        {\cf20 // .png}\par
+25     Bundle = 9,                  {\cf20 // .bundle  .octet}\par
+26     Archive = 10,                {\cf20 // .a files}\par
+27     HTML = 11,                   {\cf20 // HTML file}\par
+28     TEXT = 12,                   {\cf20 // Some text file}\par
+29     XcodeProject = 13,           {\cf20 // .xcodeproj}\par
+30     Folder = 14,                 {\cf20 // a Folder reference}\par
+31     AssetCatalog = 15,           {\cf20 // Assets}\par
+32     SourceCodeSwift = 16,        {\cf20 // .swift}\par
+33     Application = 17,            {\cf20 // .app (wrapper.application)}\par
+34     Playground = 18,             {\cf20 // .playground (file.playground)}\par
+35     ShellScript = 19,            {\cf20 // no suffix Xcode seems to detect (text.script.sh)}\par
+36     Markdown = 20,               {\cf20 // .md (net.daringfileball.markdown)}\par
+37     XMLPropertyList = 21,        {\cf20 // .plist (text.plist.xml)}\par
+38     Storyboard = 22,             {\cf20 // .storyboard (file.storyboard)}\par
+39     XCConfig = 23,               {\cf20 // .xcconfig}\par
+40     XCDataModel = 24,            {\cf20 // .xcdatamodel}\par
+41     LocalizableStrings = 25      {\cf20 // .strings}\par
+42 \};\par
+43 \par
+44 NSString* NSStringFromXCSourceFileType(XcodeSourceFileType type);\par
+45 \par
+46 XcodeSourceFileType XCSourceFileTypeFromStringRepresentation(NSString* {\cf18 string});\par
+47 \par
+48 XcodeSourceFileType XCSourceFileTypeFromFileName(NSString* fileName);\par
+49 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XcodeSourceTreeType.h\par \pard\plain 
+{\tc\tcl2 \v XcodeSourceTreeType.h}
+{\xe \v XcodeSourceTreeType.h}
+{\bkmkstart AAAAAAAAAO}
+{\bkmkend AAAAAAAAAO}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 \par
+14 {\cf17 typedef} {\cf17 enum}\par
+15 \{\par
+16     SourceTreeSDKRoot,\par
+17     SourceTreeGroup\par
+18 \} XcodeSourceTreeType;\par
+19 \par
+20 {\cf17 @interface }NSString (XcodeSourceTreeTypeExtensions)\par
+21 \par
+22 + (NSString*)xce_stringFromSourceTreeType:(XcodeSourceTreeType)nodeType;\par
+23 \par
+24 - (XcodeSourceTreeType)xce_asSourceTreeType;\par
+25 \par
+26 {\cf17 @end}\par
+27 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProject+SubProject.h\par \pard\plain 
+{\tc\tcl2 \v XCProject+SubProject.h}
+{\xe \v XCProject+SubProject.h}
+{\bkmkstart AAAAAAAAAP}
+{\bkmkend AAAAAAAAAP}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XCProject.h>}\par
+16 \par
+17 {\cf17 @interface }XCProject (SubProject)\par
+18 \par
+19 \par
+20 - (NSString *)referenceProxyKeyForName:(NSString *)name;\par
+21 \par
+22 - (NSArray<XCSourceFile*> *)buildProductsForTargets:(NSString *)xcodeprojKey;\par
+23 \par
+24 - (void)addAsTargetDependency:(XCSubProjectDefinition *)xcodeprojDefinition toTargets:(NSArray<XCTarget*>*)targets;\par
+25 \par
+26 - (NSArray<NSString*> *)keysForProjectObjectsOfType:(XcodeMemberType)memberType withIdentifier:(NSString *)identifier\par
+27     singleton:(BOOL)singleton required:(BOOL)required;\par
+28 \par
+29 - (NSMutableDictionary *)PBXProjectDict;\par
+30 \par
+31 - (void)removeProxies:(NSString *)xcodeprojKey;\par
+32 \par
+33 - (void)addProxies:(XCSubProjectDefinition *)xcodeproj;\par
+34 \par
+35 - (void)removeFromProjectReferences:(NSString *)key forProductsGroup:(NSString *)productsGroupKey;\par
+36 \par
+37 - (void)removeTargetDependencies:(NSString *)name;\par
+38 \par
+39 - (NSString *)containerItemProxyKeyForName:(NSString *)name proxyType:(NSString *)proxyType;\par
+40 \par
+41 - (NSString *)productsGroupKeyForKey:(NSString *)key;\par
+42 \par
+43 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProject.h\par \pard\plain 
+{\tc\tcl2 \v XCProject.h}
+{\xe \v XCProject.h}
+{\bkmkstart AAAAAAAAAQ}
+{\bkmkend AAAAAAAAAQ}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 - 2013 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 {\cf21 #import <XcodeEditor/XcodeMemberType.h>}\par
+14 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+15 {\cf21 #import <XcodeEditor/XcodeGroupMember.h>}\par
+16 \par
+17 {\cf17 @class} XCClassDefinition;\par
+18 {\cf17 @class} XCGroup;\par
+19 {\cf17 @class} XCFileOperationQueue;\par
+20 {\cf17 @class} XCSourceFile;\par
+21 {\cf17 @class} XCTarget;\par
+22 {\cf17 @class} XCSubProjectDefinition;\par
+23 {\cf17 @class} XCProjectBuildConfig;\par
+24 {\cf17 @class} XCVersionGroup;\par
+25 \par
+26 {\cf17 @interface }XCProject : NSObject\par
+27 \{\par
+28 {\cf17 @protected}\par
+29     XCFileOperationQueue* _fileOperationQueue;\par
+30 \par
+31     NSString* _filePath;\par
+32     NSMutableDictionary* _dataStore;\par
+33     NSMutableArray* _targets;\par
+34 \par
+35     NSMutableDictionary* _groups;\par
+36     NSMutableDictionary* _versionGroups;\par
+37     NSMutableDictionary* _configurations;\par
+38 \par
+39     NSString* _defaultConfigurationName;\par
+40     NSString* _rootObjectKey;\par
+41 \}\par
+42 \par
+43 {\cf17 @property}(nonatomic, strong, readonly) XCFileOperationQueue* fileOperationQueue;\par
+44 \par
+45 {\cf20 //-------------------------------------------------------------------------------------------}\par
+46 {\cf21 #pragma mark - Initialization & Destruction}\par
+47 {\cf20 //-------------------------------------------------------------------------------------------}\par
+48 \par
+49 \par
+50 + (XCProject*)projectWithFilePath:(NSString*)filePath;\par
+51 \par
+55 - (id)initWithFilePath:(NSString*)filePath;\par
+56 \par
+57 {\cf20 //-------------------------------------------------------------------------------------------}\par
+58 {\cf21 #pragma mark Groupd Member}\par
+59 - (id<XcodeGroupMember>)groupMemberWithKey:(NSString *)key;\par
+60 \par
+61 {\cf20 //-------------------------------------------------------------------------------------------}\par
+62 {\cf21 #pragma mark Files}\par
+66 - (NSArray<XCSourceFile*>*)files;\par
+67 \par
+71 - (XCSourceFile*)fileWithKey:(NSString*)key;\par
+72 \par
+77 - (XCSourceFile*)fileWithName:(NSString*)name;\par
+78 \par
+82 - (NSArray<XCSourceFile*>*)headerFiles;\par
+83 \par
+87 - (NSArray<XCSourceFile*>*)objectiveCFiles;\par
+88 \par
+92 - (NSArray<XCSourceFile*>*)objectiveCPlusPlusFiles;\par
+93 \par
+97 - (NSArray<XCSourceFile*>*)xibFiles;\par
+98 \par
+99 - (NSArray<XCSourceFile*>*)imagePNGFiles;\par
+100 \par
+101 - (NSString*)filePath;\par
+102 \par
+103 \par
+104 {\cf20 //-------------------------------------------------------------------------------------------}\par
+105 {\cf21 #pragma mark Groups}\par
+109 - (NSArray<XCGroup*>*)groups;\par
+110 \par
+114 - (XCGroup*)rootGroup;\par
+115 \par
+119 - (NSArray<XCGroup*>*)rootGroups;\par
+120 \par
+124 - (XCGroup *)mainGroup;\par
+125 \par
+129 - (XCGroup*)groupWithKey:(NSString*)key;\par
+130 \par
+134 - (XCGroup*)groupWithDisplayName:(NSString*)name;\par
+135 \par
+139 - (XCGroup*)groupWithPathFromRoot:(NSString*)path;\par
+140 \par
+144 - (XCGroup*)groupForGroupMemberWithKey:(NSString*)key;\par
+145 \par
+149 - (XCGroup*)groupWithSourceFile:(XCSourceFile*)sourceFile;\par
+150 \par
+154 - (void)pruneEmptyGroups;\par
+155 \par
+156 {\cf20 //-------------------------------------------------------------------------------------------}\par
+157 {\cf21 #pragma mark VersionGroups}\par
+161 - (NSArray*)versionGroups;\par
+162 \par
+166 - (XCVersionGroup*)versionGroupWithKey:(NSString*)key;\par
+167 \par
+171 - (XCVersionGroup*)versionGroupWithName:(NSString*)name;\par
+172 \par
+173 {\cf20 //-------------------------------------------------------------------------------------------}\par
+174 {\cf21 #pragma mark Targets}\par
+178 - (NSArray<XCTarget*>*)targets;\par
+179 \par
+183 - (XCTarget*)targetWithName:(NSString*)name;\par
+184 \par
+188 - (NSArray*)applicationTargets;\par
+189 \par
+190 {\cf21 #pragma mark Configurations}\par
+194 - (NSDictionary<NSString*,XCProjectBuildConfig*>*)configurations;\par
+198 - (XCProjectBuildConfig*)configurationWithName:(NSString*)name;\par
+199 \par
+200 - (XCProjectBuildConfig *)defaultConfiguration;\par
+201 \par
+202 {\cf20 //-------------------------------------------------------------------------------------------}\par
+203 {\cf21 #pragma mark Deletion}\par
+204 \par
+205 - (void)removeObjectWithKey:(NSString*)key;\par
+206 \par
+207 {\cf20 //-------------------------------------------------------------------------------------------}\par
+208 {\cf21 #pragma mark Saving}\par
+212 - (void)save;\par
+213 \par
+214 \par
+215 {\cf20 //-------------------------------------------------------------------------------------------}\par
+219 {\cf20 }- (NSMutableDictionary*)objects;\par
+220 \par
+221 - (NSMutableDictionary*)dataStore;\par
+222 \par
+223 - (void)dropCache;\par
+224 \par
+225 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCProjectBuildConfig.h\par \pard\plain 
+{\tc\tcl2 \v XCProjectBuildConfig.h}
+{\xe \v XCProjectBuildConfig.h}
+{\bkmkstart AAAAAAAAAR}
+{\bkmkend AAAAAAAAAR}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 {\cf21 #import <Foundation/Foundation.h>}\par
+13 \par
+14 {\cf17 @class} XCProject;\par
+15 \par
+16 {\cf17 @interface }XCProjectBuildConfig : NSObject\par
+17 \{\par
+18 {\cf17 @private}\par
+19     __weak XCProject* _project;\par
+20     NSString* _key;\par
+21 \par
+22     NSMutableDictionary* _buildSettings;\par
+23     NSMutableDictionary* _xcconfigSettings;\par
+24 \}\par
+25 {\cf17 @property}(nonatomic, strong, readonly) NSString* key;\par
+26 {\cf17 @property}(nonatomic, readonly) NSDictionary* specifiedBuildSettings;\par
+27 \par
+28 + (NSDictionary<NSString*,NSString*>*)buildConfigurationsFromArray:(NSArray<XCProjectBuildConfig*>*)array inProject:(XCProject*)project;\par
+29 \par
+30 - (instancetype)initWithProject:(XCProject*)project key:(NSString*)key;\par
+31 \par
+32 - (void)addBuildSettings:(NSDictionary*)buildSettings;\par
+33 \par
+34 - (void)addOrReplaceSetting:({\cf18 id} <NSCopying>)setting forKey:(NSString*)key;\par
+35 \par
+36 - ({\cf18 id} <NSCopying>)valueForKey:(NSString*)key;\par
+37 \par
+38 -(void)removeSettingByKey:(NSString*)key;\par
+39 \par
+40 + (NSString*)duplicatedBuildConfigurationListWithKey:(NSString*)buildConfigurationListKey inProject:(XCProject*)project\par
+41     withBuildConfigurationVisitor:({\cf18 void} (^)(NSMutableDictionary*))buildConfigurationVisitor;\par
+42 \par
+43 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSourceFile.h\par \pard\plain 
+{\tc\tcl2 \v XCSourceFile.h}
+{\xe \v XCSourceFile.h}
+{\bkmkstart AAAAAAAAAS}
+{\bkmkend AAAAAAAAAS}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XcodeGroupMember.h>}\par
+16 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+17 {\cf21 #import <XcodeEditor/XCBuildFile.h>}\par
+18 \par
+19 {\cf17 @class} XCProject;\par
+20 \par
+24 {\cf17 @interface }XCSourceFile : NSObject<XcodeGroupMember,XCBuildFile>\par
+25 \{\par
+26     \par
+27 {\cf17 @private}\par
+28     XCProject *_project;\par
+29     \par
+30     NSNumber *_isBuildFile;\par
+31     NSString *_buildFileKey;\par
+32     NSString *_name;\par
+33     NSString *_sourceTree;\par
+34     NSString *_key;\par
+35     NSString *_path;\par
+36     XcodeSourceFileType _type;\par
+37 \}\par
+38 \par
+39 {\cf17 @property} (nonatomic, readonly) XcodeSourceFileType type;\par
+40 {\cf17 @property} (nonatomic, strong, readonly) NSString *key;\par
+41 {\cf17 @property} (nonatomic, strong) NSString *name;\par
+42 {\cf17 @property} (nonatomic, strong, readonly) NSString *sourceTree;\par
+43 {\cf17 @property} (nonatomic, strong) NSString *path;\par
+44 \par
+45 + (XCSourceFile *)sourceFileWithProject:(XCProject *)project key:(NSString *)key type:(XcodeSourceFileType)type\par
+46                                    name:(NSString *)name sourceTree:(NSString *)tree path:(NSString *)path;\par
+47 \par
+48 - (id)initWithProject:(XCProject *)project key:(NSString *)key type:(XcodeSourceFileType)type name:(NSString *)name\par
+49            sourceTree:(NSString *)tree path:(NSString *)path;\par
+50 \par
+54 - (BOOL)isBuildFile;\par
+55 \par
+56 - (BOOL)canBecomeBuildFile;\par
+57 \par
+58 - (XcodeMemberType)buildPhase;\par
+59 \par
+60 - (NSString *)buildFileKey;\par
+61 \par
+65 - (void)becomeBuildFile;\par
+66 \par
+70 - (void)removeBuildFile;\par
+71 \par
+77 - (void)setCompilerFlags:(NSString *)value;\par
+78 \par
+82 - (void)setWeakReference;\par
+83 \par
+84 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSourceFileDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCSourceFileDefinition.h}
+{\xe \v XCSourceFileDefinition.h}
+{\bkmkstart AAAAAAAAAT}
+{\bkmkend AAAAAAAAAT}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+16 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+17 \par
+18 {\cf17 @interface }XCSourceFileDefinition : XCAbstractDefinition\par
+19 \{\par
+20 \par
+21     NSString* _sourceFileName;\par
+22     XcodeSourceFileType _type;\par
+23     NSData* _data;\par
+24 \par
+25 \}\par
+26 \par
+27 {\cf17 @property}(nonatomic, strong, readonly) NSString* sourceFileName;\par
+28 {\cf17 @property}(nonatomic, strong, readonly) NSData* data;\par
+29 {\cf17 @property}(nonatomic, readonly) XcodeSourceFileType type;\par
+30 \par
+31 + (XCSourceFileDefinition*)sourceDefinitionWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;\par
+32 \par
+33 + (XCSourceFileDefinition*)sourceDefinitionWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;\par
+34 \par
+35 {\cf20 // For now you can add Asset Catalog only as reference}\par
+36 + (XCSourceFileDefinition*)sourceDefinitionWithAssetCatalogName:(NSString*)name;\par
+37 \par
+38 - (id)initWithName:(NSString*)name text:(NSString*)text type:(XcodeSourceFileType)type;\par
+39 \par
+40 - (id)initWithName:(NSString*)name data:(NSData*)data type:(XcodeSourceFileType)type;\par
+41 \par
+42 \par
+43 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCSubProjectDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCSubProjectDefinition.h}
+{\xe \v XCSubProjectDefinition.h}
+{\bkmkstart AAAAAAAAAU}
+{\bkmkend AAAAAAAAAU}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+16 {\cf21 #import <XcodeEditor/XcodeSourceFileType.h>}\par
+17 \par
+18 {\cf17 @class} XCProject;\par
+19 \par
+20 \par
+21 {\cf17 @interface }XCSubProjectDefinition : XCAbstractDefinition\par
+22 \{\par
+23 \par
+24     NSString *_name;\par
+25     NSString *_path;\par
+26     XcodeSourceFileType _type;\par
+27     XCProject *_subProject;\par
+28     XCProject *_parentProject;\par
+29     NSString *_key;\par
+30     NSString *_fullProjectPath;\par
+31     NSString *_relativePath;\par
+32 \}\par
+33 \par
+34 \par
+35 {\cf17 @property} (nonatomic, strong, readonly) NSString *name;\par
+36 {\cf17 @property} (nonatomic, strong, readonly) NSString *path;\par
+37 {\cf17 @property} (nonatomic, readonly) XcodeSourceFileType type;\par
+38 {\cf17 @property} (nonatomic, strong, readonly) XCProject *subProject;\par
+39 {\cf17 @property} (nonatomic, strong, readonly) XCProject *parentProject;\par
+40 {\cf17 @property} (nonatomic, strong, readonly) NSString *key;\par
+41 {\cf17 @property} (nonatomic, strong, readwrite) NSString *fullProjectPath;\par
+42 \par
+43 + (XCSubProjectDefinition *)withName:(NSString *)name path:(NSString *)path parentProject:(XCProject *)parentProject;\par
+44 \par
+45 - (id)initWithName:(NSString *)name path:(NSString *)path parentProject:(XCProject *)parentProject;\par
+46 \par
+47 - (NSString *)projectFileName;\par
+48 \par
+49 - (NSString *)fullPathName;\par
+50 \par
+51 - (NSArray<NSString*> *)buildProductNames;\par
+52 \par
+53 - (NSString *)projectKey;\par
+54 \par
+55 - (NSString *)pathRelativeToProjectRoot;\par
+56 \par
+57 - (void)initFullProjectPath:(NSString *)fullProjectPath groupPath:(NSString *)groupPath;\par
+58 \par
+59 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCTarget.h\par \pard\plain 
+{\tc\tcl2 \v XCTarget.h}
+{\xe \v XCTarget.h}
+{\bkmkstart AAAAAAAAAV}
+{\bkmkend AAAAAAAAAV}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 \par
+15 {\cf17 @class} XCProject;\par
+16 {\cf17 @class} XCSourceFile;\par
+17 {\cf17 @class} XCProjectBuildConfig;\par
+18 {\cf17 @class} XCBuildShellScript;\par
+19 {\cf17 @class} XCBuildShellScriptDefinition;\par
+20 {\cf17 @protocol }XCBuildFile;\par
+21 \par
+25 {\cf17 @interface }XCTarget : NSObject\par
+26 \{\par
+27 \par
+28     XCProject* _project;\par
+29     NSString* _key;\par
+30     NSString* _name;\par
+31     NSString* _productName;\par
+32     NSString* _productReference;\par
+33     NSString* _productType;\par
+34     NSString* _defaultConfigurationName;\par
+35 \par
+36 {\cf17 @private}\par
+37     NSMutableArray* _members;\par
+38     NSMutableArray* _resources;\par
+39     NSMutableDictionary* _configurations;\par
+40     NSMutableArray *_buildShellScripts;\par
+41 \}\par
+42 \par
+43 {\cf17 @property}(nonatomic, strong, readonly) NSString* key;\par
+44 {\cf17 @property}(nonatomic, strong) NSString* name;\par
+45 {\cf17 @property}(nonatomic, strong) NSString* productName;\par
+46 {\cf17 @property}(nonatomic, strong, readonly) NSString* productReference;\par
+47 {\cf17 @property}(nonatomic, strong, readonly) NSString* productType;\par
+48 \par
+49 + (XCTarget*)targetWithProject:(XCProject*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName\par
+50     productReference:(NSString*)productReference productType:(NSString*)productType;\par
+51 \par
+52 - (id)initWithProject:(XCProject*)project key:(NSString*)key name:(NSString*)name productName:(NSString*)productName\par
+53     productReference:(NSString*)productReference productType:(NSString*)productType;\par
+54 \par
+55 - (NSArray<XCSourceFile*>*)resources;\par
+56 \par
+57 - (NSArray<id<XCBuildFile>>*)members;\par
+58 \par
+59 - (NSArray<XCBuildShellScript*>*)buildShellScripts;\par
+60 \par
+61 - (NSDictionary<NSString*,XCProjectBuildConfig*>*)configurations;\par
+62 \par
+63 - (XCProjectBuildConfig *)configurationWithName:(NSString*)name;\par
+64 \par
+65 - (XCProjectBuildConfig *)defaultConfiguration;\par
+66 \par
+67 - (void)addMember:({\cf18 id}<XCBuildFile>)member;\par
+68 \par
+69 - (void)makeAndAddShellScript:(XCBuildShellScriptDefinition*)shellScript;\par
+70 \par
+71 - (void)removeShellScriptByName:(NSString*)name;\par
+72 \par
+73 - (void)removeMemberWithKey:(NSString*)key;\par
+74 \par
+75 - (void)removeMembersWithKeys:(NSArray<NSString*>*)keys;\par
+76 \par
+77 - (void)removeResourceWithKey:(NSString*)key;\par
+78 \par
+79 - (void)removeResourcesWithKeys:(NSArray<NSString*>*)keys;\par
+80 \par
+81 - (void)addDependency:(NSString*)key;\par
+82 \par
+83 - (instancetype)duplicateWithTargetName:(NSString*)targetName productName:(NSString*)productName;\par
+84 \par
+85 - (BOOL)isApplicationType;\par
+86 \par
+87 {\cf17 @end}\par
+88 \par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCVersionGroup.h\par \pard\plain 
+{\tc\tcl2 \v XCVersionGroup.h}
+{\xe \v XCVersionGroup.h}
+{\bkmkstart AAAAAAAAAW}
+{\bkmkend AAAAAAAAAW}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf20 //}\par
+2 {\cf20 //  XCCoreDataModelVersioned.h}\par
+3 {\cf20 //  xcode-editor}\par
+4 {\cf20 //}\par
+5 {\cf20 //  Created by joel on 04/09/15.}\par
+6 {\cf20 //}\par
+7 {\cf20 //}\par
+8 \par
+9 {\cf21 #import <Foundation/Foundation.h>}\par
+10 {\cf21 #import <XcodeEditor/XcodeGroupMember.h>}\par
+11 {\cf21 #import <XcodeEditor/XCGroup.h>}\par
+12 {\cf21 #import <XcodeEditor/XCBuildFile.h>}\par
+13 \par
+14 {\cf17 @class} XCProject;\par
+15 {\cf17 @class} XCClassDefinition;\par
+16 {\cf17 @class} XCSourceFile;\par
+17 {\cf17 @class} XCXibDefinition;\par
+18 {\cf17 @class} XCFileOperationQueue;\par
+19 {\cf17 @class} XCFrameworkDefinition;\par
+20 {\cf17 @class} XCSourceFileDefinition;\par
+21 {\cf17 @class} XCSubProjectDefinition;\par
+22 \par
+23 {\cf17 @interface }XCVersionGroup : NSObject <XcodeGroupMember,XCBuildFile>\par
+24 \{\par
+25     NSString* _pathRelativeToParent;\par
+26     NSString* _key;\par
+27     \par
+28 {\cf17 @private}\par
+29     NSString* _pathRelativeToProjectRoot;\par
+30     NSMutableArray* _children;\par
+31     NSMutableArray* _members;\par
+32     NSString *_currentVersion;\par
+33     NSString *_versionGroupType;\par
+34     \par
+35     NSNumber *_isBuildFile;\par
+36     NSString *_buildFileKey;\par
+37     \par
+38     XCFileOperationQueue* _fileOperationQueue; {\cf20 // weak}\par
+39     XCProject* _project;\par
+40     \par
+41 \}\par
+42 \par
+43 \par
+49 {\cf17 @property}(nonatomic, strong, readonly) NSString* alias;\par
+50 \par
+56 {\cf17 @property}(nonatomic, strong, readonly) NSString* pathRelativeToParent;\par
+57 \par
+61 {\cf17 @property}(nonatomic, strong, readonly) NSString* key;\par
+62 \par
+66 {\cf17 @property}(nonatomic, strong, readonly) NSMutableArray* versions;\par
+67 \par
+68 {\cf17 @property}(nonatomic,strong) NSString*currentVersion;\par
+69 \par
+70 \par
+71 {\cf21 #pragma mark Initializers}\par
+72 \par
+73 + (XCVersionGroup*)versionGroupWithProject:(XCProject*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;\par
+74 \par
+75 - (id)initWithProject:(XCProject*)project key:(NSString*)key path:(NSString*)path children:(NSArray*)children currentVersion:(NSString*)currentVersion;\par
+76 \par
+77 {\cf21 #pragma mark Parent group}\par
+78 \par
+79 - (void)removeFromParentGroup;\par
+80 \par
+81 - (void)removeFromParentDeletingChildren:(BOOL)deleteChildren;\par
+82 \par
+83 - (XCGroup*)parentGroup;\par
+84 \par
+85 {\cf21 #pragma mark Adding children}\par
+86 \par
+90 - (void)addDataModelSource:(XCSourceFileDefinition*)sourceFileDefinition;\par
+91 \par
+92 {\cf21 #pragma mark Locating children}\par
+93 \par
+94 - (NSArray<XCSourceFile*>*)members;\par
+95 \par
+96 - (NSArray<NSString*>*)buildFileKeys;\par
+97 \par
+101 - (XCSourceFile*)memberWithKey:(NSString*)key;\par
+102 \par
+106 - (XCSourceFile*)memberWithDisplayName:(NSString*)name;\par
+107 \par
+108 - (NSDictionary*)asDictionary;\par
+109 \par
+110 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCXibDefinition.h\par \pard\plain 
+{\tc\tcl2 \v XCXibDefinition.h}
+{\xe \v XCXibDefinition.h}
+{\bkmkstart AAAAAAAAAX}
+{\bkmkend AAAAAAAAAX}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 \par
+14 {\cf21 #import <Foundation/Foundation.h>}\par
+15 {\cf21 #import <XcodeEditor/XCAbstractDefinition.h>}\par
+16 \par
+17 \par
+18 {\cf17 @interface }XCXibDefinition : XCAbstractDefinition\par
+19 \{\par
+20     NSString* _name;\par
+21     NSString* _content;\par
+22 \}\par
+23 {\cf17 @property}(nonatomic, strong, readonly) NSString* name;\par
+24 {\cf17 @property}(nonatomic, strong) NSString* content;\par
+25 \par
+26 + (XCXibDefinition*)xibDefinitionWithName:(NSString*)name;\par
+27 \par
+28 + (XCXibDefinition*)xibDefinitionWithName:(NSString*)name content:(NSString*)content;\par
+29 \par
+30 - (id)initWithName:(NSString*)name;\par
+31 \par
+32 - (id)initWithName:(NSString*)name content:(NSString*)content;\par
+33 \par
+34 - (NSString*)xibFileName;\par
+35 \par
+36 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+ClassCalledJanine.h\par \pard\plain 
+{\tc\tcl2 \v ClassCalledJanine.h}
+{\xe \v ClassCalledJanine.h}
+{\bkmkstart AAAAAAAAAY}
+{\bkmkend AAAAAAAAAY}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 {\cf21 #import <Foundation/Foundation.h>}\par
+2 \par
+3 \par
+4 {\cf17 @interface }ClassCalledJanine : NSObject\par
+5 {\cf17 @end}\par
+}
+\par \pard\plain 
+
+\pard\plain \sect\sbkpage
+\s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+\pard\plain \s2\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid 
+XCTestResourceUtils.h\par \pard\plain 
+{\tc\tcl2 \v XCTestResourceUtils.h}
+{\xe \v XCTestResourceUtils.h}
+{\bkmkstart AAAAAAAAAZ}
+{\bkmkend AAAAAAAAAZ}
+{
+\pard\plain \s40\li0\widctlpar\adjustright \shading1000\cbpat8 \f2\fs16\cgrid 1 \par
+2 {\cf20 //}\par
+3 {\cf20 //  JASPER BLUES}\par
+4 {\cf20 //  Copyright 2012 Jasper Blues}\par
+5 {\cf20 //  All Rights Reserved.}\par
+6 {\cf20 //}\par
+7 {\cf20 //  NOTICE: Jasper Blues permits you to use, modify, and distribute this file}\par
+8 {\cf20 //  in accordance with the terms of the license agreement accompanying it.}\par
+9 {\cf20 //}\par
+11 {\cf20 }\par
+12 \par
+13 {\cf21 #import <Foundation/Foundation.h>}\par
+14 \par
+15 {\cf20 //TODO: Just use one sample project}\par
+16 \par
+17 NSString *XCTestResourcePath({\cf18 void});\par
+18 \par
+19 NSString *XCSample1FolderPath({\cf18 void});\par
+20 \par
+21 NSString *XCSample1XcodeProjectPath({\cf18 void});\par
+22 \par
+23 NSString *XCBox2dSampleContainingFolderPath({\cf18 void});\par
+24 \par
+25 NSString *XCBox2dSampleProjectPath({\cf18 void});\par
+26 \par
+27 NSString *XCMasterDetailContainerFolderPath({\cf18 void});\par
+28 \par
+29 NSString *XCMasterDetailProjectPath({\cf18 void});\par
+30 \par
+31 \par
+32 NSString *NSStringWithXCTestResource(NSString *resourceName);\par
+33 \par
+34 NSData *NSDataWithXCTestResource(NSString *resourceName);\par
+}
+
+\pard\plain \sect\sbkpage
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid 
+\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs36\kerning36\cgrid Index\par 
+\pard\plain 
+{\tc \v Index}
+{\field\fldedit {\*\fldinst INDEX \\c2 \\*MERGEFORMAT}{\fldrslt INDEX}}
+}