- git config --add github.oauthtoken "$GITHUB_OAUTHTOKEN" # needed for github api rate limit
- pwd
- ccache -s
+ - ccache -z
- ccache -M 500M
- du -sh .gradle || true
- type -a nitc nitdoc || true # is there some nit tools?
- export CCACHE_DIR=$PWD/.ccache
- ccache -s
- du -sh .gradle || true
- - git status --ignored
+ - git status --ignored || true
- date
- tail status.txt
dependencies:
- build_tools
script:
- - git diff --name-only origin/master..HEAD -- "*.nit" "*.res" "README.*" | grep -v "^tests/" > list0.txt || true
+ - git diff --name-only origin/master..HEAD -- "*.nit" "*.res" "README.*" | grep -v "^tests/\|contrib/" > list0.txt || true
- xargs nitls -pP < list0.txt > list.txt
+ - test -s list.txt || exit 0
- xargs nitunit < list.txt
- junit2html nitunit.xml
artifacts:
# MISC ##############################################################
+check_requirments:
+ stage: more_test
+ image: debian:buster
+ before_script:
+ - date # cancel the default `before_script`, an empty list does nothing
+ script: # from the README
+ - apt-get update && apt-get install --yes --no-install-recommends build-essential ccache libgc-dev libunwind-dev pkg-config
+ - make
+ - bin/nitc examples/hello_world.nit
+ - ./hello_world
+ - . misc/nit_env.sh install
+ - nitc examples/hello_world.nit
+ - ./hello_world
+ - apt-get update && apt-get install --yes --no-install-recommends graphviz libcurl4-openssl-dev libevent-dev libmongoc-dev
+ - make more
+
bootstrap_full:
stage: more_test
dependencies:
paths:
- nitdoc.out
+build_manual:
+ stage: more_test
+ script:
+ - apt-get update && apt-get install --yes --no-install-recommends pandoc texlive texlive-latex-extra lmodern
+ - make -C doc/manual
+ artifacts:
+ paths:
+ - doc/manual/*.pdf
+ - doc/manual/*.epub
+
nitmetrics:
stage: more_test
dependencies:
- build_more_tools
script:
- - nitmetrics --all --log --log-dir nitmetrics.out --dir nitmetrics.out --keep-going lib src
+ - mkdir -p nitmetrics.out
+ - nitmetrics --all --log --log-dir nitmetrics.out --dir nitmetrics.out --keep-going lib src | tee nitmetrics.out/metrics.txt
artifacts:
paths:
- nitmetrics.out
- ./oot.sh pre-build
- cd ..
- nitcatalog -d catalog.out lib/ examples/ contrib/ contrib/oot/
- dependencies:
- - build_more_tools
artifacts:
paths:
- catalog.out
- macos
dependencies:
- build_tools_macos
+
+bench_old:
+ stage: more_test
+ tags:
+ - perf
+ dependencies:
+ - build_tools
+ script:
+ - benchmarks/bench_old.sh
+ allow_failure: true # time is unreliable. manual check required
+ services: []
+
+build_tools_windows:
+ stage: build
+ before_script:
+ - date
+ after_script:
+ - date
+ tags:
+ - windows
+ script:
+ - $project_dir = "$CI_PROJECT_DIR" -replace "\\", "\\\"
+ - $converted_project_dir = $(c:\msys64\usr\bin\bash -l -c "cygpath -u $project_dir")
+ - c:\msys64\usr\bin\env MSYSTEM=MINGW64 c:\msys64\usr\bin\bash -l -c "cd $converted_project_dir; make"
* pkg-config http://www.freedesktop.org/wiki/Software/pkg-config/
* ccache http://ccache.samba.org/ to improve recompilation
* libgc-dev http://hboehm.info/gc/
- * graphviz http://www.graphviz.org/ to enable graphs with the nitdoc tool
* libunwind http://nongnu.org/libunwind
Those are available in most Linux distributions
- $ sudo apt-get install build-essential ccache libgc-dev graphviz libunwind-dev pkg-config
+ $ sudo apt-get install build-essential ccache libgc-dev libunwind-dev pkg-config
and on OS X using brew
- $ brew install ccache bdw-gc graphviz libunwind-headers pkgconfig
+ $ brew install ccache bdw-gc libunwind-headers pkgconfig
or with MacPorts
- $ sudo port install ccache boehmgc graphviz libunwind-headers pkgconfig
+ $ sudo port install ccache boehmgc libunwind-headers pkgconfig
Important files and directories:
$ . misc/nit_env.sh install
+
+More tools:
+
+Additional tools can also be compiled but require more dependencies.
+
+ * graphviz http://www.graphviz.org/ to enable graphs with the nitdoc tool
+ * libcurl https://curl.haxx.se/libcurl/ for the nit package manager nitpm
+ * libevent https://libevent.org/ for the nit documentation server nitweb
+ * libmongoc http://mongoc.org/ also for nitweb
+
+ $ sudo apt-get install graphviz libcurl4-openssl-dev libevent-dev libmongoc-dev
+ $ make more
+
+
Contributing:
To contribute to Nit, please see [CONTRIBUTING](CONTRIBUTING.md).
--- /dev/null
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This shell script run and compare nitc with the one in origin/master
+
+# execute a command multiple time and store its executin metrics
+# $1 = output file (.tsv)
+# $2. = command to execute
+bench_one() {
+ out=$1
+ shift
+ > "$out"
+ echo "> $*"
+ echo -e "user\treal\t%cpu\tmem"
+ for i in `seq 6`; do
+ /usr/bin/time -o "$out" -a -f "%U\t%e\t%P\t%M" "$@" >/dev/null
+ tail -n 1 "$out"
+ done
+}
+
+# Get column $2, $3-th lowest value of tsv file $1
+get() {
+ cut -f "$2" < "$1" | sort -n | head -n "$3" | tail -n 1
+}
+
+# $1 + result% = $2
+percent() {
+ perl -e "printf '%+.1f', ($2/$1-1)*100;"
+}
+
+# compare two tsv generated by `bench_one`.
+# displays numbers and returns 1 if some execution metrics is above a threshold
+compare() {
+ # Chose the median value
+ u1=`get "$1" 1 3`
+ e1=`get "$1" 2 3`
+ m1=`get "$1" 4 3`
+ u2=`get "$2" 1 3`
+ e2=`get "$2" 2 3`
+ m2=`get "$2" 4 3`
+ ud=`percent "$u1" "$u2"`
+ ed=`percent "$e1" "$e2"`
+ md=`percent "$m1" "$m2"`
+ echo "Before: user=$u1 real=$e1 mem=$m1"
+ echo "After: user=$u2 ($ud%) real=$e2 ($ed%) mem=$m2 ($md%)"
+ # Fail if above threshold
+ perl -e "exit ($ud>=3 || $ed>=5 || $md>=0.3)"
+}
+
+set -e
+#set -x
+
+old=`git show --pretty="%h %D" --no-patch origin/master`
+new=`git show --pretty="%h %D" --no-patch`
+if [ ! -f bin/nitc_old ]; then
+ git checkout origin/master
+ nitc --semi-global src/nitc.nit -o bin/nitc_old -v
+ nitc --semi-global src/nit.nit -o bin/nit_old -v
+ git checkout -
+fi
+
+bench_one "nitc_old.tsv" nitc_old --no-cc src/nitc.nit
+bench_one "nitc_new.tsv" nitc --no-cc src/nitc.nit
+bench_one "nit_old.tsv" nit_old -- src/nitls.nit -p lib/core
+bench_one "nit_new.tsv" nit -- src/nitls.nit -p lib/core
+
+echo
+echo "Before is $old"
+echo "After is $new"
+echo "For nitc src/nitls.nit:"
+ret=0
+compare "nitc_old.tsv" "nitc_new.tsv" || ret=1
+echo "For nit src/nitls.nit -p lib/core:"
+compare "nit_old.tsv" "nit_new.tsv" || ret=1
+exit "$ret"
# Query the Github PR API to perform a merge
module github_merge
-import github::github_curl
+import github::api
import template
import config
-redef class Object
- # Factorize cast
- fun json_as_a: JsonArray do return self.as(JsonArray)
- # Factorize cast
- fun json_as_map: JsonObject do return self.as(JsonObject)
-end
+redef class GithubAPI
-redef class GithubCurl
- # Get a given pull request (PR)
- fun getpr(repo: String, number: Int): nullable JsonObject
- do
- var ir = get_and_check("https://api.github.com/repos/{repo}/issues/{number}")
- var irm = ir.json_as_map
- if not irm.has_key("pull_request") then return null
- var pr = get_and_check("https://api.github.com/repos/{repo}/pulls/{number}")
- var prm = pr.json_as_map
- var sha = prm["head"].json_as_map["sha"].to_s
- var statuses = get_and_check("https://api.github.com/repos/{repo}/commits/{sha}/status")
- statuses = statuses.json_as_map
- prm["statuses"] = statuses
- print "{prm["title"].to_s}: by {prm["user"].json_as_map["login"].to_s} (# {prm["number"].to_s})"
- var mergeable = prm["mergeable"]
- if mergeable != null then
- print "\tmergeable: {mergeable.to_s}"
- else
- print "\tmergeable: unknown"
- end
- var state = statuses["state"]
- if state == null then
- print "\tstatus: not tested"
- else
- print "\tstatus: {state}"
- var sts = statuses["statuses"].json_as_a
- for st in sts do
- st = st.json_as_map
- var ctx = st["context"].to_s
- state = st["state"].to_s
- print "\tstatus {ctx}: {state}"
- prm["status-{ctx}"] = state
- end
- end
- return prm
+ # Get a given pull request and its state
+ private fun get_pull_with_state(repo: String, number: Int): nullable PullState do
+ var pull = get_pull(repo, number)
+ if not pull isa PullRequest then return null
+
+ var statuses = get_commit_status(repo, pull.head.sha)
+ if not statuses isa CommitStatus then return null
+
+ return new PullState(pull, statuses)
end
# Get reviewers of a PR
- fun getrev(repo: String, pr: JsonObject): Array[String]
- do
- var number = pr["number"].as(Int)
- var user = pr["user"].json_as_map["login"].as(String)
- var comments = new Array[nullable Object]
- comments.add_all(get_and_check("https://api.github.com/repos/{repo}/issues/{number}/comments").json_as_a)
- comments.add_all(get_and_check("https://api.github.com/repos/{repo}/pulls/{number}/comments").json_as_a)
+ private fun get_pull_reviewers(repo: String, pull: PullRequest): Array[String] do
+ var user = pull.user.as(not null).login
+
+ var comments = new Array[Comment]
+ comments.add_all(get_issue_comments(repo, pull.number))
+ comments.add_all(get_pull_comments(repo, pull.number))
+
var logins = new Array[String]
- for c in comments do
- var cm = c.json_as_map
- var l = cm["user"].json_as_map["login"]
- assert l isa String
- if l != user and not logins.has(l) then logins.add(l)
+ for comment in comments do
+ var login = comment.user.login
+ if login != user and not logins.has(login) then logins.add(login)
end
var res = new Array[String]
- for l in logins do
- var u = get_and_check("https://api.github.com/users/{l}").json_as_map
- if not u.has_key("name") or u["name"] == null or not u.has_key("email")or u["email"] == null then
- print "No public name/email for user {l}"
+ for login in logins do
+ var rev = get_user(login)
+ if rev == null or rev.name == null or rev.email == null then
+ print "No public name/email for user {login}"
continue
end
- var r = "{u["name"].to_s} <{u["email"].to_s}>"
- res.add r
-
+ res.add "{rev.name or else "N/A"} <{rev.email or else "N/A"}>"
end
return res
end
+end
+
+private class PullState
+ var pull: PullRequest
+ var status: CommitStatus
+
+ fun pretty: String do
+ var s = new Buffer
+ s.append "{pull.title}: by {pull.user.as(not null).login} (# {pull.number})\n"
+ s.append "\tmergeable: {pull.mergeable or else "unknown"}\n"
+ s.append "\tstatus: {status.state or else "not tested"}\n"
+ for sub in status.statuses do
+ s.append "\tstatus {sub.context or else "N/A"}: {sub.state or else "N/A"}\n"
+ end
+ return s.write_to_string
+ end
+ fun state_for(context: String): nullable String do
+ for sub in status.statuses do
+ if sub.context == context then return sub.state
+ end
+ return null
+ end
end
if "NIT_TESTING".environ == "true" then exit 0
var opt_repo = new OptionString("Repository (e.g. nitlang/nit)", "-r", "--repo")
var opt_auth = new OptionString("OAuth token", "--auth")
-var opt_query = new OptionString("Query to get issues (e.g. label=ok_will_merge)", "-q", "--query")
+var opt_query = new OptionString("Query to get issues (e.g. label:ok_will_merge)", "-q", "--query")
var opt_keepgoing = new OptionBool("Skip merge conflicts", "-k", "--keep-going")
var opt_all = new OptionBool("Merge all", "-a", "--all")
var opt_status = new OptionArray("A status context that must be \"success\" (e.g. default)", "--status")
var query = opt_query.value or else "labels=ok_will_merge"
-var curl = new GithubCurl(auth, "Merge-o-matic (nitlang/nit)")
+var api = new GithubAPI(auth, "Merge-o-matic (nitlang/nit)")
if args.is_empty then
# Without args, list `ok_will_merge`
- var x = curl.get_and_check("https://api.github.com/repos/{repo}/issues?{query}")
+ var issues = api.search_repo_issues(repo, query)
+ if issues == null or issues.items.is_empty then
+ print "No issues for query `{query}`."
+ exit 1
+ end
var list = new Array[String]
- for y in x.json_as_a do
- var number = y.json_as_map["number"].as(Int)
- var pr = curl.getpr(repo, number)
- if pr == null then continue
+ for issue in issues.as(not null).items do
+ if not issue isa Issue then continue
+ if not issue.is_pull_request then continue
+
+ var state = api.get_pull_with_state(repo, issue.number)
+ if not state isa PullState then continue
+
+ print state.pretty
for ctx in opt_status.value do
- if pr.get_or_null("status-{ctx}") != "success" then
+ if state.state_for(ctx) != "success" then
print "No \"success\" for {ctx}. Skip."
- continue label
+ # continue label
end
end
- list.add number.to_s
+
+ list.add issue.number.to_s
end label
if not opt_all.value then return
for arg in args do
# With a arg, merge the PR
var number = arg.to_i
- var pr = curl.getpr(repo, number)
- if pr == null then
+ var pull = api.get_pull(repo, number)
+ if pull == null then
print "Not a PR: {number}"
return
end
- var revs = curl.getrev(repo, pr)
+
+ var revs = api.get_pull_reviewers(repo, pull)
var mergemsg = new Template
- mergemsg.add "Merge: {pr["title"].to_s}\n\n"
- mergemsg.add "{pr["body"].to_s}\n\n"
- mergemsg.add "Pull-Request: #{pr["number"].to_s}\n"
- for r in revs do
- mergemsg.add "Reviewed-by: {r}\n"
+ mergemsg.add "Merge: {pull.title}\n\n"
+ mergemsg.add "{pull.body or else "N/A"}\n\n"
+ mergemsg.add "Pull-Request: #{pull.number}\n"
+ for rev in revs do
+ mergemsg.add "Reviewed-by: {rev}\n"
end
mergemsg.write_to_file("mergemsg")
- var sha = pr["head"].json_as_map["sha"].as(String)
+ var sha = pull.head.sha
if system("git show -s --pretty=format:%h {sha}") != 0 then
print "Commit {sha} not in local repository; did you fetch github?"
return
# Script to scan Github for repositories possibly using JNI.
module github_search_for_jni
-import github::github_curl
+import github::api
+import json::static
# The proprieties introduced by this redef are to be used only on a JSON object
# representing a Github repository.
# Query sent to Github
var main_query = "language:java"
-# Curl instance use for all requests
-var curl = new GithubCurl("OAUTH TOKEN (replace with your own)", "JNI project finder (nitlanguage.org)")
+# API client instance use for all requests
+var api = new GithubAPI("OAUTH TOKEN (replace with your own)", "JNI project finder (nitlanguage.org)")
if "NIT_TESTING".environ == "true" then exit 0
var per_page = 100
loop
# Get a page of the main query
- var uri = "https://api.github.com/search/repositories?q={main_query}&page={page}&per_page={per_page}&sort=stars"
- var obj = curl.get_and_check(uri).as(JsonObject)
+ var uri = "/search/repositories?q={main_query}&page={page}&per_page={per_page}&sort=stars"
+ var obj = api.send("GET", uri).parse_json.as(JsonObject)
# Main object has "total_count" and "items"
var items = obj["items"].as(JsonArray)
# Download the language list
var lang_url = item["languages_url"].as(String)
- var langs = curl.get_and_check(lang_url).as(JsonObject)
+ var langs = api.send("GET", lang_url).parse_json.as(JsonObject)
# The project is of interest if it has lots of Java and at least some C
var may_be_of_interest = langs.has_lots_of_java and langs.has_some_c
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NITC ?= nitc
-NITLS ?= nitls
-NITUNIT ?= nitunit
-NITDOC ?= nitdoc
-
-NEO4J_DIR=/var/lib/neo4j
-OLD_PWD=${PWD}
-
-.PHONY: all
-all: bin/neo_doxygen
-
-bin/neo_doxygen: $(shell $(NITLS) -M src/neo_doxygen.nit)
- mkdir -p bin/
- $(NITC) src/neo_doxygen.nit -o bin/neo_doxygen
-
-.PHONY: check
-check:
- $(NITUNIT) .
-
-# Reset the local graph.
-.PHONY: reset-neo
-reset-neo:
- sudo -u neo4j "${NEO4J_DIR}/bin/neo4j" stop \
- && sudo -u neo4j rm -rf "${NEO4J_DIR}/data/graph.db" \
- && sudo -u neo4j "${NEO4J_DIR}/bin/neo4j" start
-
-# Regenerate the XML documents in `tests`.
-.PHONY: tests
-tests:
- $(MAKE) -C tests
-
-# Run the tests.
-.PHONY: run-tests
-run-tests:
- cd ../../tests; \
- ./tests.sh ../contrib/neo_doxygen/src/tests/neo_doxygen_*.nit ; \
- cd "${OLD_PWD}"
-
-.PHONY: doc
-doc:
- $(NITDOC) . -o doc/
-
-.PHONY: clean
-clean:
- rm -rf bin/
- rm -rf doc/
+++ /dev/null
-# neo_doxygen
-
-This project provides a tool to convert a Doxygen XML output into a model in
-Neo4j that is readable by the `nx` tool.
-
-
-## Installation
-
-Ensure that you have a working version of `nitc` in `../../bin` then run `make`
-in the present directory. The executable will be then generated at
-`bin/neo_doxygen`.
-
-
-## Usage
-
-Here is the procedure to generate an HTML documentation of a project using the
-formatting of Nitdoc:
-
-1. First run Doxygen to generate an XML output of the documentation. In order to do
-this, you have to enable the `GENERATE_XML` option. Note that you can disable
-the `XML_PROGRAMLISTING` to speed up the process and save disk space.
-
- <strong>Important</strong>
-
- `neo_doxygen` do not read the `index.xml` file to know which file to load. As a
- result, it may read files let by previous runs of Doxygen. To avoid producing
- garbage, always clear the destination directory of the XML files before running
- Doxygen.
-
- Example: `rm -rf doxygen/xml && doxygen Doxyfile`
-
-2. Use `bin/neo_doxygen` to generate the Neo4j graph. For details, run
-`bin/neo_doxygen --help`.
-
- <strong>Important</strong>
-
- `neo_doxygen` do not remove what is already in the graph. So, you have to
- manualy clear the graph (or at least, the subgraph contaning all the nodes
- labelled with the specified project name) between each run.
-
- For an example of how to delete an entire Neo4j database, see
- `make reset-neo`.
-
- Example: `make reset-neo && neo_doxygen my_project doxygen/xml`
-
-3. Use the `nx` tool to generate the HTML documentation from the previously
-generated graph.
-
- Note: `nx` need to be configured before usage. For more details, refer to
- the documentation of `nx`.
-
- Example: `nx neo doc my_project`
-
-
-## Shell scripts
-
-The two shell scripts (`gen-one.sh` and `gen-all.sh`) are provided to automate
-the execution of `neo_doxygen` and `nx` for some typical cases and to give a
-starting for the development of similar scripts. In order for them to work,
-each project on which they operate **must** contain the following files:
-
- * The `.nx_config` configuration file for the `nx` tool, located at the root
- of the project.
-
- * The XML documents generated by Doxygen, located in the `doxygen/xml`
- directory.
-
-Also, they **must** be run with the current working directory set to the present
-directory. `gen-one.sh` handle only one project at a time while `gen-all.sh`
-works on a collection of projects grouped in a directory. For detail about how
-to invoke each script, see the comments in these scripts.
-
-
-## Brief descriptions
-
-To populate the first line of a description (used as brief description in
-Nitdoc), `neo_doxygen` uses the brief description provided by Doxygen. So, you
-may need to change settings like `JAVADOC_AUTOBRIEF`, `QT_AUTOBRIEF` and
-`MULTILINE_CPP_IS_BRIEF` in Doxygen to make `neo_doxygen` properly split the
-brief description from the detailed description. In absence of brief
-description, `neo_doxygen` will use the first block (usually, the first
-paragraph) of the detailed as brief description.
-
-
-## Python
-
-The built-in filter of Doxygen for Python is very basic. For example, it
-recognizes anything in the “docstrings” as verbatim detailed description. In
-order to enhance the processing of the Python scripts, the
-[doxypypy](https://github.com/Feneric/doxypypy) filter may be used.
+++ /dev/null
-#! /bin/bash
-
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ./gen-all.sh <source_language> <directory>
-#
-# Document all projects in the specified directory.
-#
-# Projects are direct sub-directories of the specified directory.
-# Every project directory must contain a `.nx_config` file.
-# Also, every project must include the Doxygen XML output in its `doxygen/xml`
-# directory.
-
-for dir in "$2"/*; do
- if [ -d "$dir" ]; then
- if [ -f "$dir/.nx_config" ]; then
- # Note: gen-one.sh already prints errors.
- ./gen-one.sh "$1" "$dir" || exit
- fi
- fi
-done
+++ /dev/null
-#! /bin/bash
-
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ./gen-one.sh <source_language> <directory>
-#
-# Document the project in the specified directory.
-#
-# The project name is the basename of the specified directory.
-# The project directory must contain a `.nx_config` file.
-# Also, the directory must include the Doxygen XML output in its `doxygen/xml`
-# subdirectory.
-
-NEO_DOXYGEN="${PWD}/bin/neo_doxygen"
-NX="${PWD}/../../bin/nx"
-dir=$2
-
-. sh-lib/errors.sh
-
-echo "$0: Documenting \"${dir##*/}\"..."
-pushd "$dir"
-try "$NEO_DOXYGEN" --src-lang "$1" --dest http://localhost:7474 -- "${dir##*/}" "$dir/doxygen/xml"
-try echo "$0: [done] neo_doxygen"
-try "$NX" neo doc "${dir##*/}"
-try echo "$0: [done] nx"
-popd
+++ /dev/null
-[package]
-name=neo_doxygen
-tags=devel,cli
-maintainer=Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
-license=Apache-2.0
-desc=neo_doxygen, a tool to convert a Doxygen XML output into a Neo4j model
-[upstream]
-browse=https://github.com/nitlang/nit/tree/master/contrib/neo_doxygen/
-git=https://github.com/nitlang/nit.git
-git.directory=contrib/neo_doxygen/
-homepage=http://nitlanguage.org
-issues=https://github.com/nitlang/nit/issues
+++ /dev/null
-Libraries used by shell scripts.
+++ /dev/null
-#! /bin/bash
-
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Error handling.
-
-# The program’s name.
-prog_name=$0
-
-# Run the specified command and exit in case of error.
-function try {
- "$@"
- local status=$?
- if [ $status -ne 0 ]; then
- >&2 echo "${prog_name}: Error: \`$1\` failed with exit status ${status}."
- trace
- exit "$status"
- fi
- return 0
-}
-
-# Print the stack trace.
-function trace {
- local frame=0
- >&2 caller $frame
- local has_next=$?
- while [ $has_next = 0 ]; do
- ((frame++));
- >&2 caller $frame
- has_next=$?
- done
- >&2 echo "---"
- return 0
-}
+++ /dev/null
-#! /bin/sh
-
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Functions related to the `sed` utility.
-
-# Replace `$1` by `$2` in the specified files (the rest of the arguments).
-#
-# Replacements are done in place.
-#
-# SETS: `local_1`
-# SETS: `local_2`
-replace() {
- local_1=`escape_to_bre "$1"`
- local_2=`escape_to_bre "$2"`
- shift 2
- sed -s -i -e s."${local_1}"."${local_2}".g -- "$@"
- unset local_1
- unset local_2
-}
-
-# Escape `$1` for inclusion in a POSIX BRE.
-escape_to_bre() {
- echo "$1" | sed -e 's/\*\|\.\|\^\|\$\|\[\|\\/\\\0/g'
-}
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# `compounddef` element reading.
-module doxml::compounddef
-
-import memberdef
-import doxyname
-import more_collections
-
-# Processes the content of a `compounddef` element.
-class CompoundDefListener
- super EntityDefListener
-
- # The defined compound.
- var compound: Compound is writable, noinit
-
- private var memberdef: MemberDefListener is noinit
- private var param_listener: TypeParamListener is noinit
-
- # Default attributes for members in the current section.
- private var member_defaults: MemberDefaults is noinit
-
- # For each section kind, default attributes for member in that section.
- private var section_kinds: DefaultMap[String, MemberDefaults] is noinit
-
-
- # Attributes of the current `<basecompoundref>` element.
-
- private var refid = ""
- private var prot = ""
- private var virt = ""
-
-
- init do
- super
- var defaults = new MemberDefaults("public", false, false)
-
- memberdef = new MemberDefListener(reader, self)
- param_listener = new TypeParamListener(reader, self)
-
- member_defaults = defaults
- section_kinds = new DefaultMap[String, MemberDefaults](defaults)
-
- # public
- section_kinds["public-type"] = defaults
- section_kinds["public-func"] = defaults
- section_kinds["public-attrib"] = defaults
- section_kinds["public-slot"] = defaults
- # public static
- defaults = new MemberDefaults("public", true, false)
- section_kinds["public-static-func"] = defaults
- section_kinds["public-static-attrib"] = defaults
- # Not scoped => public static
- section_kinds["signal"] = defaults
- section_kinds["dcop-func"] = defaults
- section_kinds["property"] = defaults
- section_kinds["event"] = defaults
- section_kinds["define"] = defaults
- section_kinds["typedef"] = defaults
- section_kinds["enum"] = defaults
- section_kinds["func"] = defaults
- section_kinds["var"] = defaults
-
- # protected
- defaults = new MemberDefaults("protected", false, false)
- section_kinds["protected-type"] = defaults
- section_kinds["protected-func"] = defaults
- section_kinds["protected-attrib"] = defaults
- section_kinds["protected-slot"] = defaults
- # protected static
- defaults = new MemberDefaults("protected", true, false)
- section_kinds["protected-static-func"] = defaults
- section_kinds["protected-static-attrib"] = defaults
-
- # package
- defaults = new MemberDefaults("package", false, false)
- section_kinds["package-type"] = defaults
- section_kinds["package-func"] = defaults
- section_kinds["package-attrib"] = defaults
- # package static
- defaults = new MemberDefaults("package", true, false)
- section_kinds["package-static-func"] = defaults
- section_kinds["package-static-attrib"] = defaults
-
- # private
- defaults = new MemberDefaults("private", false, false)
- section_kinds["private-type"] = defaults
- section_kinds["private-func"] = defaults
- section_kinds["private-attrib"] = defaults
- section_kinds["private-slot"] = defaults
- # private static
- defaults = new MemberDefaults("private", true, false)
- section_kinds["private-static-func"] = defaults
- section_kinds["private-static-attrib"] = defaults
-
- # Special sections.
- # TODO Do something these sections.
- defaults = new MemberDefaults("public", true, true)
- section_kinds["related"] = defaults
- section_kinds["user-defined"] = defaults
- # TODO Determine what `friend` and `prototype` mean.
- end
-
- redef fun entity: Entity do return compound
-
- redef fun start_dox_element(local_name: String, atts: Attributes) do
- if "compoundname" == local_name then
- text.listen_until(dox_uri, local_name)
- else if ["innerclass", "innernamespace", "basecompoundref"].has(local_name) then
- prot = get_optional(atts, "prot", "")
- text.listen_until(dox_uri, local_name)
- if "basecompoundref" == local_name then
- refid = get_optional(atts, "refid", "")
- virt = get_optional(atts, "virt", "")
- else
- refid = get_required(atts, "refid")
- end
- else if "memberdef" == local_name then
- read_member(atts)
- else if "sectiondef" == local_name then
- member_defaults = section_kinds[get_required(atts, "kind")]
- if member_defaults.is_special then
- super # TODO
- end
- else if "param" == local_name then
- param_listener.listen_until(dox_uri, local_name)
- else if "templateparamlist" != local_name then
- super
- end
- end
-
- redef fun end_dox_element(local_name: String) do
- if "compoundname" == local_name then
- compound.doxyname = text.to_s
- else if "innerclass" == local_name then
- compound.doxygen_declare_class(refid, text.to_s, prot)
- else if "innernamespace" == local_name then
- compound.declare_namespace(refid, text.to_s)
- else if "memberdef" == local_name then
- if not (memberdef.member isa UnknownMember) then
- compound.declare_member(memberdef.member)
- end
- else if "basecompoundref" == local_name then
- compound.declare_super(refid, text.to_s, prot, virt)
- else if "param" == local_name and compound isa ClassCompound then
- compound.as(ClassCompound).add_type_parameter(param_listener.parameter)
- else
- super
- end
- end
-
- private fun read_member(atts: Attributes) do
- var kind = get_required(atts, "kind")
-
- create_member(kind)
- memberdef.member.model_id = get_required(atts, "id")
- memberdef.member.visibility = get_optional(atts, "prot",
- member_defaults.visibility)
- end
-
- private fun create_member(kind: String) do
- if kind == "variable" then
- memberdef.member = new Attribute(compound.graph)
- else if kind == "function" then
- memberdef.member = new Method(compound.graph)
- else
- memberdef.member = new UnknownMember(compound.graph)
- noop.listen_until(dox_uri, "memberdef")
- return
- end
- memberdef.listen_until(dox_uri, "memberdef")
- end
-end
-
-# Default attributes for members in the current section.
-private class MemberDefaults
- var visibility: String
- var is_static: Bool
- var is_special: Bool
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Documentation reading.
-module doxml::doc_listener
-
-import listener
-import html
-
-# Processes documentation.
-class DocListener
- super TextListener
-
- # The read documentation.
- var doc = new Documentation is writable
-
- # Mapping between the type of a Doxygen element and the corresponding
- # factory.
- private var factories = new HashMap[String, HtmlElementFactory]
-
- private var element_stack = new Array[HTMLTag]
-
- # Does the next block have to be added to the detailed description?
- private var in_detailed_description = false
-
- redef fun listen_until(uri, local_name) do
- super
- if local_name == "briefdescription" then
- in_detailed_description = false
- else
- in_detailed_description = true
- end
- end
-
- redef fun start_dox_element(local_name, atts) do
- super
- var factory = factories.get_or_null(local_name)
- if factory == null then return
- element_stack.push(factory.create_element(local_name, atts))
- end
-
- redef fun end_dox_element(local_name) do
- super
- if not factories.has_key(local_name) then return
- if element_stack.is_empty then return
- var current_element = element_stack.pop
- current_element.append(flush_buffer.trim)
- if element_stack.is_empty then add_block(current_element.write_to_string)
- end
-
- redef fun end_listening do
- super
- if not element_stack.is_empty then
- var current_element = element_stack.first.write_to_string
- add_block(current_element)
- end
- add_block(flush_buffer.trim)
- element_stack.clear
- end
-
- private fun add_block(block: String) do
- if block.is_empty then return
- if in_detailed_description then
- doc.add(block)
- else
- doc.brief_description = block
- in_detailed_description = true
- end
- end
-end
-
-# Provides a mean to create a certain kind of HTML elements.
-private abstract class HtmlElementFactory
- # Create a new empty HTML element.
- #
- # Parameters:
- #
- # * `local_name`: Type of the Doxygen element that will be represented by
- # the HTML element.
- # * `attributes`: Attributes of the Doxygen element that will be
- # represented by the HTML element.
- fun create_element(local_name: String, attributes: Attributes): HTMLTag is abstract
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Doxygen’s XML documents reading.
-module doxml
-
-import compounddef
-
-# Reader for XML documents whose the schema is `compound.xsd`.
-class CompoundFileReader
- super DoxmlListener
-
- # The project graph.
- var model: ProjectGraph
-
- # The language-specific strategies to use.
- redef var source_language: SourceLanguage
-
- private var reader: XMLReader = new XophonReader
- private var compounddef: CompoundDefListener is noinit
- private var noop: NoopListener is noinit
-
- init do
- compounddef = new CompoundDefListener(reader, self)
- noop = new NoopListener(reader, self)
- end
-
- redef fun graph do return model
-
- # Read the document at the specified path.
- fun read(path: String) do
- reader.content_handler = self
- reader.parse_file(path)
- compounddef.compound = new UnknownCompound(model)
- end
-
- redef fun start_dox_element(local_name: String, atts: Attributes) do
- if local_name == "compounddef" then
- read_compound(atts)
- else if "doxygen" != local_name then
- noop.listen_until(dox_uri, local_name)
- end
- end
-
- private fun read_compound(atts: Attributes) do
- var kind = get_required(atts, "kind")
-
- create_compound(kind)
- # TODO Make all values of `kind` and `visibility` compatible with the Nit meta-model.
- if get_bool(atts, "final") then
- kind = "final {kind}"
- end
- if get_bool(atts, "sealed") then
- kind = "sealed {kind}"
- end
- if get_bool(atts, "abstract") then
- kind = "abstract {kind}"
- end
- compounddef.compound.kind = kind
- compounddef.compound.model_id = get_required(atts, "id")
- compounddef.compound.visibility = get_optional(atts, "prot", "")
- end
-
- private fun create_compound(kind: String) do
- if kind == "file" then
- compounddef.compound = new FileCompound(model)
- else if kind == "namespace" then
- compounddef.compound = new Namespace(model)
- else if kind == "class" or kind == "interface" or kind == "enum" then
- compounddef.compound = new ClassCompound(model)
- else
- compounddef.compound = new UnknownCompound(model)
- noop.listen_until(dox_uri, "compounddef")
- return
- end
- compounddef.listen_until(dox_uri, "compounddef")
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Adds a methods to convert Doxygen’s names into short names.
-module doxml::doxyname
-
-import model
-
-redef class Compound
-
- # Separator used by Doxygen to separate name’s components.
- protected fun doxyname_separator: String do return "::"
-
- # Set the `name` using the specified name generated by Doxygen.
- fun doxyname=(doxyname: String) do
- name = doxyname.to_short_name(doxyname_separator)
- end
-
- # Declare an inner class.
- #
- # Note: Althought Doxygen indicates that both arguments are optional,
- # declarations with an empty ID are not supported yet.
- #
- # Parameters:
- #
- # * `id`: `model_id` of the inner class.
- # * `doxyname`: qualified name of the inner class, as generated by Doxygen.
- # * `prot`: visibility (proctection).
- #
- # TODO: Handle cases where only the `doxyname` is available.
- fun doxygen_declare_class(id: String, doxyname: String, prot: String) do
- declare_class(id, doxyname.to_short_name(doxyname_separator), prot)
- end
-end
-
-redef class Namespace
- # Set the `name` and the `full_name` using the specified name generated by Doxygen.
- #
- # Warning: This method assumes that `model_id` is already set.
- redef fun doxyname=(doxyname: String) do
- full_name = doxyname
- super
- if doxyname == name and model_id != "" then
- # Doxygen does not represent the root namespace.
- # So, we have to link the root namespace with its children manually.
- graph.by_id[""].as(Namespace).declare_namespace(model_id, doxyname)
- end
- end
-end
-
-redef class FileCompound
- redef fun doxyname_separator do return "/"
-end
-
-redef class Text
- # Return the substring that come after the last occurrence of `separator`.
- #
- # Return the whole string if `sperator` is not present.
- private fun to_short_name(separator: String): SELFTYPE do
- var m = search_last(separator)
-
- if m == null then
- return self
- else
- return substring_from(m.after)
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Common SAX listeners for entity definitions.
-module doxml::entitydef
-
-import doc_listener
-
-# Processes the content of an entity definition.
-abstract class EntityDefListener
- super StackableListener
-
- # The inner `TextListener`.
- protected var text: TextListener is noinit
-
- # The inner `DocListener`.
- protected var doc: DocListener is noinit
-
- # The inner `NoopListener`.
- protected var noop: NoopListener is noinit
-
- init do
- super
- text = new TextListener(reader, self)
- doc = new DocListener(reader, self)
- noop = new NoopListener(reader, self)
- end
-
- # The current entity.
- protected fun entity: Entity is abstract
-
- redef fun start_dox_element(local_name, atts) do
- if ["briefdescription", "detaileddescription", "inbodydescription"].has(local_name) then
- doc.doc = entity.doc
- doc.listen_until(dox_uri, local_name)
- else if "location" == local_name then
- entity.location = get_location(atts)
- else
- noop.listen_until(dox_uri, local_name)
- end
- end
-
- redef fun end_listening do
- super
- entity.put_in_graph
- end
-
- # Parse the attributes of a `location` element.
- protected fun get_location(atts: Attributes): neo_doxygen::Location do
- var location = new neo_doxygen::Location
-
- location.path = atts.value_ns("", "bodyfile") or else atts.value_ns("", "file")
- # Doxygen may indicate `[generated]`.
- if "[generated]" == location.path then location.path = null
- var line_start = atts.value_ns("", "bodystart") or else atts.value_ns("", "line") or else null
- if line_start != null then location.line_start = line_start.to_i
- var line_end = atts.value_ns("", "bodyend")
- if line_end != null then location.line_end = line_end.to_i
- var column_start = atts.value_ns("", "column")
- if column_start != null then location.column_start = column_start.to_i
- if location.line_start == location.line_end then
- location.column_end = location.column_start
- end
- return location
- end
-end
-
-# Processes the content of a `<param>` element.
-abstract class ParamListener[T: Parameter]
- super EntityDefListener
-
- # The current parameter.
- var parameter: T is noinit
-
- private var type_listener: TypeListener is noinit
-
- init do
- super
- type_listener = new TypeListener(reader, self)
- end
-
- redef fun entity do return parameter
-
- redef fun listen_until(uri, local_name) do
- super
- parameter = create_parameter
- end
-
- # Create a new parameter.
- protected fun create_parameter: T is abstract
-
- redef fun start_dox_element(local_name, atts) do
- if "declname" == local_name then
- text.listen_until(dox_uri, local_name)
- else if "type" == local_name then
- type_listener.listen_until(dox_uri, local_name)
- else
- super
- end
- end
-
- redef fun end_dox_element(local_name) do
- if "declname" == local_name then
- parameter.name = text.to_s
- else if "type" == local_name then
- source_language.apply_parameter_type(parameter, type_listener.linked_text)
- else
- super
- end
- end
-end
-
-# Processes the content of a `<param>` element in a `<templateparamlist>` element.
-class TypeParamListener
- super ParamListener[TypeParameter]
-
- redef fun create_parameter do return new TypeParameter(graph)
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Handle language-specific parts of the importation.
-module doxml::language_specific
-
-import model
-
-# Various importation logics that depend on the project’s language.
-abstract class SourceLanguage
-
- # Apply the information deduced from `type_text` to `member`.
- #
- # `type_text` is the content of the `<type>` element.
- fun apply_member_type(member: Member, type_text: RawType) do
- if type_text["text"] != null then
- member.static_type = type_text
- end
- end
-
- # Apply the information deduced from `type_text` to `parameter`.
- #
- # `type_text` is the content of the `<type>` element.
- fun apply_parameter_type(parameter: Parameter, type_text: RawType) do
- if type_text["text"] != null then
- parameter.static_type = type_text
- end
- end
-
- # Extract the specified keyword at the beginning of the specified text.
- #
- # If the keyword is at the beginning of the specified text, return `true`
- # and remove the keyword. Else, return false.
- #
- # Used to extract some keywords that Doxygen puts in the type.
- #
- # class DummySource
- # super JavaSource
- # #
- # fun test(text: LinkedText, keyword: String): Bool do
- # return extract_keyword(text, keyword)
- # end
- # end
- # #
- # var text = new RawType(new ProjectGraph(""))
- # var dummy = new DummySource
- # var res: Bool
- # #
- # text.add_part("abstract final", "")
- # res = dummy.test(text, "static")
- # assert not res
- # res = dummy.test(text, "abstract")
- # assert res
- # assert "final" == text["text"].as(JsonArray).first
- # res = dummy.test(text, "final")
- # assert res
- # assert text["text"] == null
- # res = dummy.test(text, "abstract")
- # assert not res
- protected fun extract_keyword(text: LinkedText, keyword: String): Bool do
- var text_array = text["text"]
- if text_array == null then return false
- assert text_array isa JsonArray
- if text_array.is_empty then return false
-
- var content = text_array.first.as(String).l_trim
- var link = text.links.first
- var found = false
-
- if link == null and content.has_prefix(keyword) then
- if keyword.length == content.length then
- content = ""
- found = true
- else if content.chars[keyword.length] <= ' ' then
- content = content.substring_from(keyword.length).l_trim
- found = true
- end
- if "" == content then
- text.shift_part
- else if found then
- text.set_part(0, content, "")
- end
- end
- return found
- end
-
- # Extract the specified suffix in the specified text.
- #
- # If the suffix is at the end of the specified text, return `true`
- # and remove the suffix. Else, return false.
- #
- # Used to extract stuff like `...` that Doxygen puts in the type.
- #
- # class DummySource
- # super JavaSource
- # #
- # fun test(text: LinkedText, s: String): Bool do
- # return extract_suffix(text, s)
- # end
- # end
- # #
- # var text = new RawType(new ProjectGraph(""))
- # var dummy = new DummySource
- # var res: Bool
- # #
- # text.add_part("Object...+++", "")
- # res = dummy.test(text, "...")
- # assert not res
- # res = dummy.test(text, "+++")
- # assert res
- # assert "Object..." == text["text"].as(JsonArray).first
- # res = dummy.test(text, "...")
- # assert res
- # assert "Object" == text["text"].as(JsonArray).first
- protected fun extract_suffix(text: LinkedText, suffix: String): Bool do
- var text_array = text["text"]
- if text_array == null then return false
- assert text_array isa JsonArray
- if text_array.is_empty then return false
-
- var content = text_array.last.as(String).r_trim
- var link = text.links.first
-
- if link == null and content.has_suffix(suffix) then
- content = content.substring(0, content.length - suffix.length).r_trim
- if "" == content then
- text.pop_part
- else
- text.set_part(0, content, "")
- end
- return true
- else
- return false
- end
- end
-end
-
-# The default importation logics.
-#
-# Do nothing special.
-class DefaultSource
- super SourceLanguage
-end
-
-# Importation logics for Java.
-class JavaSource
- super SourceLanguage
-
- redef fun apply_member_type(member, type_text) do
- # For abstract members, Doxygen put `abstract` at the beginning of the type.
- # We assume that Doxygen do not put annotations in the type (it seems to
- # be the case).
- if extract_keyword(type_text, "abstract") then
- member.is_abstract = true
- end
- # TODO final
- # TODO void
- # TODO Avoid using `RawType` when possible. Only use `RawType` as a fallback.
- super
- end
-
- redef fun apply_parameter_type(parmeter, type_text) do
- # We assume that Doxygen do not put annotations in the type (it seems to
- # be the case).
- # TODO final
- # TODO Avoid using `RawType` when possible. Only use `RawType` as a fallback.
- parmeter.is_vararg = extract_suffix(type_text, "...")
- super
- end
-end
-
-# Importation logics for Python.
-class PythonSource
- super SourceLanguage
-
- redef fun apply_member_type(member, type_text) do
- # Doxygen may forgot to remove the `def` keyword on methods.
- extract_keyword(type_text, "def")
- super
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Basic SAX listeners.
-module doxml::listener
-
-import saxophonit
-import model
-import language_specific
-
-# Common abstractions for SAX listeners reading XML documents generated by Doxygen.
-abstract class DoxmlListener
- super ContentHandler
-
- # The locator setted by calling `document_locator=`.
- protected var locator: nullable SAXLocator = null
-
- # The project graph.
- fun graph: ProjectGraph is abstract
-
- # The language-specific strategies to use.
- fun source_language: SourceLanguage is abstract
-
- redef fun document_locator=(locator: SAXLocator) do
- self.locator = locator
- end
-
- # The Doxygen’s namespace IRI.
- protected fun dox_uri: String do return ""
-
- redef fun start_element(uri: String, local_name: String, qname: String,
- atts: Attributes) do
- super
- if uri != dox_uri then return # None of our business.
- start_dox_element(local_name, atts)
- end
-
- # Process the start of an element in the Doxygen’s namespace.
- #
- # See `ContentHandler.start_element` for the description of the parameters.
- protected fun start_dox_element(local_name: String, atts: Attributes) do end
-
- redef fun end_element(uri: String, local_name: String, qname: String) do
- super
- if uri != dox_uri then return # None of our business.
- end_dox_element(local_name)
- end
-
- # Process the end of an element in the Doxygen’s namespace.
- #
- # See `ContentHandler.start_element` for the description of the parameters.
- protected fun end_dox_element(local_name: String) do end
-
- # Get the boolean value of the specified attribute.
- #
- # `false` by default.
- protected fun get_bool(atts: Attributes, local_name: String): Bool do
- return get_optional(atts, local_name, "no") == "yes"
- end
-
- # Get the value of an optional attribute.
- #
- # Parameters:
- #
- # * `atts`: attribute list.
- # * `local_name`: local name of the attribute.
- # * `default`: value to return when the specified attribute is not found.
- protected fun get_optional(atts: Attributes, local_name: String,
- default: String): String do
- return atts.value_ns(dox_uri, local_name) or else default
- end
-
- # Get the value of an required attribute.
- #
- # Parameters:
- #
- # * `atts`: attribute list.
- # * `local_name`: local name of the attribute.
- protected fun get_required(atts: Attributes, local_name: String): String do
- var value = atts.value_ns(dox_uri, local_name)
- if value == null then
- throw_error("The `{local_name}` attribute is required.")
- return ""
- else
- return value
- end
- end
-
- redef fun end_document do
- locator = null
- end
-
- # Throw an error with the specified message by prepending the current location.
- protected fun throw_error(message: String) do
- var e: SAXParseException
-
- if locator != null then
- e = new SAXParseException.with_locator(message, locator.as(not null))
- else
- e = new SAXParseException(message)
- end
- e.throw
- end
-end
-
-# A `DoxmlListener` that read only a part of a document.
-#
-# Temporary redirect events to itself until it ends processing its part.
-abstract class StackableListener
- super DoxmlListener
-
- # The associated reader.
- var reader: XMLReader
-
- # The parent listener.
- var parent: DoxmlListener
-
- # Namespace’s IRI of the element at the root of the part to process.
- private var root_uri: String = ""
-
- # Local name of the element at the root of the part to process.
- private var root_local_name: String = ""
-
- # The number of open element of the same type than the root of the part to process.
- private var depth = 0
-
- # The project graph.
- private var p_graph: ProjectGraph is noinit
-
- # The language-specific strategies to use.
- private var p_source: SourceLanguage is noinit
-
-
- init do
- super
- p_graph = parent.graph
- p_source = parent.source_language
- end
-
- redef fun graph do return p_graph
- redef fun source_language do return p_source
-
- # Temporary redirect events to itself until the end of the specified element.
- fun listen_until(uri: String, local_name: String) do
- root_uri = uri
- root_local_name = local_name
- depth = 1
- reader.content_handler = self
- locator = parent.locator
- end
-
- redef fun start_element(uri: String, local_name: String, qname: String,
- atts: Attributes) do
- super
- if uri == root_uri and local_name == root_local_name then
- depth += 1
- end
- end
-
- redef fun end_element(uri: String, local_name: String, qname: String) do
- super
- if uri == root_uri and local_name == root_local_name then
- depth -= 1
- if depth <= 0 then
- end_listening
- parent.end_element(uri, local_name, qname)
- end
- end
- end
-
- # Reset the reader’s listener to the parent.
- fun end_listening do
- reader.content_handler = parent
- locator = null
- end
-
- redef fun end_document do
- end_listening
- end
-end
-
-# A SAX listener that skips any event except the end of the part to process.
-#
-# Used to skip an entire element.
-class NoopListener
- super StackableListener
-end
-
-# Concatenates any text node found.
-class TextListener
- super StackableListener
-
- # The read text.
- protected var buffer: Buffer = new FlatBuffer
-
- # Is the last read chunk was ignorable white space?
- private var sp: Bool = false
-
- redef fun listen_until(uri: String, local_name: String) do
- buffer.clear
- sp = false
- super
- end
-
- redef fun characters(str: String) do
- if sp then
- if buffer.length > 0 then buffer.append(" ")
- sp = false
- end
- buffer.append(str)
- end
-
- redef fun ignorable_whitespace(str: String) do
- sp = true
- end
-
- # Flush the buffer.
- protected fun flush_buffer: String do
- var s = buffer.to_s
-
- buffer.clear
- sp = false
- return s
- end
-
- redef fun to_s do return buffer.to_s
-end
-
-# Processes a content of type `linkedTextType`.
-abstract class LinkedTextListener[T: LinkedText]
- super TextListener
-
- # The read text.
- var linked_text: T is noinit
-
- private var refid = ""
-
- # Create a new instance of `T`.
- protected fun create_linked_text: T is abstract
-
- redef fun listen_until(uri: String, local_name: String) do
- linked_text = create_linked_text
- refid = ""
- super
- end
-
- redef fun start_dox_element(local_name: String, atts: Attributes) do
- super
- push_part
- if "ref" == local_name then refid = get_required(atts, "refid")
- end
-
- redef fun end_dox_element(local_name: String) do
- super
- push_part
- if "ref" == local_name then refid = ""
- end
-
- private fun push_part do
- var s = flush_buffer
-
- if not s.is_empty then
- linked_text.add_part(s, refid)
- end
- end
-
- redef fun to_s do return linked_text.to_s
-end
-
-# Processes the content of a `<type>` element.
-class TypeListener
- super LinkedTextListener[RawType]
-
- private var raw_type: RawType is noinit
-
- redef fun create_linked_text do return new RawType(graph)
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# `memberdef` element reading.
-module doxml::memberdef
-
-import entitydef
-
-# Processes the content of a `<memberdef>` element.
-class MemberDefListener
- super EntityDefListener
-
- # The current member.
- var member: Member is writable, noinit
-
- private var type_listener: TypeListener is noinit
- private var param_listener: MemberParamListener is noinit
-
- init do
- super
- type_listener = new TypeListener(reader, self)
- param_listener = new MemberParamListener(reader, self)
- end
-
- redef fun entity do return member
-
- redef fun start_dox_element(local_name: String, atts: Attributes) do
- if "name" == local_name then
- text.listen_until(dox_uri, local_name)
- else if "reimplements" == local_name then
- member.reimplement(get_required(atts, "refid"))
- else if "type" == local_name then
- type_listener.listen_until(dox_uri, local_name)
- else if "param" == local_name then
- param_listener.listen_until(dox_uri, local_name)
- else
- super
- end
- end
-
- redef fun end_dox_element(local_name: String) do
- if "name" == local_name then
- member.name = text.to_s
- else if "type" == local_name then
- source_language.apply_member_type(member, type_listener.linked_text)
- else if "param" == local_name then
- member.add_parameter(param_listener.parameter)
- else
- super
- end
- end
-end
-
-# Processes the content of a `<param>` element in a `<memberdef>` element.
-class MemberParamListener
- super ParamListener[MemberParameter]
-
- redef fun create_parameter do return new MemberParameter(graph)
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# A storage medium for a graph.
-module graph_store
-
-import neo4j
-import console
-
-# A storage medium for a graph.
-#
-# Provides a way to save a Neo4j graph.
-abstract class GraphStore
-
- # Escape control sequence to save the cursor position.
- private var term_save_cursor: String = (new TermSaveCursor).to_s
-
- # Escape control sequence to rewind to the last saved cursor position.
- private var term_rewind: String = "{new TermRestoreCursor}{new TermEraseDisplayDown}"
-
- # Is the storage medium already contains at least one node with the specified label?
- fun has_node_label(name: String): Bool is abstract
-
- # Save all specified Neo4j entities.
- fun save_all(neo_entities: Collection[NeoEntity]) is abstract
-
- # Prepare the output to show the progress.
- #
- # This method must be called before the first call to `show_progress` or
- # `show_done`.
- protected fun prepare_display do printn "{term_save_cursor} "
-
- # Show the progress, in percentage.
- #
- # For use in the implementation of `save_all` only.
- protected fun show_progress(progress: Int) do
- printn "{term_rewind} {progress}% "
- end
-
- # Show a message to indicate that the task finished with success.
- #
- # For use in the implementation of `save_all` only.
- protected fun show_done do
- print "{term_rewind} Done."
- end
-end
-
-# An actual Neo4j database as a storage medium.
-class Neo4jStore
- super GraphStore
-
- # How many operations can be executed in one batch?
- private var batch_max_size = 1000
-
- # The Neo4j client to use.
- var client: Neo4jClient
-
- redef fun has_node_label(name) do
- var query = new CypherQuery.from_string(
- "match n where \{name\} in labels(n) return count(n)")
- query.params["name"] = name
- var data = client.cypher(query).as(JsonObject)["data"]
- var result = data.as(JsonArray).first.as(JsonArray).first.as(Int)
- return result > 0
- end
-
- redef fun save_all(neo_entities) do
- var batch = new NeoBatch(client)
- var len = neo_entities.length
- var sum = 0
- var i = 1
-
- prepare_display
- for nentity in neo_entities do
- batch.save_entity(nentity)
- if i == batch_max_size then
- do_batch(batch)
- sum += batch_max_size
- show_progress(sum * 100 / len)
- batch = new NeoBatch(client)
- i = 1
- else
- i += 1
- end
- end
- do_batch(batch)
- show_done
- end
-
- # Execute `batch` and check for errors.
- #
- # Abort if `batch.execute` returns errors.
- private fun do_batch(batch: NeoBatch) do
- var errors = batch.execute
- if not errors.is_empty then
- for e in errors do sys.stderr.write("{sys.program_name}: {e}\n")
- exit(1)
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Nodes for classes.
-module model::class_compound
-
-import graph
-import member
-import type_entity
-
-# A class.
-class ClassCompound
- super Compound
-
- # The corresponding type.
- #
- # In the case of a generic class, defines bounds for type parameters.
- var class_type: ClassType is noinit
-
- # The definition.
- var class_def: ClassDef is noinit
-
- init do
- super
- class_type = new ClassType(graph)
- class_type.class_compound = self
- class_def = new ClassDef(graph, self)
- self.labels.add("MClass")
- kind = "class"
- visibility = "public"
- end
-
- # Return the number of type parameters.
- fun arity: Int do return class_type.arity
-
- redef fun name=(name) do
- super
- class_type.name = name
- class_def.name = name
- end
-
- redef fun location=(location) do
- super
- class_def.location = location
- end
-
- redef fun set_mdoc do
- super
- class_def["mdoc"] = doc
- end
-
- redef fun declare_super(id, full_name, prot, virt) do
- class_def.declare_super(id, full_name, prot, virt)
- end
-
- redef fun declare_member(member) do
- class_def.declare_member(member)
- end
-
- # Append the specified type parameter.
- fun add_type_parameter(parameter: TypeParameter) do
- class_type.arguments.add(parameter)
- end
-
- redef fun put_in_graph do
- super
- class_type.put_in_graph
- class_def.put_in_graph
- end
-
- redef fun put_edges do
- super
- graph.add_edge(self, "CLASSTYPE", class_type)
- if arity > 0 then
- var names = new JsonArray
-
- for p in class_type.arguments do
- names.add(p.name)
- end
- self["parameter_names"] = names
- end
- end
-end
-
-# The `MClassDef` node of a class.
-class ClassDef
- super CodeBlock
-
- # The defined class.
- var class_compound: ClassCompound
-
- # The `model_id` of the base classes.
- var supers: SimpleCollection[String] = new Array[String]
-
- # The set of the introduced/redefined members.
- #
- # Includes inner classes.
- #
- # Filled by `declare_member` and `declare_class`.
- #
- # Note: `declare_class` is defined by the `inner_class` module.
- #
- # SEE: `declare_member`
- # SEE: `declare_class`
- var members: SimpleCollection[MemberOrInner] = new Array[MemberOrInner]
-
- init do
- super
- self.labels.add("MClassDef")
- self["is_intro"] = true
- end
-
- # Declare a base compound (usually, a base class).
- #
- # Parameters:
- #
- # * `id`: `model_id` of the base compound. May be empty.
- # * `full_name`: qualified name of the base compound. May be empty.
- # * `prot`: visibility (proctection) of the relationship.
- # * `virt`: level of virtuality of the relationship.
- fun declare_super(id: String, full_name: String, prot: String,
- virt: String) do
- # TODO prot, virt, full_name
- if "" != id then
- supers.add(id)
- end
- end
-
- # Append the specified member.
- fun declare_member(member: Member) do
- members.add(member)
- end
-
- redef fun put_edges do
- super
- graph.add_edge(self, "BOUNDTYPE", class_compound.class_type)
- graph.add_edge(self, "MCLASS", class_compound)
- for s in supers do
- graph.add_edge(self, "INHERITS", graph.by_id[s].as(ClassCompound).class_type)
- end
- for m in members do
- if m.is_intro then
- var intro = m.introducer.as(not null)
- graph.add_edge(self, "INTRODUCES", intro)
- graph.add_edge(intro, "INTRO_CLASSDEF", self)
- end
- graph.add_edge(self, "DECLARES", m)
- end
- end
-end
-
-# A type defined by a class.
-class ClassType
- super TypeEntity
-
- # The associated class.
- #
- # You may use this attribute or `class_compound_id` to specify the class.
- var class_compound: nullable ClassCompound = null is writable
-
- # The `model_id` of the associated class.
- #
- # You may use this attribute or `class_compound` to specify the class.
- var class_compound_id: String = "" is writable
-
- # The type arguments or the type parameters.
- var arguments = new Array[TypeEntity]
-
- init do
- super
- self.labels.add("MClassType")
- end
-
- # Return the number of arguments.
- fun arity: Int do return arguments.length
-
- # Is the class generic?
- fun is_generic: Bool do return arity > 0
-
- redef fun put_in_graph do
- super
- if is_generic then
- self.labels.add("MGenericType")
- else
- var i = self.labels.index_of("MGenericType")
- if i >= 0 then self.labels.remove_at(i)
- end
- end
-
- redef fun put_edges do
- var cls = class_compound
-
- if cls == null and class_compound_id != "" then
- cls = graph.by_id[class_compound_id].as(ClassCompound)
- end
- assert cls != null
-
- super
- graph.add_edge(self, "CLASS", cls)
- assert cls.arity == self.arity
- for i in [0..arguments.length[ do
- var a = arguments[i]
- if cls.class_type != self then
- a.name = cls.class_type.arguments[i].name
- end
- if a isa TypeParameter then
- a.rank = i
- graph.add_edge(a, "CLASS", cls)
- end
- graph.add_edge(self, "ARGUMENT", a)
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Documentation associated to an entity.
-module model::descriptions
-
-import json::static
-import json
-
-# Documentation associated to an entity.
-#
-# The documentation is written in Markdown format.
-#
-# ~~~nit
-# var doc = new Documentation
-#
-# doc.brief_description = "Do something."
-# doc.detailed_description = ["Do not lunch a rocket."]
-# assert doc.brief_description == "Do something."
-# assert doc.detailed_description == ["Do not lunch a rocket."]
-# assert doc.to_json == """["Do something.","Do not lunch a rocket."]"""
-#
-# doc.brief_description = ""
-# doc.detailed_description = ["The answer is `42`."]
-# assert doc.brief_description == "The answer is `42`."
-# assert doc.detailed_description == ["The answer is `42`."]
-# assert doc.to_json == """["The answer is `42`."]"""
-#
-# doc.detailed_description = ["The answer is `42`."]
-# doc.brief_description = ""
-# assert doc.brief_description == "The answer is `42`."
-# assert doc.detailed_description == ["The answer is `42`."]
-# assert doc.to_json == """["The answer is `42`."]"""
-#
-# doc.detailed_description = new Array[String]
-# doc.brief_description = ""
-# assert doc.is_empty
-# assert doc.brief_description == ""
-# assert doc.detailed_description == new Array[String]
-# assert doc.to_json == "[]"
-# ~~~
-class Documentation
- super Serializable
-
- private var content = new JsonStringArray
- private var has_brief_description: Bool = false
-
- # The brief description.
- #
- # If it is empty, the first element of `detailed_description` will be used
- # as brief description.
- fun brief_description=(brief_description: String) do
- if brief_description.is_empty then
- if has_brief_description then
- content.shift
- has_brief_description = false
- end
- else if has_brief_description then
- content.first = brief_description
- else
- content.unshift(brief_description)
- has_brief_description = true
- end
- end
-
- # The brief description.
- fun brief_description: String do
- if not is_empty then return content.first
- return ""
- end
-
- # The detailed description.
- #
- # Each element should represent a block.
- fun detailed_description=(detailed_description: SequenceRead[String]) do
- if has_brief_description then
- while content.length > 1 do content.pop
- else
- content.clear
- end
- content.add_all(detailed_description)
- end
-
- # The detailed description.
- #
- # Each element should represent a block.
- fun detailed_description: SequenceRead[String] do
- if not has_brief_description then return content
- if content.length > 1 then return content.subarray(1, content.length - 1)
- return new Array[String]
- end
-
- # Add a block of detailed description.
- fun add(block: String) do content.add block
-
- # Is the documentation empty?
- fun is_empty: Bool do return content.is_empty
-
- redef fun serialize_to(v) do content.serialize_to v
- redef fun accept_json_serializer(v) do content.serialize_to v
-end
-
-# A `Serializable` array of strings.
-private class JsonStringArray
- super JsonSequenceRead[String]
- super Array[String]
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Graphs and basic entities.
-module model::graph
-
-import neo4j
-import more_collections
-import location
-import descriptions
-
-# A Neo4j graph.
-class NeoGraph
- # All the nodes in the graph.
- var all_nodes: SimpleCollection[NeoNode] = new Array[NeoNode]
-
- # All the edges in the graph.
- var all_edges: SimpleCollection[NeoEdge] = new Array[NeoEdge]
-
- # Add a relationship between two nodes.
- #
- # Parameters are the same than for the constructor of `NeoEdge`.
- fun add_edge(from: NeoNode, rel_type: String, to: NeoNode) do
- all_edges.add(new NeoEdge(from, rel_type, to))
- end
-end
-
-# A project’s graph.
-#
-# Here is the usual steps to build a project graph:
-#
-# <ul>
-# <li>Instantiate `ProjectGraph` by giving the name that will label the project.</li>
-# <li>For each compound:
-# <ul>
-# <li>Instantiate the compound.</li>
-# <li>Provide all the related data.</li>
-# <li>Call the `put_in_graph` method of the compound.</li>
-# </ul></li>
-# <li>Call the `add_global_modules` method of the project’s graph (defined in
-# the `module_compound` module). This permits to take global classes into
-# account correctly.</li>
-# <li>Call the `put_edges` method of the project’s graph.</li>
-# </ul>
-class ProjectGraph
- super NeoGraph
-
- # The project’s name.
- var project_name: String
-
- # The node reperesenting the project.
- #
- # Once the project’s graph is initialized, this node must not be edited.
- var project = new NeoNode
-
- # Entities by `model_id`.
- var by_id: Map[String, Entity] = new HashMap[String, Entity]
-
- # Namespaces by `full_name`.
- var namespaces: Map[String, Namespace] = new HashMap[String, Namespace]
-
- # For each `ClassCompound` in the graph, the mapping between its `model_id` and its namespace.
- #
- # Defaults to the root namespace. An entry is added each time
- # `Namespace.declare_class` is called.
- #
- # Note: In the graph, there is no direct link between a namespace and a
- # class. It is the role of a module (created internally by a `FileCompound`)
- # to link a class with its namespace. So, this collection is used by modules
- # to know which class in a file belong to their related namespace. It is
- # also used by `FileCompound` to detect classes in the root namespace.
- var class_to_ns: Map[String, Namespace] is noinit
-
- # Initialize a new project graph using the specified project name.
- #
- # The specified name will label all nodes of the project’s graph.
- init do
- project.labels.add(project_name)
- project.labels.add("MEntity")
- project.labels.add("MProject")
- project["name"] = project_name
- all_nodes.add(project)
-
- var root = new RootNamespace(self)
- root.put_in_graph
- by_id[""] = root
- class_to_ns = new DefaultMap[String, Namespace](root)
- end
-
- # Request to all nodes in the graph to add their related edges.
- #
- # Note: For the rare cases where a node need to wait the `put_edges` to add
- # an implicit node, this method makes sure to call the `put_edges` method
- # of the newly added nodes only after processing all the nodes that was
- # already there.
- fun put_edges do
- all_edges.clear
- add_edge(project, "ROOT", by_id[""])
- for n in all_nodes do
- if n isa Entity then
- n.put_edges
- end
- end
- end
-end
-
-# A model’s entity.
-#
-# In practice, this is the base class of every node in a `ProjectGraph`.
-abstract class Entity
- super NeoNode
-
- # Graph that will embed the entity.
- var graph: ProjectGraph
-
- # ID of the entity in the model.
- #
- # Is empty for entities without an ID.
- var model_id: String = "" is writable
-
- # The full (qualified) name, as presented by the original model.
- #
- # Fully independant of `name`. By default, equals to `""` for the root
- # namespace.
- var full_name: nullable String = null is writable
-
- # Associated documentation.
- var doc = new Documentation is writable
-
- init do
- self.labels.add(graph.project_name)
- self.labels.add("MEntity")
- end
-
- # The short (unqualified) name.
- fun name=(name: String) do
- self["name"] = name
- end
-
- # The short (unqualified) name.
- fun name: String do
- var name = self["name"]
- assert name isa String
- return name
- end
-
- # Include the documentation of `self` in the graph.
- protected fun set_mdoc do
- self["mdoc"] = doc
- end
-
- # The namespace separator of Nit/C++.
- #
- # Used to join two or more names when we need to work around some
- # limitations of the Nit model.
- fun ns_separator: String do return "::"
-
- # Set the location of the entity in the source code.
- fun location=(location: nullable neo_doxygen::Location) do
- self["location"] = location
- end
-
- # Get the location of the entity in the source code.
- fun location: nullable neo_doxygen::Location do
- return self["location"].as(nullable neo_doxygen::Location)
- end
-
- # Put the entity in the graph.
- #
- # Called by the loader when it has finished to read the entity.
- fun put_in_graph do
- if not doc.is_empty then
- set_mdoc
- end
- graph.all_nodes.add(self)
- if model_id != "" then graph.by_id[model_id] = self
- end
-
- # Put the related edges in the graph.
- #
- # This method is called on each node by `ProjectGraph.put_edges`.
- #
- # Note: Even at this step, the entity may modify its own attributes and
- # inner entities’ ones because some values are only known once the entity
- # know its relationships with the rest of the graph.
- fun put_edges do end
-end
-
-# An entity whose the location is mandatory.
-abstract class CodeBlock
- super Entity
-
- init do
- self["location"] = new neo_doxygen::Location
- end
-
- redef fun location=(location) do
- if location == null then
- super(new neo_doxygen::Location)
- else
- super
- end
- end
-end
-
-# A compound.
-#
-# Usually corresponds to a `<compounddef>` element in of the XML output of
-# Doxygen.
-abstract class Compound
- super Entity
-
- # Set the declared visibility (the protection) of the compound.
- fun visibility=(visibility: String) do
- self["visibility"] = visibility
- end
-
- # Set the specific kind of the compound.
- fun kind=(kind: String) do
- self["kind"] = kind
- end
-
- # Declare an inner namespace.
- #
- # Note: Although Doxygen indicates that the name is optional,
- # declarations with an empty name are not supported yet, except for the root
- # namespace. For the root namespace, both arguments are empty.
- #
- # Parameters:
- #
- # * `id`: `model_id` of the inner namespace. May be empty.
- # * `full_name`: qualified name of the inner namespace. Use an empty name
- # for the root namespace.
- fun declare_namespace(id: String, full_name: String) do end
-
- # Declare an inner class.
- #
- # Note: Although Doxygen indicates that both arguments are optional,
- # declarations with an empty ID are not supported yet.
- #
- # Parameters:
- #
- # * `id`: `model_id` of the inner class.
- # * `name`: short name of the inner class.
- # * `prot`: visibility (proctection).
- fun declare_class(id: String, name: String, prot: String) do end
-
- # Declare a base compound (usually, a base class).
- #
- # Parameters:
- #
- # * `id`: `model_id` of the base compound. May be empty.
- # * `full_name`: qualified name of the base compound. May be empty.
- # * `prot`: visibility (proctection) of the relationship.
- # * `virt`: level of virtuality of the relationship.
- fun declare_super(id: String, full_name: String, prot: String,
- virt: String) do end
-end
-
-# An unrecognized compound.
-#
-# Used to simplify the handling of ignored entities.
-class UnknownCompound
- super Compound
-
- redef fun put_in_graph do end
- redef fun put_edges do end
-end
-
-# A namespace.
-#
-# Corresponds to a group in Nit.
-class Namespace
- super Compound
-
- # The inner namespaces.
- var inner_namespaces: SimpleCollection[NamespaceRef] = new Array[NamespaceRef]
-
- init do
- super
- self.labels.add("MGroup")
- end
-
- redef fun declare_namespace(id, full_name) do
- inner_namespaces.add new NamespaceRef(id, full_name)
- end
-
- redef fun declare_class(id, name, prot) do
- assert not id.is_empty else
- sys.stderr.write "Inner class declarations without ID are not yet supported.\n"
- end
- graph.class_to_ns[id] = self
- end
-
- redef fun put_in_graph do
- super
- var full_name = self.full_name
- if full_name isa String then graph.namespaces[full_name] = self
- end
-
- redef fun put_edges do
- super
- graph.add_edge(self, "PROJECT", graph.project)
- for ns in inner_namespaces do
- var node = ns.seek_in(graph)
- graph.add_edge(node, "PARENT", self)
- graph.add_edge(self, "NESTS", node)
- end
- end
-end
-
-# A reference to a namespace.
-class NamespaceRef
- # The `model_id` of the target.
- #
- # Empty when unknown or for the root namespace.
- var model_id: String
-
- # The `full_name` of the target.
- #
- # Empty only for the root namespace.
- var full_name: String
-
- # Look for the targeted namespace in the specified graph.
- fun seek_in(graph: ProjectGraph): Namespace do
- var ns_compound: Namespace
-
- if model_id.is_empty and not full_name.is_empty then
- # ID unspecified. => We have to look by name
- assert graph.namespaces.has_key(full_name) else
- sys.stderr.write "Namespace `{full_name}` not found."
- end
- ns_compound = graph.namespaces[full_name]
- else
- ns_compound = graph.by_id[model_id].as(Namespace)
- end
- return ns_compound
- end
-end
-
-# The root namespace of a `ProjectGraph`.
-#
-# This the only entity in the graph whose `model_id` is really `""`.
-# Added automatically at the initialization of a `ProjectGraph`.
-class RootNamespace
- super Namespace
-
- init do
- super
- full_name = ""
- name = graph.project_name
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Adds the possibility to define inner classses.
-module model::inner_class
-
-import member
-import class_compound
-
-# An inner class.
-class InnerClass
- super MemberOrInner
-
- redef type INTRODUCER_TYPE: InnerClassIntroducer
-
- # The outer class definition.
- #
- # Used to correct the short name of the inner class definition when
- # `put_edges` is called.
- #
- # SEE: The notice concerning `name` in `/src/neo.nit`.
- var outer: ClassDef
-
- # The `model_id` of the actual inner class (`ClassCompound`).
- var inner: String
-
- init do
- super
- self.labels.add("MInnerClassDef")
- end
-
- redef fun is_intro do return true
- redef fun create_introducer do return new InnerClassIntroducer(graph, self)
- redef fun resolve_introducer do return introducer
-
- redef fun put_edges do
- super
- var inner = graph.by_id[self.inner]
- assert inner isa ClassCompound
- var inner_def = inner.class_def
- # Correct the short name of `inner` to avoid name collisions in a module.
- inner_def.name = "{outer.name}{ns_separator}{name}"
- graph.add_edge(self, "NESTS", inner_def)
- end
-end
-
-# A `MProperty` node for an inner class.
-class InnerClassIntroducer
- super MemberIntroducer
-
- # The definition.
- var def: InnerClass
-
- init do
- super
- self.labels.add("MInnerClass")
- end
-
- redef fun put_edges do
- super
- var inner = graph.by_id[def.inner]
- assert inner isa ClassCompound
- var outer = def.outer.class_compound
- # Correct the short name of `inner` to avoid name collisions in a module.
- inner.name = "{outer.name}{ns_separator}{name}"
- graph.add_edge(self, "NESTS", inner)
- end
-end
-
-# Implements `declare_class`.
-redef class ClassCompound
- redef fun declare_class(id, name, prot) do
- class_def.declare_class(id, name, prot)
- end
-end
-
-# Implements `declare_class`.
-redef class ClassDef
-
- # The set of the defined inner classes.
- #
- # All `InnerClass` entities registred here are automatically added to the
- # graph with the `ClassDef`.
- #
- # To ensure that each inner class will be correctly linked,
- # `declare_class` should be used to add each inner class.
- var inner_classes: SimpleCollection[InnerClass] = new Array[InnerClass]
-
- # Declare an inner class.
- #
- # Parameters:
- #
- # * `id`: `model_id` of the inner class definition.
- # * `name`: name of the inner class definition.
- # * `prot`: visibility (proctection).
- fun declare_class(id: String, name: String, prot: String) do
- var member = new InnerClass(graph, self, id)
- member.name = name
- member.visibility = prot
- members.add member
- inner_classes.add member
- end
-
- redef fun put_in_graph do
- super
- for member in inner_classes do
- member.put_in_graph
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# A text with links.
-module model::linked_text
-
-import graph
-
-# A text with links.
-abstract class LinkedText
- super Entity
-
- # All link in the text.
- #
- # Do not edit directly.
- var links: Sequence[nullable Link] = new Array[nullable Link]
-
- # Remove all the parts.
- fun clear_parts do
- self["text"] = null
- links.clear
- end
-
- # Remove the first part.
- fun shift_part do
- var text = self["text"]
- assert text isa JsonArray
- text.shift
- links.shift
- if text.is_empty then
- self["text"] = null
- end
- end
-
- # Remove the last part.
- fun pop_part do
- var text = self["text"]
- assert text isa JsonArray
- text.pop
- links.pop
- if text.is_empty then
- self["text"] = null
- end
- end
-
- # Remove the part at the specified index.
- fun remove_part_at(index: Int) do
- var text = self["text"]
- assert text isa JsonArray
- text.remove_at(index)
- links.remove_at(index)
- if text.is_empty then
- self["text"] = null
- end
- end
-
- # Change a part of text.
- #
- # Parameters:
- #
- # * `index` : the index of the part.
- # * `content` : textual content.
- # * `refid` : `model_id` of the linked entity or `""`.
- fun set_part(index: Int, content: String, refid: String) do
- var text = self["text"]
- assert text isa JsonArray
- text[index] = content
- if not refid.is_empty then
- links[index] = create_link(links.length, refid)
- else
- links[index] = null
- end
- end
-
- # Append a part of text.
- #
- # Parameters:
- #
- # * `content` : textual content.
- # * `refid` : `model_id` of the linked entity or `""`.
- fun add_part(content: String, refid: String) do
- var text = self["text"]
-
- if text == null then
- text = new JsonArray
- self["text"] = text
- end
- assert text isa JsonArray
- text.add(content)
- if not refid.is_empty then
- links.add(create_link(links.length, refid))
- else
- links.add(null)
- end
- end
-
- # Create a link to the specified entity.
- protected fun create_link(rank:Int, refid: String): Link is abstract
-
- redef fun to_s do
- var text = self["text"]
-
- if text isa JsonArray then
- return text.join
- else
- return "UNDEFINED"
- end
- end
-
- redef fun put_in_graph do
- super
- for link in links do
- if link isa Link then
- link.put_in_graph
- end
- end
- end
-
- redef fun put_edges do
- super
- for i in [0..links.length[ do
- var link = links[i]
- if link isa Link then
- link["rank"] = i
- graph.add_edge(self, "LINK", link)
- end
- end
- end
-end
-
-# A link.
-abstract class Link
- super Entity
-
- # * `refid` : `model_id` of the linked entity.
- var refid: String
-
- init do
- super
- self["rank"] = -1
- end
-
- redef fun put_edges do
- graph.add_edge(self, "TARGET", graph.by_id[refid])
- end
-
- # Specify the rank (index) of the parameter in the signature.
- #
- # Called by `LinkedText.put_edges`.
- private fun rank=(rank: Int) do
- self["rank"] = rank
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This module is used to model locations in source files.
-module location
-
-import json
-
-# A location inside a source file.
-class Location
- super Serializable
-
- # The file’s path.
- var path: nullable String = null is writable
-
- # The one-based index of the first line.
- var line_start: Int = 1 is writable
-
- # The one-based index of the last line.
- var line_end: Int = 1 is writable
-
- # The one-based column index of the first character.
- var column_start: Int = 1 is writable
-
- # The one-based column index of the last character.
- var column_end: Int = 1 is writable
-
- redef fun to_s do
- var path = path
- var file_part = "/dev/null:"
- if path != null and path.length > 0 then file_part = "{path}:"
- return "{file_part}{line_start},{column_start}--{line_end},{column_end}"
- end
-
- redef fun serialize_to(v) do to_s.serialize_to v
- redef fun accept_json_serializer(v) do to_s.serialize_to v
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Members.
-module model::member
-
-import graph
-import type_entity
-
-# A member or an inner class.
-abstract class MemberOrInner
- super CodeBlock
-
- # The type of the introducer.
- type INTRODUCER_TYPE: MemberIntroducer
-
- # The node used to represent the `MProperty` node.
- #
- # Only defined if `self` is at the root of a reimplementation graph, and
- # only once `put_in_graph` is called.
- var introducer: nullable INTRODUCER_TYPE = null
-
- init do
- super
- self.labels.add("MPropDef")
- end
-
- # Does this member introduce the property?
- fun is_intro: Bool is abstract
-
- redef fun put_in_graph do
- super
- self["is_intro"] = is_intro
- if is_intro then
- var visibility = self["visibility"]
- var name = self["name"]
-
- introducer = create_introducer
- if name isa String then
- introducer.name = name
- end
- if visibility isa String then
- introducer.visibility = visibility
- end
- introducer.put_in_graph
- end
- end
-
- redef fun put_edges do
- super
- var intro = resolve_introducer
-
- assert intro != null
- graph.add_edge(self, "DEFINES", intro)
- end
-
- # Set the visibility.
- fun visibility=(visibility: String) do
- self["visibility"] = visibility
- if introducer != null then
- introducer.as(not null).visibility = visibility
- end
- end
-
- # Get the visibility.
- #
- # Return `""` by default.
- fun visibility: String do
- var visibility = self["visibility"]
- if visibility isa String then return visibility
- return ""
- end
-
- redef fun name=(name: String) do
- super
- if introducer != null then
- introducer.as(not null).name = name
- end
- end
-
- # Create an instance of `MemberIntroducer` that will be linked to `self`.
- protected fun create_introducer: INTRODUCER_TYPE is abstract
-
- # Find the nearest reimplementation root.
- fun resolve_introducer: nullable INTRODUCER_TYPE is abstract
-end
-
-# A member.
-abstract class Member
- super MemberOrInner
-
- # Members that this member redefines/reimplements.
- var reimplemented: SimpleCollection[String] = new Array[String]
-
- # Set the static type.
- fun static_type=(static_type: nullable TypeEntity) is abstract
-
- # Get the static type.
- fun static_type: nullable TypeEntity is abstract
-
- # Append the specified parameter to the signature.
- fun add_parameter(parameter: MemberParameter) do end
-
- # Append a member that is reimplemeneted by `self`.
- fun reimplement(parent: String) do
- reimplemented.add(parent)
- end
-
- redef fun is_intro do return reimplemented.length <= 0
-
- # Is the member abstract?
- fun is_abstract=(is_abstract: Bool) do
- self["is_abstract"] = is_abstract
- end
-
- # Find the nearest reimplementation root.
- #
- # var g = new ProjectGraph("foo")
- # var m1 = new Attribute(g)
- # var m2 = new Attribute(g)
- # var m3 = new Attribute(g)
- # #
- # m1.model_id = "1"
- # m1.put_in_graph
- # m2.reimplement("1")
- # m2.put_in_graph
- # assert m1.resolve_introducer == m1.introducer
- # assert m2.resolve_introducer == m1.introducer
- # #
- # m3.model_id = "3"
- # m3.reimplement("3")
- # m3.put_in_graph
- # assert m3.resolve_introducer == null
- redef fun resolve_introducer do
- if introducer == null then
- var member_queue = new List[String]
- var visited = new HashSet[Member]
- var member: Member
-
- member_queue.add_all(reimplemented)
- while not member_queue.is_empty do
- member = graph.by_id[member_queue.shift].as(Member)
- if visited.has(member) then
- return null
- else if member.is_intro then
- return member.introducer
- else
- visited.add(member)
- member_queue.add_all(member.reimplemented)
- end
- end
- return null
- else
- return introducer
- end
- end
-end
-
-# An unrecognized member.
-#
-# Used to simplify the handling of ignored entities.
-class UnknownMember
- super Member
-
- redef fun put_in_graph do end
- redef fun put_edges do end
-end
-
-# A local definition of a method.
-class Method
- super Member
-
- redef type INTRODUCER_TYPE: MethodIntroducer
-
- # The method’s signature.
- var signature: Signature is noinit, writable
-
- init do
- super
- self.labels.add("MMethodDef")
- self["is_intern"] = false # TODO
- self["is_extern"] = false # TODO
- signature = new Signature(graph)
- is_abstract = false
- end
-
- # Set the return type.
- redef fun static_type=(static_type: nullable TypeEntity) do
- signature.return_type = static_type
- end
-
- # Get the return type.
- redef fun static_type: nullable TypeEntity do return signature.return_type
-
- redef fun add_parameter(parameter: MemberParameter) do
- signature.parameters.add(parameter)
- end
-
- redef fun create_introducer do return new MethodIntroducer(graph)
-
- redef fun put_in_graph do
- super
- signature.put_in_graph
- end
-
- redef fun put_edges do
- super
- graph.add_edge(self, "SIGNATURE", signature)
- end
-end
-
-# A local definition of an attribute.
-class Attribute
- super Member
-
- redef type INTRODUCER_TYPE: AttributeIntroducer
-
- # The declared type.
- redef var static_type: nullable TypeEntity = null is writable
-
- init do
- super
- self.labels.add("MAttributeDef")
- end
-
- redef fun create_introducer do return new AttributeIntroducer(graph)
-
- redef fun put_in_graph do
- super
- if static_type != null then
- static_type.as(not null).put_in_graph
- end
- end
-
- redef fun put_edges do
- super
- if static_type != null then
- graph.add_edge(self, "TYPE", static_type.as(not null))
- end
- end
-end
-
-# The `MProperty` node of a root of a reimplementation graph.
-abstract class MemberIntroducer
- super Entity
-
- init do
- super
- self.labels.add("MProperty")
- self["visibility"] = "public"
- end
-
- # Set the visibility.
- fun visibility=(visibility: String) do
- self["visibility"] = visibility
- end
-
- # Get the visibility.
- #
- # Return `""` by default.
- fun visibility: String do
- var visibility = self["visibility"]
- if visibility isa String then return visibility
- return ""
- end
-end
-
-# A `MProperty` node for a method.
-class MethodIntroducer
- super MemberIntroducer
-
- init do
- super
- self.labels.add("MMethod")
- self["is_init"] = false # TODO
- end
-end
-
-# A `MProperty` node for an attribute.
-class AttributeIntroducer
- super MemberIntroducer
-
- init do
- super
- self.labels.add("MAttribute")
- end
-end
-
-redef class Compound
- # Append the specified member.
- fun declare_member(member: Member) do end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# The model used to populate the Neo4j graph.
-module model
-
-import location
-import linked_text
-import graph
-import class_compound
-import module_compound
-import member
-import inner_class
-import namespace_members
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Nodes for modules and files.
-module model::module_compound
-
-import graph
-import class_compound
-import namespace_members
-
-# A source file.
-#
-# Creates one modules by inner namespace. The full name of the modules begin
-# with the namespace’s full name, and end with the unqualified name of the file,
-# without the extension.
-#
-# Note: If a module associated to the root namespace is needed, it is added to
-# the graph only when `put_edges` is called.
-class FileCompound
- super Compound
- super CodeBlock
-
- # Modules corresponding to the namespaces defined/redefined in the file.
- private var inner_namespaces = new Array[Module]
-
- # `model_id` of the classes declared in the file.
- private var inner_classes = new Array[String]
-
- # The last component of the path, without the extension.
- #
- # Used as the unqualified name of the modules.
- private var basename: String = ""
-
- init do
- super
- end
-
- redef fun location=(location) do
- super
- for m in inner_namespaces do m.location = location
- end
-
- redef fun name=(name) do
- # Example: `MyClass.java`
- super
- var match = name.search_last(".")
-
- if match == null then
- basename = name
- else
- basename = name.substring(0, match.from)
- end
- # Update the modules’ name.
- for m in inner_namespaces do m.update_name
- end
-
- redef fun declare_namespace(id, full_name) do
- var m: Module
-
- assert not full_name.is_empty or id.is_empty else
- sys.stderr.write "Inner mamespace declarations without name are not yet supported (except for the root namespace).\n"
- end
- m = new Module(graph, self, new NamespaceRef(id, full_name))
- m.location = location
- inner_namespaces.add m
- end
-
- redef fun declare_class(id, name, prot) do
- assert not id.is_empty else
- sys.stderr.write "Inner class declarations without ID are not yet supported.\n"
- end
- inner_classes.add id
- end
-
- redef fun put_in_graph do
- # Do not add `self` to the Neo4j graph...
- # ... but add its modules...
- for m in inner_namespaces do m.put_in_graph
- # ... and add `self` to the indexes.
- if model_id != "" then graph.by_id[model_id] = self
- graph.files.add self
- end
-
- # If the file contains some classes in the root namespace, add an implicit
- # module to handle them.
- #
- # This method is called by `ProjectGraph.add_global_modules` and assumes
- # that all the namespaces are already fully set and put in the graph.
- fun declare_root_namespace do
- if has_globals then
- declare_namespace("", "")
- inner_namespaces.last.put_in_graph
- end
- end
-
- # Does this file contain classes in the root namespace?
- private fun has_globals: Bool do
- var root = graph.by_id[""]
- for c in inner_classes do
- if graph.class_to_ns[c] == root then return true
- end
- return false
- end
-end
-
-# A `MModule` node.
-#
-# For each file, there is one module by inner namespace.
-private class Module
- super Compound
- super CodeBlock
-
- # The file that declares the module.
- var file_compound: FileCompound
-
- # The namespace defined or redefined by the module.
- var namespace: NamespaceRef
-
- init do
- super
- self.labels.add("MModule")
- update_name
- end
-
- # Update the `name`.
- #
- # Update the short name of the module to the `basename` of the file that
- # declares it.
- fun update_name do name = file_compound.basename
-
- redef fun put_edges do
- var ns_compound = namespace.seek_in(graph)
- var self_class = ns_compound.self_class
- var class_count = 0
- var last_class: nullable ClassCompound = null
-
- graph.add_edge(ns_compound, "DECLARES", self)
-
- for c in file_compound.inner_classes do
- if graph.class_to_ns[c] != ns_compound then continue
- var class_compound = graph.by_id[c].as(ClassCompound)
- last_class = class_compound
- class_count += 1
- graph.add_edge(self, "INTRODUCES", class_compound)
- graph.add_edge(self, "DEFINES", class_compound.class_def)
- end
-
- if self_class isa SelfClass then
- # We assume that only one file is linked to the namespace.
- # TODO When Doxygen will provide a way to know which file defines which member, use it.
- self_class.location = file_compound.location
- graph.add_edge(self, "INTRODUCES", self_class)
- graph.add_edge(self, "DEFINES", self_class.class_def)
- end
-
- if doc.is_empty and class_count == 1 then
- doc = last_class.as(not null).doc
- end
- if doc.is_empty then doc = file_compound.doc
- if doc.is_empty then doc = ns_compound.doc
- if not doc.is_empty then set_mdoc
- end
-end
-
-# Adds the `add_global_modules` phase to `ProjectGraph`.
-redef class ProjectGraph
-
- # Project’s source files.
- var files: SimpleCollection[FileCompound] = new Array[FileCompound]
-
- # Add the modules that define the root namespace.
- #
- # **Must** be called before any call to `put_edges`, and after all the
- # namespaces are fully set and put in the graph.
- #
- # Note: This method is not idempotent so it has to be called only once.
- fun add_global_modules do
- for f in files do f.declare_root_namespace
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Add support for namespace’s members.
-module model::namespace_members
-
-import class_compound
-import member
-
-redef class Namespace
- # The class that contains the namespace’s direct members.
- #
- # Left `null` for the root namespace and for any namespace with no direct
- # member. Automatically put in the graph with the namespace.
- #
- # Note: In the graph, the `self_class` not linked directly to the namespace.
- # This is the role of the modules implicitly created by `FileCompound`s to
- # link a namespace to its `self_class`.
- #
- # SEE: `declare_member`
- var self_class: nullable SelfClass = null
-
- # Add the specified member as a direct children of the namespace.
- redef fun declare_member(member) do
- if self_class == null then self_class = new SelfClass(graph, self)
- self_class.as(not null).declare_member(member)
- end
-
- redef fun put_in_graph do
- super
- var self_class = self.self_class
- if self_class isa SelfClass then self_class.put_in_graph
- end
-end
-
-redef class RootNamespace
- redef fun declare_member(member) do
- assert false else
- # TODO Check how Doxygen modelize member of the root namespace.
- # Note: Doxygen does not modelize the root namespace.
- sys.stderr.write "The addition of a member to the root namespace is not supported yet."
- end
- end
-end
-
-# A class that contains a namespace’s direct members.
-class SelfClass
- super ClassCompound
-
- # The namespace of the members
- var namespace: Namespace
-
- init do
- super
- name = "(self)"
- end
-
- redef fun put_in_graph do
- if doc.is_empty then doc = namespace.doc
- super
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Typing and parameters.
-module model::type_entity
-
-import graph
-import linked_text
-
-# Base class of all types and signatures.
-abstract class TypeEntity
- super Entity
-
- init do
- super
- self.labels.add("MType")
- end
-end
-
-# A type parameter or a type argument.
-#
-# Note : The class relationship and the rank are set by `MClassType.put_edges`.
-class TypeParameter
- super TypeEntity
- super Parameter
-
- init do
- super
- self.labels.add("MParameterType")
- end
-end
-
-
-# A type described by a text.
-class RawType
- super TypeEntity
- super LinkedText
-
- init do
- super
- self.labels.add("MRawType")
- end
-
- redef fun create_link(rank, refid) do return new TypeLink(graph, refid)
-end
-
-# A link in a `RawType`.
-class TypeLink
- super Link
-
- init do
- super
- self.labels.add("MTypePart")
- end
-end
-
-
-# A signature of a method.
-class Signature
- super TypeEntity
-
- # The parameters.
- var parameters = new Array[MemberParameter]
-
- # The static type of the returned value.
- var return_type: nullable TypeEntity = null is writable
-
- init do
- super
- self.labels.add("MSignature")
- end
-
- redef fun put_in_graph do
- super
- if return_type isa TypeEntity then
- return_type.as(TypeEntity).put_in_graph
- end
- for p in parameters do
- p.put_in_graph
- end
- end
-
- redef fun put_edges do
- super
- if parameters.length > 0 then
- var names = new JsonArray
-
- for i in [0..parameters.length[ do
- var p = parameters[i]
- p.rank = i
- names.add(p.name)
- graph.add_edge(self, "PARAMETER", p)
- end
- self["parameter_names"] = names
- end
- if return_type != null then
- graph.add_edge(self, "RETURNTYPE", return_type.as(not null))
- end
- end
-end
-
-# A parameter or an argument.
-abstract class Parameter
- super Entity
-
- # The static type of the parameter.
- var static_type: nullable TypeEntity = null is writable
-
- init do
- super
- self["is_vararg"] = false
- self["rank"] = -1
- end
-
- # Is the parameter a “vararg”?
- fun is_vararg=(is_vararg: Bool) do
- self["is_vararg"] = is_vararg
- end
-
- # Is the parameter a “vararg”?
- fun is_vararg: Bool do
- var value = self["is_vararg"]
- assert value isa Bool
- return value
- end
-
- # Set the rank (index) of the parameter in the signature.
- fun rank=(rank: Int) do
- self["rank"] = rank
- end
-
- redef fun put_in_graph do
- super
- if static_type != null then
- static_type.as(not null).put_in_graph
- end
- end
-
- redef fun put_edges do
- super
- graph.add_edge(self, "TYPE", static_type.as(not null))
- end
-end
-
-# A parameter of a member.
-#
-# Note : The rank are set by `Signature.put_edges`.
-class MemberParameter
- super Parameter
-
- init do
- super
- self.labels.add("MParameter")
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Doxygen XML to Neo4j.
-#
-# Converts a Doxygen XML output into a model in Neo4j that is readable by the
-# `nx` tool.
-module neo_doxygen
-
-import model
-import doxml
-import graph_store
-import console
-import opts
-
-# An importation task.
-class NeoDoxygenJob
-
- # The storage medium to use.
- var store: GraphStore
-
- # The loaded project graph.
- var model: ProjectGraph is noinit
-
- # Escape control sequence to save the cursor position.
- private var term_save_cursor: String = (new TermSaveCursor).to_s
-
- # Escape control sequence to rewind to the last saved cursor position.
- private var term_rewind: String = "{new TermRestoreCursor}{new TermEraseDisplayDown}"
-
- # Generate a graph from the specified project model.
- #
- # Parameters:
- #
- # * `name`: project name.
- # * `dir`: Doxygen XML output directory path.
- # * `source`: The language-specific logics to use.
- fun load_project(name: String, dir: String, source: SourceLanguage) do
- check_name name
- model = new ProjectGraph(name)
- var reader = new CompoundFileReader(model, source)
- # Queue for sub-directories.
- var directories = new Array[String]
- var file_count = 0
-
- if dir == "" then
- printn "Reading the current directory... "
- else
- printn "Reading {dir}... "
- end
- loop
- for f in list_files(dir) do
- var path = dir/f
- if path.file_stat.as(not null).is_dir then
- directories.push(path)
- else if f.has_suffix(".xml") and f != "index.xml" then
- reader.read(path)
- file_count += 1
- end
- end
- if directories.length <= 0 then break
- dir = directories.pop
- end
- model.add_global_modules
- print "Done."
- if file_count < 2 then
- print "{file_count} file read."
- else
- print "{file_count} files read."
- end
- end
-
- # List files in a directory.
- #
- # This method may be redefined to force the order in which the files
- # are read by `load_project`.
- protected fun list_files(dir: String): Collection[String] do
- return dir.files
- end
-
- # Check the project’s name.
- private fun check_name(name: String) do
- assert name_valid: not name.chars.first.is_upper else
- sys.stderr.write("{sys.program_name}: The project’s name must not" +
- " begin with an upper case letter. Got `{name}`.\n")
- end
- assert name_unused: not store.has_node_label(name) else
- sys.stderr.write("{sys.program_name}: The label `{name}` is already" +
- " used in the specified graph.\n")
- end
- end
-
- # Save the graph.
- fun save do
- sys.stdout.write "Linking nodes...{term_save_cursor} "
- model.put_edges
- print "{term_rewind} Done."
- var nodes = model.all_nodes
- sys.stdout.write "Saving {nodes.length} nodes..."
- store.save_all(nodes)
- var edges = model.all_edges
- sys.stdout.write "Saving {edges.length} edges..."
- store.save_all(edges)
- end
-end
-
-# The main class.
-class NeoDoxygenCommand
-
- # Invalid arguments
- var e_usage = 64
-
- # Available options for `--src-lang`.
- var sources = new HashMap[String, SourceLanguage]
-
- # The synopsis.
- var synopsis: String = "[--dest <url>] [--src-lang <lang>]\n" +
- " [--] <project_name> <doxml_dir>"
-
- # The synopsis for the help page.
- var help_synopsis = "[-h|--help]"
-
- # The default destination.
- var default_dest = "http://localhost:7474"
-
- # Processes the options.
- var option_context = new OptionContext
-
- # The `--src-lang` option.
- var opt_src_lang: OptionEnum is noinit
-
- # The `--dest` option.
- var opt_dest: OptionString is noinit
-
- # The `-h|--help` option.
- var opt_help: OptionBool is noinit
-
- init do
- sources["any"] = new DefaultSource
- sources["java"] = new JavaSource
- sources["python"] = new PythonSource
-
- var prefix = new OptionText("""
-{{{"NAME".bold}}}
- {{{sys.program_name}}} — Doxygen XML to Neo4j.
-
-{{{"SYNOPSIS".bold}}}
- {{{sys.program_name}}} {{{synopsis}}}
- {{{sys.program_name}}} {{{help_synopsis}}}
-
-{{{"DESCRIPTION".bold}}}
- Convert a Doxygen XML output into a model in Neo4j that is readable by the
- `nx` tool.
-
-{{{"ARGUMENTS".bold}}}
- <project_name> The internal name of the project. Must the same name as the
- one specified to the `nx` tool. Must not begin by an upper
- case letter.
-
- <doxml_dir> The directory where the XML documents generated by Doxygen are
- located.
-
-{{{"OPTIONS".bold}}}
-""")
- option_context.add_option(prefix)
-
- opt_dest = new OptionString("The URL of the destination graph. `{default_dest}` by default.",
- "--dest")
- opt_dest.default_value = default_dest
- option_context.add_option(opt_dest)
-
- opt_help = new OptionBool("Show the help (this page).",
- "-h", "--help")
- option_context.add_option(opt_help)
-
- var keys = new Array[String].from(sources.keys)
- opt_src_lang = new OptionEnum(keys,
- "The programming language to assume when processing chunks in the declarations left as-is by Doxygen. Use `any` (the default) to disable any language-specific processing.",
- keys.index_of("any"), "--src-lang")
- option_context.add_option(opt_src_lang)
- end
-
- # Start the application.
- fun main: Int do
- if args.is_empty then
- show_help
- return e_usage
- end
- option_context.parse(args)
-
- var errors = option_context.errors
- var rest = option_context.rest
-
- if errors.is_empty and not opt_help.value and rest.length != 2 then
- errors.add "Unexpected number of additional arguments. Expecting 2; got {rest.length}."
- end
- if not errors.is_empty then
- for e in errors do print_error(e)
- show_usage
- return e_usage
- end
- if opt_help.value then
- show_help
- return 0
- end
-
- var source = sources[opt_src_lang.value_name]
- var dest = opt_dest.value
- var project_name = rest[0]
- var dir = rest[1]
- var neo = new NeoDoxygenJob(create_store(dest or else default_dest))
-
- neo.load_project(project_name, dir, source)
- neo.save
- return 0
- end
-
- # Create an instance of `GraphStore` for the specified destination.
- protected fun create_store(dest: String): GraphStore do
- return new Neo4jStore(new Neo4jClient(dest))
- end
-
- # Show the help.
- fun show_help do
- option_context.usage
- end
-
- # Show the usage.
- fun show_usage do
- sys.stderr.write "Usage: {sys.program_name} {synopsis}\n"
- sys.stderr.write "For details, run `{sys.program_name} --help`.\n"
- end
-
- # Print an error.
- fun print_error(e: String) do
- sys.stderr.write "{sys.program_name}: {e}\n"
- end
-end
-
-# Add handling of multi-line descriptions.
-#
-# Note: The algorithm is naive and do not handle internationalisation,
-# multi-byte characters and control characters.
-redef class Option
-
- redef fun pretty(off) do
- var s = super
-
- if s.length > 80 and off < 80 then
- var column_length = 80 - off
- var left = 0
- var right = 80
- var buf = new FlatBuffer
- var prefix = "\n{" " * off}"
-
- loop
- while right > left and s.chars[right] != ' ' do
- right -= 1
- end
- if left == right then
- buf.append s.substring(left, column_length)
- right += column_length
- else
- buf.append s.substring(left, right - left)
- right += 1
- end
- buf.append prefix
- left = right
- right += column_length
- if right >= s.length then break
- end
- buf.append s.substring_from(left)
- buf.append "\n"
- return buf.to_s
- else
- return "{s}\n"
- end
- end
-end
-
-exit((new NeoDoxygenCommand).main)
+++ /dev/null
-Test scripts for `neo_doxygen`.
-
-The name of each test script is prefixed by `neo_doxygen_` to avoid name
-conflicts in `/tests/sav` and `/tests/out`. The expected output of each script
-is saved as a `*.res` file in `/tests/sav`.
-
-Note: All paths indicated here are relative to the root of the repository.
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import tests
-intrude import model::module_compound
-
-var graph = new ProjectGraph("foo")
-var file = new FileCompound(graph)
-var bar_class = new ClassCompound(graph)
-var a_ns = new Namespace(graph)
-
-file.full_name = "Baz.java"
-file.declare_class("classa_bar", "a::Bar", "public")
-file.declare_namespace("namespacea", "a")
-file.doc.brief_description = "A file."
-file.put_in_graph
-
-a_ns.full_name = "a"
-a_ns.model_id = "namespacea"
-a_ns.declare_class("classa_bar", "a::Bar", "public")
-a_ns.doc.brief_description = "A namespace."
-a_ns.put_in_graph
-
-bar_class.model_id = "classa_bar"
-bar_class.full_name = "a::Bar"
-bar_class.doc.brief_description = "A class."
-bar_class.put_in_graph
-
-graph.add_global_modules
-graph.put_edges
-
-assert file.inner_namespaces[0]["mdoc"] == bar_class.doc
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# A variant of the `neo_doxygen` program that produces a debugging output of the graph instead of saving it.
-#
-# Note: The `--dest` option is ignored.
-module tests::neo_doxygen_dump
-
-import tests
-import neo_doxygen
-
-redef class Sys
- redef fun program_name do return "%PROGRAM_NAME%"
-end
-
-redef class NeoDoxygenJob
- redef fun list_files(dir) do
- var a = super.to_a
- default_comparator.sort(a)
- return a
- end
-end
-
-redef class NeoDoxygenCommand
- redef fun create_store(url) do return new DebugStore
-end
-
-# Dummy storage medium that write a debugging output to the standard output.
-#
-# For testing purposes only.
-class DebugStore
- super GraphStore
-
- redef fun has_node_label(name) do return false
-
- redef fun save_all(neo_entities) do
- print ""
- for n in neo_entities do
- if n isa NeoEdge then
- var buffer = new Buffer
- n.debug buffer
- print buffer
- end
- end
- print "---===DONE===---"
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import tests
-import model::module_compound
-
-var graph = new ProjectGraph("foo")
-var file = new FileCompound(graph)
-var file_2 = new FileCompound(graph)
-var bar_class = new ClassCompound(graph)
-var baz_class = new ClassCompound(graph)
-var a_ns = new Namespace(graph)
-var b_ns = new Namespace(graph)
-var c_ns = new Namespace(graph)
-var d_ns = new Namespace(graph)
-var buffer = new Buffer
-var root_ns = graph.by_id[""].as(Namespace)
-var location
-
-file.name = "Bar.java"
-file.model_id = "_Bar_8java"
-location = new neo_doxygen::Location
-location.path = "a/b/Bar.java"
-file.location = location
-file.declare_class("classa_b_bar", "a::b::Bar", "package")
-file.declare_class("classbaz", "Baz", "")
-file.declare_namespace("", "a::b")
-file.doc.brief_description = "The first file."
-file.put_in_graph
-
-file_2.name = "Bar.java"
-file_2.model_id = "_Bar_8java_2"
-location = new neo_doxygen::Location
-location.path = "Bar.java"
-file_2.location = location
-file_2.declare_namespace("namespacec", "c")
-file_2.declare_namespace("", "d")
-file_2.put_in_graph
-
-bar_class.model_id = "classa_b_bar"
-bar_class.name = "Bar"
-location = new neo_doxygen::Location
-location.path = "a/b/Bar.class"
-location.line_start = 5
-location.column_start = 1
-location.line_end = 100
-location.column_end = 10
-bar_class.location = location
-bar_class.put_in_graph
-
-baz_class.model_id = "classbaz"
-baz_class.name = "Baz"
-location = new neo_doxygen::Location
-location.path = "Baz.jar"
-baz_class.location = location
-baz_class.put_in_graph
-
-root_ns.declare_namespace("", "a")
-root_ns.declare_namespace("namespacec", "c")
-root_ns.declare_namespace("", "d")
-
-a_ns.name = "a"
-a_ns.full_name = "a"
-a_ns.declare_namespace("", "a::b")
-a_ns.put_in_graph
-
-b_ns.name = "b"
-b_ns.full_name = "a::b"
-b_ns.declare_class("classa_b_bar", "", "")
-b_ns.put_in_graph
-
-c_ns.model_id = "namespacec"
-c_ns.name = "c"
-c_ns.full_name = "c"
-c_ns.put_in_graph
-
-d_ns.model_id = "namespaced"
-d_ns.name = "d"
-d_ns.full_name = "d"
-d_ns.put_in_graph
-
-print "---===WITHOUT GLOBALS===---"
-graph.put_edges
-graph.debug buffer
-print buffer
-
-print "---===WITH GLOBALS===---"
-buffer.clear
-graph.add_global_modules
-graph.put_edges
-graph.debug buffer
-print buffer
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import tests
-
-var graph = new ProjectGraph("foo")
-var buffer = new Buffer
-
-graph.put_edges
-graph.debug buffer
-print buffer
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import tests
-import model
-
-var graph = new ProjectGraph("foo")
-var file = new FileCompound(graph)
-var root_ns = graph.by_id[""].as(Namespace)
-var ns = new Namespace(graph)
-var member = new Attribute(graph)
-var buffer = new Buffer
-
-file.name = "foo.py"
-file.model_id = "_foo_8py"
-file.declare_namespace("namespacefoo", "foo")
-file.put_in_graph
-
-member.name = "bar"
-member.put_in_graph
-
-ns.model_id = "namespacefoo"
-ns.name = "foo"
-ns.declare_member(member)
-ns.doc.brief_description = "A documented namespace."
-ns.put_in_graph
-
-root_ns.declare_namespace("namespacefoo", "")
-
-graph.add_global_modules
-graph.put_edges
-graph.debug buffer
-print buffer
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Base module for tests related to `neo_doxygen`.
-module tests::tests
-
-import model::graph
-
-# Adds debugging output to graphs.
-redef class NeoGraph
-
- # Append the debugging output of all relationships to the specified buffer.
- fun debug(buffer: Buffer) do
- buffer.append "# Graph\n"
- for edge in all_edges do
- edge.debug buffer
- end
- end
-end
-
-# Adds debugging output to relationships.
-redef class NeoEdge
-
- # Append the debugging output of this relationship to the specified buffer.
- #
- # Append the relationship type, the properties, and the debugging output of
- # both extremities.
- fun debug(buffer: Buffer) do
- var rel_type = self.rel_type or else "?"
- buffer.append "Edge\n"
- buffer.append "=type={rel_type.length}:{rel_type}\n"
- buffer.append "=properties=JsonObject({properties.length}):\n"
- buffer.append properties.to_json
- buffer.append "\n----\n=from="
- from.debug buffer
- buffer.append "----\n=to="
- to.debug buffer
- buffer.append "\n"
- end
-end
-
-# Adds debugging output to nodes.
-redef class NeoNode
-
- # Append the debugging output of this node to the specified buffer.
- #
- # Append the labels and the properties.
- fun debug(buffer: Buffer) do
- buffer.append "Node\n"
- buffer.append "=labels=Array({labels.length}):\n"
- for lab in labels do buffer.append "{lab.length}:{lab}\n"
- buffer.append "=properties=JsonObject({properties.length}):\n"
- buffer.append properties.to_json
- buffer.append "\n"
- end
-end
-
-# Adds debugging output to entities.
-redef class Entity
-
- # Append the debugging output of this entity to the specified buffer.
- #
- # Append the `model_id`, the labels and the properties.
- redef fun debug(buffer) do
- buffer.append "Entity#{model_id.length}:{model_id}\n"
- buffer.append "=labels=Array({labels.length}):\n"
- for lab in labels do buffer.append "{lab.length}:{lab}\n"
- buffer.append "=properties=JsonObject({properties.length}):\n"
- buffer.append properties.to_json
- buffer.append "\n"
- end
-end
+++ /dev/null
-/*/xml/* -diff
+++ /dev/null
-/*/Makefile
-/*/.nx_config
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# All the dummy projects.
-PROJECTS=$(dir $(wildcard ./*/Doxyfile))
-
-.PHONY: xml bootstrap
-
-# Regenerate the XML documents.
-xml: bootstrap
- for p in $(PROJECTS); do $(MAKE) -C "$$p" xml || exit; done
-
-# Generate the Makefiles in the sub-directories.
-bootstrap:
- for p in $(PROJECTS); do { \
- echo '# FILE GENERATED BY ../Makefile'"\n" > "$$p/Makefile" || exit; \
- cat doxyproject.mk >> "$$p/Makefile" || exit; \
- } ; done
+++ /dev/null
-Data files for tests.
-
-For test scripts, see `../src/tests`. To regenerate the XML documents, run
-`make`.
-
-## Required to Generate the XML documents
-
-* [Doxygen](http://www.doxygen.org/)
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-.PHONY: clean doxygen strip_paths xml
-
-# Regenerate the XML documents.
-xml: strip_paths
-
-clean:
- rm -rf xml
-
-doxygen: clean
- doxygen Doxyfile
-
-# Get rid of the absolute paths in the generated files.
-#
-# Doxygen ignores the `STRIP_FROM_PATH` setting when generating a XML output.
-# So, we have to replace the paths manually in order to get reproducible
-# results.
-#
-# WARNING: FOR USE ON TEST DATA ONLY.
-strip_paths: doxygen
- . ../../sh-lib/more_sed.sh; \
- replace `readlink -f -- ./src` '%SOURCE_DIRECTORY%' xml/*.xml
+++ /dev/null
-# Doxyfile 1.8.8
-
-# 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 config 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 http://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 = "Test Project"
-
-# 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 =
-
-# 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 =
-
-# 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 = YES
-
-# 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 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
-
-# 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:\n"
-# 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:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# 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 = YES
-
-# 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
-
-# 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,
-# C#, C, C++, D, PHP, Objective-C, Python, 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), VHDL. 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.
-
-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 http://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 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:
-# http://www.riverbankcomputing.co.uk/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
-
-# 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
-
-#---------------------------------------------------------------------------
-# 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_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 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
-# (class|struct|union) 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
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# 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 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.
-#
-# 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 http://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 not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = 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 or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = 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).
-
-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.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = src
-
-# 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: http://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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.idl \
- *.ddl \
- *.odl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
- *.md \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf \
- *.as \
- *.js
-
-# 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,
-# AClass::ANamespace, 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.
-
-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.
-
-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
-# function 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 http://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 config 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
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# 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 = NO
-
-# 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 stylesheet files is of importance (e.g. the last
-# stylesheet 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 stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://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 grayscales 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 NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = 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: http://developer.apple.com/tools/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 http://developer.apple.com/tools/creatingdocsetswithdoxygen.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 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
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# 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 master .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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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:
-# http://qt-project.org/doc/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 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 stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. 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
-
-# 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
-
-# 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_TRANPARENT 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
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://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
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) 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 http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# 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/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: http://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: http://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 = NO
-
-# 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 enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = 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. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# 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 personal 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. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal 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.
-#
-# 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_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 pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# 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. This option is also used
-# when generating formulas in HTML.
-# 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
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://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
-
-#---------------------------------------------------------------------------
-# 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 = NO
-
-# 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 config
-# 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 config 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 = NO
-
-# 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 = YES
-
-# 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 = 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 = NO
-
-# 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
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# 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.sf.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
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to 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 HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# 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.
-# 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.
-# 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 DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# 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 and svg.
-# 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. 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.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_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.
-# 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 dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+++ /dev/null
-This directory contains an empty project for testing purposes.
-
-To regenerate the XML output located in `xml`, run `make`. If the `Makefile`
-does not exists, you can regenerate it by running `make bootstrap` in the parent
-directory.
+++ /dev/null
-<!-- XSLT script to combine the generated output into a single file.
- If you have xsltproc you could use:
- xsltproc combine.xslt index.xml >all.xml
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" indent="no" standalone="yes" />
- <xsl:template match="/">
- <doxygen version="{doxygenindex/@version}">
- <!-- Load all doxgen generated xml files -->
- <xsl:for-each select="doxygenindex/compound">
- <xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
- </xsl:for-each>
- </doxygen>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
-
- <!-- Complex types -->
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence maxOccurs="unbounded">
- <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
- </xsd:complexType>
-
- <xsd:complexType name="compounddefType">
- <xsd:sequence>
- <xsd:element name="compoundname" type="xsd:string"/>
- <xsd:element name="title" type="xsd:string" minOccurs="0" />
- <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
- <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
- <xsd:element name="programlisting" type="listingType" minOccurs="0" />
- <xsd:element name="location" type="locationType" minOccurs="0" />
- <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="kind" type="DoxCompoundKind" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listofallmembersType">
- <xsd:sequence>
- <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="memberRefType">
- <xsd:sequence>
- <xsd:element name="scope" />
- <xsd:element name="name" />
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- <xsd:attribute name="ambiguityscope" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="compoundRefType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" use="optional" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="reimplementType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="incType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="local" type="DoxBool" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refTextType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="sectiondefType">
- <xsd:sequence>
- <xsd:element name="header" type="xsd:string" minOccurs="0" />
- <xsd:element name="description" type="descriptionType" minOccurs="0" />
- <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="memberdefType">
- <xsd:sequence>
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="definition" minOccurs="0" />
- <xsd:element name="argsstring" minOccurs="0" />
- <xsd:element name="name" />
- <xsd:element name="read" minOccurs="0" />
- <xsd:element name="write" minOccurs="0" />
- <xsd:element name="bitfield" minOccurs="0" />
- <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="location" type="locationType" />
- <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxMemberKind" />
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="static" type="DoxBool" />
- <xsd:attribute name="const" type="DoxBool" use="optional"/>
- <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
- <xsd:attribute name="inline" type="DoxBool" use="optional"/>
- <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
- <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
- <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
- <!-- Qt property -->
- <xsd:attribute name="readable" type="DoxBool" use="optional"/>
- <xsd:attribute name="writable" type="DoxBool" use="optional"/>
- <!-- C++/CLI variable -->
- <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
- <!-- C++/CLI and C# property -->
- <xsd:attribute name="settable" type="DoxBool" use="optional"/>
- <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
- <!-- C++/CLI function -->
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="new" type="DoxBool" use="optional"/>
- <!-- C++/CLI event -->
- <xsd:attribute name="add" type="DoxBool" use="optional"/>
- <xsd:attribute name="remove" type="DoxBool" use="optional"/>
- <xsd:attribute name="raise" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 protocol method -->
- <xsd:attribute name="optional" type="DoxBool" use="optional"/>
- <xsd:attribute name="required" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 property accessor -->
- <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
- <!-- UNO IDL -->
- <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
- <xsd:attribute name="property" type="DoxBool" use="optional"/>
- <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
- <xsd:attribute name="bound" type="DoxBool" use="optional"/>
- <xsd:attribute name="removable" type="DoxBool" use="optional"/>
- <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
- <xsd:attribute name="transient" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
-
- </xsd:complexType>
-
- <xsd:complexType name="descriptionType" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" minOccurs="0"/>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="enumvalueType" mixed="true">
- <xsd:sequence>
- <xsd:element name="name" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="templateparamlistType">
- <xsd:sequence>
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="paramType">
- <xsd:sequence>
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="declname" minOccurs="0" />
- <xsd:element name="defname" minOccurs="0" />
- <xsd:element name="array" minOccurs="0" />
- <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="linkedTextType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="graphType">
- <xsd:sequence>
- <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="nodeType">
- <xsd:sequence>
- <xsd:element name="label" />
- <xsd:element name="link" type="linkType" minOccurs="0" />
- <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="childnodeType">
- <xsd:sequence>
- <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="relation" type="DoxGraphRelation" />
- </xsd:complexType>
-
- <xsd:complexType name="linkType">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listingType">
- <xsd:sequence>
- <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="codelineType">
- <xsd:sequence>
- <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="lineno" type="xsd:integer" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="refkind" type="DoxRefKind" />
- <xsd:attribute name="external" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="highlightType" mixed="true">
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="sp" />
- <xsd:element name="ref" type="refTextType" />
- </xsd:choice>
- <xsd:attribute name="class" type="DoxHighlightClass" />
- </xsd:complexType>
-
- <xsd:complexType name="referenceType" mixed="true">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
- <xsd:attribute name="startline" type="xsd:integer" />
- <xsd:attribute name="endline" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="locationType">
- <xsd:attribute name="file" type="xsd:string" />
- <xsd:attribute name="line" type="xsd:integer" />
- <xsd:attribute name="column" type="xsd:integer" use="optional"/>
- <xsd:attribute name="bodyfile" type="xsd:string" />
- <xsd:attribute name="bodystart" type="xsd:integer" />
- <xsd:attribute name="bodyend" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docInternalType" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docTitleCmdGroup">
- <xsd:choice>
- <xsd:element name="ulink" type="docURLLink" />
- <xsd:element name="bold" type="docMarkupType" />
- <xsd:element name="emphasis" type="docMarkupType" />
- <xsd:element name="computeroutput" type="docMarkupType" />
- <xsd:element name="subscript" type="docMarkupType" />
- <xsd:element name="superscript" type="docMarkupType" />
- <xsd:element name="center" type="docMarkupType" />
- <xsd:element name="small" type="docMarkupType" />
- <xsd:element name="htmlonly" type="xsd:string" />
- <xsd:element name="manonly" type="xsd:string" />
- <xsd:element name="xmlonly" type="xsd:string" />
- <xsd:element name="rtfonly" type="xsd:string" />
- <xsd:element name="latexonly" type="xsd:string" />
- <xsd:element name="dot" type="xsd:string" />
- <xsd:element name="plantuml" type="xsd:string" />
- <xsd:element name="anchor" type="docAnchorType" />
- <xsd:element name="formula" type="docFormulaType" />
- <xsd:element name="ref" type="docRefTextType" />
- <xsd:element name="nonbreakablespace" type="docEmptyType" />
- <xsd:element name="iexcl" type="docEmptyType" />
- <xsd:element name="cent" type="docEmptyType" />
- <xsd:element name="pound" type="docEmptyType" />
- <xsd:element name="curren" type="docEmptyType" />
- <xsd:element name="yen" type="docEmptyType" />
- <xsd:element name="brvbar" type="docEmptyType" />
- <xsd:element name="sect" type="docEmptyType" />
- <xsd:element name="umlaut" type="docEmptyType" />
- <xsd:element name="copy" type="docEmptyType" />
- <xsd:element name="ordf" type="docEmptyType" />
- <xsd:element name="laquo" type="docEmptyType" />
- <xsd:element name="not" type="docEmptyType" />
- <xsd:element name="shy" type="docEmptyType" />
- <xsd:element name="registered" type="docEmptyType" />
- <xsd:element name="macr" type="docEmptyType" />
- <xsd:element name="deg" type="docEmptyType" />
- <xsd:element name="plusmn" type="docEmptyType" />
- <xsd:element name="sup2" type="docEmptyType" />
- <xsd:element name="sup3" type="docEmptyType" />
- <xsd:element name="acute" type="docEmptyType" />
- <xsd:element name="micro" type="docEmptyType" />
- <xsd:element name="para" type="docEmptyType" />
- <xsd:element name="middot" type="docEmptyType" />
- <xsd:element name="cedil" type="docEmptyType" />
- <xsd:element name="sup1" type="docEmptyType" />
- <xsd:element name="ordm" type="docEmptyType" />
- <xsd:element name="raquo" type="docEmptyType" />
- <xsd:element name="frac14" type="docEmptyType" />
- <xsd:element name="frac12" type="docEmptyType" />
- <xsd:element name="frac34" type="docEmptyType" />
- <xsd:element name="iquest" type="docEmptyType" />
- <xsd:element name="Agrave" type="docEmptyType" />
- <xsd:element name="Aacute" type="docEmptyType" />
- <xsd:element name="Acirc" type="docEmptyType" />
- <xsd:element name="Atilde" type="docEmptyType" />
- <xsd:element name="Aumlaut" type="docEmptyType" />
- <xsd:element name="Aring" type="docEmptyType" />
- <xsd:element name="AElig" type="docEmptyType" />
- <xsd:element name="Ccedil" type="docEmptyType" />
- <xsd:element name="Egrave" type="docEmptyType" />
- <xsd:element name="Eacute" type="docEmptyType" />
- <xsd:element name="Ecirc" type="docEmptyType" />
- <xsd:element name="Eumlaut" type="docEmptyType" />
- <xsd:element name="Igrave" type="docEmptyType" />
- <xsd:element name="Iacute" type="docEmptyType" />
- <xsd:element name="Icirc" type="docEmptyType" />
- <xsd:element name="Iumlaut" type="docEmptyType" />
- <xsd:element name="ETH" type="docEmptyType" />
- <xsd:element name="Ntilde" type="docEmptyType" />
- <xsd:element name="Ograve" type="docEmptyType" />
- <xsd:element name="Oacute" type="docEmptyType" />
- <xsd:element name="Ocirc" type="docEmptyType" />
- <xsd:element name="Otilde" type="docEmptyType" />
- <xsd:element name="Oumlaut" type="docEmptyType" />
- <xsd:element name="times" type="docEmptyType" />
- <xsd:element name="Oslash" type="docEmptyType" />
- <xsd:element name="Ugrave" type="docEmptyType" />
- <xsd:element name="Uacute" type="docEmptyType" />
- <xsd:element name="Ucirc" type="docEmptyType" />
- <xsd:element name="Uumlaut" type="docEmptyType" />
- <xsd:element name="Yacute" type="docEmptyType" />
- <xsd:element name="THORN" type="docEmptyType" />
- <xsd:element name="szlig" type="docEmptyType" />
- <xsd:element name="agrave" type="docEmptyType" />
- <xsd:element name="aacute" type="docEmptyType" />
- <xsd:element name="acirc" type="docEmptyType" />
- <xsd:element name="atilde" type="docEmptyType" />
- <xsd:element name="aumlaut" type="docEmptyType" />
- <xsd:element name="aring" type="docEmptyType" />
- <xsd:element name="aelig" type="docEmptyType" />
- <xsd:element name="ccedil" type="docEmptyType" />
- <xsd:element name="egrave" type="docEmptyType" />
- <xsd:element name="eacute" type="docEmptyType" />
- <xsd:element name="ecirc" type="docEmptyType" />
- <xsd:element name="eumlaut" type="docEmptyType" />
- <xsd:element name="igrave" type="docEmptyType" />
- <xsd:element name="iacute" type="docEmptyType" />
- <xsd:element name="icirc" type="docEmptyType" />
- <xsd:element name="iumlaut" type="docEmptyType" />
- <xsd:element name="eth" type="docEmptyType" />
- <xsd:element name="ntilde" type="docEmptyType" />
- <xsd:element name="ograve" type="docEmptyType" />
- <xsd:element name="oacute" type="docEmptyType" />
- <xsd:element name="ocirc" type="docEmptyType" />
- <xsd:element name="otilde" type="docEmptyType" />
- <xsd:element name="oumlaut" type="docEmptyType" />
- <xsd:element name="divide" type="docEmptyType" />
- <xsd:element name="oslash" type="docEmptyType" />
- <xsd:element name="ugrave" type="docEmptyType" />
- <xsd:element name="uacute" type="docEmptyType" />
- <xsd:element name="ucirc" type="docEmptyType" />
- <xsd:element name="uumlaut" type="docEmptyType" />
- <xsd:element name="yacute" type="docEmptyType" />
- <xsd:element name="thorn" type="docEmptyType" />
- <xsd:element name="yumlaut" type="docEmptyType" />
- <xsd:element name="fnof" type="docEmptyType" />
- <xsd:element name="Alpha" type="docEmptyType" />
- <xsd:element name="Beta" type="docEmptyType" />
- <xsd:element name="Gamma" type="docEmptyType" />
- <xsd:element name="Delta" type="docEmptyType" />
- <xsd:element name="Epsilon" type="docEmptyType" />
- <xsd:element name="Zeta" type="docEmptyType" />
- <xsd:element name="Eta" type="docEmptyType" />
- <xsd:element name="Theta" type="docEmptyType" />
- <xsd:element name="Iota" type="docEmptyType" />
- <xsd:element name="Kappa" type="docEmptyType" />
- <xsd:element name="Lambda" type="docEmptyType" />
- <xsd:element name="Mu" type="docEmptyType" />
- <xsd:element name="Nu" type="docEmptyType" />
- <xsd:element name="Xi" type="docEmptyType" />
- <xsd:element name="Omicron" type="docEmptyType" />
- <xsd:element name="Pi" type="docEmptyType" />
- <xsd:element name="Rho" type="docEmptyType" />
- <xsd:element name="Sigma" type="docEmptyType" />
- <xsd:element name="Tau" type="docEmptyType" />
- <xsd:element name="Upsilon" type="docEmptyType" />
- <xsd:element name="Phi" type="docEmptyType" />
- <xsd:element name="Chi" type="docEmptyType" />
- <xsd:element name="Psi" type="docEmptyType" />
- <xsd:element name="Omega" type="docEmptyType" />
- <xsd:element name="alpha" type="docEmptyType" />
- <xsd:element name="beta" type="docEmptyType" />
- <xsd:element name="gamma" type="docEmptyType" />
- <xsd:element name="delta" type="docEmptyType" />
- <xsd:element name="epsilon" type="docEmptyType" />
- <xsd:element name="zeta" type="docEmptyType" />
- <xsd:element name="eta" type="docEmptyType" />
- <xsd:element name="theta" type="docEmptyType" />
- <xsd:element name="iota" type="docEmptyType" />
- <xsd:element name="kappa" type="docEmptyType" />
- <xsd:element name="lambda" type="docEmptyType" />
- <xsd:element name="mu" type="docEmptyType" />
- <xsd:element name="nu" type="docEmptyType" />
- <xsd:element name="xi" type="docEmptyType" />
- <xsd:element name="omicron" type="docEmptyType" />
- <xsd:element name="pi" type="docEmptyType" />
- <xsd:element name="rho" type="docEmptyType" />
- <xsd:element name="sigmaf" type="docEmptyType" />
- <xsd:element name="sigma" type="docEmptyType" />
- <xsd:element name="tau" type="docEmptyType" />
- <xsd:element name="upsilon" type="docEmptyType" />
- <xsd:element name="phi" type="docEmptyType" />
- <xsd:element name="chi" type="docEmptyType" />
- <xsd:element name="psi" type="docEmptyType" />
- <xsd:element name="omega" type="docEmptyType" />
- <xsd:element name="thetasym" type="docEmptyType" />
- <xsd:element name="upsih" type="docEmptyType" />
- <xsd:element name="piv" type="docEmptyType" />
- <xsd:element name="bull" type="docEmptyType" />
- <xsd:element name="hellip" type="docEmptyType" />
- <xsd:element name="prime" type="docEmptyType" />
- <xsd:element name="Prime" type="docEmptyType" />
- <xsd:element name="oline" type="docEmptyType" />
- <xsd:element name="frasl" type="docEmptyType" />
- <xsd:element name="weierp" type="docEmptyType" />
- <xsd:element name="image" type="docEmptyType" />
- <xsd:element name="real" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- <xsd:element name="alefsym" type="docEmptyType" />
- <xsd:element name="larr" type="docEmptyType" />
- <xsd:element name="uarr" type="docEmptyType" />
- <xsd:element name="rarr" type="docEmptyType" />
- <xsd:element name="darr" type="docEmptyType" />
- <xsd:element name="harr" type="docEmptyType" />
- <xsd:element name="crarr" type="docEmptyType" />
- <xsd:element name="lArr" type="docEmptyType" />
- <xsd:element name="uArr" type="docEmptyType" />
- <xsd:element name="rArr" type="docEmptyType" />
- <xsd:element name="dArr" type="docEmptyType" />
- <xsd:element name="hArr" type="docEmptyType" />
- <xsd:element name="forall" type="docEmptyType" />
- <xsd:element name="part" type="docEmptyType" />
- <xsd:element name="exist" type="docEmptyType" />
- <xsd:element name="empty" type="docEmptyType" />
- <xsd:element name="nabla" type="docEmptyType" />
- <xsd:element name="isin" type="docEmptyType" />
- <xsd:element name="notin" type="docEmptyType" />
- <xsd:element name="ni" type="docEmptyType" />
- <xsd:element name="prod" type="docEmptyType" />
- <xsd:element name="sum" type="docEmptyType" />
- <xsd:element name="minus" type="docEmptyType" />
- <xsd:element name="lowast" type="docEmptyType" />
- <xsd:element name="radic" type="docEmptyType" />
- <xsd:element name="prop" type="docEmptyType" />
- <xsd:element name="infin" type="docEmptyType" />
- <xsd:element name="ang" type="docEmptyType" />
- <xsd:element name="and" type="docEmptyType" />
- <xsd:element name="or" type="docEmptyType" />
- <xsd:element name="cap" type="docEmptyType" />
- <xsd:element name="cup" type="docEmptyType" />
- <xsd:element name="int" type="docEmptyType" />
- <xsd:element name="there4" type="docEmptyType" />
- <xsd:element name="sim" type="docEmptyType" />
- <xsd:element name="cong" type="docEmptyType" />
- <xsd:element name="asymp" type="docEmptyType" />
- <xsd:element name="ne" type="docEmptyType" />
- <xsd:element name="equiv" type="docEmptyType" />
- <xsd:element name="le" type="docEmptyType" />
- <xsd:element name="ge" type="docEmptyType" />
- <xsd:element name="sub" type="docEmptyType" />
- <xsd:element name="sup" type="docEmptyType" />
- <xsd:element name="nsub" type="docEmptyType" />
- <xsd:element name="sube" type="docEmptyType" />
- <xsd:element name="supe" type="docEmptyType" />
- <xsd:element name="oplus" type="docEmptyType" />
- <xsd:element name="otimes" type="docEmptyType" />
- <xsd:element name="perp" type="docEmptyType" />
- <xsd:element name="sdot" type="docEmptyType" />
- <xsd:element name="lceil" type="docEmptyType" />
- <xsd:element name="rceil" type="docEmptyType" />
- <xsd:element name="lfloor" type="docEmptyType" />
- <xsd:element name="rfloor" type="docEmptyType" />
- <xsd:element name="lang" type="docEmptyType" />
- <xsd:element name="rang" type="docEmptyType" />
- <xsd:element name="loz" type="docEmptyType" />
- <xsd:element name="spades" type="docEmptyType" />
- <xsd:element name="clubs" type="docEmptyType" />
- <xsd:element name="hearts" type="docEmptyType" />
- <xsd:element name="diams" type="docEmptyType" />
- <xsd:element name="OElig" type="docEmptyType" />
- <xsd:element name="oelig" type="docEmptyType" />
- <xsd:element name="Scaron" type="docEmptyType" />
- <xsd:element name="scaron" type="docEmptyType" />
- <xsd:element name="Yumlaut" type="docEmptyType" />
- <xsd:element name="circ" type="docEmptyType" />
- <xsd:element name="tilde" type="docEmptyType" />
- <xsd:element name="ensp" type="docEmptyType" />
- <xsd:element name="emsp" type="docEmptyType" />
- <xsd:element name="thinsp" type="docEmptyType" />
- <xsd:element name="zwnj" type="docEmptyType" />
- <xsd:element name="zwj" type="docEmptyType" />
- <xsd:element name="lrm" type="docEmptyType" />
- <xsd:element name="rlm" type="docEmptyType" />
- <xsd:element name="ndash" type="docEmptyType" />
- <xsd:element name="mdash" type="docEmptyType" />
- <xsd:element name="lsquo" type="docEmptyType" />
- <xsd:element name="rsquo" type="docEmptyType" />
- <xsd:element name="sbquo" type="docEmptyType" />
- <xsd:element name="ldquo" type="docEmptyType" />
- <xsd:element name="rdquo" type="docEmptyType" />
- <xsd:element name="bdquo" type="docEmptyType" />
- <xsd:element name="dagger" type="docEmptyType" />
- <xsd:element name="Dagger" type="docEmptyType" />
- <xsd:element name="permil" type="docEmptyType" />
- <xsd:element name="lsaquo" type="docEmptyType" />
- <xsd:element name="rsaquo" type="docEmptyType" />
- <xsd:element name="euro" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docTitleType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:group name="docCmdGroup">
- <xsd:choice>
- <xsd:group ref="docTitleCmdGroup"/>
- <xsd:element name="linebreak" type="docEmptyType" />
- <xsd:element name="hruler" type="docEmptyType" />
- <xsd:element name="preformatted" type="docMarkupType" />
- <xsd:element name="programlisting" type="listingType" />
- <xsd:element name="verbatim" type="xsd:string" />
- <xsd:element name="indexentry" type="docIndexEntryType" />
- <xsd:element name="orderedlist" type="docListType" />
- <xsd:element name="itemizedlist" type="docListType" />
- <xsd:element name="simplesect" type="docSimpleSectType" />
- <xsd:element name="title" type="docTitleType" />
- <xsd:element name="variablelist" type="docVariableListType" />
- <xsd:element name="table" type="docTableType" />
- <xsd:element name="heading" type="docHeadingType" />
- <xsd:element name="image" type="docImageType" />
- <xsd:element name="dotfile" type="docFileType" />
- <xsd:element name="mscfile" type="docFileType" />
- <xsd:element name="diafile" type="docFileType" />
- <xsd:element name="toclist" type="docTocListType" />
- <xsd:element name="language" type="docLanguageType" />
- <xsd:element name="parameterlist" type="docParamListType" />
- <xsd:element name="xrefsect" type="docXRefSectType" />
- <xsd:element name="copydoc" type="docCopyType" />
- <xsd:element name="blockquote" type="docBlockQuoteType" />
- <xsd:element name="parblock" type="docParBlockType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docParaType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docMarkupType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docURLLink" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="url" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docAnchorType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFormulaType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docIndexEntryType">
- <xsd:sequence>
- <xsd:element name="primaryie" type="xsd:string" />
- <xsd:element name="secondaryie" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListType">
- <xsd:sequence>
- <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListItemType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docSimpleSectType">
- <xsd:sequence>
- <xsd:element name="title" type="docTitleType" minOccurs="0" />
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSimpleSectKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docVarListEntryType">
- <xsd:sequence>
- <xsd:element name="term" type="docTitleType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docVariableListGroup">
- <xsd:sequence>
- <xsd:element name="varlistentry" type="docVarListEntryType" />
- <xsd:element name="listitem" type="docListItemType" />
- </xsd:sequence>
- </xsd:group>
-
- <xsd:complexType name="docVariableListType">
- <xsd:sequence>
- <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docRefTextType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTableType">
- <xsd:sequence>
- <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="rows" type="xsd:integer" />
- <xsd:attribute name="cols" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docRowType">
- <xsd:sequence>
- <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEntryType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="thead" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="docCaptionType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docHeadingType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
- </xsd:complexType>
-
- <xsd:complexType name="docImageType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="type" type="DoxImageKind" />
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="width" type="xsd:string" />
- <xsd:attribute name="height" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFileType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocItemType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocListType">
- <xsd:sequence>
- <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docLanguageType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="langid" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListType">
- <xsd:sequence>
- <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxParamListKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListItem">
- <xsd:sequence>
- <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parameterdescription" type="descriptionType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamNameList">
- <xsd:sequence>
- <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamName" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
- </xsd:complexType>
-
- <xsd:complexType name="docXRefSectType">
- <xsd:sequence>
- <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="xrefdescription" type="descriptionType" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docCopyType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="link" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docBlockQuoteType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParBlockType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEmptyType"/>
-
- <!-- Simple types -->
-
- <xsd:simpleType name="DoxBool">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="yes" />
- <xsd:enumeration value="no" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxGraphRelation">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="include" />
- <xsd:enumeration value="usage" />
- <xsd:enumeration value="template-instance" />
- <xsd:enumeration value="public-inheritance" />
- <xsd:enumeration value="protected-inheritance" />
- <xsd:enumeration value="private-inheritance" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxRefKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="compound" />
- <xsd:enumeration value="member" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxMemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="variable" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="function" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="dcop" />
- <xsd:enumeration value="slot" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="service" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxProtectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="public" />
- <xsd:enumeration value="protected" />
- <xsd:enumeration value="private" />
- <xsd:enumeration value="package" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVirtualKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="non-virtual" />
- <xsd:enumeration value="virtual" />
- <xsd:enumeration value="pure-virtual" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class" />
- <xsd:enumeration value="struct" />
- <xsd:enumeration value="union" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="protocol" />
- <xsd:enumeration value="category" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="service" />
- <xsd:enumeration value="singleton" />
- <xsd:enumeration value="module" />
- <xsd:enumeration value="type" />
- <xsd:enumeration value="file" />
- <xsd:enumeration value="namespace" />
- <xsd:enumeration value="group" />
- <xsd:enumeration value="page" />
- <xsd:enumeration value="example" />
- <xsd:enumeration value="dir" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="user-defined" />
- <xsd:enumeration value="public-type" />
- <xsd:enumeration value="public-func" />
- <xsd:enumeration value="public-attrib" />
- <xsd:enumeration value="public-slot" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="dcop-func" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="public-static-func" />
- <xsd:enumeration value="public-static-attrib" />
- <xsd:enumeration value="protected-type" />
- <xsd:enumeration value="protected-func" />
- <xsd:enumeration value="protected-attrib" />
- <xsd:enumeration value="protected-slot" />
- <xsd:enumeration value="protected-static-func" />
- <xsd:enumeration value="protected-static-attrib" />
- <xsd:enumeration value="package-type" />
- <xsd:enumeration value="package-func" />
- <xsd:enumeration value="package-attrib" />
- <xsd:enumeration value="package-static-func" />
- <xsd:enumeration value="package-static-attrib" />
- <xsd:enumeration value="private-type" />
- <xsd:enumeration value="private-func" />
- <xsd:enumeration value="private-attrib" />
- <xsd:enumeration value="private-slot" />
- <xsd:enumeration value="private-static-func" />
- <xsd:enumeration value="private-static-attrib" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="related" />
- <xsd:enumeration value="define" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="func" />
- <xsd:enumeration value="var" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxHighlightClass">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="comment" />
- <xsd:enumeration value="normal" />
- <xsd:enumeration value="preprocessor" />
- <xsd:enumeration value="keyword" />
- <xsd:enumeration value="keywordtype" />
- <xsd:enumeration value="keywordflow" />
- <xsd:enumeration value="stringliteral" />
- <xsd:enumeration value="charliteral" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSimpleSectKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="see" />
- <xsd:enumeration value="return" />
- <xsd:enumeration value="author" />
- <xsd:enumeration value="authors" />
- <xsd:enumeration value="version" />
- <xsd:enumeration value="since" />
- <xsd:enumeration value="date" />
- <xsd:enumeration value="note" />
- <xsd:enumeration value="warning" />
- <xsd:enumeration value="pre" />
- <xsd:enumeration value="post" />
- <xsd:enumeration value="copyright" />
- <xsd:enumeration value="invariant" />
- <xsd:enumeration value="remark" />
- <xsd:enumeration value="attention" />
- <xsd:enumeration value="par" />
- <xsd:enumeration value="rcs" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVersionNumber">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="\d+\.\d+.*" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxImageKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="html" />
- <xsd:enumeration value="latex" />
- <xsd:enumeration value="rtf" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamListKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="param" />
- <xsd:enumeration value="retval" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="templateparam" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCharRange">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="[aeiouncAEIOUNC]" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamDir">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="in"/>
- <xsd:enumeration value="out"/>
- <xsd:enumeration value="inout"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxAccessor">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="retain"/>
- <xsd:enumeration value="copy"/>
- <xsd:enumeration value="assign"/>
- <xsd:enumeration value="weak"/>
- <xsd:enumeration value="strong"/>
- <xsd:enumeration value="unretained"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.8.8">
-</doxygenindex>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygenindex" type="DoxygenType"/>
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence>
- <xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="CompoundType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="CompoundKind" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="MemberType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="MemberKind" use="required"/>
- </xsd:complexType>
-
- <xsd:simpleType name="CompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class"/>
- <xsd:enumeration value="struct"/>
- <xsd:enumeration value="union"/>
- <xsd:enumeration value="interface"/>
- <xsd:enumeration value="protocol"/>
- <xsd:enumeration value="category"/>
- <xsd:enumeration value="exception"/>
- <xsd:enumeration value="file"/>
- <xsd:enumeration value="namespace"/>
- <xsd:enumeration value="group"/>
- <xsd:enumeration value="page"/>
- <xsd:enumeration value="example"/>
- <xsd:enumeration value="dir"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="MemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define"/>
- <xsd:enumeration value="property"/>
- <xsd:enumeration value="event"/>
- <xsd:enumeration value="variable"/>
- <xsd:enumeration value="typedef"/>
- <xsd:enumeration value="enum"/>
- <xsd:enumeration value="enumvalue"/>
- <xsd:enumeration value="function"/>
- <xsd:enumeration value="signal"/>
- <xsd:enumeration value="prototype"/>
- <xsd:enumeration value="friend"/>
- <xsd:enumeration value="dcop"/>
- <xsd:enumeration value="slot"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-# Doxyfile 1.8.8
-
-# 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 config 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 http://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 = "Test Project"
-
-# 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 =
-
-# 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 =
-
-# 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 = YES
-
-# 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 = YES
-
-# 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
-
-# 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:\n"
-# 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:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# 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 = YES
-
-# 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
-
-# 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,
-# C#, C, C++, D, PHP, Objective-C, Python, 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), VHDL. 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.
-
-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 http://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 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:
-# http://www.riverbankcomputing.co.uk/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
-
-# 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
-
-#---------------------------------------------------------------------------
-# 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_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 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
-# (class|struct|union) 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
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# 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 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.
-#
-# 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 http://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 not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = 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 or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = 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).
-
-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.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = src
-
-# 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: http://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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.idl \
- *.ddl \
- *.odl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
- *.md \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf \
- *.as \
- *.js
-
-# 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,
-# AClass::ANamespace, 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.
-
-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.
-
-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
-# function 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 http://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 config 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
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# 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 = NO
-
-# 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 stylesheet files is of importance (e.g. the last
-# stylesheet 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 stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://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 grayscales 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 NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = 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: http://developer.apple.com/tools/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 http://developer.apple.com/tools/creatingdocsetswithdoxygen.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 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
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# 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 master .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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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:
-# http://qt-project.org/doc/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 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 stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. 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
-
-# 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
-
-# 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_TRANPARENT 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
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://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
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) 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 http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# 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/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: http://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: http://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 = NO
-
-# 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 enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = 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. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# 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 personal 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. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal 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.
-#
-# 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_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 pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# 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. This option is also used
-# when generating formulas in HTML.
-# 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
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://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
-
-#---------------------------------------------------------------------------
-# 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 = NO
-
-# 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 config
-# 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 config 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 = NO
-
-# 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 = YES
-
-# 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 = 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 = NO
-
-# 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
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# 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.sf.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
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to 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 HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# 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.
-# 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.
-# 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 DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# 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 and svg.
-# 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. 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.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_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.
-# 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 dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+++ /dev/null
-This directory contains a dummy Java project for testing purposes.
-
-To regenerate the XML output located in `xml`, run `make`. If the `Makefile`
-does not exists, you can regenerate it by running `make bootstrap` in the parent
-directory.
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * A class with an inner class.
- */
-public class OuterClass {
- /**
- * An instance (non-static) inner class.
- */
- public class InnerClass {}
-}
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_outer_class_8java" kind="file">
- <compoundname>OuterClass.java</compoundname>
- <innerclass refid="class_outer_class" prot="public">OuterClass</innerclass>
- <innerclass refid="class_outer_class_1_1_inner_class" prot="public">OuterClass::InnerClass</innerclass>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/OuterClass.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="class_outer_class" kind="class" prot="public">
- <compoundname>OuterClass</compoundname>
- <innerclass refid="class_outer_class_1_1_inner_class" prot="public">OuterClass::InnerClass</innerclass>
- <briefdescription>
-<para>A class with an inner class. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/OuterClass.java" line="19" column="1" bodyfile="%SOURCE_DIRECTORY%/OuterClass.java" bodystart="19" bodyend="24"/>
- <listofallmembers>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="class_outer_class_1_1_inner_class" kind="class" prot="public">
- <compoundname>OuterClass::InnerClass</compoundname>
- <briefdescription>
-<para>An instance (non-static) inner class. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/OuterClass.java" line="23" column="1" bodyfile="%SOURCE_DIRECTORY%/OuterClass.java" bodystart="23" bodyend="23"/>
- <listofallmembers>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<!-- XSLT script to combine the generated output into a single file.
- If you have xsltproc you could use:
- xsltproc combine.xslt index.xml >all.xml
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" indent="no" standalone="yes" />
- <xsl:template match="/">
- <doxygen version="{doxygenindex/@version}">
- <!-- Load all doxgen generated xml files -->
- <xsl:for-each select="doxygenindex/compound">
- <xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
- </xsl:for-each>
- </doxygen>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
-
- <!-- Complex types -->
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence maxOccurs="unbounded">
- <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
- </xsd:complexType>
-
- <xsd:complexType name="compounddefType">
- <xsd:sequence>
- <xsd:element name="compoundname" type="xsd:string"/>
- <xsd:element name="title" type="xsd:string" minOccurs="0" />
- <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
- <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
- <xsd:element name="programlisting" type="listingType" minOccurs="0" />
- <xsd:element name="location" type="locationType" minOccurs="0" />
- <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="kind" type="DoxCompoundKind" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listofallmembersType">
- <xsd:sequence>
- <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="memberRefType">
- <xsd:sequence>
- <xsd:element name="scope" />
- <xsd:element name="name" />
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- <xsd:attribute name="ambiguityscope" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="compoundRefType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" use="optional" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="reimplementType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="incType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="local" type="DoxBool" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refTextType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="sectiondefType">
- <xsd:sequence>
- <xsd:element name="header" type="xsd:string" minOccurs="0" />
- <xsd:element name="description" type="descriptionType" minOccurs="0" />
- <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="memberdefType">
- <xsd:sequence>
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="definition" minOccurs="0" />
- <xsd:element name="argsstring" minOccurs="0" />
- <xsd:element name="name" />
- <xsd:element name="read" minOccurs="0" />
- <xsd:element name="write" minOccurs="0" />
- <xsd:element name="bitfield" minOccurs="0" />
- <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="location" type="locationType" />
- <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxMemberKind" />
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="static" type="DoxBool" />
- <xsd:attribute name="const" type="DoxBool" use="optional"/>
- <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
- <xsd:attribute name="inline" type="DoxBool" use="optional"/>
- <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
- <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
- <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
- <!-- Qt property -->
- <xsd:attribute name="readable" type="DoxBool" use="optional"/>
- <xsd:attribute name="writable" type="DoxBool" use="optional"/>
- <!-- C++/CLI variable -->
- <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
- <!-- C++/CLI and C# property -->
- <xsd:attribute name="settable" type="DoxBool" use="optional"/>
- <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
- <!-- C++/CLI function -->
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="new" type="DoxBool" use="optional"/>
- <!-- C++/CLI event -->
- <xsd:attribute name="add" type="DoxBool" use="optional"/>
- <xsd:attribute name="remove" type="DoxBool" use="optional"/>
- <xsd:attribute name="raise" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 protocol method -->
- <xsd:attribute name="optional" type="DoxBool" use="optional"/>
- <xsd:attribute name="required" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 property accessor -->
- <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
- <!-- UNO IDL -->
- <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
- <xsd:attribute name="property" type="DoxBool" use="optional"/>
- <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
- <xsd:attribute name="bound" type="DoxBool" use="optional"/>
- <xsd:attribute name="removable" type="DoxBool" use="optional"/>
- <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
- <xsd:attribute name="transient" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
-
- </xsd:complexType>
-
- <xsd:complexType name="descriptionType" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" minOccurs="0"/>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="enumvalueType" mixed="true">
- <xsd:sequence>
- <xsd:element name="name" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="templateparamlistType">
- <xsd:sequence>
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="paramType">
- <xsd:sequence>
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="declname" minOccurs="0" />
- <xsd:element name="defname" minOccurs="0" />
- <xsd:element name="array" minOccurs="0" />
- <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="linkedTextType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="graphType">
- <xsd:sequence>
- <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="nodeType">
- <xsd:sequence>
- <xsd:element name="label" />
- <xsd:element name="link" type="linkType" minOccurs="0" />
- <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="childnodeType">
- <xsd:sequence>
- <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="relation" type="DoxGraphRelation" />
- </xsd:complexType>
-
- <xsd:complexType name="linkType">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listingType">
- <xsd:sequence>
- <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="codelineType">
- <xsd:sequence>
- <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="lineno" type="xsd:integer" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="refkind" type="DoxRefKind" />
- <xsd:attribute name="external" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="highlightType" mixed="true">
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="sp" />
- <xsd:element name="ref" type="refTextType" />
- </xsd:choice>
- <xsd:attribute name="class" type="DoxHighlightClass" />
- </xsd:complexType>
-
- <xsd:complexType name="referenceType" mixed="true">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
- <xsd:attribute name="startline" type="xsd:integer" />
- <xsd:attribute name="endline" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="locationType">
- <xsd:attribute name="file" type="xsd:string" />
- <xsd:attribute name="line" type="xsd:integer" />
- <xsd:attribute name="column" type="xsd:integer" use="optional"/>
- <xsd:attribute name="bodyfile" type="xsd:string" />
- <xsd:attribute name="bodystart" type="xsd:integer" />
- <xsd:attribute name="bodyend" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docInternalType" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docTitleCmdGroup">
- <xsd:choice>
- <xsd:element name="ulink" type="docURLLink" />
- <xsd:element name="bold" type="docMarkupType" />
- <xsd:element name="emphasis" type="docMarkupType" />
- <xsd:element name="computeroutput" type="docMarkupType" />
- <xsd:element name="subscript" type="docMarkupType" />
- <xsd:element name="superscript" type="docMarkupType" />
- <xsd:element name="center" type="docMarkupType" />
- <xsd:element name="small" type="docMarkupType" />
- <xsd:element name="htmlonly" type="xsd:string" />
- <xsd:element name="manonly" type="xsd:string" />
- <xsd:element name="xmlonly" type="xsd:string" />
- <xsd:element name="rtfonly" type="xsd:string" />
- <xsd:element name="latexonly" type="xsd:string" />
- <xsd:element name="dot" type="xsd:string" />
- <xsd:element name="plantuml" type="xsd:string" />
- <xsd:element name="anchor" type="docAnchorType" />
- <xsd:element name="formula" type="docFormulaType" />
- <xsd:element name="ref" type="docRefTextType" />
- <xsd:element name="nonbreakablespace" type="docEmptyType" />
- <xsd:element name="iexcl" type="docEmptyType" />
- <xsd:element name="cent" type="docEmptyType" />
- <xsd:element name="pound" type="docEmptyType" />
- <xsd:element name="curren" type="docEmptyType" />
- <xsd:element name="yen" type="docEmptyType" />
- <xsd:element name="brvbar" type="docEmptyType" />
- <xsd:element name="sect" type="docEmptyType" />
- <xsd:element name="umlaut" type="docEmptyType" />
- <xsd:element name="copy" type="docEmptyType" />
- <xsd:element name="ordf" type="docEmptyType" />
- <xsd:element name="laquo" type="docEmptyType" />
- <xsd:element name="not" type="docEmptyType" />
- <xsd:element name="shy" type="docEmptyType" />
- <xsd:element name="registered" type="docEmptyType" />
- <xsd:element name="macr" type="docEmptyType" />
- <xsd:element name="deg" type="docEmptyType" />
- <xsd:element name="plusmn" type="docEmptyType" />
- <xsd:element name="sup2" type="docEmptyType" />
- <xsd:element name="sup3" type="docEmptyType" />
- <xsd:element name="acute" type="docEmptyType" />
- <xsd:element name="micro" type="docEmptyType" />
- <xsd:element name="para" type="docEmptyType" />
- <xsd:element name="middot" type="docEmptyType" />
- <xsd:element name="cedil" type="docEmptyType" />
- <xsd:element name="sup1" type="docEmptyType" />
- <xsd:element name="ordm" type="docEmptyType" />
- <xsd:element name="raquo" type="docEmptyType" />
- <xsd:element name="frac14" type="docEmptyType" />
- <xsd:element name="frac12" type="docEmptyType" />
- <xsd:element name="frac34" type="docEmptyType" />
- <xsd:element name="iquest" type="docEmptyType" />
- <xsd:element name="Agrave" type="docEmptyType" />
- <xsd:element name="Aacute" type="docEmptyType" />
- <xsd:element name="Acirc" type="docEmptyType" />
- <xsd:element name="Atilde" type="docEmptyType" />
- <xsd:element name="Aumlaut" type="docEmptyType" />
- <xsd:element name="Aring" type="docEmptyType" />
- <xsd:element name="AElig" type="docEmptyType" />
- <xsd:element name="Ccedil" type="docEmptyType" />
- <xsd:element name="Egrave" type="docEmptyType" />
- <xsd:element name="Eacute" type="docEmptyType" />
- <xsd:element name="Ecirc" type="docEmptyType" />
- <xsd:element name="Eumlaut" type="docEmptyType" />
- <xsd:element name="Igrave" type="docEmptyType" />
- <xsd:element name="Iacute" type="docEmptyType" />
- <xsd:element name="Icirc" type="docEmptyType" />
- <xsd:element name="Iumlaut" type="docEmptyType" />
- <xsd:element name="ETH" type="docEmptyType" />
- <xsd:element name="Ntilde" type="docEmptyType" />
- <xsd:element name="Ograve" type="docEmptyType" />
- <xsd:element name="Oacute" type="docEmptyType" />
- <xsd:element name="Ocirc" type="docEmptyType" />
- <xsd:element name="Otilde" type="docEmptyType" />
- <xsd:element name="Oumlaut" type="docEmptyType" />
- <xsd:element name="times" type="docEmptyType" />
- <xsd:element name="Oslash" type="docEmptyType" />
- <xsd:element name="Ugrave" type="docEmptyType" />
- <xsd:element name="Uacute" type="docEmptyType" />
- <xsd:element name="Ucirc" type="docEmptyType" />
- <xsd:element name="Uumlaut" type="docEmptyType" />
- <xsd:element name="Yacute" type="docEmptyType" />
- <xsd:element name="THORN" type="docEmptyType" />
- <xsd:element name="szlig" type="docEmptyType" />
- <xsd:element name="agrave" type="docEmptyType" />
- <xsd:element name="aacute" type="docEmptyType" />
- <xsd:element name="acirc" type="docEmptyType" />
- <xsd:element name="atilde" type="docEmptyType" />
- <xsd:element name="aumlaut" type="docEmptyType" />
- <xsd:element name="aring" type="docEmptyType" />
- <xsd:element name="aelig" type="docEmptyType" />
- <xsd:element name="ccedil" type="docEmptyType" />
- <xsd:element name="egrave" type="docEmptyType" />
- <xsd:element name="eacute" type="docEmptyType" />
- <xsd:element name="ecirc" type="docEmptyType" />
- <xsd:element name="eumlaut" type="docEmptyType" />
- <xsd:element name="igrave" type="docEmptyType" />
- <xsd:element name="iacute" type="docEmptyType" />
- <xsd:element name="icirc" type="docEmptyType" />
- <xsd:element name="iumlaut" type="docEmptyType" />
- <xsd:element name="eth" type="docEmptyType" />
- <xsd:element name="ntilde" type="docEmptyType" />
- <xsd:element name="ograve" type="docEmptyType" />
- <xsd:element name="oacute" type="docEmptyType" />
- <xsd:element name="ocirc" type="docEmptyType" />
- <xsd:element name="otilde" type="docEmptyType" />
- <xsd:element name="oumlaut" type="docEmptyType" />
- <xsd:element name="divide" type="docEmptyType" />
- <xsd:element name="oslash" type="docEmptyType" />
- <xsd:element name="ugrave" type="docEmptyType" />
- <xsd:element name="uacute" type="docEmptyType" />
- <xsd:element name="ucirc" type="docEmptyType" />
- <xsd:element name="uumlaut" type="docEmptyType" />
- <xsd:element name="yacute" type="docEmptyType" />
- <xsd:element name="thorn" type="docEmptyType" />
- <xsd:element name="yumlaut" type="docEmptyType" />
- <xsd:element name="fnof" type="docEmptyType" />
- <xsd:element name="Alpha" type="docEmptyType" />
- <xsd:element name="Beta" type="docEmptyType" />
- <xsd:element name="Gamma" type="docEmptyType" />
- <xsd:element name="Delta" type="docEmptyType" />
- <xsd:element name="Epsilon" type="docEmptyType" />
- <xsd:element name="Zeta" type="docEmptyType" />
- <xsd:element name="Eta" type="docEmptyType" />
- <xsd:element name="Theta" type="docEmptyType" />
- <xsd:element name="Iota" type="docEmptyType" />
- <xsd:element name="Kappa" type="docEmptyType" />
- <xsd:element name="Lambda" type="docEmptyType" />
- <xsd:element name="Mu" type="docEmptyType" />
- <xsd:element name="Nu" type="docEmptyType" />
- <xsd:element name="Xi" type="docEmptyType" />
- <xsd:element name="Omicron" type="docEmptyType" />
- <xsd:element name="Pi" type="docEmptyType" />
- <xsd:element name="Rho" type="docEmptyType" />
- <xsd:element name="Sigma" type="docEmptyType" />
- <xsd:element name="Tau" type="docEmptyType" />
- <xsd:element name="Upsilon" type="docEmptyType" />
- <xsd:element name="Phi" type="docEmptyType" />
- <xsd:element name="Chi" type="docEmptyType" />
- <xsd:element name="Psi" type="docEmptyType" />
- <xsd:element name="Omega" type="docEmptyType" />
- <xsd:element name="alpha" type="docEmptyType" />
- <xsd:element name="beta" type="docEmptyType" />
- <xsd:element name="gamma" type="docEmptyType" />
- <xsd:element name="delta" type="docEmptyType" />
- <xsd:element name="epsilon" type="docEmptyType" />
- <xsd:element name="zeta" type="docEmptyType" />
- <xsd:element name="eta" type="docEmptyType" />
- <xsd:element name="theta" type="docEmptyType" />
- <xsd:element name="iota" type="docEmptyType" />
- <xsd:element name="kappa" type="docEmptyType" />
- <xsd:element name="lambda" type="docEmptyType" />
- <xsd:element name="mu" type="docEmptyType" />
- <xsd:element name="nu" type="docEmptyType" />
- <xsd:element name="xi" type="docEmptyType" />
- <xsd:element name="omicron" type="docEmptyType" />
- <xsd:element name="pi" type="docEmptyType" />
- <xsd:element name="rho" type="docEmptyType" />
- <xsd:element name="sigmaf" type="docEmptyType" />
- <xsd:element name="sigma" type="docEmptyType" />
- <xsd:element name="tau" type="docEmptyType" />
- <xsd:element name="upsilon" type="docEmptyType" />
- <xsd:element name="phi" type="docEmptyType" />
- <xsd:element name="chi" type="docEmptyType" />
- <xsd:element name="psi" type="docEmptyType" />
- <xsd:element name="omega" type="docEmptyType" />
- <xsd:element name="thetasym" type="docEmptyType" />
- <xsd:element name="upsih" type="docEmptyType" />
- <xsd:element name="piv" type="docEmptyType" />
- <xsd:element name="bull" type="docEmptyType" />
- <xsd:element name="hellip" type="docEmptyType" />
- <xsd:element name="prime" type="docEmptyType" />
- <xsd:element name="Prime" type="docEmptyType" />
- <xsd:element name="oline" type="docEmptyType" />
- <xsd:element name="frasl" type="docEmptyType" />
- <xsd:element name="weierp" type="docEmptyType" />
- <xsd:element name="image" type="docEmptyType" />
- <xsd:element name="real" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- <xsd:element name="alefsym" type="docEmptyType" />
- <xsd:element name="larr" type="docEmptyType" />
- <xsd:element name="uarr" type="docEmptyType" />
- <xsd:element name="rarr" type="docEmptyType" />
- <xsd:element name="darr" type="docEmptyType" />
- <xsd:element name="harr" type="docEmptyType" />
- <xsd:element name="crarr" type="docEmptyType" />
- <xsd:element name="lArr" type="docEmptyType" />
- <xsd:element name="uArr" type="docEmptyType" />
- <xsd:element name="rArr" type="docEmptyType" />
- <xsd:element name="dArr" type="docEmptyType" />
- <xsd:element name="hArr" type="docEmptyType" />
- <xsd:element name="forall" type="docEmptyType" />
- <xsd:element name="part" type="docEmptyType" />
- <xsd:element name="exist" type="docEmptyType" />
- <xsd:element name="empty" type="docEmptyType" />
- <xsd:element name="nabla" type="docEmptyType" />
- <xsd:element name="isin" type="docEmptyType" />
- <xsd:element name="notin" type="docEmptyType" />
- <xsd:element name="ni" type="docEmptyType" />
- <xsd:element name="prod" type="docEmptyType" />
- <xsd:element name="sum" type="docEmptyType" />
- <xsd:element name="minus" type="docEmptyType" />
- <xsd:element name="lowast" type="docEmptyType" />
- <xsd:element name="radic" type="docEmptyType" />
- <xsd:element name="prop" type="docEmptyType" />
- <xsd:element name="infin" type="docEmptyType" />
- <xsd:element name="ang" type="docEmptyType" />
- <xsd:element name="and" type="docEmptyType" />
- <xsd:element name="or" type="docEmptyType" />
- <xsd:element name="cap" type="docEmptyType" />
- <xsd:element name="cup" type="docEmptyType" />
- <xsd:element name="int" type="docEmptyType" />
- <xsd:element name="there4" type="docEmptyType" />
- <xsd:element name="sim" type="docEmptyType" />
- <xsd:element name="cong" type="docEmptyType" />
- <xsd:element name="asymp" type="docEmptyType" />
- <xsd:element name="ne" type="docEmptyType" />
- <xsd:element name="equiv" type="docEmptyType" />
- <xsd:element name="le" type="docEmptyType" />
- <xsd:element name="ge" type="docEmptyType" />
- <xsd:element name="sub" type="docEmptyType" />
- <xsd:element name="sup" type="docEmptyType" />
- <xsd:element name="nsub" type="docEmptyType" />
- <xsd:element name="sube" type="docEmptyType" />
- <xsd:element name="supe" type="docEmptyType" />
- <xsd:element name="oplus" type="docEmptyType" />
- <xsd:element name="otimes" type="docEmptyType" />
- <xsd:element name="perp" type="docEmptyType" />
- <xsd:element name="sdot" type="docEmptyType" />
- <xsd:element name="lceil" type="docEmptyType" />
- <xsd:element name="rceil" type="docEmptyType" />
- <xsd:element name="lfloor" type="docEmptyType" />
- <xsd:element name="rfloor" type="docEmptyType" />
- <xsd:element name="lang" type="docEmptyType" />
- <xsd:element name="rang" type="docEmptyType" />
- <xsd:element name="loz" type="docEmptyType" />
- <xsd:element name="spades" type="docEmptyType" />
- <xsd:element name="clubs" type="docEmptyType" />
- <xsd:element name="hearts" type="docEmptyType" />
- <xsd:element name="diams" type="docEmptyType" />
- <xsd:element name="OElig" type="docEmptyType" />
- <xsd:element name="oelig" type="docEmptyType" />
- <xsd:element name="Scaron" type="docEmptyType" />
- <xsd:element name="scaron" type="docEmptyType" />
- <xsd:element name="Yumlaut" type="docEmptyType" />
- <xsd:element name="circ" type="docEmptyType" />
- <xsd:element name="tilde" type="docEmptyType" />
- <xsd:element name="ensp" type="docEmptyType" />
- <xsd:element name="emsp" type="docEmptyType" />
- <xsd:element name="thinsp" type="docEmptyType" />
- <xsd:element name="zwnj" type="docEmptyType" />
- <xsd:element name="zwj" type="docEmptyType" />
- <xsd:element name="lrm" type="docEmptyType" />
- <xsd:element name="rlm" type="docEmptyType" />
- <xsd:element name="ndash" type="docEmptyType" />
- <xsd:element name="mdash" type="docEmptyType" />
- <xsd:element name="lsquo" type="docEmptyType" />
- <xsd:element name="rsquo" type="docEmptyType" />
- <xsd:element name="sbquo" type="docEmptyType" />
- <xsd:element name="ldquo" type="docEmptyType" />
- <xsd:element name="rdquo" type="docEmptyType" />
- <xsd:element name="bdquo" type="docEmptyType" />
- <xsd:element name="dagger" type="docEmptyType" />
- <xsd:element name="Dagger" type="docEmptyType" />
- <xsd:element name="permil" type="docEmptyType" />
- <xsd:element name="lsaquo" type="docEmptyType" />
- <xsd:element name="rsaquo" type="docEmptyType" />
- <xsd:element name="euro" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docTitleType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:group name="docCmdGroup">
- <xsd:choice>
- <xsd:group ref="docTitleCmdGroup"/>
- <xsd:element name="linebreak" type="docEmptyType" />
- <xsd:element name="hruler" type="docEmptyType" />
- <xsd:element name="preformatted" type="docMarkupType" />
- <xsd:element name="programlisting" type="listingType" />
- <xsd:element name="verbatim" type="xsd:string" />
- <xsd:element name="indexentry" type="docIndexEntryType" />
- <xsd:element name="orderedlist" type="docListType" />
- <xsd:element name="itemizedlist" type="docListType" />
- <xsd:element name="simplesect" type="docSimpleSectType" />
- <xsd:element name="title" type="docTitleType" />
- <xsd:element name="variablelist" type="docVariableListType" />
- <xsd:element name="table" type="docTableType" />
- <xsd:element name="heading" type="docHeadingType" />
- <xsd:element name="image" type="docImageType" />
- <xsd:element name="dotfile" type="docFileType" />
- <xsd:element name="mscfile" type="docFileType" />
- <xsd:element name="diafile" type="docFileType" />
- <xsd:element name="toclist" type="docTocListType" />
- <xsd:element name="language" type="docLanguageType" />
- <xsd:element name="parameterlist" type="docParamListType" />
- <xsd:element name="xrefsect" type="docXRefSectType" />
- <xsd:element name="copydoc" type="docCopyType" />
- <xsd:element name="blockquote" type="docBlockQuoteType" />
- <xsd:element name="parblock" type="docParBlockType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docParaType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docMarkupType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docURLLink" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="url" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docAnchorType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFormulaType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docIndexEntryType">
- <xsd:sequence>
- <xsd:element name="primaryie" type="xsd:string" />
- <xsd:element name="secondaryie" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListType">
- <xsd:sequence>
- <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListItemType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docSimpleSectType">
- <xsd:sequence>
- <xsd:element name="title" type="docTitleType" minOccurs="0" />
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSimpleSectKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docVarListEntryType">
- <xsd:sequence>
- <xsd:element name="term" type="docTitleType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docVariableListGroup">
- <xsd:sequence>
- <xsd:element name="varlistentry" type="docVarListEntryType" />
- <xsd:element name="listitem" type="docListItemType" />
- </xsd:sequence>
- </xsd:group>
-
- <xsd:complexType name="docVariableListType">
- <xsd:sequence>
- <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docRefTextType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTableType">
- <xsd:sequence>
- <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="rows" type="xsd:integer" />
- <xsd:attribute name="cols" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docRowType">
- <xsd:sequence>
- <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEntryType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="thead" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="docCaptionType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docHeadingType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
- </xsd:complexType>
-
- <xsd:complexType name="docImageType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="type" type="DoxImageKind" />
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="width" type="xsd:string" />
- <xsd:attribute name="height" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFileType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocItemType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocListType">
- <xsd:sequence>
- <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docLanguageType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="langid" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListType">
- <xsd:sequence>
- <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxParamListKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListItem">
- <xsd:sequence>
- <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parameterdescription" type="descriptionType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamNameList">
- <xsd:sequence>
- <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamName" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
- </xsd:complexType>
-
- <xsd:complexType name="docXRefSectType">
- <xsd:sequence>
- <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="xrefdescription" type="descriptionType" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docCopyType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="link" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docBlockQuoteType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParBlockType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEmptyType"/>
-
- <!-- Simple types -->
-
- <xsd:simpleType name="DoxBool">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="yes" />
- <xsd:enumeration value="no" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxGraphRelation">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="include" />
- <xsd:enumeration value="usage" />
- <xsd:enumeration value="template-instance" />
- <xsd:enumeration value="public-inheritance" />
- <xsd:enumeration value="protected-inheritance" />
- <xsd:enumeration value="private-inheritance" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxRefKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="compound" />
- <xsd:enumeration value="member" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxMemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="variable" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="function" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="dcop" />
- <xsd:enumeration value="slot" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="service" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxProtectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="public" />
- <xsd:enumeration value="protected" />
- <xsd:enumeration value="private" />
- <xsd:enumeration value="package" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVirtualKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="non-virtual" />
- <xsd:enumeration value="virtual" />
- <xsd:enumeration value="pure-virtual" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class" />
- <xsd:enumeration value="struct" />
- <xsd:enumeration value="union" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="protocol" />
- <xsd:enumeration value="category" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="service" />
- <xsd:enumeration value="singleton" />
- <xsd:enumeration value="module" />
- <xsd:enumeration value="type" />
- <xsd:enumeration value="file" />
- <xsd:enumeration value="namespace" />
- <xsd:enumeration value="group" />
- <xsd:enumeration value="page" />
- <xsd:enumeration value="example" />
- <xsd:enumeration value="dir" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="user-defined" />
- <xsd:enumeration value="public-type" />
- <xsd:enumeration value="public-func" />
- <xsd:enumeration value="public-attrib" />
- <xsd:enumeration value="public-slot" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="dcop-func" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="public-static-func" />
- <xsd:enumeration value="public-static-attrib" />
- <xsd:enumeration value="protected-type" />
- <xsd:enumeration value="protected-func" />
- <xsd:enumeration value="protected-attrib" />
- <xsd:enumeration value="protected-slot" />
- <xsd:enumeration value="protected-static-func" />
- <xsd:enumeration value="protected-static-attrib" />
- <xsd:enumeration value="package-type" />
- <xsd:enumeration value="package-func" />
- <xsd:enumeration value="package-attrib" />
- <xsd:enumeration value="package-static-func" />
- <xsd:enumeration value="package-static-attrib" />
- <xsd:enumeration value="private-type" />
- <xsd:enumeration value="private-func" />
- <xsd:enumeration value="private-attrib" />
- <xsd:enumeration value="private-slot" />
- <xsd:enumeration value="private-static-func" />
- <xsd:enumeration value="private-static-attrib" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="related" />
- <xsd:enumeration value="define" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="func" />
- <xsd:enumeration value="var" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxHighlightClass">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="comment" />
- <xsd:enumeration value="normal" />
- <xsd:enumeration value="preprocessor" />
- <xsd:enumeration value="keyword" />
- <xsd:enumeration value="keywordtype" />
- <xsd:enumeration value="keywordflow" />
- <xsd:enumeration value="stringliteral" />
- <xsd:enumeration value="charliteral" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSimpleSectKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="see" />
- <xsd:enumeration value="return" />
- <xsd:enumeration value="author" />
- <xsd:enumeration value="authors" />
- <xsd:enumeration value="version" />
- <xsd:enumeration value="since" />
- <xsd:enumeration value="date" />
- <xsd:enumeration value="note" />
- <xsd:enumeration value="warning" />
- <xsd:enumeration value="pre" />
- <xsd:enumeration value="post" />
- <xsd:enumeration value="copyright" />
- <xsd:enumeration value="invariant" />
- <xsd:enumeration value="remark" />
- <xsd:enumeration value="attention" />
- <xsd:enumeration value="par" />
- <xsd:enumeration value="rcs" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVersionNumber">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="\d+\.\d+.*" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxImageKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="html" />
- <xsd:enumeration value="latex" />
- <xsd:enumeration value="rtf" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamListKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="param" />
- <xsd:enumeration value="retval" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="templateparam" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCharRange">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="[aeiouncAEIOUNC]" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamDir">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="in"/>
- <xsd:enumeration value="out"/>
- <xsd:enumeration value="inout"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxAccessor">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="retain"/>
- <xsd:enumeration value="copy"/>
- <xsd:enumeration value="assign"/>
- <xsd:enumeration value="weak"/>
- <xsd:enumeration value="strong"/>
- <xsd:enumeration value="unretained"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir">
- <compoundname>src</compoundname>
- <innerfile refid="_outer_class_8java">OuterClass.java</innerfile>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.8.8">
- <compound refid="class_outer_class_1_1_inner_class" kind="class"><name>OuterClass::InnerClass</name>
- </compound>
- <compound refid="class_outer_class" kind="class"><name>OuterClass</name>
- </compound>
- <compound refid="_outer_class_8java" kind="file"><name>OuterClass.java</name>
- </compound>
- <compound refid="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir"><name>src</name>
- </compound>
-</doxygenindex>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygenindex" type="DoxygenType"/>
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence>
- <xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="CompoundType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="CompoundKind" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="MemberType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="MemberKind" use="required"/>
- </xsd:complexType>
-
- <xsd:simpleType name="CompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class"/>
- <xsd:enumeration value="struct"/>
- <xsd:enumeration value="union"/>
- <xsd:enumeration value="interface"/>
- <xsd:enumeration value="protocol"/>
- <xsd:enumeration value="category"/>
- <xsd:enumeration value="exception"/>
- <xsd:enumeration value="file"/>
- <xsd:enumeration value="namespace"/>
- <xsd:enumeration value="group"/>
- <xsd:enumeration value="page"/>
- <xsd:enumeration value="example"/>
- <xsd:enumeration value="dir"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="MemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define"/>
- <xsd:enumeration value="property"/>
- <xsd:enumeration value="event"/>
- <xsd:enumeration value="variable"/>
- <xsd:enumeration value="typedef"/>
- <xsd:enumeration value="enum"/>
- <xsd:enumeration value="enumvalue"/>
- <xsd:enumeration value="function"/>
- <xsd:enumeration value="signal"/>
- <xsd:enumeration value="prototype"/>
- <xsd:enumeration value="friend"/>
- <xsd:enumeration value="dcop"/>
- <xsd:enumeration value="slot"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-# Doxyfile 1.8.8
-
-# 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 config 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 http://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 = "Test Project"
-
-# 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 =
-
-# 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 =
-
-# 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 = YES
-
-# 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 = YES
-
-# 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
-
-# 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:\n"
-# 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:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# 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 = YES
-
-# 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
-
-# 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,
-# C#, C, C++, D, PHP, Objective-C, Python, 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), VHDL. 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.
-
-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 http://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 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:
-# http://www.riverbankcomputing.co.uk/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
-
-# 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
-
-#---------------------------------------------------------------------------
-# 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_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 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
-# (class|struct|union) 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
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# 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 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.
-#
-# 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 http://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 not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = 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 or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = 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).
-
-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.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = src
-
-# 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: http://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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.idl \
- *.ddl \
- *.odl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
- *.md \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf \
- *.as \
- *.js
-
-# 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,
-# AClass::ANamespace, 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.
-
-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.
-
-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
-# function 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 http://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 config 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
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# 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 = NO
-
-# 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 stylesheet files is of importance (e.g. the last
-# stylesheet 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 stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://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 grayscales 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 NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = 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: http://developer.apple.com/tools/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 http://developer.apple.com/tools/creatingdocsetswithdoxygen.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 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
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# 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 master .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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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:
-# http://qt-project.org/doc/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 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 stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. 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
-
-# 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
-
-# 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_TRANPARENT 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
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://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
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) 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 http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# 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/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: http://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: http://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 = NO
-
-# 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 enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = 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. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# 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 personal 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. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal 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.
-#
-# 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_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 pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# 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. This option is also used
-# when generating formulas in HTML.
-# 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
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://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
-
-#---------------------------------------------------------------------------
-# 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 = NO
-
-# 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 config
-# 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 config 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 = NO
-
-# 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 = YES
-
-# 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 = 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 = NO
-
-# 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
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# 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.sf.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
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to 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 HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# 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.
-# 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.
-# 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 DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# 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 and svg.
-# 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. 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.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_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.
-# 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 dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+++ /dev/null
-This directory contains a dummy Java project for testing purposes.
-
-To regenerate the XML output located in `xml`, run `make`. If the `Makefile`
-does not exists, you can regenerate it by running `make bootstrap` in the parent
-directory.
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.example.foo;
-
-public abstract class A {
- /**
- * Does something...
- */
- public abstract boolean bar(int x, EmptyClass y);
-}
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.example.foo;
-
-public class B extends A implements C {
- protected String qux = "quux";
-
- public boolean bar(int x, EmptyClass y) {
- return false;
- }
-
- /**
- * Some overriden documentation.
- */
- public void baz() {}
-}
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.example.foo;
-
-/**
- * An interface
- */
-public interface C {
- /**
- * “Answer to the Ultimate Question of Life, the Universe, and Everything.“
- */
- public static final long THE_ANSWER = 42L;
-
- /**
- * A function with implicit modifiers.
- */
- void baz();
-}
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.example.foo;
-
-/**
- * This class is empty and is only visible in this package.
- */
-class EmptyClass {}
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_a_8java" kind="file">
- <compoundname>A.java</compoundname>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_a" prot="public">org::example::foo::A</innerclass>
- <innernamespace refid="namespaceorg_1_1example_1_1foo">org::example::foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/A.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_b_8java" kind="file">
- <compoundname>B.java</compoundname>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_b" prot="public">org::example::foo::B</innerclass>
- <innernamespace refid="namespaceorg_1_1example_1_1foo">org::example::foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/B.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_c_8java" kind="file">
- <compoundname>C.java</compoundname>
- <innerclass refid="interfaceorg_1_1example_1_1foo_1_1_c" prot="public">org::example::foo::C</innerclass>
- <innernamespace refid="namespaceorg_1_1example_1_1foo">org::example::foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/C.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_empty_class_8java" kind="file">
- <compoundname>EmptyClass.java</compoundname>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_empty_class" prot="package">org::example::foo::EmptyClass</innerclass>
- <innernamespace refid="namespaceorg_1_1example_1_1foo">org::example::foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="classorg_1_1example_1_1foo_1_1_a" kind="class" prot="public" abstract="yes">
- <compoundname>org::example::foo::A</compoundname>
- <derivedcompoundref refid="classorg_1_1example_1_1foo_1_1_b" prot="public" virt="non-virtual">org.example.foo.B</derivedcompoundref>
- <sectiondef kind="public-func">
- <memberdef kind="function" id="classorg_1_1example_1_1foo_1_1_a_1add415ae4129969055d678c7e7e048852" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
- <type>abstract boolean</type>
- <definition>abstract boolean org.example.foo.A.bar</definition>
- <argsstring>(int x, EmptyClass y)</argsstring>
- <name>bar</name>
- <param>
- <type>int</type>
- <declname>x</declname>
- </param>
- <param>
- <type>EmptyClass</type>
- <declname>y</declname>
- </param>
- <briefdescription>
-<para>Does something... </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/A.java" line="22" column="1"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inheritancegraph>
- <node id="0">
- <label>org.example.foo.A</label>
- <link refid="classorg_1_1example_1_1foo_1_1_a"/>
- </node>
- <node id="1">
- <label>org.example.foo.B</label>
- <link refid="classorg_1_1example_1_1foo_1_1_b"/>
- <childnode refid="0" relation="public-inheritance">
- </childnode>
- </node>
- </inheritancegraph>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/A.java" line="18" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/A.java" bodystart="18" bodyend="23"/>
- <listofallmembers>
- <member refid="classorg_1_1example_1_1foo_1_1_a_1add415ae4129969055d678c7e7e048852" prot="public" virt="non-virtual"><scope>org::example::foo::A</scope><name>bar</name></member>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="classorg_1_1example_1_1foo_1_1_b" kind="class" prot="public">
- <compoundname>org::example::foo::B</compoundname>
- <basecompoundref refid="classorg_1_1example_1_1foo_1_1_a" prot="public" virt="non-virtual">org.example.foo.A</basecompoundref>
- <basecompoundref refid="interfaceorg_1_1example_1_1foo_1_1_c" prot="public" virt="non-virtual">org.example.foo.C</basecompoundref>
- <sectiondef kind="protected-attrib">
- <memberdef kind="variable" id="classorg_1_1example_1_1foo_1_1_b_1ac6b627949b10b9357eefc0cafcae1d87" prot="protected" static="no" mutable="no">
- <type>String</type>
- <definition>String org.example.foo.B.qux</definition>
- <argsstring></argsstring>
- <name>qux</name>
- <initializer>= "quux"</initializer>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/B.java" line="19" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/B.java" bodystart="19" bodyend="-1"/>
- </memberdef>
- </sectiondef>
- <sectiondef kind="public-func">
- <memberdef kind="function" id="classorg_1_1example_1_1foo_1_1_b_1a11e157943665cc9e3a9be1502ebeb3b5" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
- <type>boolean</type>
- <definition>boolean org.example.foo.B.bar</definition>
- <argsstring>(int x, EmptyClass y)</argsstring>
- <name>bar</name>
- <param>
- <type>int</type>
- <declname>x</declname>
- </param>
- <param>
- <type>EmptyClass</type>
- <declname>y</declname>
- </param>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/B.java" line="21" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/B.java" bodystart="21" bodyend="23"/>
- </memberdef>
- <memberdef kind="function" id="classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
- <type>void</type>
- <definition>void org.example.foo.B.baz</definition>
- <argsstring>()</argsstring>
- <name>baz</name>
- <reimplements refid="interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b">baz</reimplements>
- <briefdescription>
-<para>Some overriden documentation. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/B.java" line="28" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/B.java" bodystart="28" bodyend="28"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inheritancegraph>
- <node id="4">
- <label>org.example.foo.A</label>
- <link refid="classorg_1_1example_1_1foo_1_1_a"/>
- </node>
- <node id="3">
- <label>org.example.foo.B</label>
- <link refid="classorg_1_1example_1_1foo_1_1_b"/>
- <childnode refid="4" relation="public-inheritance">
- </childnode>
- <childnode refid="5" relation="public-inheritance">
- </childnode>
- </node>
- <node id="5">
- <label>org.example.foo.C</label>
- <link refid="interfaceorg_1_1example_1_1foo_1_1_c"/>
- </node>
- </inheritancegraph>
- <collaborationgraph>
- <node id="7">
- <label>org.example.foo.A</label>
- <link refid="classorg_1_1example_1_1foo_1_1_a"/>
- </node>
- <node id="6">
- <label>org.example.foo.B</label>
- <link refid="classorg_1_1example_1_1foo_1_1_b"/>
- <childnode refid="7" relation="public-inheritance">
- </childnode>
- <childnode refid="8" relation="public-inheritance">
- </childnode>
- </node>
- <node id="8">
- <label>org.example.foo.C</label>
- <link refid="interfaceorg_1_1example_1_1foo_1_1_c"/>
- </node>
- </collaborationgraph>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/B.java" line="18" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/B.java" bodystart="18" bodyend="29"/>
- <listofallmembers>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1a11e157943665cc9e3a9be1502ebeb3b5" prot="public" virt="non-virtual"><scope>org::example::foo::B</scope><name>bar</name></member>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9" prot="public" virt="non-virtual"><scope>org::example::foo::B</scope><name>baz</name></member>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1ac6b627949b10b9357eefc0cafcae1d87" prot="protected" virt="non-virtual"><scope>org::example::foo::B</scope><name>qux</name></member>
- <member refid="interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21" prot="public" virt="non-virtual"><scope>org::example::foo::B</scope><name>THE_ANSWER</name></member>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="classorg_1_1example_1_1foo_1_1_empty_class" kind="class" prot="package">
- <compoundname>org::example::foo::EmptyClass</compoundname>
- <briefdescription>
-<para>This class is empty and is only visible in this package. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java" line="21" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/EmptyClass.java" bodystart="21" bodyend="21"/>
- <listofallmembers>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<!-- XSLT script to combine the generated output into a single file.
- If you have xsltproc you could use:
- xsltproc combine.xslt index.xml >all.xml
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" indent="no" standalone="yes" />
- <xsl:template match="/">
- <doxygen version="{doxygenindex/@version}">
- <!-- Load all doxgen generated xml files -->
- <xsl:for-each select="doxygenindex/compound">
- <xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
- </xsl:for-each>
- </doxygen>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
-
- <!-- Complex types -->
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence maxOccurs="unbounded">
- <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
- </xsd:complexType>
-
- <xsd:complexType name="compounddefType">
- <xsd:sequence>
- <xsd:element name="compoundname" type="xsd:string"/>
- <xsd:element name="title" type="xsd:string" minOccurs="0" />
- <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
- <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
- <xsd:element name="programlisting" type="listingType" minOccurs="0" />
- <xsd:element name="location" type="locationType" minOccurs="0" />
- <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="kind" type="DoxCompoundKind" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listofallmembersType">
- <xsd:sequence>
- <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="memberRefType">
- <xsd:sequence>
- <xsd:element name="scope" />
- <xsd:element name="name" />
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- <xsd:attribute name="ambiguityscope" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="compoundRefType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" use="optional" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="reimplementType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="incType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="local" type="DoxBool" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refTextType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="sectiondefType">
- <xsd:sequence>
- <xsd:element name="header" type="xsd:string" minOccurs="0" />
- <xsd:element name="description" type="descriptionType" minOccurs="0" />
- <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="memberdefType">
- <xsd:sequence>
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="definition" minOccurs="0" />
- <xsd:element name="argsstring" minOccurs="0" />
- <xsd:element name="name" />
- <xsd:element name="read" minOccurs="0" />
- <xsd:element name="write" minOccurs="0" />
- <xsd:element name="bitfield" minOccurs="0" />
- <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="location" type="locationType" />
- <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxMemberKind" />
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="static" type="DoxBool" />
- <xsd:attribute name="const" type="DoxBool" use="optional"/>
- <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
- <xsd:attribute name="inline" type="DoxBool" use="optional"/>
- <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
- <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
- <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
- <!-- Qt property -->
- <xsd:attribute name="readable" type="DoxBool" use="optional"/>
- <xsd:attribute name="writable" type="DoxBool" use="optional"/>
- <!-- C++/CLI variable -->
- <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
- <!-- C++/CLI and C# property -->
- <xsd:attribute name="settable" type="DoxBool" use="optional"/>
- <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
- <!-- C++/CLI function -->
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="new" type="DoxBool" use="optional"/>
- <!-- C++/CLI event -->
- <xsd:attribute name="add" type="DoxBool" use="optional"/>
- <xsd:attribute name="remove" type="DoxBool" use="optional"/>
- <xsd:attribute name="raise" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 protocol method -->
- <xsd:attribute name="optional" type="DoxBool" use="optional"/>
- <xsd:attribute name="required" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 property accessor -->
- <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
- <!-- UNO IDL -->
- <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
- <xsd:attribute name="property" type="DoxBool" use="optional"/>
- <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
- <xsd:attribute name="bound" type="DoxBool" use="optional"/>
- <xsd:attribute name="removable" type="DoxBool" use="optional"/>
- <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
- <xsd:attribute name="transient" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
-
- </xsd:complexType>
-
- <xsd:complexType name="descriptionType" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" minOccurs="0"/>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="enumvalueType" mixed="true">
- <xsd:sequence>
- <xsd:element name="name" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="templateparamlistType">
- <xsd:sequence>
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="paramType">
- <xsd:sequence>
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="declname" minOccurs="0" />
- <xsd:element name="defname" minOccurs="0" />
- <xsd:element name="array" minOccurs="0" />
- <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="linkedTextType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="graphType">
- <xsd:sequence>
- <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="nodeType">
- <xsd:sequence>
- <xsd:element name="label" />
- <xsd:element name="link" type="linkType" minOccurs="0" />
- <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="childnodeType">
- <xsd:sequence>
- <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="relation" type="DoxGraphRelation" />
- </xsd:complexType>
-
- <xsd:complexType name="linkType">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listingType">
- <xsd:sequence>
- <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="codelineType">
- <xsd:sequence>
- <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="lineno" type="xsd:integer" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="refkind" type="DoxRefKind" />
- <xsd:attribute name="external" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="highlightType" mixed="true">
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="sp" />
- <xsd:element name="ref" type="refTextType" />
- </xsd:choice>
- <xsd:attribute name="class" type="DoxHighlightClass" />
- </xsd:complexType>
-
- <xsd:complexType name="referenceType" mixed="true">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
- <xsd:attribute name="startline" type="xsd:integer" />
- <xsd:attribute name="endline" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="locationType">
- <xsd:attribute name="file" type="xsd:string" />
- <xsd:attribute name="line" type="xsd:integer" />
- <xsd:attribute name="column" type="xsd:integer" use="optional"/>
- <xsd:attribute name="bodyfile" type="xsd:string" />
- <xsd:attribute name="bodystart" type="xsd:integer" />
- <xsd:attribute name="bodyend" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docInternalType" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docTitleCmdGroup">
- <xsd:choice>
- <xsd:element name="ulink" type="docURLLink" />
- <xsd:element name="bold" type="docMarkupType" />
- <xsd:element name="emphasis" type="docMarkupType" />
- <xsd:element name="computeroutput" type="docMarkupType" />
- <xsd:element name="subscript" type="docMarkupType" />
- <xsd:element name="superscript" type="docMarkupType" />
- <xsd:element name="center" type="docMarkupType" />
- <xsd:element name="small" type="docMarkupType" />
- <xsd:element name="htmlonly" type="xsd:string" />
- <xsd:element name="manonly" type="xsd:string" />
- <xsd:element name="xmlonly" type="xsd:string" />
- <xsd:element name="rtfonly" type="xsd:string" />
- <xsd:element name="latexonly" type="xsd:string" />
- <xsd:element name="dot" type="xsd:string" />
- <xsd:element name="plantuml" type="xsd:string" />
- <xsd:element name="anchor" type="docAnchorType" />
- <xsd:element name="formula" type="docFormulaType" />
- <xsd:element name="ref" type="docRefTextType" />
- <xsd:element name="nonbreakablespace" type="docEmptyType" />
- <xsd:element name="iexcl" type="docEmptyType" />
- <xsd:element name="cent" type="docEmptyType" />
- <xsd:element name="pound" type="docEmptyType" />
- <xsd:element name="curren" type="docEmptyType" />
- <xsd:element name="yen" type="docEmptyType" />
- <xsd:element name="brvbar" type="docEmptyType" />
- <xsd:element name="sect" type="docEmptyType" />
- <xsd:element name="umlaut" type="docEmptyType" />
- <xsd:element name="copy" type="docEmptyType" />
- <xsd:element name="ordf" type="docEmptyType" />
- <xsd:element name="laquo" type="docEmptyType" />
- <xsd:element name="not" type="docEmptyType" />
- <xsd:element name="shy" type="docEmptyType" />
- <xsd:element name="registered" type="docEmptyType" />
- <xsd:element name="macr" type="docEmptyType" />
- <xsd:element name="deg" type="docEmptyType" />
- <xsd:element name="plusmn" type="docEmptyType" />
- <xsd:element name="sup2" type="docEmptyType" />
- <xsd:element name="sup3" type="docEmptyType" />
- <xsd:element name="acute" type="docEmptyType" />
- <xsd:element name="micro" type="docEmptyType" />
- <xsd:element name="para" type="docEmptyType" />
- <xsd:element name="middot" type="docEmptyType" />
- <xsd:element name="cedil" type="docEmptyType" />
- <xsd:element name="sup1" type="docEmptyType" />
- <xsd:element name="ordm" type="docEmptyType" />
- <xsd:element name="raquo" type="docEmptyType" />
- <xsd:element name="frac14" type="docEmptyType" />
- <xsd:element name="frac12" type="docEmptyType" />
- <xsd:element name="frac34" type="docEmptyType" />
- <xsd:element name="iquest" type="docEmptyType" />
- <xsd:element name="Agrave" type="docEmptyType" />
- <xsd:element name="Aacute" type="docEmptyType" />
- <xsd:element name="Acirc" type="docEmptyType" />
- <xsd:element name="Atilde" type="docEmptyType" />
- <xsd:element name="Aumlaut" type="docEmptyType" />
- <xsd:element name="Aring" type="docEmptyType" />
- <xsd:element name="AElig" type="docEmptyType" />
- <xsd:element name="Ccedil" type="docEmptyType" />
- <xsd:element name="Egrave" type="docEmptyType" />
- <xsd:element name="Eacute" type="docEmptyType" />
- <xsd:element name="Ecirc" type="docEmptyType" />
- <xsd:element name="Eumlaut" type="docEmptyType" />
- <xsd:element name="Igrave" type="docEmptyType" />
- <xsd:element name="Iacute" type="docEmptyType" />
- <xsd:element name="Icirc" type="docEmptyType" />
- <xsd:element name="Iumlaut" type="docEmptyType" />
- <xsd:element name="ETH" type="docEmptyType" />
- <xsd:element name="Ntilde" type="docEmptyType" />
- <xsd:element name="Ograve" type="docEmptyType" />
- <xsd:element name="Oacute" type="docEmptyType" />
- <xsd:element name="Ocirc" type="docEmptyType" />
- <xsd:element name="Otilde" type="docEmptyType" />
- <xsd:element name="Oumlaut" type="docEmptyType" />
- <xsd:element name="times" type="docEmptyType" />
- <xsd:element name="Oslash" type="docEmptyType" />
- <xsd:element name="Ugrave" type="docEmptyType" />
- <xsd:element name="Uacute" type="docEmptyType" />
- <xsd:element name="Ucirc" type="docEmptyType" />
- <xsd:element name="Uumlaut" type="docEmptyType" />
- <xsd:element name="Yacute" type="docEmptyType" />
- <xsd:element name="THORN" type="docEmptyType" />
- <xsd:element name="szlig" type="docEmptyType" />
- <xsd:element name="agrave" type="docEmptyType" />
- <xsd:element name="aacute" type="docEmptyType" />
- <xsd:element name="acirc" type="docEmptyType" />
- <xsd:element name="atilde" type="docEmptyType" />
- <xsd:element name="aumlaut" type="docEmptyType" />
- <xsd:element name="aring" type="docEmptyType" />
- <xsd:element name="aelig" type="docEmptyType" />
- <xsd:element name="ccedil" type="docEmptyType" />
- <xsd:element name="egrave" type="docEmptyType" />
- <xsd:element name="eacute" type="docEmptyType" />
- <xsd:element name="ecirc" type="docEmptyType" />
- <xsd:element name="eumlaut" type="docEmptyType" />
- <xsd:element name="igrave" type="docEmptyType" />
- <xsd:element name="iacute" type="docEmptyType" />
- <xsd:element name="icirc" type="docEmptyType" />
- <xsd:element name="iumlaut" type="docEmptyType" />
- <xsd:element name="eth" type="docEmptyType" />
- <xsd:element name="ntilde" type="docEmptyType" />
- <xsd:element name="ograve" type="docEmptyType" />
- <xsd:element name="oacute" type="docEmptyType" />
- <xsd:element name="ocirc" type="docEmptyType" />
- <xsd:element name="otilde" type="docEmptyType" />
- <xsd:element name="oumlaut" type="docEmptyType" />
- <xsd:element name="divide" type="docEmptyType" />
- <xsd:element name="oslash" type="docEmptyType" />
- <xsd:element name="ugrave" type="docEmptyType" />
- <xsd:element name="uacute" type="docEmptyType" />
- <xsd:element name="ucirc" type="docEmptyType" />
- <xsd:element name="uumlaut" type="docEmptyType" />
- <xsd:element name="yacute" type="docEmptyType" />
- <xsd:element name="thorn" type="docEmptyType" />
- <xsd:element name="yumlaut" type="docEmptyType" />
- <xsd:element name="fnof" type="docEmptyType" />
- <xsd:element name="Alpha" type="docEmptyType" />
- <xsd:element name="Beta" type="docEmptyType" />
- <xsd:element name="Gamma" type="docEmptyType" />
- <xsd:element name="Delta" type="docEmptyType" />
- <xsd:element name="Epsilon" type="docEmptyType" />
- <xsd:element name="Zeta" type="docEmptyType" />
- <xsd:element name="Eta" type="docEmptyType" />
- <xsd:element name="Theta" type="docEmptyType" />
- <xsd:element name="Iota" type="docEmptyType" />
- <xsd:element name="Kappa" type="docEmptyType" />
- <xsd:element name="Lambda" type="docEmptyType" />
- <xsd:element name="Mu" type="docEmptyType" />
- <xsd:element name="Nu" type="docEmptyType" />
- <xsd:element name="Xi" type="docEmptyType" />
- <xsd:element name="Omicron" type="docEmptyType" />
- <xsd:element name="Pi" type="docEmptyType" />
- <xsd:element name="Rho" type="docEmptyType" />
- <xsd:element name="Sigma" type="docEmptyType" />
- <xsd:element name="Tau" type="docEmptyType" />
- <xsd:element name="Upsilon" type="docEmptyType" />
- <xsd:element name="Phi" type="docEmptyType" />
- <xsd:element name="Chi" type="docEmptyType" />
- <xsd:element name="Psi" type="docEmptyType" />
- <xsd:element name="Omega" type="docEmptyType" />
- <xsd:element name="alpha" type="docEmptyType" />
- <xsd:element name="beta" type="docEmptyType" />
- <xsd:element name="gamma" type="docEmptyType" />
- <xsd:element name="delta" type="docEmptyType" />
- <xsd:element name="epsilon" type="docEmptyType" />
- <xsd:element name="zeta" type="docEmptyType" />
- <xsd:element name="eta" type="docEmptyType" />
- <xsd:element name="theta" type="docEmptyType" />
- <xsd:element name="iota" type="docEmptyType" />
- <xsd:element name="kappa" type="docEmptyType" />
- <xsd:element name="lambda" type="docEmptyType" />
- <xsd:element name="mu" type="docEmptyType" />
- <xsd:element name="nu" type="docEmptyType" />
- <xsd:element name="xi" type="docEmptyType" />
- <xsd:element name="omicron" type="docEmptyType" />
- <xsd:element name="pi" type="docEmptyType" />
- <xsd:element name="rho" type="docEmptyType" />
- <xsd:element name="sigmaf" type="docEmptyType" />
- <xsd:element name="sigma" type="docEmptyType" />
- <xsd:element name="tau" type="docEmptyType" />
- <xsd:element name="upsilon" type="docEmptyType" />
- <xsd:element name="phi" type="docEmptyType" />
- <xsd:element name="chi" type="docEmptyType" />
- <xsd:element name="psi" type="docEmptyType" />
- <xsd:element name="omega" type="docEmptyType" />
- <xsd:element name="thetasym" type="docEmptyType" />
- <xsd:element name="upsih" type="docEmptyType" />
- <xsd:element name="piv" type="docEmptyType" />
- <xsd:element name="bull" type="docEmptyType" />
- <xsd:element name="hellip" type="docEmptyType" />
- <xsd:element name="prime" type="docEmptyType" />
- <xsd:element name="Prime" type="docEmptyType" />
- <xsd:element name="oline" type="docEmptyType" />
- <xsd:element name="frasl" type="docEmptyType" />
- <xsd:element name="weierp" type="docEmptyType" />
- <xsd:element name="image" type="docEmptyType" />
- <xsd:element name="real" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- <xsd:element name="alefsym" type="docEmptyType" />
- <xsd:element name="larr" type="docEmptyType" />
- <xsd:element name="uarr" type="docEmptyType" />
- <xsd:element name="rarr" type="docEmptyType" />
- <xsd:element name="darr" type="docEmptyType" />
- <xsd:element name="harr" type="docEmptyType" />
- <xsd:element name="crarr" type="docEmptyType" />
- <xsd:element name="lArr" type="docEmptyType" />
- <xsd:element name="uArr" type="docEmptyType" />
- <xsd:element name="rArr" type="docEmptyType" />
- <xsd:element name="dArr" type="docEmptyType" />
- <xsd:element name="hArr" type="docEmptyType" />
- <xsd:element name="forall" type="docEmptyType" />
- <xsd:element name="part" type="docEmptyType" />
- <xsd:element name="exist" type="docEmptyType" />
- <xsd:element name="empty" type="docEmptyType" />
- <xsd:element name="nabla" type="docEmptyType" />
- <xsd:element name="isin" type="docEmptyType" />
- <xsd:element name="notin" type="docEmptyType" />
- <xsd:element name="ni" type="docEmptyType" />
- <xsd:element name="prod" type="docEmptyType" />
- <xsd:element name="sum" type="docEmptyType" />
- <xsd:element name="minus" type="docEmptyType" />
- <xsd:element name="lowast" type="docEmptyType" />
- <xsd:element name="radic" type="docEmptyType" />
- <xsd:element name="prop" type="docEmptyType" />
- <xsd:element name="infin" type="docEmptyType" />
- <xsd:element name="ang" type="docEmptyType" />
- <xsd:element name="and" type="docEmptyType" />
- <xsd:element name="or" type="docEmptyType" />
- <xsd:element name="cap" type="docEmptyType" />
- <xsd:element name="cup" type="docEmptyType" />
- <xsd:element name="int" type="docEmptyType" />
- <xsd:element name="there4" type="docEmptyType" />
- <xsd:element name="sim" type="docEmptyType" />
- <xsd:element name="cong" type="docEmptyType" />
- <xsd:element name="asymp" type="docEmptyType" />
- <xsd:element name="ne" type="docEmptyType" />
- <xsd:element name="equiv" type="docEmptyType" />
- <xsd:element name="le" type="docEmptyType" />
- <xsd:element name="ge" type="docEmptyType" />
- <xsd:element name="sub" type="docEmptyType" />
- <xsd:element name="sup" type="docEmptyType" />
- <xsd:element name="nsub" type="docEmptyType" />
- <xsd:element name="sube" type="docEmptyType" />
- <xsd:element name="supe" type="docEmptyType" />
- <xsd:element name="oplus" type="docEmptyType" />
- <xsd:element name="otimes" type="docEmptyType" />
- <xsd:element name="perp" type="docEmptyType" />
- <xsd:element name="sdot" type="docEmptyType" />
- <xsd:element name="lceil" type="docEmptyType" />
- <xsd:element name="rceil" type="docEmptyType" />
- <xsd:element name="lfloor" type="docEmptyType" />
- <xsd:element name="rfloor" type="docEmptyType" />
- <xsd:element name="lang" type="docEmptyType" />
- <xsd:element name="rang" type="docEmptyType" />
- <xsd:element name="loz" type="docEmptyType" />
- <xsd:element name="spades" type="docEmptyType" />
- <xsd:element name="clubs" type="docEmptyType" />
- <xsd:element name="hearts" type="docEmptyType" />
- <xsd:element name="diams" type="docEmptyType" />
- <xsd:element name="OElig" type="docEmptyType" />
- <xsd:element name="oelig" type="docEmptyType" />
- <xsd:element name="Scaron" type="docEmptyType" />
- <xsd:element name="scaron" type="docEmptyType" />
- <xsd:element name="Yumlaut" type="docEmptyType" />
- <xsd:element name="circ" type="docEmptyType" />
- <xsd:element name="tilde" type="docEmptyType" />
- <xsd:element name="ensp" type="docEmptyType" />
- <xsd:element name="emsp" type="docEmptyType" />
- <xsd:element name="thinsp" type="docEmptyType" />
- <xsd:element name="zwnj" type="docEmptyType" />
- <xsd:element name="zwj" type="docEmptyType" />
- <xsd:element name="lrm" type="docEmptyType" />
- <xsd:element name="rlm" type="docEmptyType" />
- <xsd:element name="ndash" type="docEmptyType" />
- <xsd:element name="mdash" type="docEmptyType" />
- <xsd:element name="lsquo" type="docEmptyType" />
- <xsd:element name="rsquo" type="docEmptyType" />
- <xsd:element name="sbquo" type="docEmptyType" />
- <xsd:element name="ldquo" type="docEmptyType" />
- <xsd:element name="rdquo" type="docEmptyType" />
- <xsd:element name="bdquo" type="docEmptyType" />
- <xsd:element name="dagger" type="docEmptyType" />
- <xsd:element name="Dagger" type="docEmptyType" />
- <xsd:element name="permil" type="docEmptyType" />
- <xsd:element name="lsaquo" type="docEmptyType" />
- <xsd:element name="rsaquo" type="docEmptyType" />
- <xsd:element name="euro" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docTitleType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:group name="docCmdGroup">
- <xsd:choice>
- <xsd:group ref="docTitleCmdGroup"/>
- <xsd:element name="linebreak" type="docEmptyType" />
- <xsd:element name="hruler" type="docEmptyType" />
- <xsd:element name="preformatted" type="docMarkupType" />
- <xsd:element name="programlisting" type="listingType" />
- <xsd:element name="verbatim" type="xsd:string" />
- <xsd:element name="indexentry" type="docIndexEntryType" />
- <xsd:element name="orderedlist" type="docListType" />
- <xsd:element name="itemizedlist" type="docListType" />
- <xsd:element name="simplesect" type="docSimpleSectType" />
- <xsd:element name="title" type="docTitleType" />
- <xsd:element name="variablelist" type="docVariableListType" />
- <xsd:element name="table" type="docTableType" />
- <xsd:element name="heading" type="docHeadingType" />
- <xsd:element name="image" type="docImageType" />
- <xsd:element name="dotfile" type="docFileType" />
- <xsd:element name="mscfile" type="docFileType" />
- <xsd:element name="diafile" type="docFileType" />
- <xsd:element name="toclist" type="docTocListType" />
- <xsd:element name="language" type="docLanguageType" />
- <xsd:element name="parameterlist" type="docParamListType" />
- <xsd:element name="xrefsect" type="docXRefSectType" />
- <xsd:element name="copydoc" type="docCopyType" />
- <xsd:element name="blockquote" type="docBlockQuoteType" />
- <xsd:element name="parblock" type="docParBlockType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docParaType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docMarkupType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docURLLink" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="url" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docAnchorType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFormulaType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docIndexEntryType">
- <xsd:sequence>
- <xsd:element name="primaryie" type="xsd:string" />
- <xsd:element name="secondaryie" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListType">
- <xsd:sequence>
- <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListItemType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docSimpleSectType">
- <xsd:sequence>
- <xsd:element name="title" type="docTitleType" minOccurs="0" />
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSimpleSectKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docVarListEntryType">
- <xsd:sequence>
- <xsd:element name="term" type="docTitleType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docVariableListGroup">
- <xsd:sequence>
- <xsd:element name="varlistentry" type="docVarListEntryType" />
- <xsd:element name="listitem" type="docListItemType" />
- </xsd:sequence>
- </xsd:group>
-
- <xsd:complexType name="docVariableListType">
- <xsd:sequence>
- <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docRefTextType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTableType">
- <xsd:sequence>
- <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="rows" type="xsd:integer" />
- <xsd:attribute name="cols" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docRowType">
- <xsd:sequence>
- <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEntryType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="thead" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="docCaptionType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docHeadingType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
- </xsd:complexType>
-
- <xsd:complexType name="docImageType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="type" type="DoxImageKind" />
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="width" type="xsd:string" />
- <xsd:attribute name="height" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFileType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocItemType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocListType">
- <xsd:sequence>
- <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docLanguageType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="langid" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListType">
- <xsd:sequence>
- <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxParamListKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListItem">
- <xsd:sequence>
- <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parameterdescription" type="descriptionType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamNameList">
- <xsd:sequence>
- <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamName" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
- </xsd:complexType>
-
- <xsd:complexType name="docXRefSectType">
- <xsd:sequence>
- <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="xrefdescription" type="descriptionType" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docCopyType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="link" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docBlockQuoteType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParBlockType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEmptyType"/>
-
- <!-- Simple types -->
-
- <xsd:simpleType name="DoxBool">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="yes" />
- <xsd:enumeration value="no" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxGraphRelation">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="include" />
- <xsd:enumeration value="usage" />
- <xsd:enumeration value="template-instance" />
- <xsd:enumeration value="public-inheritance" />
- <xsd:enumeration value="protected-inheritance" />
- <xsd:enumeration value="private-inheritance" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxRefKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="compound" />
- <xsd:enumeration value="member" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxMemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="variable" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="function" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="dcop" />
- <xsd:enumeration value="slot" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="service" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxProtectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="public" />
- <xsd:enumeration value="protected" />
- <xsd:enumeration value="private" />
- <xsd:enumeration value="package" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVirtualKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="non-virtual" />
- <xsd:enumeration value="virtual" />
- <xsd:enumeration value="pure-virtual" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class" />
- <xsd:enumeration value="struct" />
- <xsd:enumeration value="union" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="protocol" />
- <xsd:enumeration value="category" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="service" />
- <xsd:enumeration value="singleton" />
- <xsd:enumeration value="module" />
- <xsd:enumeration value="type" />
- <xsd:enumeration value="file" />
- <xsd:enumeration value="namespace" />
- <xsd:enumeration value="group" />
- <xsd:enumeration value="page" />
- <xsd:enumeration value="example" />
- <xsd:enumeration value="dir" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="user-defined" />
- <xsd:enumeration value="public-type" />
- <xsd:enumeration value="public-func" />
- <xsd:enumeration value="public-attrib" />
- <xsd:enumeration value="public-slot" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="dcop-func" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="public-static-func" />
- <xsd:enumeration value="public-static-attrib" />
- <xsd:enumeration value="protected-type" />
- <xsd:enumeration value="protected-func" />
- <xsd:enumeration value="protected-attrib" />
- <xsd:enumeration value="protected-slot" />
- <xsd:enumeration value="protected-static-func" />
- <xsd:enumeration value="protected-static-attrib" />
- <xsd:enumeration value="package-type" />
- <xsd:enumeration value="package-func" />
- <xsd:enumeration value="package-attrib" />
- <xsd:enumeration value="package-static-func" />
- <xsd:enumeration value="package-static-attrib" />
- <xsd:enumeration value="private-type" />
- <xsd:enumeration value="private-func" />
- <xsd:enumeration value="private-attrib" />
- <xsd:enumeration value="private-slot" />
- <xsd:enumeration value="private-static-func" />
- <xsd:enumeration value="private-static-attrib" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="related" />
- <xsd:enumeration value="define" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="func" />
- <xsd:enumeration value="var" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxHighlightClass">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="comment" />
- <xsd:enumeration value="normal" />
- <xsd:enumeration value="preprocessor" />
- <xsd:enumeration value="keyword" />
- <xsd:enumeration value="keywordtype" />
- <xsd:enumeration value="keywordflow" />
- <xsd:enumeration value="stringliteral" />
- <xsd:enumeration value="charliteral" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSimpleSectKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="see" />
- <xsd:enumeration value="return" />
- <xsd:enumeration value="author" />
- <xsd:enumeration value="authors" />
- <xsd:enumeration value="version" />
- <xsd:enumeration value="since" />
- <xsd:enumeration value="date" />
- <xsd:enumeration value="note" />
- <xsd:enumeration value="warning" />
- <xsd:enumeration value="pre" />
- <xsd:enumeration value="post" />
- <xsd:enumeration value="copyright" />
- <xsd:enumeration value="invariant" />
- <xsd:enumeration value="remark" />
- <xsd:enumeration value="attention" />
- <xsd:enumeration value="par" />
- <xsd:enumeration value="rcs" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVersionNumber">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="\d+\.\d+.*" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxImageKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="html" />
- <xsd:enumeration value="latex" />
- <xsd:enumeration value="rtf" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamListKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="param" />
- <xsd:enumeration value="retval" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="templateparam" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCharRange">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="[aeiouncAEIOUNC]" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamDir">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="in"/>
- <xsd:enumeration value="out"/>
- <xsd:enumeration value="inout"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxAccessor">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="retain"/>
- <xsd:enumeration value="copy"/>
- <xsd:enumeration value="assign"/>
- <xsd:enumeration value="weak"/>
- <xsd:enumeration value="strong"/>
- <xsd:enumeration value="unretained"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir">
- <compoundname>src</compoundname>
- <innerdir refid="dir_b8e0663afee48cb679b74bbd21bdf843">src/org</innerdir>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_8c35fc67c36f89d827afb23e8c52a418" kind="dir">
- <compoundname>src/org/example</compoundname>
- <innerdir refid="dir_ad5d6582648a7bbb3a301939a41e6c0b">src/org/example/foo</innerdir>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_ad5d6582648a7bbb3a301939a41e6c0b" kind="dir">
- <compoundname>src/org/example/foo</compoundname>
- <innerfile refid="_a_8java">A.java</innerfile>
- <innerfile refid="_b_8java">B.java</innerfile>
- <innerfile refid="_c_8java">C.java</innerfile>
- <innerfile refid="_empty_class_8java">EmptyClass.java</innerfile>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_b8e0663afee48cb679b74bbd21bdf843" kind="dir">
- <compoundname>src/org</compoundname>
- <innerdir refid="dir_8c35fc67c36f89d827afb23e8c52a418">src/org/example</innerdir>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.8.8">
- <compound refid="classorg_1_1example_1_1foo_1_1_a" kind="class"><name>org::example::foo::A</name>
- <member refid="classorg_1_1example_1_1foo_1_1_a_1add415ae4129969055d678c7e7e048852" kind="function"><name>bar</name></member>
- </compound>
- <compound refid="classorg_1_1example_1_1foo_1_1_b" kind="class"><name>org::example::foo::B</name>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1ac6b627949b10b9357eefc0cafcae1d87" kind="variable"><name>qux</name></member>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1a11e157943665cc9e3a9be1502ebeb3b5" kind="function"><name>bar</name></member>
- <member refid="classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9" kind="function"><name>baz</name></member>
- </compound>
- <compound refid="interfaceorg_1_1example_1_1foo_1_1_c" kind="interface"><name>org::example::foo::C</name>
- <member refid="interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21" kind="variable"><name>THE_ANSWER</name></member>
- <member refid="interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b" kind="function"><name>baz</name></member>
- </compound>
- <compound refid="classorg_1_1example_1_1foo_1_1_empty_class" kind="class"><name>org::example::foo::EmptyClass</name>
- </compound>
- <compound refid="namespaceorg" kind="namespace"><name>org</name>
- </compound>
- <compound refid="namespaceorg_1_1example" kind="namespace"><name>org::example</name>
- </compound>
- <compound refid="namespaceorg_1_1example_1_1foo" kind="namespace"><name>org::example::foo</name>
- </compound>
- <compound refid="_a_8java" kind="file"><name>A.java</name>
- </compound>
- <compound refid="_b_8java" kind="file"><name>B.java</name>
- </compound>
- <compound refid="_c_8java" kind="file"><name>C.java</name>
- </compound>
- <compound refid="_empty_class_8java" kind="file"><name>EmptyClass.java</name>
- </compound>
- <compound refid="dir_8c35fc67c36f89d827afb23e8c52a418" kind="dir"><name>src/org/example</name>
- </compound>
- <compound refid="dir_ad5d6582648a7bbb3a301939a41e6c0b" kind="dir"><name>src/org/example/foo</name>
- </compound>
- <compound refid="dir_b8e0663afee48cb679b74bbd21bdf843" kind="dir"><name>src/org</name>
- </compound>
- <compound refid="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir"><name>src</name>
- </compound>
-</doxygenindex>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygenindex" type="DoxygenType"/>
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence>
- <xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="CompoundType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="CompoundKind" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="MemberType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="MemberKind" use="required"/>
- </xsd:complexType>
-
- <xsd:simpleType name="CompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class"/>
- <xsd:enumeration value="struct"/>
- <xsd:enumeration value="union"/>
- <xsd:enumeration value="interface"/>
- <xsd:enumeration value="protocol"/>
- <xsd:enumeration value="category"/>
- <xsd:enumeration value="exception"/>
- <xsd:enumeration value="file"/>
- <xsd:enumeration value="namespace"/>
- <xsd:enumeration value="group"/>
- <xsd:enumeration value="page"/>
- <xsd:enumeration value="example"/>
- <xsd:enumeration value="dir"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="MemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define"/>
- <xsd:enumeration value="property"/>
- <xsd:enumeration value="event"/>
- <xsd:enumeration value="variable"/>
- <xsd:enumeration value="typedef"/>
- <xsd:enumeration value="enum"/>
- <xsd:enumeration value="enumvalue"/>
- <xsd:enumeration value="function"/>
- <xsd:enumeration value="signal"/>
- <xsd:enumeration value="prototype"/>
- <xsd:enumeration value="friend"/>
- <xsd:enumeration value="dcop"/>
- <xsd:enumeration value="slot"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="interfaceorg_1_1example_1_1foo_1_1_c" kind="interface" prot="public">
- <compoundname>org::example::foo::C</compoundname>
- <derivedcompoundref refid="classorg_1_1example_1_1foo_1_1_b" prot="public" virt="non-virtual">org.example.foo.B</derivedcompoundref>
- <sectiondef kind="public-static-attrib">
- <memberdef kind="variable" id="interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21" prot="public" static="yes" mutable="no">
- <type>final long</type>
- <definition>final long org.example.foo.C.THE_ANSWER</definition>
- <argsstring></argsstring>
- <name>THE_ANSWER</name>
- <initializer>= 42L</initializer>
- <briefdescription>
-<para>“Answer to the Ultimate Question of Life, the Universe, and Everything. </para> </briefdescription>
- <detaileddescription>
-<para>“ </para> </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/C.java" line="25" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/C.java" bodystart="25" bodyend="-1"/>
- </memberdef>
- </sectiondef>
- <sectiondef kind="public-func">
- <memberdef kind="function" id="interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
- <type>void</type>
- <definition>void org.example.foo.C.baz</definition>
- <argsstring>()</argsstring>
- <name>baz</name>
- <reimplementedby refid="classorg_1_1example_1_1foo_1_1_b_1a733f4e076f29c7d0c41ed258199ea1d9">baz</reimplementedby>
- <briefdescription>
-<para><ref refid="classorg_1_1example_1_1foo_1_1_a" kindref="compound">A</ref> function with implicit modifiers. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/C.java" line="30" column="1"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
-<para>An interface. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inheritancegraph>
- <node id="10">
- <label>org.example.foo.B</label>
- <link refid="classorg_1_1example_1_1foo_1_1_b"/>
- <childnode refid="9" relation="public-inheritance">
- </childnode>
- </node>
- <node id="9">
- <label>org.example.foo.C</label>
- <link refid="interfaceorg_1_1example_1_1foo_1_1_c"/>
- </node>
- </inheritancegraph>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/C.java" line="21" column="1" bodyfile="%SOURCE_DIRECTORY%/org/example/foo/C.java" bodystart="21" bodyend="31"/>
- <listofallmembers>
- <member refid="interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b" prot="public" virt="non-virtual"><scope>org::example::foo::C</scope><name>baz</name></member>
- <member refid="interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21" prot="public" virt="non-virtual"><scope>org::example::foo::C</scope><name>THE_ANSWER</name></member>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="namespaceorg" kind="namespace">
- <compoundname>org</compoundname>
- <innernamespace refid="namespaceorg_1_1example">org::example</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="[generated]" line="1" column="1"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="namespaceorg_1_1example" kind="namespace">
- <compoundname>org::example</compoundname>
- <innernamespace refid="namespaceorg_1_1example_1_1foo">org::example::foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="[generated]" line="1" column="1"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="namespaceorg_1_1example_1_1foo" kind="namespace">
- <compoundname>org::example::foo</compoundname>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_a" prot="public">org::example::foo::A</innerclass>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_b" prot="public">org::example::foo::B</innerclass>
- <innerclass refid="interfaceorg_1_1example_1_1foo_1_1_c" prot="public">org::example::foo::C</innerclass>
- <innerclass refid="classorg_1_1example_1_1foo_1_1_empty_class" prot="package">org::example::foo::EmptyClass</innerclass>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/org/example/foo/A.java" line="16" column="1"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-# Doxyfile 1.8.8
-
-# 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 config 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 http://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 = "Test Project"
-
-# 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 =
-
-# 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 =
-
-# 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 = YES
-
-# 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 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
-
-# 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:\n"
-# 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:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# 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 = YES
-
-# 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
-
-# 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,
-# C#, C, C++, D, PHP, Objective-C, Python, 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), VHDL. 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.
-
-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 http://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 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:
-# http://www.riverbankcomputing.co.uk/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
-
-# 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
-
-#---------------------------------------------------------------------------
-# 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_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 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
-# (class|struct|union) 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
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# 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 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.
-#
-# 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 http://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 not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = 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 or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = 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).
-
-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.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = src
-
-# 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: http://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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.idl \
- *.ddl \
- *.odl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
- *.md \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf \
- *.as \
- *.js
-
-# 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,
-# AClass::ANamespace, 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.
-
-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.
-
-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
-# function 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 http://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 config 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
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# 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 = NO
-
-# 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 stylesheet files is of importance (e.g. the last
-# stylesheet 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 stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://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 grayscales 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 NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = 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: http://developer.apple.com/tools/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 http://developer.apple.com/tools/creatingdocsetswithdoxygen.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 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
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# 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 master .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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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:
-# http://qt-project.org/doc/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 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 stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. 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
-
-# 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
-
-# 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_TRANPARENT 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
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://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
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) 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 http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# 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/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: http://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: http://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 = NO
-
-# 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 enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = 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. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# 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 personal 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. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal 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.
-#
-# 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_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 pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# 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. This option is also used
-# when generating formulas in HTML.
-# 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
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://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
-
-#---------------------------------------------------------------------------
-# 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 = NO
-
-# 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 config
-# 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 config 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 = NO
-
-# 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 = YES
-
-# 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 = 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 = NO
-
-# 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
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# 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.sf.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
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to 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 HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# 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.
-# 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.
-# 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 DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# 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 and svg.
-# 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. 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.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_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.
-# 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 dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+++ /dev/null
-This directory contains a dummy Python project for testing purposes.
-
-To regenerate the XML output located in `xml`, run `make`. If the `Makefile`
-does not exists, you can regenerate it by running `make bootstrap` in the parent
-directory.
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-## A `bar` function in the `foo` namespace.
-def bar:
- """By default, Doxygen recognizes anything in the docstrings as verbatim
- detailed description."""
- pass
+++ /dev/null
-<!-- XSLT script to combine the generated output into a single file.
- If you have xsltproc you could use:
- xsltproc combine.xslt index.xml >all.xml
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" indent="no" standalone="yes" />
- <xsl:template match="/">
- <doxygen version="{doxygenindex/@version}">
- <!-- Load all doxgen generated xml files -->
- <xsl:for-each select="doxygenindex/compound">
- <xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
- </xsl:for-each>
- </doxygen>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
-
- <!-- Complex types -->
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence maxOccurs="unbounded">
- <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
- </xsd:complexType>
-
- <xsd:complexType name="compounddefType">
- <xsd:sequence>
- <xsd:element name="compoundname" type="xsd:string"/>
- <xsd:element name="title" type="xsd:string" minOccurs="0" />
- <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
- <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
- <xsd:element name="programlisting" type="listingType" minOccurs="0" />
- <xsd:element name="location" type="locationType" minOccurs="0" />
- <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="kind" type="DoxCompoundKind" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listofallmembersType">
- <xsd:sequence>
- <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="memberRefType">
- <xsd:sequence>
- <xsd:element name="scope" />
- <xsd:element name="name" />
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- <xsd:attribute name="ambiguityscope" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="compoundRefType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" use="optional" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="reimplementType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="incType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="local" type="DoxBool" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refTextType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="sectiondefType">
- <xsd:sequence>
- <xsd:element name="header" type="xsd:string" minOccurs="0" />
- <xsd:element name="description" type="descriptionType" minOccurs="0" />
- <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="memberdefType">
- <xsd:sequence>
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="definition" minOccurs="0" />
- <xsd:element name="argsstring" minOccurs="0" />
- <xsd:element name="name" />
- <xsd:element name="read" minOccurs="0" />
- <xsd:element name="write" minOccurs="0" />
- <xsd:element name="bitfield" minOccurs="0" />
- <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="location" type="locationType" />
- <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxMemberKind" />
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="static" type="DoxBool" />
- <xsd:attribute name="const" type="DoxBool" use="optional"/>
- <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
- <xsd:attribute name="inline" type="DoxBool" use="optional"/>
- <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
- <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
- <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
- <!-- Qt property -->
- <xsd:attribute name="readable" type="DoxBool" use="optional"/>
- <xsd:attribute name="writable" type="DoxBool" use="optional"/>
- <!-- C++/CLI variable -->
- <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
- <!-- C++/CLI and C# property -->
- <xsd:attribute name="settable" type="DoxBool" use="optional"/>
- <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
- <!-- C++/CLI function -->
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="new" type="DoxBool" use="optional"/>
- <!-- C++/CLI event -->
- <xsd:attribute name="add" type="DoxBool" use="optional"/>
- <xsd:attribute name="remove" type="DoxBool" use="optional"/>
- <xsd:attribute name="raise" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 protocol method -->
- <xsd:attribute name="optional" type="DoxBool" use="optional"/>
- <xsd:attribute name="required" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 property accessor -->
- <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
- <!-- UNO IDL -->
- <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
- <xsd:attribute name="property" type="DoxBool" use="optional"/>
- <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
- <xsd:attribute name="bound" type="DoxBool" use="optional"/>
- <xsd:attribute name="removable" type="DoxBool" use="optional"/>
- <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
- <xsd:attribute name="transient" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
-
- </xsd:complexType>
-
- <xsd:complexType name="descriptionType" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" minOccurs="0"/>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="enumvalueType" mixed="true">
- <xsd:sequence>
- <xsd:element name="name" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="templateparamlistType">
- <xsd:sequence>
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="paramType">
- <xsd:sequence>
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="declname" minOccurs="0" />
- <xsd:element name="defname" minOccurs="0" />
- <xsd:element name="array" minOccurs="0" />
- <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="linkedTextType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="graphType">
- <xsd:sequence>
- <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="nodeType">
- <xsd:sequence>
- <xsd:element name="label" />
- <xsd:element name="link" type="linkType" minOccurs="0" />
- <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="childnodeType">
- <xsd:sequence>
- <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="relation" type="DoxGraphRelation" />
- </xsd:complexType>
-
- <xsd:complexType name="linkType">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listingType">
- <xsd:sequence>
- <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="codelineType">
- <xsd:sequence>
- <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="lineno" type="xsd:integer" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="refkind" type="DoxRefKind" />
- <xsd:attribute name="external" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="highlightType" mixed="true">
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="sp" />
- <xsd:element name="ref" type="refTextType" />
- </xsd:choice>
- <xsd:attribute name="class" type="DoxHighlightClass" />
- </xsd:complexType>
-
- <xsd:complexType name="referenceType" mixed="true">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
- <xsd:attribute name="startline" type="xsd:integer" />
- <xsd:attribute name="endline" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="locationType">
- <xsd:attribute name="file" type="xsd:string" />
- <xsd:attribute name="line" type="xsd:integer" />
- <xsd:attribute name="column" type="xsd:integer" use="optional"/>
- <xsd:attribute name="bodyfile" type="xsd:string" />
- <xsd:attribute name="bodystart" type="xsd:integer" />
- <xsd:attribute name="bodyend" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docInternalType" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docTitleCmdGroup">
- <xsd:choice>
- <xsd:element name="ulink" type="docURLLink" />
- <xsd:element name="bold" type="docMarkupType" />
- <xsd:element name="emphasis" type="docMarkupType" />
- <xsd:element name="computeroutput" type="docMarkupType" />
- <xsd:element name="subscript" type="docMarkupType" />
- <xsd:element name="superscript" type="docMarkupType" />
- <xsd:element name="center" type="docMarkupType" />
- <xsd:element name="small" type="docMarkupType" />
- <xsd:element name="htmlonly" type="xsd:string" />
- <xsd:element name="manonly" type="xsd:string" />
- <xsd:element name="xmlonly" type="xsd:string" />
- <xsd:element name="rtfonly" type="xsd:string" />
- <xsd:element name="latexonly" type="xsd:string" />
- <xsd:element name="dot" type="xsd:string" />
- <xsd:element name="plantuml" type="xsd:string" />
- <xsd:element name="anchor" type="docAnchorType" />
- <xsd:element name="formula" type="docFormulaType" />
- <xsd:element name="ref" type="docRefTextType" />
- <xsd:element name="nonbreakablespace" type="docEmptyType" />
- <xsd:element name="iexcl" type="docEmptyType" />
- <xsd:element name="cent" type="docEmptyType" />
- <xsd:element name="pound" type="docEmptyType" />
- <xsd:element name="curren" type="docEmptyType" />
- <xsd:element name="yen" type="docEmptyType" />
- <xsd:element name="brvbar" type="docEmptyType" />
- <xsd:element name="sect" type="docEmptyType" />
- <xsd:element name="umlaut" type="docEmptyType" />
- <xsd:element name="copy" type="docEmptyType" />
- <xsd:element name="ordf" type="docEmptyType" />
- <xsd:element name="laquo" type="docEmptyType" />
- <xsd:element name="not" type="docEmptyType" />
- <xsd:element name="shy" type="docEmptyType" />
- <xsd:element name="registered" type="docEmptyType" />
- <xsd:element name="macr" type="docEmptyType" />
- <xsd:element name="deg" type="docEmptyType" />
- <xsd:element name="plusmn" type="docEmptyType" />
- <xsd:element name="sup2" type="docEmptyType" />
- <xsd:element name="sup3" type="docEmptyType" />
- <xsd:element name="acute" type="docEmptyType" />
- <xsd:element name="micro" type="docEmptyType" />
- <xsd:element name="para" type="docEmptyType" />
- <xsd:element name="middot" type="docEmptyType" />
- <xsd:element name="cedil" type="docEmptyType" />
- <xsd:element name="sup1" type="docEmptyType" />
- <xsd:element name="ordm" type="docEmptyType" />
- <xsd:element name="raquo" type="docEmptyType" />
- <xsd:element name="frac14" type="docEmptyType" />
- <xsd:element name="frac12" type="docEmptyType" />
- <xsd:element name="frac34" type="docEmptyType" />
- <xsd:element name="iquest" type="docEmptyType" />
- <xsd:element name="Agrave" type="docEmptyType" />
- <xsd:element name="Aacute" type="docEmptyType" />
- <xsd:element name="Acirc" type="docEmptyType" />
- <xsd:element name="Atilde" type="docEmptyType" />
- <xsd:element name="Aumlaut" type="docEmptyType" />
- <xsd:element name="Aring" type="docEmptyType" />
- <xsd:element name="AElig" type="docEmptyType" />
- <xsd:element name="Ccedil" type="docEmptyType" />
- <xsd:element name="Egrave" type="docEmptyType" />
- <xsd:element name="Eacute" type="docEmptyType" />
- <xsd:element name="Ecirc" type="docEmptyType" />
- <xsd:element name="Eumlaut" type="docEmptyType" />
- <xsd:element name="Igrave" type="docEmptyType" />
- <xsd:element name="Iacute" type="docEmptyType" />
- <xsd:element name="Icirc" type="docEmptyType" />
- <xsd:element name="Iumlaut" type="docEmptyType" />
- <xsd:element name="ETH" type="docEmptyType" />
- <xsd:element name="Ntilde" type="docEmptyType" />
- <xsd:element name="Ograve" type="docEmptyType" />
- <xsd:element name="Oacute" type="docEmptyType" />
- <xsd:element name="Ocirc" type="docEmptyType" />
- <xsd:element name="Otilde" type="docEmptyType" />
- <xsd:element name="Oumlaut" type="docEmptyType" />
- <xsd:element name="times" type="docEmptyType" />
- <xsd:element name="Oslash" type="docEmptyType" />
- <xsd:element name="Ugrave" type="docEmptyType" />
- <xsd:element name="Uacute" type="docEmptyType" />
- <xsd:element name="Ucirc" type="docEmptyType" />
- <xsd:element name="Uumlaut" type="docEmptyType" />
- <xsd:element name="Yacute" type="docEmptyType" />
- <xsd:element name="THORN" type="docEmptyType" />
- <xsd:element name="szlig" type="docEmptyType" />
- <xsd:element name="agrave" type="docEmptyType" />
- <xsd:element name="aacute" type="docEmptyType" />
- <xsd:element name="acirc" type="docEmptyType" />
- <xsd:element name="atilde" type="docEmptyType" />
- <xsd:element name="aumlaut" type="docEmptyType" />
- <xsd:element name="aring" type="docEmptyType" />
- <xsd:element name="aelig" type="docEmptyType" />
- <xsd:element name="ccedil" type="docEmptyType" />
- <xsd:element name="egrave" type="docEmptyType" />
- <xsd:element name="eacute" type="docEmptyType" />
- <xsd:element name="ecirc" type="docEmptyType" />
- <xsd:element name="eumlaut" type="docEmptyType" />
- <xsd:element name="igrave" type="docEmptyType" />
- <xsd:element name="iacute" type="docEmptyType" />
- <xsd:element name="icirc" type="docEmptyType" />
- <xsd:element name="iumlaut" type="docEmptyType" />
- <xsd:element name="eth" type="docEmptyType" />
- <xsd:element name="ntilde" type="docEmptyType" />
- <xsd:element name="ograve" type="docEmptyType" />
- <xsd:element name="oacute" type="docEmptyType" />
- <xsd:element name="ocirc" type="docEmptyType" />
- <xsd:element name="otilde" type="docEmptyType" />
- <xsd:element name="oumlaut" type="docEmptyType" />
- <xsd:element name="divide" type="docEmptyType" />
- <xsd:element name="oslash" type="docEmptyType" />
- <xsd:element name="ugrave" type="docEmptyType" />
- <xsd:element name="uacute" type="docEmptyType" />
- <xsd:element name="ucirc" type="docEmptyType" />
- <xsd:element name="uumlaut" type="docEmptyType" />
- <xsd:element name="yacute" type="docEmptyType" />
- <xsd:element name="thorn" type="docEmptyType" />
- <xsd:element name="yumlaut" type="docEmptyType" />
- <xsd:element name="fnof" type="docEmptyType" />
- <xsd:element name="Alpha" type="docEmptyType" />
- <xsd:element name="Beta" type="docEmptyType" />
- <xsd:element name="Gamma" type="docEmptyType" />
- <xsd:element name="Delta" type="docEmptyType" />
- <xsd:element name="Epsilon" type="docEmptyType" />
- <xsd:element name="Zeta" type="docEmptyType" />
- <xsd:element name="Eta" type="docEmptyType" />
- <xsd:element name="Theta" type="docEmptyType" />
- <xsd:element name="Iota" type="docEmptyType" />
- <xsd:element name="Kappa" type="docEmptyType" />
- <xsd:element name="Lambda" type="docEmptyType" />
- <xsd:element name="Mu" type="docEmptyType" />
- <xsd:element name="Nu" type="docEmptyType" />
- <xsd:element name="Xi" type="docEmptyType" />
- <xsd:element name="Omicron" type="docEmptyType" />
- <xsd:element name="Pi" type="docEmptyType" />
- <xsd:element name="Rho" type="docEmptyType" />
- <xsd:element name="Sigma" type="docEmptyType" />
- <xsd:element name="Tau" type="docEmptyType" />
- <xsd:element name="Upsilon" type="docEmptyType" />
- <xsd:element name="Phi" type="docEmptyType" />
- <xsd:element name="Chi" type="docEmptyType" />
- <xsd:element name="Psi" type="docEmptyType" />
- <xsd:element name="Omega" type="docEmptyType" />
- <xsd:element name="alpha" type="docEmptyType" />
- <xsd:element name="beta" type="docEmptyType" />
- <xsd:element name="gamma" type="docEmptyType" />
- <xsd:element name="delta" type="docEmptyType" />
- <xsd:element name="epsilon" type="docEmptyType" />
- <xsd:element name="zeta" type="docEmptyType" />
- <xsd:element name="eta" type="docEmptyType" />
- <xsd:element name="theta" type="docEmptyType" />
- <xsd:element name="iota" type="docEmptyType" />
- <xsd:element name="kappa" type="docEmptyType" />
- <xsd:element name="lambda" type="docEmptyType" />
- <xsd:element name="mu" type="docEmptyType" />
- <xsd:element name="nu" type="docEmptyType" />
- <xsd:element name="xi" type="docEmptyType" />
- <xsd:element name="omicron" type="docEmptyType" />
- <xsd:element name="pi" type="docEmptyType" />
- <xsd:element name="rho" type="docEmptyType" />
- <xsd:element name="sigmaf" type="docEmptyType" />
- <xsd:element name="sigma" type="docEmptyType" />
- <xsd:element name="tau" type="docEmptyType" />
- <xsd:element name="upsilon" type="docEmptyType" />
- <xsd:element name="phi" type="docEmptyType" />
- <xsd:element name="chi" type="docEmptyType" />
- <xsd:element name="psi" type="docEmptyType" />
- <xsd:element name="omega" type="docEmptyType" />
- <xsd:element name="thetasym" type="docEmptyType" />
- <xsd:element name="upsih" type="docEmptyType" />
- <xsd:element name="piv" type="docEmptyType" />
- <xsd:element name="bull" type="docEmptyType" />
- <xsd:element name="hellip" type="docEmptyType" />
- <xsd:element name="prime" type="docEmptyType" />
- <xsd:element name="Prime" type="docEmptyType" />
- <xsd:element name="oline" type="docEmptyType" />
- <xsd:element name="frasl" type="docEmptyType" />
- <xsd:element name="weierp" type="docEmptyType" />
- <xsd:element name="image" type="docEmptyType" />
- <xsd:element name="real" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- <xsd:element name="alefsym" type="docEmptyType" />
- <xsd:element name="larr" type="docEmptyType" />
- <xsd:element name="uarr" type="docEmptyType" />
- <xsd:element name="rarr" type="docEmptyType" />
- <xsd:element name="darr" type="docEmptyType" />
- <xsd:element name="harr" type="docEmptyType" />
- <xsd:element name="crarr" type="docEmptyType" />
- <xsd:element name="lArr" type="docEmptyType" />
- <xsd:element name="uArr" type="docEmptyType" />
- <xsd:element name="rArr" type="docEmptyType" />
- <xsd:element name="dArr" type="docEmptyType" />
- <xsd:element name="hArr" type="docEmptyType" />
- <xsd:element name="forall" type="docEmptyType" />
- <xsd:element name="part" type="docEmptyType" />
- <xsd:element name="exist" type="docEmptyType" />
- <xsd:element name="empty" type="docEmptyType" />
- <xsd:element name="nabla" type="docEmptyType" />
- <xsd:element name="isin" type="docEmptyType" />
- <xsd:element name="notin" type="docEmptyType" />
- <xsd:element name="ni" type="docEmptyType" />
- <xsd:element name="prod" type="docEmptyType" />
- <xsd:element name="sum" type="docEmptyType" />
- <xsd:element name="minus" type="docEmptyType" />
- <xsd:element name="lowast" type="docEmptyType" />
- <xsd:element name="radic" type="docEmptyType" />
- <xsd:element name="prop" type="docEmptyType" />
- <xsd:element name="infin" type="docEmptyType" />
- <xsd:element name="ang" type="docEmptyType" />
- <xsd:element name="and" type="docEmptyType" />
- <xsd:element name="or" type="docEmptyType" />
- <xsd:element name="cap" type="docEmptyType" />
- <xsd:element name="cup" type="docEmptyType" />
- <xsd:element name="int" type="docEmptyType" />
- <xsd:element name="there4" type="docEmptyType" />
- <xsd:element name="sim" type="docEmptyType" />
- <xsd:element name="cong" type="docEmptyType" />
- <xsd:element name="asymp" type="docEmptyType" />
- <xsd:element name="ne" type="docEmptyType" />
- <xsd:element name="equiv" type="docEmptyType" />
- <xsd:element name="le" type="docEmptyType" />
- <xsd:element name="ge" type="docEmptyType" />
- <xsd:element name="sub" type="docEmptyType" />
- <xsd:element name="sup" type="docEmptyType" />
- <xsd:element name="nsub" type="docEmptyType" />
- <xsd:element name="sube" type="docEmptyType" />
- <xsd:element name="supe" type="docEmptyType" />
- <xsd:element name="oplus" type="docEmptyType" />
- <xsd:element name="otimes" type="docEmptyType" />
- <xsd:element name="perp" type="docEmptyType" />
- <xsd:element name="sdot" type="docEmptyType" />
- <xsd:element name="lceil" type="docEmptyType" />
- <xsd:element name="rceil" type="docEmptyType" />
- <xsd:element name="lfloor" type="docEmptyType" />
- <xsd:element name="rfloor" type="docEmptyType" />
- <xsd:element name="lang" type="docEmptyType" />
- <xsd:element name="rang" type="docEmptyType" />
- <xsd:element name="loz" type="docEmptyType" />
- <xsd:element name="spades" type="docEmptyType" />
- <xsd:element name="clubs" type="docEmptyType" />
- <xsd:element name="hearts" type="docEmptyType" />
- <xsd:element name="diams" type="docEmptyType" />
- <xsd:element name="OElig" type="docEmptyType" />
- <xsd:element name="oelig" type="docEmptyType" />
- <xsd:element name="Scaron" type="docEmptyType" />
- <xsd:element name="scaron" type="docEmptyType" />
- <xsd:element name="Yumlaut" type="docEmptyType" />
- <xsd:element name="circ" type="docEmptyType" />
- <xsd:element name="tilde" type="docEmptyType" />
- <xsd:element name="ensp" type="docEmptyType" />
- <xsd:element name="emsp" type="docEmptyType" />
- <xsd:element name="thinsp" type="docEmptyType" />
- <xsd:element name="zwnj" type="docEmptyType" />
- <xsd:element name="zwj" type="docEmptyType" />
- <xsd:element name="lrm" type="docEmptyType" />
- <xsd:element name="rlm" type="docEmptyType" />
- <xsd:element name="ndash" type="docEmptyType" />
- <xsd:element name="mdash" type="docEmptyType" />
- <xsd:element name="lsquo" type="docEmptyType" />
- <xsd:element name="rsquo" type="docEmptyType" />
- <xsd:element name="sbquo" type="docEmptyType" />
- <xsd:element name="ldquo" type="docEmptyType" />
- <xsd:element name="rdquo" type="docEmptyType" />
- <xsd:element name="bdquo" type="docEmptyType" />
- <xsd:element name="dagger" type="docEmptyType" />
- <xsd:element name="Dagger" type="docEmptyType" />
- <xsd:element name="permil" type="docEmptyType" />
- <xsd:element name="lsaquo" type="docEmptyType" />
- <xsd:element name="rsaquo" type="docEmptyType" />
- <xsd:element name="euro" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docTitleType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:group name="docCmdGroup">
- <xsd:choice>
- <xsd:group ref="docTitleCmdGroup"/>
- <xsd:element name="linebreak" type="docEmptyType" />
- <xsd:element name="hruler" type="docEmptyType" />
- <xsd:element name="preformatted" type="docMarkupType" />
- <xsd:element name="programlisting" type="listingType" />
- <xsd:element name="verbatim" type="xsd:string" />
- <xsd:element name="indexentry" type="docIndexEntryType" />
- <xsd:element name="orderedlist" type="docListType" />
- <xsd:element name="itemizedlist" type="docListType" />
- <xsd:element name="simplesect" type="docSimpleSectType" />
- <xsd:element name="title" type="docTitleType" />
- <xsd:element name="variablelist" type="docVariableListType" />
- <xsd:element name="table" type="docTableType" />
- <xsd:element name="heading" type="docHeadingType" />
- <xsd:element name="image" type="docImageType" />
- <xsd:element name="dotfile" type="docFileType" />
- <xsd:element name="mscfile" type="docFileType" />
- <xsd:element name="diafile" type="docFileType" />
- <xsd:element name="toclist" type="docTocListType" />
- <xsd:element name="language" type="docLanguageType" />
- <xsd:element name="parameterlist" type="docParamListType" />
- <xsd:element name="xrefsect" type="docXRefSectType" />
- <xsd:element name="copydoc" type="docCopyType" />
- <xsd:element name="blockquote" type="docBlockQuoteType" />
- <xsd:element name="parblock" type="docParBlockType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docParaType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docMarkupType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docURLLink" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="url" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docAnchorType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFormulaType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docIndexEntryType">
- <xsd:sequence>
- <xsd:element name="primaryie" type="xsd:string" />
- <xsd:element name="secondaryie" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListType">
- <xsd:sequence>
- <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListItemType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docSimpleSectType">
- <xsd:sequence>
- <xsd:element name="title" type="docTitleType" minOccurs="0" />
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSimpleSectKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docVarListEntryType">
- <xsd:sequence>
- <xsd:element name="term" type="docTitleType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docVariableListGroup">
- <xsd:sequence>
- <xsd:element name="varlistentry" type="docVarListEntryType" />
- <xsd:element name="listitem" type="docListItemType" />
- </xsd:sequence>
- </xsd:group>
-
- <xsd:complexType name="docVariableListType">
- <xsd:sequence>
- <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docRefTextType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTableType">
- <xsd:sequence>
- <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="rows" type="xsd:integer" />
- <xsd:attribute name="cols" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docRowType">
- <xsd:sequence>
- <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEntryType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="thead" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="docCaptionType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docHeadingType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
- </xsd:complexType>
-
- <xsd:complexType name="docImageType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="type" type="DoxImageKind" />
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="width" type="xsd:string" />
- <xsd:attribute name="height" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFileType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocItemType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocListType">
- <xsd:sequence>
- <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docLanguageType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="langid" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListType">
- <xsd:sequence>
- <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxParamListKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListItem">
- <xsd:sequence>
- <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parameterdescription" type="descriptionType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamNameList">
- <xsd:sequence>
- <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamName" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
- </xsd:complexType>
-
- <xsd:complexType name="docXRefSectType">
- <xsd:sequence>
- <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="xrefdescription" type="descriptionType" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docCopyType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="link" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docBlockQuoteType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParBlockType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEmptyType"/>
-
- <!-- Simple types -->
-
- <xsd:simpleType name="DoxBool">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="yes" />
- <xsd:enumeration value="no" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxGraphRelation">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="include" />
- <xsd:enumeration value="usage" />
- <xsd:enumeration value="template-instance" />
- <xsd:enumeration value="public-inheritance" />
- <xsd:enumeration value="protected-inheritance" />
- <xsd:enumeration value="private-inheritance" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxRefKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="compound" />
- <xsd:enumeration value="member" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxMemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="variable" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="function" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="dcop" />
- <xsd:enumeration value="slot" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="service" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxProtectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="public" />
- <xsd:enumeration value="protected" />
- <xsd:enumeration value="private" />
- <xsd:enumeration value="package" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVirtualKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="non-virtual" />
- <xsd:enumeration value="virtual" />
- <xsd:enumeration value="pure-virtual" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class" />
- <xsd:enumeration value="struct" />
- <xsd:enumeration value="union" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="protocol" />
- <xsd:enumeration value="category" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="service" />
- <xsd:enumeration value="singleton" />
- <xsd:enumeration value="module" />
- <xsd:enumeration value="type" />
- <xsd:enumeration value="file" />
- <xsd:enumeration value="namespace" />
- <xsd:enumeration value="group" />
- <xsd:enumeration value="page" />
- <xsd:enumeration value="example" />
- <xsd:enumeration value="dir" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="user-defined" />
- <xsd:enumeration value="public-type" />
- <xsd:enumeration value="public-func" />
- <xsd:enumeration value="public-attrib" />
- <xsd:enumeration value="public-slot" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="dcop-func" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="public-static-func" />
- <xsd:enumeration value="public-static-attrib" />
- <xsd:enumeration value="protected-type" />
- <xsd:enumeration value="protected-func" />
- <xsd:enumeration value="protected-attrib" />
- <xsd:enumeration value="protected-slot" />
- <xsd:enumeration value="protected-static-func" />
- <xsd:enumeration value="protected-static-attrib" />
- <xsd:enumeration value="package-type" />
- <xsd:enumeration value="package-func" />
- <xsd:enumeration value="package-attrib" />
- <xsd:enumeration value="package-static-func" />
- <xsd:enumeration value="package-static-attrib" />
- <xsd:enumeration value="private-type" />
- <xsd:enumeration value="private-func" />
- <xsd:enumeration value="private-attrib" />
- <xsd:enumeration value="private-slot" />
- <xsd:enumeration value="private-static-func" />
- <xsd:enumeration value="private-static-attrib" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="related" />
- <xsd:enumeration value="define" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="func" />
- <xsd:enumeration value="var" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxHighlightClass">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="comment" />
- <xsd:enumeration value="normal" />
- <xsd:enumeration value="preprocessor" />
- <xsd:enumeration value="keyword" />
- <xsd:enumeration value="keywordtype" />
- <xsd:enumeration value="keywordflow" />
- <xsd:enumeration value="stringliteral" />
- <xsd:enumeration value="charliteral" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSimpleSectKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="see" />
- <xsd:enumeration value="return" />
- <xsd:enumeration value="author" />
- <xsd:enumeration value="authors" />
- <xsd:enumeration value="version" />
- <xsd:enumeration value="since" />
- <xsd:enumeration value="date" />
- <xsd:enumeration value="note" />
- <xsd:enumeration value="warning" />
- <xsd:enumeration value="pre" />
- <xsd:enumeration value="post" />
- <xsd:enumeration value="copyright" />
- <xsd:enumeration value="invariant" />
- <xsd:enumeration value="remark" />
- <xsd:enumeration value="attention" />
- <xsd:enumeration value="par" />
- <xsd:enumeration value="rcs" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVersionNumber">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="\d+\.\d+.*" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxImageKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="html" />
- <xsd:enumeration value="latex" />
- <xsd:enumeration value="rtf" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamListKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="param" />
- <xsd:enumeration value="retval" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="templateparam" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCharRange">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="[aeiouncAEIOUNC]" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamDir">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="in"/>
- <xsd:enumeration value="out"/>
- <xsd:enumeration value="inout"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxAccessor">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="retain"/>
- <xsd:enumeration value="copy"/>
- <xsd:enumeration value="assign"/>
- <xsd:enumeration value="weak"/>
- <xsd:enumeration value="strong"/>
- <xsd:enumeration value="unretained"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir">
- <compoundname>src</compoundname>
- <innerfile refid="foo_8py">foo.py</innerfile>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="foo_8py" kind="file">
- <compoundname>foo.py</compoundname>
- <innernamespace refid="namespacefoo">foo</innernamespace>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/foo.py"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.8.8">
- <compound refid="namespacefoo" kind="namespace"><name>foo</name>
- <member refid="namespacefoo_1aab1e88a2212b202c20f3c9bd799a1ad4" kind="function"><name>bar</name></member>
- </compound>
- <compound refid="foo_8py" kind="file"><name>foo.py</name>
- </compound>
- <compound refid="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir"><name>src</name>
- </compound>
-</doxygenindex>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygenindex" type="DoxygenType"/>
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence>
- <xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="CompoundType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="CompoundKind" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="MemberType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="MemberKind" use="required"/>
- </xsd:complexType>
-
- <xsd:simpleType name="CompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class"/>
- <xsd:enumeration value="struct"/>
- <xsd:enumeration value="union"/>
- <xsd:enumeration value="interface"/>
- <xsd:enumeration value="protocol"/>
- <xsd:enumeration value="category"/>
- <xsd:enumeration value="exception"/>
- <xsd:enumeration value="file"/>
- <xsd:enumeration value="namespace"/>
- <xsd:enumeration value="group"/>
- <xsd:enumeration value="page"/>
- <xsd:enumeration value="example"/>
- <xsd:enumeration value="dir"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="MemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define"/>
- <xsd:enumeration value="property"/>
- <xsd:enumeration value="event"/>
- <xsd:enumeration value="variable"/>
- <xsd:enumeration value="typedef"/>
- <xsd:enumeration value="enum"/>
- <xsd:enumeration value="enumvalue"/>
- <xsd:enumeration value="function"/>
- <xsd:enumeration value="signal"/>
- <xsd:enumeration value="prototype"/>
- <xsd:enumeration value="friend"/>
- <xsd:enumeration value="dcop"/>
- <xsd:enumeration value="slot"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="namespacefoo" kind="namespace">
- <compoundname>foo</compoundname>
- <sectiondef kind="func">
- <memberdef kind="function" id="namespacefoo_1aab1e88a2212b202c20f3c9bd799a1ad4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
- <type>def</type>
- <definition>def foo.bar</definition>
- <argsstring></argsstring>
- <name>bar</name>
- <briefdescription>
-<para>A <computeroutput>bar</computeroutput> function in the <computeroutput>foo</computeroutput> namespace. </para> </briefdescription>
- <detaileddescription>
-<para><verbatim>By default, Doxygen recognizes anything in the docstrings as verbatim
-detailed description.</verbatim> </para> </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="%SOURCE_DIRECTORY%/foo.py" line="16" column="1" bodyfile="%SOURCE_DIRECTORY%/foo.py" bodystart="16" bodyend="20"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/foo.py" line="1" column="1"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-# Doxyfile 1.8.8
-
-# 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 config 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 http://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 = "Test Project"
-
-# 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 =
-
-# 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 =
-
-# 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 = YES
-
-# 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 = YES
-
-# 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
-
-# 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:\n"
-# 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:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# 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 = YES
-
-# 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
-
-# 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,
-# C#, C, C++, D, PHP, Objective-C, Python, 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), VHDL. 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.
-
-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 http://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 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:
-# http://www.riverbankcomputing.co.uk/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
-
-# 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
-
-#---------------------------------------------------------------------------
-# 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_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 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
-# (class|struct|union) 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
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# 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 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.
-#
-# 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 http://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 not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = 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 or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = 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).
-
-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.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = src
-
-# 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: http://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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.idl \
- *.ddl \
- *.odl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.cs \
- *.d \
- *.php \
- *.php4 \
- *.php5 \
- *.phtml \
- *.inc \
- *.m \
- *.markdown \
- *.md \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.for \
- *.tcl \
- *.vhd \
- *.vhdl \
- *.ucf \
- *.qsf \
- *.as \
- *.js
-
-# 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,
-# AClass::ANamespace, 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.
-
-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.
-
-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
-# function 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 http://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 config 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
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# 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 = NO
-
-# 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 stylesheet files is of importance (e.g. the last
-# stylesheet 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 stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://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 grayscales 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 NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = 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: http://developer.apple.com/tools/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 http://developer.apple.com/tools/creatingdocsetswithdoxygen.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 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
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# 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 master .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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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: http://qt-project.org/doc/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:
-# http://qt-project.org/doc/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 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 stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. 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
-
-# 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
-
-# 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_TRANPARENT 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
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://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
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) 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 http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# 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/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: http://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: http://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 = NO
-
-# 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 enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = 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. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# 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 personal 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. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal 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.
-#
-# 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_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 pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# 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. This option is also used
-# when generating formulas in HTML.
-# 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
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://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
-
-#---------------------------------------------------------------------------
-# 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 = NO
-
-# 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 config
-# 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 config 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 = NO
-
-# 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 = YES
-
-# 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 = 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 = NO
-
-# 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
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# 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.sf.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
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to 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 HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# 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.
-# 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.
-# 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 DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# 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 and svg.
-# 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. 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.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-PLANTUML_JAR_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.
-# 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 dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+++ /dev/null
-This directory contains a dummy Java project for testing purposes.
-
-To regenerate the XML output located in `xml`, run `make`. If the `Makefile`
-does not exists, you can regenerate it by running `make bootstrap` in the parent
-directory.
+++ /dev/null
-/* This file is part of NIT ( http://www.nitlanguage.org ).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * A class in the root namespace
- */
-class Foo {}
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="_foo_8java" kind="file">
- <compoundname>Foo.java</compoundname>
- <innerclass refid="class_foo" prot="package">Foo</innerclass>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/Foo.java"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="class_foo" kind="class" prot="package">
- <compoundname>Foo</compoundname>
- <briefdescription>
-<para>A class in the root namespace. </para> </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/Foo.java" line="19" column="1" bodyfile="%SOURCE_DIRECTORY%/Foo.java" bodystart="19" bodyend="19"/>
- <listofallmembers>
- </listofallmembers>
- </compounddef>
-</doxygen>
+++ /dev/null
-<!-- XSLT script to combine the generated output into a single file.
- If you have xsltproc you could use:
- xsltproc combine.xslt index.xml >all.xml
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" indent="no" standalone="yes" />
- <xsl:template match="/">
- <doxygen version="{doxygenindex/@version}">
- <!-- Load all doxgen generated xml files -->
- <xsl:for-each select="doxygenindex/compound">
- <xsl:copy-of select="document( concat( @refid, '.xml' ) )/doxygen/*" />
- </xsl:for-each>
- </doxygen>
- </xsl:template>
-</xsl:stylesheet>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
-
- <!-- Complex types -->
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence maxOccurs="unbounded">
- <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
- </xsd:complexType>
-
- <xsd:complexType name="compounddefType">
- <xsd:sequence>
- <xsd:element name="compoundname" type="xsd:string"/>
- <xsd:element name="title" type="xsd:string" minOccurs="0" />
- <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
- <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
- <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
- <xsd:element name="programlisting" type="listingType" minOccurs="0" />
- <xsd:element name="location" type="locationType" minOccurs="0" />
- <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="kind" type="DoxCompoundKind" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listofallmembersType">
- <xsd:sequence>
- <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="memberRefType">
- <xsd:sequence>
- <xsd:element name="scope" />
- <xsd:element name="name" />
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- <xsd:attribute name="ambiguityscope" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="compoundRefType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" use="optional" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="virt" type="DoxVirtualKind" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="reimplementType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="incType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="local" type="DoxBool" />
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="refTextType">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:complexType name="sectiondefType">
- <xsd:sequence>
- <xsd:element name="header" type="xsd:string" minOccurs="0" />
- <xsd:element name="description" type="descriptionType" minOccurs="0" />
- <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="memberdefType">
- <xsd:sequence>
- <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="definition" minOccurs="0" />
- <xsd:element name="argsstring" minOccurs="0" />
- <xsd:element name="name" />
- <xsd:element name="read" minOccurs="0" />
- <xsd:element name="write" minOccurs="0" />
- <xsd:element name="bitfield" minOccurs="0" />
- <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="location" type="locationType" />
- <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxMemberKind" />
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- <xsd:attribute name="static" type="DoxBool" />
- <xsd:attribute name="const" type="DoxBool" use="optional"/>
- <xsd:attribute name="explicit" type="DoxBool" use="optional"/>
- <xsd:attribute name="inline" type="DoxBool" use="optional"/>
- <xsd:attribute name="virt" type="DoxVirtualKind" use="optional"/>
- <xsd:attribute name="volatile" type="DoxBool" use="optional"/>
- <xsd:attribute name="mutable" type="DoxBool" use="optional"/>
- <!-- Qt property -->
- <xsd:attribute name="readable" type="DoxBool" use="optional"/>
- <xsd:attribute name="writable" type="DoxBool" use="optional"/>
- <!-- C++/CLI variable -->
- <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
- <!-- C++/CLI and C# property -->
- <xsd:attribute name="settable" type="DoxBool" use="optional"/>
- <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
- <!-- C++/CLI function -->
- <xsd:attribute name="final" type="DoxBool" use="optional"/>
- <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
- <xsd:attribute name="new" type="DoxBool" use="optional"/>
- <!-- C++/CLI event -->
- <xsd:attribute name="add" type="DoxBool" use="optional"/>
- <xsd:attribute name="remove" type="DoxBool" use="optional"/>
- <xsd:attribute name="raise" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 protocol method -->
- <xsd:attribute name="optional" type="DoxBool" use="optional"/>
- <xsd:attribute name="required" type="DoxBool" use="optional"/>
- <!-- Objective-C 2.0 property accessor -->
- <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
- <!-- UNO IDL -->
- <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
- <xsd:attribute name="property" type="DoxBool" use="optional"/>
- <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
- <xsd:attribute name="bound" type="DoxBool" use="optional"/>
- <xsd:attribute name="removable" type="DoxBool" use="optional"/>
- <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
- <xsd:attribute name="transient" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
- <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
-
- </xsd:complexType>
-
- <xsd:complexType name="descriptionType" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" minOccurs="0"/>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="enumvalueType" mixed="true">
- <xsd:sequence>
- <xsd:element name="name" />
- <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- <xsd:attribute name="prot" type="DoxProtectionKind" />
- </xsd:complexType>
-
- <xsd:complexType name="templateparamlistType">
- <xsd:sequence>
- <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="paramType">
- <xsd:sequence>
- <xsd:element name="type" type="linkedTextType" minOccurs="0" />
- <xsd:element name="declname" minOccurs="0" />
- <xsd:element name="defname" minOccurs="0" />
- <xsd:element name="array" minOccurs="0" />
- <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
- <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="linkedTextType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="graphType">
- <xsd:sequence>
- <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="nodeType">
- <xsd:sequence>
- <xsd:element name="label" />
- <xsd:element name="link" type="linkType" minOccurs="0" />
- <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="childnodeType">
- <xsd:sequence>
- <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="relation" type="DoxGraphRelation" />
- </xsd:complexType>
-
- <xsd:complexType name="linkType">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="external" type="xsd:string" use="optional"/>
- </xsd:complexType>
-
- <xsd:complexType name="listingType">
- <xsd:sequence>
- <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="codelineType">
- <xsd:sequence>
- <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="lineno" type="xsd:integer" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="refkind" type="DoxRefKind" />
- <xsd:attribute name="external" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="highlightType" mixed="true">
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="sp" />
- <xsd:element name="ref" type="refTextType" />
- </xsd:choice>
- <xsd:attribute name="class" type="DoxHighlightClass" />
- </xsd:complexType>
-
- <xsd:complexType name="referenceType" mixed="true">
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
- <xsd:attribute name="startline" type="xsd:integer" />
- <xsd:attribute name="endline" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="locationType">
- <xsd:attribute name="file" type="xsd:string" />
- <xsd:attribute name="line" type="xsd:integer" />
- <xsd:attribute name="column" type="xsd:integer" use="optional"/>
- <xsd:attribute name="bodyfile" type="xsd:string" />
- <xsd:attribute name="bodystart" type="xsd:integer" />
- <xsd:attribute name="bodyend" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docSect4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="title" type="xsd:string" />
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docInternalType" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS1Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS2Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS3Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docInternalS4Type" mixed="true">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docTitleCmdGroup">
- <xsd:choice>
- <xsd:element name="ulink" type="docURLLink" />
- <xsd:element name="bold" type="docMarkupType" />
- <xsd:element name="emphasis" type="docMarkupType" />
- <xsd:element name="computeroutput" type="docMarkupType" />
- <xsd:element name="subscript" type="docMarkupType" />
- <xsd:element name="superscript" type="docMarkupType" />
- <xsd:element name="center" type="docMarkupType" />
- <xsd:element name="small" type="docMarkupType" />
- <xsd:element name="htmlonly" type="xsd:string" />
- <xsd:element name="manonly" type="xsd:string" />
- <xsd:element name="xmlonly" type="xsd:string" />
- <xsd:element name="rtfonly" type="xsd:string" />
- <xsd:element name="latexonly" type="xsd:string" />
- <xsd:element name="dot" type="xsd:string" />
- <xsd:element name="plantuml" type="xsd:string" />
- <xsd:element name="anchor" type="docAnchorType" />
- <xsd:element name="formula" type="docFormulaType" />
- <xsd:element name="ref" type="docRefTextType" />
- <xsd:element name="nonbreakablespace" type="docEmptyType" />
- <xsd:element name="iexcl" type="docEmptyType" />
- <xsd:element name="cent" type="docEmptyType" />
- <xsd:element name="pound" type="docEmptyType" />
- <xsd:element name="curren" type="docEmptyType" />
- <xsd:element name="yen" type="docEmptyType" />
- <xsd:element name="brvbar" type="docEmptyType" />
- <xsd:element name="sect" type="docEmptyType" />
- <xsd:element name="umlaut" type="docEmptyType" />
- <xsd:element name="copy" type="docEmptyType" />
- <xsd:element name="ordf" type="docEmptyType" />
- <xsd:element name="laquo" type="docEmptyType" />
- <xsd:element name="not" type="docEmptyType" />
- <xsd:element name="shy" type="docEmptyType" />
- <xsd:element name="registered" type="docEmptyType" />
- <xsd:element name="macr" type="docEmptyType" />
- <xsd:element name="deg" type="docEmptyType" />
- <xsd:element name="plusmn" type="docEmptyType" />
- <xsd:element name="sup2" type="docEmptyType" />
- <xsd:element name="sup3" type="docEmptyType" />
- <xsd:element name="acute" type="docEmptyType" />
- <xsd:element name="micro" type="docEmptyType" />
- <xsd:element name="para" type="docEmptyType" />
- <xsd:element name="middot" type="docEmptyType" />
- <xsd:element name="cedil" type="docEmptyType" />
- <xsd:element name="sup1" type="docEmptyType" />
- <xsd:element name="ordm" type="docEmptyType" />
- <xsd:element name="raquo" type="docEmptyType" />
- <xsd:element name="frac14" type="docEmptyType" />
- <xsd:element name="frac12" type="docEmptyType" />
- <xsd:element name="frac34" type="docEmptyType" />
- <xsd:element name="iquest" type="docEmptyType" />
- <xsd:element name="Agrave" type="docEmptyType" />
- <xsd:element name="Aacute" type="docEmptyType" />
- <xsd:element name="Acirc" type="docEmptyType" />
- <xsd:element name="Atilde" type="docEmptyType" />
- <xsd:element name="Aumlaut" type="docEmptyType" />
- <xsd:element name="Aring" type="docEmptyType" />
- <xsd:element name="AElig" type="docEmptyType" />
- <xsd:element name="Ccedil" type="docEmptyType" />
- <xsd:element name="Egrave" type="docEmptyType" />
- <xsd:element name="Eacute" type="docEmptyType" />
- <xsd:element name="Ecirc" type="docEmptyType" />
- <xsd:element name="Eumlaut" type="docEmptyType" />
- <xsd:element name="Igrave" type="docEmptyType" />
- <xsd:element name="Iacute" type="docEmptyType" />
- <xsd:element name="Icirc" type="docEmptyType" />
- <xsd:element name="Iumlaut" type="docEmptyType" />
- <xsd:element name="ETH" type="docEmptyType" />
- <xsd:element name="Ntilde" type="docEmptyType" />
- <xsd:element name="Ograve" type="docEmptyType" />
- <xsd:element name="Oacute" type="docEmptyType" />
- <xsd:element name="Ocirc" type="docEmptyType" />
- <xsd:element name="Otilde" type="docEmptyType" />
- <xsd:element name="Oumlaut" type="docEmptyType" />
- <xsd:element name="times" type="docEmptyType" />
- <xsd:element name="Oslash" type="docEmptyType" />
- <xsd:element name="Ugrave" type="docEmptyType" />
- <xsd:element name="Uacute" type="docEmptyType" />
- <xsd:element name="Ucirc" type="docEmptyType" />
- <xsd:element name="Uumlaut" type="docEmptyType" />
- <xsd:element name="Yacute" type="docEmptyType" />
- <xsd:element name="THORN" type="docEmptyType" />
- <xsd:element name="szlig" type="docEmptyType" />
- <xsd:element name="agrave" type="docEmptyType" />
- <xsd:element name="aacute" type="docEmptyType" />
- <xsd:element name="acirc" type="docEmptyType" />
- <xsd:element name="atilde" type="docEmptyType" />
- <xsd:element name="aumlaut" type="docEmptyType" />
- <xsd:element name="aring" type="docEmptyType" />
- <xsd:element name="aelig" type="docEmptyType" />
- <xsd:element name="ccedil" type="docEmptyType" />
- <xsd:element name="egrave" type="docEmptyType" />
- <xsd:element name="eacute" type="docEmptyType" />
- <xsd:element name="ecirc" type="docEmptyType" />
- <xsd:element name="eumlaut" type="docEmptyType" />
- <xsd:element name="igrave" type="docEmptyType" />
- <xsd:element name="iacute" type="docEmptyType" />
- <xsd:element name="icirc" type="docEmptyType" />
- <xsd:element name="iumlaut" type="docEmptyType" />
- <xsd:element name="eth" type="docEmptyType" />
- <xsd:element name="ntilde" type="docEmptyType" />
- <xsd:element name="ograve" type="docEmptyType" />
- <xsd:element name="oacute" type="docEmptyType" />
- <xsd:element name="ocirc" type="docEmptyType" />
- <xsd:element name="otilde" type="docEmptyType" />
- <xsd:element name="oumlaut" type="docEmptyType" />
- <xsd:element name="divide" type="docEmptyType" />
- <xsd:element name="oslash" type="docEmptyType" />
- <xsd:element name="ugrave" type="docEmptyType" />
- <xsd:element name="uacute" type="docEmptyType" />
- <xsd:element name="ucirc" type="docEmptyType" />
- <xsd:element name="uumlaut" type="docEmptyType" />
- <xsd:element name="yacute" type="docEmptyType" />
- <xsd:element name="thorn" type="docEmptyType" />
- <xsd:element name="yumlaut" type="docEmptyType" />
- <xsd:element name="fnof" type="docEmptyType" />
- <xsd:element name="Alpha" type="docEmptyType" />
- <xsd:element name="Beta" type="docEmptyType" />
- <xsd:element name="Gamma" type="docEmptyType" />
- <xsd:element name="Delta" type="docEmptyType" />
- <xsd:element name="Epsilon" type="docEmptyType" />
- <xsd:element name="Zeta" type="docEmptyType" />
- <xsd:element name="Eta" type="docEmptyType" />
- <xsd:element name="Theta" type="docEmptyType" />
- <xsd:element name="Iota" type="docEmptyType" />
- <xsd:element name="Kappa" type="docEmptyType" />
- <xsd:element name="Lambda" type="docEmptyType" />
- <xsd:element name="Mu" type="docEmptyType" />
- <xsd:element name="Nu" type="docEmptyType" />
- <xsd:element name="Xi" type="docEmptyType" />
- <xsd:element name="Omicron" type="docEmptyType" />
- <xsd:element name="Pi" type="docEmptyType" />
- <xsd:element name="Rho" type="docEmptyType" />
- <xsd:element name="Sigma" type="docEmptyType" />
- <xsd:element name="Tau" type="docEmptyType" />
- <xsd:element name="Upsilon" type="docEmptyType" />
- <xsd:element name="Phi" type="docEmptyType" />
- <xsd:element name="Chi" type="docEmptyType" />
- <xsd:element name="Psi" type="docEmptyType" />
- <xsd:element name="Omega" type="docEmptyType" />
- <xsd:element name="alpha" type="docEmptyType" />
- <xsd:element name="beta" type="docEmptyType" />
- <xsd:element name="gamma" type="docEmptyType" />
- <xsd:element name="delta" type="docEmptyType" />
- <xsd:element name="epsilon" type="docEmptyType" />
- <xsd:element name="zeta" type="docEmptyType" />
- <xsd:element name="eta" type="docEmptyType" />
- <xsd:element name="theta" type="docEmptyType" />
- <xsd:element name="iota" type="docEmptyType" />
- <xsd:element name="kappa" type="docEmptyType" />
- <xsd:element name="lambda" type="docEmptyType" />
- <xsd:element name="mu" type="docEmptyType" />
- <xsd:element name="nu" type="docEmptyType" />
- <xsd:element name="xi" type="docEmptyType" />
- <xsd:element name="omicron" type="docEmptyType" />
- <xsd:element name="pi" type="docEmptyType" />
- <xsd:element name="rho" type="docEmptyType" />
- <xsd:element name="sigmaf" type="docEmptyType" />
- <xsd:element name="sigma" type="docEmptyType" />
- <xsd:element name="tau" type="docEmptyType" />
- <xsd:element name="upsilon" type="docEmptyType" />
- <xsd:element name="phi" type="docEmptyType" />
- <xsd:element name="chi" type="docEmptyType" />
- <xsd:element name="psi" type="docEmptyType" />
- <xsd:element name="omega" type="docEmptyType" />
- <xsd:element name="thetasym" type="docEmptyType" />
- <xsd:element name="upsih" type="docEmptyType" />
- <xsd:element name="piv" type="docEmptyType" />
- <xsd:element name="bull" type="docEmptyType" />
- <xsd:element name="hellip" type="docEmptyType" />
- <xsd:element name="prime" type="docEmptyType" />
- <xsd:element name="Prime" type="docEmptyType" />
- <xsd:element name="oline" type="docEmptyType" />
- <xsd:element name="frasl" type="docEmptyType" />
- <xsd:element name="weierp" type="docEmptyType" />
- <xsd:element name="image" type="docEmptyType" />
- <xsd:element name="real" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- <xsd:element name="alefsym" type="docEmptyType" />
- <xsd:element name="larr" type="docEmptyType" />
- <xsd:element name="uarr" type="docEmptyType" />
- <xsd:element name="rarr" type="docEmptyType" />
- <xsd:element name="darr" type="docEmptyType" />
- <xsd:element name="harr" type="docEmptyType" />
- <xsd:element name="crarr" type="docEmptyType" />
- <xsd:element name="lArr" type="docEmptyType" />
- <xsd:element name="uArr" type="docEmptyType" />
- <xsd:element name="rArr" type="docEmptyType" />
- <xsd:element name="dArr" type="docEmptyType" />
- <xsd:element name="hArr" type="docEmptyType" />
- <xsd:element name="forall" type="docEmptyType" />
- <xsd:element name="part" type="docEmptyType" />
- <xsd:element name="exist" type="docEmptyType" />
- <xsd:element name="empty" type="docEmptyType" />
- <xsd:element name="nabla" type="docEmptyType" />
- <xsd:element name="isin" type="docEmptyType" />
- <xsd:element name="notin" type="docEmptyType" />
- <xsd:element name="ni" type="docEmptyType" />
- <xsd:element name="prod" type="docEmptyType" />
- <xsd:element name="sum" type="docEmptyType" />
- <xsd:element name="minus" type="docEmptyType" />
- <xsd:element name="lowast" type="docEmptyType" />
- <xsd:element name="radic" type="docEmptyType" />
- <xsd:element name="prop" type="docEmptyType" />
- <xsd:element name="infin" type="docEmptyType" />
- <xsd:element name="ang" type="docEmptyType" />
- <xsd:element name="and" type="docEmptyType" />
- <xsd:element name="or" type="docEmptyType" />
- <xsd:element name="cap" type="docEmptyType" />
- <xsd:element name="cup" type="docEmptyType" />
- <xsd:element name="int" type="docEmptyType" />
- <xsd:element name="there4" type="docEmptyType" />
- <xsd:element name="sim" type="docEmptyType" />
- <xsd:element name="cong" type="docEmptyType" />
- <xsd:element name="asymp" type="docEmptyType" />
- <xsd:element name="ne" type="docEmptyType" />
- <xsd:element name="equiv" type="docEmptyType" />
- <xsd:element name="le" type="docEmptyType" />
- <xsd:element name="ge" type="docEmptyType" />
- <xsd:element name="sub" type="docEmptyType" />
- <xsd:element name="sup" type="docEmptyType" />
- <xsd:element name="nsub" type="docEmptyType" />
- <xsd:element name="sube" type="docEmptyType" />
- <xsd:element name="supe" type="docEmptyType" />
- <xsd:element name="oplus" type="docEmptyType" />
- <xsd:element name="otimes" type="docEmptyType" />
- <xsd:element name="perp" type="docEmptyType" />
- <xsd:element name="sdot" type="docEmptyType" />
- <xsd:element name="lceil" type="docEmptyType" />
- <xsd:element name="rceil" type="docEmptyType" />
- <xsd:element name="lfloor" type="docEmptyType" />
- <xsd:element name="rfloor" type="docEmptyType" />
- <xsd:element name="lang" type="docEmptyType" />
- <xsd:element name="rang" type="docEmptyType" />
- <xsd:element name="loz" type="docEmptyType" />
- <xsd:element name="spades" type="docEmptyType" />
- <xsd:element name="clubs" type="docEmptyType" />
- <xsd:element name="hearts" type="docEmptyType" />
- <xsd:element name="diams" type="docEmptyType" />
- <xsd:element name="OElig" type="docEmptyType" />
- <xsd:element name="oelig" type="docEmptyType" />
- <xsd:element name="Scaron" type="docEmptyType" />
- <xsd:element name="scaron" type="docEmptyType" />
- <xsd:element name="Yumlaut" type="docEmptyType" />
- <xsd:element name="circ" type="docEmptyType" />
- <xsd:element name="tilde" type="docEmptyType" />
- <xsd:element name="ensp" type="docEmptyType" />
- <xsd:element name="emsp" type="docEmptyType" />
- <xsd:element name="thinsp" type="docEmptyType" />
- <xsd:element name="zwnj" type="docEmptyType" />
- <xsd:element name="zwj" type="docEmptyType" />
- <xsd:element name="lrm" type="docEmptyType" />
- <xsd:element name="rlm" type="docEmptyType" />
- <xsd:element name="ndash" type="docEmptyType" />
- <xsd:element name="mdash" type="docEmptyType" />
- <xsd:element name="lsquo" type="docEmptyType" />
- <xsd:element name="rsquo" type="docEmptyType" />
- <xsd:element name="sbquo" type="docEmptyType" />
- <xsd:element name="ldquo" type="docEmptyType" />
- <xsd:element name="rdquo" type="docEmptyType" />
- <xsd:element name="bdquo" type="docEmptyType" />
- <xsd:element name="dagger" type="docEmptyType" />
- <xsd:element name="Dagger" type="docEmptyType" />
- <xsd:element name="permil" type="docEmptyType" />
- <xsd:element name="lsaquo" type="docEmptyType" />
- <xsd:element name="rsaquo" type="docEmptyType" />
- <xsd:element name="euro" type="docEmptyType" />
- <xsd:element name="trademark" type="docEmptyType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docTitleType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:group name="docCmdGroup">
- <xsd:choice>
- <xsd:group ref="docTitleCmdGroup"/>
- <xsd:element name="linebreak" type="docEmptyType" />
- <xsd:element name="hruler" type="docEmptyType" />
- <xsd:element name="preformatted" type="docMarkupType" />
- <xsd:element name="programlisting" type="listingType" />
- <xsd:element name="verbatim" type="xsd:string" />
- <xsd:element name="indexentry" type="docIndexEntryType" />
- <xsd:element name="orderedlist" type="docListType" />
- <xsd:element name="itemizedlist" type="docListType" />
- <xsd:element name="simplesect" type="docSimpleSectType" />
- <xsd:element name="title" type="docTitleType" />
- <xsd:element name="variablelist" type="docVariableListType" />
- <xsd:element name="table" type="docTableType" />
- <xsd:element name="heading" type="docHeadingType" />
- <xsd:element name="image" type="docImageType" />
- <xsd:element name="dotfile" type="docFileType" />
- <xsd:element name="mscfile" type="docFileType" />
- <xsd:element name="diafile" type="docFileType" />
- <xsd:element name="toclist" type="docTocListType" />
- <xsd:element name="language" type="docLanguageType" />
- <xsd:element name="parameterlist" type="docParamListType" />
- <xsd:element name="xrefsect" type="docXRefSectType" />
- <xsd:element name="copydoc" type="docCopyType" />
- <xsd:element name="blockquote" type="docBlockQuoteType" />
- <xsd:element name="parblock" type="docParBlockType" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:complexType name="docParaType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docMarkupType" mixed="true">
- <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docURLLink" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="url" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docAnchorType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFormulaType" mixed="true">
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docIndexEntryType">
- <xsd:sequence>
- <xsd:element name="primaryie" type="xsd:string" />
- <xsd:element name="secondaryie" type="xsd:string" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListType">
- <xsd:sequence>
- <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docListItemType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docSimpleSectType">
- <xsd:sequence>
- <xsd:element name="title" type="docTitleType" minOccurs="0" />
- <xsd:sequence minOccurs="0" maxOccurs="unbounded">
- <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxSimpleSectKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docVarListEntryType">
- <xsd:sequence>
- <xsd:element name="term" type="docTitleType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:group name="docVariableListGroup">
- <xsd:sequence>
- <xsd:element name="varlistentry" type="docVarListEntryType" />
- <xsd:element name="listitem" type="docListItemType" />
- </xsd:sequence>
- </xsd:group>
-
- <xsd:complexType name="docVariableListType">
- <xsd:sequence>
- <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docRefTextType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="refid" type="xsd:string" />
- <xsd:attribute name="kindref" type="DoxRefKind" />
- <xsd:attribute name="external" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTableType">
- <xsd:sequence>
- <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="rows" type="xsd:integer" />
- <xsd:attribute name="cols" type="xsd:integer" />
- </xsd:complexType>
-
- <xsd:complexType name="docRowType">
- <xsd:sequence>
- <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEntryType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="thead" type="DoxBool" />
- </xsd:complexType>
-
- <xsd:complexType name="docCaptionType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- </xsd:complexType>
-
- <xsd:complexType name="docHeadingType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
- </xsd:complexType>
-
- <xsd:complexType name="docImageType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="type" type="DoxImageKind" />
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="width" type="xsd:string" />
- <xsd:attribute name="height" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docFileType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocItemType" mixed="true">
- <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docTocListType">
- <xsd:sequence>
- <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docLanguageType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="langid" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListType">
- <xsd:sequence>
- <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- <xsd:attribute name="kind" type="DoxParamListKind" />
- </xsd:complexType>
-
- <xsd:complexType name="docParamListItem">
- <xsd:sequence>
- <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parameterdescription" type="descriptionType" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamNameList">
- <xsd:sequence>
- <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamType" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParamName" mixed="true">
- <xsd:sequence>
- <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
- </xsd:sequence>
- <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
- </xsd:complexType>
-
- <xsd:complexType name="docXRefSectType">
- <xsd:sequence>
- <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="xrefdescription" type="descriptionType" />
- </xsd:sequence>
- <xsd:attribute name="id" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docCopyType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="internal" type="docInternalType" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="link" type="xsd:string" />
- </xsd:complexType>
-
- <xsd:complexType name="docBlockQuoteType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docParBlockType">
- <xsd:sequence>
- <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="docEmptyType"/>
-
- <!-- Simple types -->
-
- <xsd:simpleType name="DoxBool">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="yes" />
- <xsd:enumeration value="no" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxGraphRelation">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="include" />
- <xsd:enumeration value="usage" />
- <xsd:enumeration value="template-instance" />
- <xsd:enumeration value="public-inheritance" />
- <xsd:enumeration value="protected-inheritance" />
- <xsd:enumeration value="private-inheritance" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxRefKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="compound" />
- <xsd:enumeration value="member" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxMemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="variable" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="function" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="dcop" />
- <xsd:enumeration value="slot" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="service" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxProtectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="public" />
- <xsd:enumeration value="protected" />
- <xsd:enumeration value="private" />
- <xsd:enumeration value="package" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVirtualKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="non-virtual" />
- <xsd:enumeration value="virtual" />
- <xsd:enumeration value="pure-virtual" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class" />
- <xsd:enumeration value="struct" />
- <xsd:enumeration value="union" />
- <xsd:enumeration value="interface" />
- <xsd:enumeration value="protocol" />
- <xsd:enumeration value="category" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="service" />
- <xsd:enumeration value="singleton" />
- <xsd:enumeration value="module" />
- <xsd:enumeration value="type" />
- <xsd:enumeration value="file" />
- <xsd:enumeration value="namespace" />
- <xsd:enumeration value="group" />
- <xsd:enumeration value="page" />
- <xsd:enumeration value="example" />
- <xsd:enumeration value="dir" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSectionKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="user-defined" />
- <xsd:enumeration value="public-type" />
- <xsd:enumeration value="public-func" />
- <xsd:enumeration value="public-attrib" />
- <xsd:enumeration value="public-slot" />
- <xsd:enumeration value="signal" />
- <xsd:enumeration value="dcop-func" />
- <xsd:enumeration value="property" />
- <xsd:enumeration value="event" />
- <xsd:enumeration value="public-static-func" />
- <xsd:enumeration value="public-static-attrib" />
- <xsd:enumeration value="protected-type" />
- <xsd:enumeration value="protected-func" />
- <xsd:enumeration value="protected-attrib" />
- <xsd:enumeration value="protected-slot" />
- <xsd:enumeration value="protected-static-func" />
- <xsd:enumeration value="protected-static-attrib" />
- <xsd:enumeration value="package-type" />
- <xsd:enumeration value="package-func" />
- <xsd:enumeration value="package-attrib" />
- <xsd:enumeration value="package-static-func" />
- <xsd:enumeration value="package-static-attrib" />
- <xsd:enumeration value="private-type" />
- <xsd:enumeration value="private-func" />
- <xsd:enumeration value="private-attrib" />
- <xsd:enumeration value="private-slot" />
- <xsd:enumeration value="private-static-func" />
- <xsd:enumeration value="private-static-attrib" />
- <xsd:enumeration value="friend" />
- <xsd:enumeration value="related" />
- <xsd:enumeration value="define" />
- <xsd:enumeration value="prototype" />
- <xsd:enumeration value="typedef" />
- <xsd:enumeration value="enum" />
- <xsd:enumeration value="func" />
- <xsd:enumeration value="var" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxHighlightClass">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="comment" />
- <xsd:enumeration value="normal" />
- <xsd:enumeration value="preprocessor" />
- <xsd:enumeration value="keyword" />
- <xsd:enumeration value="keywordtype" />
- <xsd:enumeration value="keywordflow" />
- <xsd:enumeration value="stringliteral" />
- <xsd:enumeration value="charliteral" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxSimpleSectKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="see" />
- <xsd:enumeration value="return" />
- <xsd:enumeration value="author" />
- <xsd:enumeration value="authors" />
- <xsd:enumeration value="version" />
- <xsd:enumeration value="since" />
- <xsd:enumeration value="date" />
- <xsd:enumeration value="note" />
- <xsd:enumeration value="warning" />
- <xsd:enumeration value="pre" />
- <xsd:enumeration value="post" />
- <xsd:enumeration value="copyright" />
- <xsd:enumeration value="invariant" />
- <xsd:enumeration value="remark" />
- <xsd:enumeration value="attention" />
- <xsd:enumeration value="par" />
- <xsd:enumeration value="rcs" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxVersionNumber">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="\d+\.\d+.*" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxImageKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="html" />
- <xsd:enumeration value="latex" />
- <xsd:enumeration value="rtf" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamListKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="param" />
- <xsd:enumeration value="retval" />
- <xsd:enumeration value="exception" />
- <xsd:enumeration value="templateparam" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxCharRange">
- <xsd:restriction base="xsd:string">
- <xsd:pattern value="[aeiouncAEIOUNC]" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxParamDir">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="in"/>
- <xsd:enumeration value="out"/>
- <xsd:enumeration value="inout"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="DoxAccessor">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="retain"/>
- <xsd:enumeration value="copy"/>
- <xsd:enumeration value="assign"/>
- <xsd:enumeration value="weak"/>
- <xsd:enumeration value="strong"/>
- <xsd:enumeration value="unretained"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.8">
- <compounddef id="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir">
- <compoundname>src</compoundname>
- <innerfile refid="_foo_8java">Foo.java</innerfile>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="%SOURCE_DIRECTORY%/"/>
- </compounddef>
-</doxygen>
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8' standalone='no'?>
-<doxygenindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="index.xsd" version="1.8.8">
- <compound refid="class_foo" kind="class"><name>Foo</name>
- </compound>
- <compound refid="_foo_8java" kind="file"><name>Foo.java</name>
- </compound>
- <compound refid="dir_68267d1309a1af8e8297ef4c3efbcdba" kind="dir"><name>src</name>
- </compound>
-</doxygenindex>
+++ /dev/null
-<?xml version='1.0' encoding='utf-8' ?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygenindex" type="DoxygenType"/>
-
- <xsd:complexType name="DoxygenType">
- <xsd:sequence>
- <xsd:element name="compound" type="CompoundType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="CompoundType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="member" type="MemberType" minOccurs="0" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="CompoundKind" use="required"/>
- </xsd:complexType>
-
- <xsd:complexType name="MemberType">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- </xsd:sequence>
- <xsd:attribute name="refid" type="xsd:string" use="required"/>
- <xsd:attribute name="kind" type="MemberKind" use="required"/>
- </xsd:complexType>
-
- <xsd:simpleType name="CompoundKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="class"/>
- <xsd:enumeration value="struct"/>
- <xsd:enumeration value="union"/>
- <xsd:enumeration value="interface"/>
- <xsd:enumeration value="protocol"/>
- <xsd:enumeration value="category"/>
- <xsd:enumeration value="exception"/>
- <xsd:enumeration value="file"/>
- <xsd:enumeration value="namespace"/>
- <xsd:enumeration value="group"/>
- <xsd:enumeration value="page"/>
- <xsd:enumeration value="example"/>
- <xsd:enumeration value="dir"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name="MemberKind">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="define"/>
- <xsd:enumeration value="property"/>
- <xsd:enumeration value="event"/>
- <xsd:enumeration value="variable"/>
- <xsd:enumeration value="typedef"/>
- <xsd:enumeration value="enum"/>
- <xsd:enumeration value="enumvalue"/>
- <xsd:enumeration value="function"/>
- <xsd:enumeration value="signal"/>
- <xsd:enumeration value="prototype"/>
- <xsd:enumeration value="friend"/>
- <xsd:enumeration value="dcop"/>
- <xsd:enumeration value="slot"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-</xsd:schema>
-
if not goods.has(s) then bads.add(s)
end
- # Remove their transitions
+ # Remove their transitions and tags
for s in bads do
for t in s.ins.to_a do t.delete
for t in s.outs.to_a do t.delete
+ if tags.has_key(s) then
+ for t in tags[s] do retrotags[t].remove(s)
+ tags.keys.remove(s)
+ end
end
# Keep only the good stuff
echo "[***no sav***] cp 'out/$r' sav/"
test $verbose = true && { cat "out/$r" ; echo ; }
echo >>"$tap" "not ok $tapcount - $name # TODO no sav"
+ return 1
else
echo "[0K]"
echo >>"$tap" "ok $tapcount - $name"
+ return 0
fi
elif diff "sav/$r" "out/$r" >/dev/null
then
echo "[OK]"
echo >>"$tap" "ok $tapcount - $name"
+ return 0
else
echo "[******failed******] diff -u {sav,out}/$r"
test $verbose = true && { diff -u "sav/$r" "out/$r" ; echo ; }
echo >>"$tap" "not ok $tapcount - $name"
+ return 1
fi
}
+err=0
for f in "$@"
do
for a in "$f" `./alterner.pl $f`
grep -i "error" "out/$bn.nitcc.log" > "out/$res"
name="$a"
- differ $res
+ differ $res || err=1
if test \! -z $cla
then
cp "$langname.ast.out" "out/$resi"
name="$a $i"
- differ "$resi"
+ differ "$resi" || err=1
done
fi
done
echo >>"$tap" "1..$tapcount"
#prove --formatter=TAP::Formatter::JUnit /bin/cat :: tap.output > tap.xml
+exit "$err"
#
# This class provides services that ensure static typing when accessing the `config.ini` file.
class WikiConfig
- super ConfigTree
+ super IniFile
+ autoinit ini_file
+
+ # Path to this file
+ var ini_file: String
+
+ init do load_file(ini_file)
# Returns the config value at `key` or return `default` if no key was found.
protected fun value_or_default(key: String, default: String): String do
var sidebar_blocks: Array[String] is lazy do
var res = new Array[String]
if not has_key("wiki.sidebar.blocks") then return res
- for val in at("wiki.sidebar.blocks").as(not null).values do
- res.add val
+ for val in section("wiki.sidebar.blocks").as(not null).values do
+ res.add val.as(not null)
end
return res
end
# Each section can provide its own config file to customize
# appearance or behavior.
class SectionConfig
- super ConfigTree
+ super IniFile
+ autoinit ini_file
+
+ # Path to this file
+ var ini_file: String
+
+ init do load_file(ini_file)
# Returns the config value at `key` or `null` if no key was found.
private fun value_or_null(key: String): nullable String do
+++ /dev/null
-.github_data
-nitrpg_data
-listener
-web
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NITC ?= nitc
-NITLS ?= nitls
-NITUNIT ?= nitunit
-NITDOC ?= nitdoc
-
-.PHONY: all
-all: bin/listener bin/web
-
-bin/listener: $(shell $(NITLS) -M src/listener.nit)
- mkdir -p bin/
- $(NITC) src/listener.nit -o bin/listener
-
-bin/web: $(shell $(NITLS) -M src/web.nit)
- mkdir -p bin/
- $(NITC) src/web.nit -o bin/web
-
-.PHONY: check
-check:
- $(NITUNIT) .
-
-.PHONY: doc
-doc:
- $(NITDOC) . -o doc/
-
-.PHONY: clean
-clean:
- rm -rf bin/
- rm -rf doc/
+++ /dev/null
-# Welcome to NitRPG!
-
-NitRPG is a Role Playing Game that takes place on [GitHub](https://github.com/).
-
-In NitRPG, GitHub users are represented by players that battle on repo for
-nitcoins and glory.
-
-## Features
-
-* Auto-update with GitHub hooks
-* Display repo statistics
-* Display players statsitics
-* Repo actions are rewarded by nitcoins
-* Players can unlock achievements
-
-## How to install
-
-From the `nit` root:
-
-~~~bash
-> cd contrib/nitrpg
-> make
-~~~
-
-### Configuring the GitHub hook
-
-NitRPG needs you to add a new GitHub hook on your repo to keep the game
-`listener` up-to-date automatically.
-
-Hook configuration:
-
-* **Payload URL**: URL and port to the listener (ex: `http://yourdomain.com:8080`)
-* **Content type**: `application/json`
-* **Wich events**: `Send me everything`
-
-Be sure to set the hook as `Active` in the GitHub admin panel.
-
-### Starting the listener
-
-The `listener` program is used to listen to GitHub hooks and update game data.
-It should alwaysd be up if you want your game to be kept up-to-date.
-
-To run the listener:
-
-~~~raw
- ./listener <host> <port>
-~~~
-
-The arguments `host` and `port` must correspond to what you entered in your
-GitHub hook settings.
-
-### Starting the web server
-
-The `web` program act as a [nitcorn](http://nitlanguage.org/doc/stdlib/module_nitcorn__nitcorn.html) webserver that display the game results live.
-
-To run the webserver:
-
-~~~raw
- ./web <host> <port> <root>
-~~~
-
-The arguments `host` and `port` must correspond to what you entered in your
-GitHub hook settings.
-The `root` argument is used to specify the path from the domain url to the
-NitRPG root.
-
-For example, if NitRPG is installed in `yourdomain.com/nitrpg`:
-
-~~~raw
- ./web localhost 3000 "/nitrpg"
-~~~
-
-Leave it empty if NitRPG is installed at the root of the domain:
-
-~~~raw
- ./web localhost 3000 ""
-~~~
-
-The webserver can then be accessed at `http://yourdomain.com:3000/nitrpg/`.
-
-## RoadMap
-
-NitRPG stills under heavy development.
-Incomming features contain (but are not limited to):
-
-* Periodized stats (weekly, monthly, yearly, overall)
-* Display graphs with stats
-* More achievements
-* Shop: exchange Nitcoins against glorifying items
-
-You can suggest new achievements or ideas in the
-[NitRPG RoadMap Issue](https://github.com/nitlang/nit/issues/1161).
+++ /dev/null
-// ==UserScript==
-// @name Github.com - Add RPG tab
-// @namespace nitlanguage/github/rpg
-// @description Adds a "Github RPG" Tab at the end of the tabs.
-// @include https://github.com/*
-// @downloadURL https://github.com/nitlang/nit/raw/master/contrib/nitrpg/nitrpg.user.js
-// @version 2
-// @grant none
-// ==/UserScript==
-
-// The nav bar with tabs
-var nav = document.getElementsByClassName('reponav');
-if (!nav || !nav[0]) return;
-
-// The current repo to link
-var repo = $("meta[name='octolytics-dimension-repository_nwo']").attr("content");
-//repo = "nitlang/nit";
-if (!repo) return;
-
-// The content of the new tab
-var html = '<a href="http://nitlanguage.org/rpg/games/' + repo + '" class="js-selected-navigation-item reponav-item" data-selected-links="nitrpg"><span class="octicon octicon-ruby"></span> Github RPG</a>';
-//html = '<p><span>x</span></p>';
-
-// Inject the new tab
-var div = document.createElement('div');
-div.innerHTML = html;
-nav[0].append(div.firstChild);
+++ /dev/null
-[package]
-name=nitrpg
-tags=devel,web,cli
-maintainer=Alexandre Terrasa <alexandre@moz-code.org>
-license=Apache-2.0
-desc=NitRPG, a Role Playing Game that takes place on GitHub
-[upstream]
-browse=https://github.com/nitlang/nit/tree/master/contrib/nitrpg/
-git=https://github.com/nitlang/nit.git
-git.directory=contrib/nitrpg/
-homepage=http://nitlanguage.org
-issues=https://github.com/nitlang/nit/issues
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# `nitrpg` achievements.
-#
-# Players can unlock achievements by performing remarkable actions on the repo.
-# Achievements are rewarded by nitcoins.
-module achievements
-
-import events
-import statistics
-
-redef class GameEntity
-
- # Register a new achievement for this game entity.
- #
- # Saves the achievement in game data.
- # Do nothing is the achievement is already registered.
- #
- # TODO should update the achievement?
- fun add_achievement(achievement: Achievement) do
- stats.inc("achievements")
- achievement.owner = self
- achievement.save
- end
-
- # Is `a` unlocked for this `Player`?
- fun has_achievement(a: Achievement): Bool do return load_achievement(a.id) != null
-
- # Load the event from its `id`.
- #
- # Looks for the event save file in game data.
- # Returns `null` if the event cannot be found.
- fun load_achievement(id: String): nullable Achievement do
- var req = new JsonObject
- req["id"] = id
- req["game"] = game.key
- req["owner"] = key
- var obj = game.db.collection("achievements").find(req)
- if obj isa JsonObject then
- return new Achievement.from_json(game, obj)
- end
- return null
- end
-
- # List all events registered in this entity.
- #
- # This list is reloaded from game data each time its called.
- #
- # To add events see `add_event`.
- fun load_achievements: MapRead[String, Achievement] do
- var req = new JsonObject
- req["game"] = game.key
- req["owner"] = key
- var res = new HashMap[String, Achievement]
- for obj in game.db.collection("achievements").find_all(req) do
- var achievement = new Achievement.from_json(game, obj)
- res[achievement.id] = achievement
- end
- return res
- end
-end
-
-# Achievements are rewarded by `nitcoins`.
-#
-# An achievement represents a notable action performed by a `Player`.
-# Player that `unlock` achievements are rewarded by nitcoins.
-class Achievement
- super GameEntity
-
- redef var collection_name = "achievements"
-
- redef var game
-
- redef fun key do
- var owner = self.owner
- if owner == null then return id
- return "{owner.key}-{id}"
- end
-
- # Uniq ID for this achievement.
- var id: String
-
- # Name of this achievement.
- var name: String
-
- # Description of the achievement.
- var desc: String
-
- # Reward that this achievement give in nitcoins.
- var reward: Int
-
- # Is this achievement unlocked by somebody?
- var is_unlocked: Bool is lazy do return not load_events.is_empty
-
- # Game entity this achievement is about.
- var owner: nullable GameEntity = null
-
- # Init `self` from a `json` object.
- #
- # Used to load achievements from storage.
- init from_json(game: Game, json: JsonObject) do
- init(game,
- json["id"].as(String),
- json["name"].as(String),
- json["desc"].as(String),
- json["reward"].as(Int))
- end
-
- redef fun to_json_object do
- var json = super
- json["id"] = id
- json["name"] = name
- json["desc"] = desc
- json["reward"] = reward
- json["game"] = game.key
- var owner = self.owner
- if owner != null then json["owner"] = owner.key
- return json
- end
-end
-
-redef class Player
- # Unlocks an achievement for this Player based on a GithubEvent.
- #
- # Register the achievement and adds the achievement reward to the player
- # nitcoins.
- #
- # Do nothing is this player has already unlocked the achievement.
- #
- # TODO: add abstraction so achievements do not depend on GithubEvent.
- fun unlock_achievement(a: Achievement, event: GithubEvent) do
- if has_achievement(a) then return
- nitcoins += a.reward
- add_achievement(a)
- trigger_unlock_event(a, event)
- save
- end
-
- # Create a new event that marks the achievement unlocking.
- fun trigger_unlock_event(achievement: Achievement, event: GithubEvent) do
- var obj = new JsonObject
- obj["player"] = name
- obj["reward"] = achievement.reward
- obj["achievement"] = achievement.id
- obj["github_event"] = event
- var ge = new GameEvent(game, "achievement_unlocked", obj)
- add_event(ge)
- game.add_event(ge)
- achievement.add_event(ge)
- end
-end
-
-# `GameReactor` dedicated to achievements unlocking.
-interface AchievementReactor
- super GameReactor
-
- # Unic ID of the achievement this reactor unlocks.
- fun id: String is abstract
-
- # Name of the achievement this reactor unlocks.
- fun name: String is abstract
-
- # Description of the achievement this reactor unlocks.
- fun desc: String is abstract
-
- # Amount of nitcoins rewarded for unlocking the achievement.
- fun reward: Int is abstract
-
- # Return a new instance of the achievement to unlock.
- fun new_achievement(game: Game): Achievement do
- var achievement = new Achievement(game, id, name, desc, reward)
- game.add_achievement(achievement)
- return achievement
- end
-end
-
-#####################
-### Issues
-#####################
-
-# Unlock achievement after X issues.
-#
-# Used to factorize behavior.
-abstract class PlayerXIssues
- super AchievementReactor
-
- # Number of PR required to unlock the achievement.
- var threshold: Int is noinit
-
- redef fun react_event(game, event) do
- if not event isa IssuesEvent then return
- if not event.action == "opened" then return
- var player = event.issue.user.player(game)
- if player.stats["issues"] == threshold then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Player open his first issue.
-class Player1Issue
- super PlayerXIssues
-
- redef var id = "player_1_issue"
- redef var name = "First complaint"
- redef var desc = "Open your first issue."
- redef var reward = 10
- redef var threshold = 1
-end
-
-# Player open 100 issues.
-class Player100Issues
- super PlayerXIssues
-
- redef var id = "player_100_issues"
- redef var name = "Mature whiner"
- redef var desc = "Open 100 issues in the game."
- redef var reward = 100
- redef var threshold = 100
-end
-
-# Player open 1 000 issues.
-class Player1KIssues
- super PlayerXIssues
-
- redef var id = "player_1000_issues"
- redef var name = "You, sir, complain a lot"
- redef var desc = "Open 1000 issues in the game."
- redef var reward = 1000
- redef var threshold = 1000
-end
-
-# Player open an issue about nitdoc.
-class IssueAboutNitdoc
- super AchievementReactor
-
- redef var id = "issue_about_nitdoc"
- redef var name = "Say nitdoc again, I double dare you!"
- redef var desc = "Open an issue with \"nitdoc\" in the title."
- redef var reward = 10
-
- redef fun react_event(game, event) do
- if not event isa IssuesEvent then return
- if not event.action == "opened" then return
- var player = event.issue.user.player(game)
- var re = "nitdoc".to_re
- re.ignore_case = true
- if event.issue.title.has(re) then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Player open an issue about FFI.
-class IssueAboutFFI
- super PlayerXIssues
-
- redef var id = "issue_about_ffi"
- redef var name = "Polyglot what?"
- redef var desc = "Open an issue with `ffi` in the title."
- redef var reward = 10
-
- redef fun react_event(game, event) do
- if not event isa IssuesEvent then return
- if not event.action == "opened" then return
- var player = event.issue.user.player(game)
- var re = "\\bffi\\b".to_re
- re.ignore_case = true
- if event.issue.title.has(re) then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-#####################
-### Pull requests
-#####################
-
-# Unlock achievement after X pull requests.
-#
-# Used to factorize behavior.
-abstract class PlayerXPulls
- super AchievementReactor
-
- # Number of PR required to unlock the achievement.
- var threshold: Int is noinit
-
- redef fun react_event(game, event) do
- if not event isa PullRequestEvent then return
- if not event.action == "opened" then return
- var player = event.pull.user.player(game)
- if player.stats["pulls"] == threshold then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Open your first pull request.
-class Player1Pull
- super PlayerXPulls
-
- redef var id = "player_1_pull"
- redef var name = "First PR"
- redef var desc = "Open your first pull request."
- redef var reward = 10
- redef var threshold = 1
-end
-
-# Author 100 pull requests.
-class Player100Pulls
- super PlayerXPulls
-
- redef var id = "player_100_pulls"
- redef var name = "100 pull requests!!!"
- redef var desc = "Open 100 pull requests in the game."
- redef var reward = 100
- redef var threshold = 100
-end
-
-# Author 1000 pull requests.
-class Player1KPulls
- super PlayerXPulls
-
- redef var id = "player_1000_pulls"
- redef var name = "1000 PULL REQUESTS!!!"
- redef var desc = "Open 1000 pull requests in the game."
- redef var reward = 1000
- redef var threshold = 1000
-end
-
-#####################
-### Commits
-#####################
-
-# Unlock achievement after X merged commits.
-#
-# Used to factorize behavior.
-abstract class PlayerXCommits
- super AchievementReactor
-
- # Number of PR required to unlock the achievement.
- var threshold: Int is noinit
-
- redef fun react_event(game, event) do
- if not event isa PullRequestEvent then return
- if not event.action == "closed" then return
- if not event.pull.merged then return
- var player = event.pull.user.player(game)
- if player.stats["commits"] >= threshold then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Author your first commit in the game.
-class Player1Commit
- super PlayerXCommits
-
- redef var id = "player_1_commit"
- redef var name = "First blood"
- redef var desc = "Author your first commit in the game."
- redef var reward = 10
- redef var threshold = 1
-end
-
-# Author 100 commits.
-class Player100Commits
- super PlayerXCommits
-
- redef var id = "player_100_commits"
- redef var name = "100 commits"
- redef var desc = "Author 100 commits in the game."
- redef var reward = 100
- redef var threshold = 100
-end
-
-# Author 1 000 commits.
-class Player1KCommits
- super PlayerXCommits
-
- redef var id = "player_1000_commits"
- redef var name = "1000 commits!!!"
- redef var desc = "Author 1000 commits in the game."
- redef var reward = 1000
- redef var threshold = 1000
-end
-
-# Author 10 000 commits.
-class Player10KCommits
- super PlayerXCommits
-
- redef var id = "player_10000_commits"
- redef var name = "10000 COMMITS!!!"
- redef var desc = "Author 10000 commits in the game."
- redef var reward = 10000
- redef var threshold = 10000
-end
-
-#####################
-### Issue Comments
-#####################
-
-# Unlock achievement after X issue comments.
-#
-# Used to factorize behavior.
-abstract class PlayerXComments
- super AchievementReactor
-
- # Number of comments required to unlock the achievement.
- var threshold: Int is noinit
-
- redef fun react_event(game, event) do
- if not event isa IssueCommentEvent then return
- if not event.action == "created" then return
- var player = event.comment.user.player(game)
- if player.stats["comments"] == threshold then
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Player author his first comment in issues.
-class Player1Comment
- super PlayerXComments
-
- redef var id = "player_1_comment"
- redef var name = "From lurker to member"
- redef var desc = "Comment on an issue."
- redef var reward = 10
- redef var threshold = 1
-end
-
-# Player author 100 issue comments.
-class Player100Comments
- super PlayerXComments
-
- redef var id = "player_100_comments"
- redef var name = "Chatter"
- redef var desc = "Comment 100 times on issues."
- redef var reward = 100
- redef var threshold = 100
-end
-
-# Player author 1000 issue comments.
-class Player1KComments
- super PlayerXComments
-
- redef var id = "player_1000_comments"
- redef var name = "You sir, talk a lot!"
- redef var desc = "Comment 1000 times on issues."
- redef var reward = 1000
- redef var threshold = 1000
-end
-
-# Ping @privat in a comment.
-class PlayerPingGod
- super AchievementReactor
-
- redef var id = "player_ping_god"
- redef var name = "Ping god"
- redef var desc = "Ping the owner of the repo for the first time."
- redef var reward = 50
-
- redef fun react_event(game, event) do
- if not event isa IssueCommentEvent then return
- var owner = game.repo.owner.login
- if event.comment.body.has("@{owner}".to_re) then
- var player = event.comment.user.player(game)
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Give your first +1
-class PlayerFirstReview
- super AchievementReactor
-
- redef var id = "player_first_review"
- redef var name = "First +1"
- redef var desc = "Give a +1 for the first time."
- redef var reward = 10
-
- redef fun react_event(game, event) do
- if not event isa IssueCommentEvent then return
- # FIXME use a more precise way to locate reviews
- if event.comment.is_ack then
- var player = event.comment.user.player(game)
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
-
-# Talk about nitcoin in issue comments.
-class PlayerSaysNitcoin
- super AchievementReactor
-
- redef var id = "player_says_nitcoin"
- redef var name = "Talking about money"
- redef var desc = "Say something about nitcoins in a comment."
- redef var reward = 10
-
- redef fun react_event(game, event) do
- if not event isa IssueCommentEvent then return
- if event.comment.body.has("(n|N)itcoin".to_re) then
- var player = event.comment.user.player(game)
- var a = new_achievement(game)
- player.unlock_achievement(a, event)
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# `nitrpg` game events.
-#
-# In this module we introduce the concept of `GameEvent`.
-# They can be attached to every GameEntities.
-module events
-
-import game
-
-redef class GameEntity
-
- # Register a new game event for this entity.
- fun add_event(event: GameEvent) do
- event.owner = self
- event.save
- end
-
- # List all events registered in this entity.
- #
- # This list is reloaded from game data each time its called.
- #
- # To add events see `add_event`.
- fun load_events: Array[GameEvent] do
- var req = new JsonObject
- req["game"] = game.key
- req["owner"] = key
- var res = new Array[GameEvent]
- for obj in game.db.collection("events").find_all(req) do
- res.add new GameEvent.from_json(game, obj)
- end
- (new EventTimeComparator).sort(res)
- return res
- end
-
- # Load the event from its `id`.
- #
- # Looks for the event save file in game data.
- # Returns `null` if the event cannot be found.
- fun load_event(id: String): nullable GameEvent do
- var req = new JsonObject
- req["game"] = game.key
- req["owner"] = key
- req["internal_id"] = id
- var res = game.db.collection("events").find(req)
- if res != null then return new GameEvent.from_json(game, res)
- return null
- end
-end
-
-# An event that occurs in the `Game`.
-class GameEvent
- super GameEntity
-
- redef var collection_name = "events"
-
- redef var game
-
- # Entity this event belongs to.
- var owner: nullable GameEntity = null
-
- # String used to dissociate events in the display.
- var kind: String
-
- # GameEvents have raw data associated to them.
- #
- # These data are stored in a JsonObject.
- var data: JsonObject is writable
-
- # GameEvent uniq id used for storage.
- var internal_id: String is noinit
-
- redef var key = internal_id is lazy
-
- # Date and time of the event.
- var time: ISODate is noinit, writable
-
- # An event initialized at now `time`.
- init do
- internal_id = "{get_time}{object_id}{100.rand}"
- time = new ISODate
- end
-
- # Init `self` from a `json` object.
- #
- # Used to load events from json storage.
- init from_json(game: Game, json: JsonObject) do
- init(game, json["kind"].as(String), json["data"].as(JsonObject))
- internal_id = json["internal_id"].as(String)
- time = new ISODate.from_string(json["time"].as(String))
- end
-
- redef fun to_json_object do
- var json = new JsonObject
- json["internal_id"] = internal_id.to_s
- json["kind"] = kind
- json["time"] = time.to_s
- json["data"] = data
- json["game"] = game.key
- var owner = self.owner
- if owner != null then json["owner"] = owner.key
- return json
- end
-end
-
-# Compare `GameEvent` to sort them from the most recent to the older.
-class EventTimeComparator
- super Comparator
-
- redef type COMPARED: GameEvent
-
- redef fun compare(a, b) do return b.time <=> a.time
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate Github events from repo data.
-#
-# Mainly used for testing and history importation.
-module events_generator
-
-import github::events
-
-# Github events generator
-#
-# Generates events from repo data.
-class EventsGenerator
-
- # API client used to get github data.
- var api: GithubAPI
-
- # Gen a fake id for events
- fun gen_event_id: String do return get_time.to_s
-
- # Issues
-
- # Generate a new IssuesEvent from an issue.
- fun issues_event(repo: Repo, action: String, issue: Issue): IssuesEvent do
- return new IssuesEvent(gen_event_id, action, repo, issue)
- end
-
- # Generate a new IssuesEvent with an `opened` action.
- fun issue_open(repo: Repo, issue: Issue): IssuesEvent do
- return issues_event(repo, "opened", issue)
- end
-
- # Generate a new IssuesEvent with an `closed` action.
- fun issue_close(repo: Repo, issue: Issue): IssuesEvent do
- return issues_event(repo, "closed", issue)
- end
-
- # Generate a new IssuesEvent with an `reopened` action.
- fun issue_reopen(repo: Repo, issue: Issue): IssuesEvent do
- return issues_event(repo, "reopened", issue)
- end
-
- # Generate a new IssuesEvent from a IssueEvent.
- fun issue_raw_event(repo: Repo, issue: Issue, event: IssueEvent): IssuesEvent do
- return new IssuesEvent(event.id.to_s, event.event, repo, issue, event.labl, event.assignee)
- end
-
- # Generate a new IssueCommentEvent from a IssueComment.
- fun issue_comment_event(repo: Repo, issue: Issue, comment: IssueComment): IssueCommentEvent do
- return new IssueCommentEvent(gen_event_id, "created", repo, issue, comment)
- end
-
- # Pull requests
-
- # Generate a new PullRequestEvent from a `pull` request.
- fun pull_event(repo: Repo, action: String, pull: PullRequest): PullRequestEvent do
- return new PullRequestEvent(gen_event_id, action, repo, pull.number, pull)
- end
-
- # Generate a new PullRequestEvent with an `opened` action.
- fun pull_open(repo: Repo, pull: PullRequest): PullRequestEvent do
- return pull_event(repo, "opened", pull)
- end
-
- # Generate a new PullRequestEvent with an `closed` action.
- fun pull_close(repo: Repo, pull: PullRequest): PullRequestEvent do
- return pull_event(repo, "closed", pull)
- end
-
- # Generate a new PullRequestEvent with an `reopened` action.
- fun pull_reopen(repo: Repo, pull: PullRequest): PullRequestEvent do
- return pull_event(repo, "reopened", pull)
- end
-
- # Generate a new PullRequestEvent from a IssueEvent.
- fun pull_raw_event(repo: Repo, pull: PullRequest, event: IssueEvent): PullRequestEvent do
- return new PullRequestEvent(event.id.to_s, event.event, repo, pull.number, pull)
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# `nitrpg` game structures.
-#
-# Here we define the main game entities:
-#
-# * `Game` holds all the entities for a game and provides high level services.
-# * `Player` represents a `Github::User` which plays the `Game`.
-#
-# Developpers who wants to extend the game capabilities should look at
-# the `GameReactor` abstraction.
-module game
-
-import mongodb
-import github::events
-
-# An entity within a `Game`.
-#
-# All game entities can be saved in a json format.
-interface GameEntity
- # The game instance containing `self`.
- fun game: Game is abstract
-
- # Collection `self` should be saved in.
- fun collection_name: String is abstract
-
- # Uniq key of this entity within the collection.
- fun key: String is abstract
-
- # Saves `self` in db.
- fun save do game.db.collection(collection_name).save(to_json_object)
-
- # Json representation of `self`.
- fun to_json_object: JsonObject do
- var json = new JsonObject
- json["_id"] = key
- return json
- end
-
- # Pretty print `self` to be displayed in a terminal.
- fun pretty: String is abstract
-end
-
-# Holder for game data and main services.
-#
-# Game is a `GameEntity` so it can be saved.
-class Game
- super GameEntity
-
- redef fun game do return self
-
- # We need a `GithubAPI` client to load Github data.
- var api: GithubAPI
-
- # A game takes place in a `github::Repo`.
- var repo: Repo
-
- # Game name
- var name: String = repo.full_name is lazy
-
- redef var key = name is lazy
-
- # Mongo server url where this game data are stored.
- var mongo_url = "mongodb://mongo:27017" is writable
-
- # Mongo db client.
- var client = new MongoClient(mongo_url) is lazy
-
- # Mongo db name where this game data are stored.
- var db_name = "nitrpg" is writable
-
- # Mongo db instance for this game.
- var db: MongoDb is lazy do return client.database(db_name)
-
- redef var collection_name = "games"
-
- # Init the Game and try to load saved data.
- init from_mongo(api: GithubAPI, repo: Repo) do
- init(api, repo)
- var req = new JsonObject
- req["name"] = repo.full_name
- var res = db.collection("games").find(req)
- if res != null then from_json(res)
- end
-
- # Init `self` from a JsonObject.
- #
- # Used to load entities from saved data.
- fun from_json(json: JsonObject) do end
-
- redef fun to_json_object do
- var json = super
- json["name"] = name
- return json
- end
-
- # Create a player from a Github `User`.
- #
- # Or return the existing one from game data.
- fun add_player(user: User): Player do
- # check if player already exists
- var player = load_player(user.login)
- if player != null then return player
- # create and store new player
- player = new Player(self, user.login)
- player.save
- return player
- end
-
- # Get a Player from his `name` or null if no player was found.
- #
- # Looks for the player save file in game data.
- #
- # Returns `null` if the player cannot be found.
- # In this case, the player can be created with `add_player`.
- fun load_player(name: String): nullable Player do
- var req = new JsonObject
- req["name"] = name
- req["game"] = game.key
- var res = db.collection("players").find(req)
- if res != null then return new Player.from_json(self, res)
- return null
- end
-
- # List known players.
- #
- # This list is reloaded from game data each time its called.
- #
- # To add players see `add_player`.
- fun load_players: MapRead[String, Player] do
- var req = new JsonObject
- req["game"] = game.key
- var res = new HashMap[String, Player]
- for obj in db.collection("players").find_all(req) do
- var player = new Player.from_json(self, obj)
- res[player.name] = player
- end
- return res
- end
-
- # Return a list of player name associated to their rank in the game.
- fun player_ranking: MapRead[String, Int] do
- var arr = load_players.values.to_a
- var res = new HashMap[String, Int]
- (new PlayerCoinComparator).sort(arr)
- var rank = 1
- for player in arr do
- res[player.name] = rank
- rank += 1
- end
- return res
- end
-
- # Erase all saved data for this game.
- fun clear do db.collection(collection_name).remove(to_json_object)
-
- # Verbosity level used fo stdout.
- #
- # * `-1` quiet
- # * `0` error and warnings
- # * `1` info
- # * `2` debug
- var verbose_lvl = 0 is writable
-
- # Display `msg` if `lvl` >= `verbose_lvl`
- fun message(lvl: Int, msg: String) do
- if lvl > verbose_lvl then return
- print msg
- end
-
- redef fun pretty do
- var res = new FlatBuffer
- res.append "-------------------------\n"
- res.append "{repo.full_name}\n"
- res.append "-------------------------\n"
- res.append "# {load_players.length} players \n"
- return res.write_to_string
- end
-end
-
-# Players can battle on nitrpg for nitcoins and glory.
-#
-# A `Player` is linked to a `Github::User`.
-class Player
- super GameEntity
-
- # Stored in collection `players`.
- redef var collection_name = "players"
-
- redef var game
-
- # FIXME contructor should be private
-
- # Player name.
- #
- # This is the unic key for this player.
- # Should be equal to the associated `Github::User::login`.
- #
- # The name is also used to load the user data lazilly from Github API.
- var name: String
-
- redef var key = name is lazy
-
- # Player amount of nitcoins.
- #
- # Nitcoins is the currency used in nitrpg.
- # They can be obtained by performing actions on the `Game::Repo`.
- var nitcoins: Int = 0 is public writable
-
- # `Github::User` linked to this player.
- var user: User is lazy do
- var user = game.api.load_user(name)
- assert user isa User
- return user
- end
-
- # Init `self` from a `json` object.
- #
- # Used to load players from saved data.
- init from_json(game: Game, json: JsonObject) do
- init(game, json["name"].as(String))
- nitcoins = json["nitcoins"].as(Int)
- end
-
- redef fun to_json_object do
- var json = super
- json["game"] = game.key
- json["name"] = name
- json["nitcoins"] = nitcoins
- return json
- end
-
- redef fun pretty do
- var res = new FlatBuffer
- res.append "-- {name} ({nitcoins} $)\n"
- return res.write_to_string
- end
-
- redef fun to_s do return name
-end
-
-redef class User
- # The player linked to `self`.
- fun player(game: Game): Player do
- var player = player_cache.get_or_null(game)
- if player != null then return player
- player = game.load_player(login)
- if player == null then player = game.add_player(self)
- player_cache[game] = player
- return player
- end
-
- private var player_cache = new HashMap[Game, Player]
-end
-
-# A GameReactor reacts to event sent by a `Github::HookListener`.
-#
-# Subclasses of `GameReactor` are implemented to handle all kind of
-# `GithubEvent`.
-# Depending on the received event, the reactor is used to update game data.
-#
-# Reactors are mostly used with a `Github::HookListener` that dispatchs received
-# events from the Github API.
-#
-# Example:
-#
-# ~~~
-# import github::hooks
-#
-# # Reactor that prints received events in console.
-# class PrintReactor
-# super GameReactor
-#
-# redef fun react_event(game, e) do print e
-# end
-#
-# # Hook listener that redirect events to reactors.
-# class RpgHookListener
-# super HookListener
-#
-# redef fun apply_event(event) do
-# var game = new Game(api, event.repo)
-# var reactor = new PrintReactor
-# reactor.react_event(game, event)
-# end
-# end
-# ~~~
-#
-# See module `reactors` and `listener` for more examples.
-interface GameReactor
-
- # Reacts to this `event` and update `game` accordingly.
- #
- # Concrete `GameReactor` implement this method to update game data
- # for each specific GithubEvent.
- fun react_event(game: Game, event: GithubEvent) is abstract
-end
-
-# utils
-
-# Sort games by descending number of players.
-#
-# The first in the list is the game with the more players.
-class GamePlayersComparator
- super Comparator
-
- redef type COMPARED: Game
-
- redef fun compare(a, b) do
- return b.load_players.length <=> a.load_players.length
- end
-end
-
-# Sort players by descending number of nitcoins.
-#
-# The first in the list is the player with the more of nitcoins.
-class PlayerCoinComparator
- super Comparator
-
- redef type COMPARED: Player
-
- redef fun compare(a, b) do return b.nitcoins <=> a.nitcoins
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This tool is runned to listen to `Github::Event` and update the game.
-module listener
-
-import reactors
-import achievements
-import github::hooks
-
-# `HookListener` that redirects events to a `Game` instance.
-class RpgHookListener
- super HookListener
-
- # Registered reactors list.
- var reactors = new Array[GameReactor]
-
- # Dispatch event to registered `reactors`.
- redef fun apply_event(event) do
- var game = new Game(api, event.repo)
- # TODO handle verbosity with opts
- game.verbose_lvl = 1
- game.message(1, "Received event {event} for {game.repo.full_name}")
- for reactor in reactors do
- game.message(2, "Apply reactor {reactor} on {event}")
- reactor.react_event(game, event)
- end
- end
-
- # Register a reactor for this listener.
- fun add_reactor(reactors: GameReactor...) do self.reactors.add_all reactors
-end
-
-if args.length != 2 then
- print "Error: missing argument"
- print ""
- print "Usage:"
- print "listener <host> <port>"
- exit 1
-end
-
-var host = args[0]
-var port = args[1].to_i
-
-var api = new GithubAPI(get_github_oauth)
-
-var l = new RpgHookListener(api, host, port)
-l.add_reactor(new StatisticsReactor, new PlayerReactor)
-l.add_reactor(new Player1Issue, new Player100Issues, new Player1KIssues)
-l.add_reactor(new Player1Pull, new Player100Pulls, new Player1KPulls)
-l.add_reactor(new Player1Commit, new Player100Commits, new Player1KCommits)
-l.add_reactor(new IssueAboutNitdoc, new IssueAboutFFI)
-l.add_reactor(new Player1Comment, new Player100Comments, new Player1KComments)
-l.add_reactor(new PlayerPingGod, new PlayerFirstReview, new PlayerSaysNitcoin)
-
-print "Listening events on {host}:{port}"
-l.listen
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Various implementations of `GameReactor` can be found here.
-module reactors
-
-import events
-
-# Reacts to event that can affect players (like giving nitcoins).
-class PlayerReactor
- super GameReactor
-
- # Nitcoins rewarded when the player opens a new pull request.
- var nc_pull_open = 10
-
- # Nitcoins rewarded when the player reviews a pull request.
- var nc_pull_review = 2
-
- # Nitcoins rewarded when the player has a commit merged.
- var nc_commit_merged = 1
-
- redef fun react_event(game, e) do e.react_player_event(self, game)
-end
-
-redef class GithubEvent
- # Reacts to a player related event.
- #
- # Called by `PlayerReactor::react_event`.
- # No-op by default.
- private fun react_player_event(reactor: PlayerReactor, game: Game) do end
-
- # Generates a GameEvent preinitialized for a reward event.
- private fun player_reward_event(kind: String, player: Player, reward: Int): GameEvent do
- var obj = new JsonObject
- obj["player"] = player.name
- obj["reward"] = reward
- obj["github_event"] = self
- var event = new GameEvent(player.game, kind, obj)
- player.game.add_event(event)
- return event
- end
-end
-
-redef class PullRequestEvent
-
- # Rewards player for opened pull requests.
- redef fun react_player_event(r, game) do
- if action == "opened" or action == "reopened" then
- react_pull_open(r, game)
- else if action == "closed" then
- react_pull_close(r, game)
- end
- end
-
- private fun react_pull_open(r: PlayerReactor, game: Game) do
- var player = pull.user.player(game)
- player.nitcoins += r.nc_pull_open
- player.save
- var event = player_reward_event("pull_open", player, r.nc_pull_open)
- player.add_event(event)
- end
-
- private fun react_pull_close(r: PlayerReactor, game: Game) do
- var player = pull.user.player(game)
- var reward
- var event
- if pull.merged then
- reward = pull.commits * r.nc_commit_merged
- event = player_reward_event("pull_merged", player, reward)
- else
- reward = -r.nc_pull_open
- event = player_reward_event("pull_closed", player, reward)
- end
- player.nitcoins += reward
- player.save
- player.add_event(event)
- end
-end
-
-redef class IssueCommentEvent
-
- # Rewards player for review comments.
- #
- # TODO only give nitcoins if reviewers < 2
- # TODO give more points to first reviewer
- redef fun react_player_event(r, game) do
- if comment.is_ack then
- react_player_review(r, game)
- end
- end
-
- # TODO same player should not be authorized to review multiple times? How to handle rerols?
- private fun react_player_review(r: PlayerReactor, game: Game) do
- if issue.state == "closed" then return
- var player = comment.user.player(game)
- if issue.user == player.user then return
- player.nitcoins += r.nc_pull_review
- player.save
- var event = player_reward_event("pull_review", player, r.nc_pull_review)
- player.add_event(event)
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Statistics about the Game.
-#
-# This module uses `GameReactor` to extract statistics about the game from
-# triggered `Github::Event`.
-module statistics
-
-import game
-import github::hooks
-import counter
-
-redef class GameEntity
-
- # Statistics manager for this entity.
- fun stats: GameStatsManager is abstract
-end
-
-redef class Game
-
- redef var stats is lazy do return new GameStatsManager(game, self)
-
- redef fun pretty do
- var res = new FlatBuffer
- res.append super
- res.append "# stats:\n"
- res.append stats.pretty
- return res.write_to_string
- end
-
- redef fun save do
- super
- stats.save
- end
-end
-
-redef class Player
-
- redef var stats is lazy do return new GameStatsManager(game, self)
-
- redef fun nitcoins do return stats["nitcoins"]
- redef fun nitcoins=(nc) do stats["nitcoins"] = nc
-
- redef fun pretty do
- var res = new FlatBuffer
- res.append super
- res.append "# stats:\n"
- res.append stats.pretty
- return res.write_to_string
- end
-
- redef fun save do
- super
- stats.save
- end
-end
-
-# Store game stats for defined period.
-class GameStatsManager
- super GameEntity
- super Counter[String]
-
- redef var game
-
- # The GameEntity monitored by these statistics.
- var owner: GameEntity
-
- # Current date to extract stats
- private var date = new Tm.gmtime
-
- # Returns the `GameStats` instance for the overall statistics.
- var overall: GameStats = load_stats_for("all") is lazy
-
- # Returns the `GameStats` instance for the current year statistics.
- var yearly: GameStats = load_stats_for(date.strftime("%Y")) is lazy
-
- # Returns the `GameStats` instance for the current month statistics.
- var monthly: GameStats = load_stats_for(date.strftime("%Y-%m")) is lazy
-
- # Returns the `GameStats` instance for the current day statistics.
- var daily: GameStats = load_stats_for(date.strftime("%Y-%m-%d")) is lazy
-
- # Returns the `GameStats` instance for the current week statistics.
- var weekly: GameStats = load_stats_for(date.strftime("%Y-W%U")) is lazy
-
- # Load statistics for a `period` key.
- fun load_stats_for(period: String): GameStats do
- var req = new JsonObject
- req["period"] = period
- req["owner"] = owner.key
- var obj = game.db.collection("statistics").find(req)
- if obj isa JsonObject then
- return new GameStats.from_json(game, period, owner, obj)
- else
- return new GameStats(game, period, owner)
- end
- end
-
- redef fun [](key) do return overall[key]
-
- redef fun []=(key, value) do
- overall[key] = value
- yearly[key] = value
- monthly[key] = value
- daily[key] = value
- weekly[key] = value
- end
-
- redef fun inc(e) do
- overall.inc(e)
- yearly.inc(e)
- monthly.inc(e)
- daily.inc(e)
- weekly.inc(e)
- end
-
- redef fun dec(e) do
- overall.dec(e)
- yearly.dec(e)
- monthly.dec(e)
- daily.dec(e)
- weekly.dec(e)
- end
-
- redef fun save do
- overall.save
- yearly.save
- monthly.save
- daily.save
- weekly.save
- end
-
- redef fun pretty do return overall.pretty
-end
-
-# Game statistics structure that can be saved as a `GameEntity`.
-class GameStats
- super GameEntity
- super Counter[String]
-
- redef var game
-
- redef var collection_name = "statistics"
-
- # The period these stats are about.
- var period: String
-
- # The game entity these stats are about.
- var owner: GameEntity
-
- redef var key = "{owner.key}-{period}" is lazy
-
- # Load `self` from saved data.
- init from_json(game: Game, period: String, owner: GameEntity, json: JsonObject) do
- init(game, period, owner)
- var values = json.get_or_null("values")
- if not values isa JsonObject then return
- for k, v in values do self[k] = v.as(Int)
- end
-
- redef fun to_json_object do
- var obj = super
- obj["period"] = period
- obj["owner"] = owner.key
- var values = new JsonObject
- values.add_all(self)
- obj["values"] = values
- return obj
- end
-
- redef fun pretty do
- var res = new FlatBuffer
- for k, v in self do
- res.append "# {v} {k}\n"
- end
- return res.write_to_string
- end
-end
-
-# `GameReactor` that computes statistics about the game.
-class StatisticsReactor
- super GameReactor
-
- redef fun react_event(game, e) do e.react_stats_event(game)
-end
-
-redef class GithubEvent
- # Reacts to a statistics related event.
- #
- # Called by `StatisticsReactor::react_event`.
- # No-op by default.
- private fun react_stats_event(game: Game) do end
-end
-
-redef class IssuesEvent
-
- # Count opened and closed issues.
- redef fun react_stats_event(game) do
- var player = issue.user.player(game)
- if action == "opened" then
- game.stats.inc("issues")
- game.stats.inc("issues_open")
- game.save
- player.stats.inc("issues")
- player.stats.inc("issues_open")
- player.save
- else if action == "reopened" then
- game.stats.inc("issues_open")
- game.save
- player.stats.inc("issues_open")
- player.save
- else if action == "closed" then
- game.stats.dec("issues_open")
- game.save
- player.stats.dec("issues_open")
- player.save
- end
- end
-end
-
-redef class PullRequestEvent
-
- # Count opened and closed pull requests.
- redef fun react_stats_event(game) do
- var player = pull.user.player(game)
- if action == "opened" then
- game.stats.inc("pulls")
- game.stats.inc("pulls_open")
- game.save
- player.stats.inc("pulls")
- player.stats.inc("pulls_open")
- player.save
- else if action == "reopened" then
- game.stats.inc("pulls_open")
- game.save
- player.stats.inc("pulls_open")
- player.save
- else if action == "closed" then
- game.stats.dec("pulls_open")
- player.stats.dec("pulls_open")
- if pull.merged then
- game.stats["commits"] += pull.commits
- player.stats["commits"] += pull.commits
- end
- game.save
- player.save
- end
- end
-end
-
-redef class IssueCommentEvent
-
- # Count posted comments
- redef fun react_stats_event(game) do
- if action == "created" then
- var player = comment.user.player(game)
- game.stats.inc("comments")
- player.stats.inc("comments")
- # FIXME use a more precise way to locate reviews
- if comment.is_ack then
- game.stats.inc("reviews")
- player.stats.inc("reviews")
- end
- game.save
- player.save
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Panels templates for `nitpg`.
-module panels
-
-import templates_events
-import markdown
-
-# A panel can be displayed in a html page.
-#
-# This display a Bootstrap panel.
-class Panel
- super Template
-
- redef fun rendering do
- add """<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">"""
- render_title
- add """ </h3>
- </div>
- <div class="panel-body">"""
- render_body
- add """</div>
- </div>"""
- end
-
- # Render the panel title.
- # Betweem `<h4>` tags.
- fun render_title do end
-
- # Render the panel body.
- fun render_body do end
-end
-
-# A panel that contain only a table as body.
-class TablePanel
- super Panel
-
- redef fun rendering do
- add """<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">"""
- render_title
- add """
- </h3>
- </div>"""
- render_body
- add """</div>"""
- end
-end
-
-# Display an error message within a panel.
-class ErrorPanel
- super Panel
-
- redef fun rendering do
- add """
-<div class="panel panel-danger">
- <div class="panel-heading">
- <h3 class="panel-title">"""
- render_title
- add """
- </h3>
- </div>
- <div class="panel-body">"""
- render_body
- add """
- </div>
-</div>
-"""
- end
-
- # The error message to display as panel body.
- var msg: String
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-warning-sign\"></span> "
- add "Error"
- end
-
- redef fun render_body do
- add msg.html_escape
- end
-
-end
-
-# A panel that display a markdown content rendered as HTML.
-class MDPanel
- super Panel
-
- # Markdown text to display.
- var text: String
-
- redef fun rendering do
- add """<div class="panel">
- <div class="panel-body">{{{text.md_to_html}}}</div>
- </div>"""
- end
-end
-
-# Display a list of active game.
-#
-# Used for NitRPG homepage.
-class GamesShortListPanel
- super Panel
-
- # Root url used for links.
- var root_url: String
-
- # List of NitRPG games to display.
- var games: Array[Game]
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-home\"></span> "
- add "<a href=\"{root_url}/games\">Active games</a>"
- end
-
- redef fun render_body do
- if games.is_empty then
- add "<em>No game yet...</em>"
- return
- end
- var sorted = games.to_a
- (new GamePlayersComparator).sort(sorted)
- for game in sorted do
- add "{game.link} ({game.load_players.length} players)<br>"
- end
- end
-end
-
-# A panel that display a list of player in a repo.
-class GamesListPanel
- super GamesShortListPanel
- super TablePanel
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-home\"></span> "
- add "<a href=\"{root_url}/games\">Active games</a>"
- end
-
- redef fun render_body do
- if games.is_empty then
- add "<div class=\"panel-body\">"
- add "<em>No player yet...</em>"
- add "</div>"
- return
- end
- var sorted = games.to_a
- (new GamePlayersComparator).sort(sorted)
- add """<table class="table table-striped table-hover">
- <tr>
- <th>Game</th>
- <th>Players</th>
- <th>Achievements</th>
- </tr>"""
- for game in sorted do
- add "<tr>"
- add " <td>{game.link}</td>"
- add " <td>{game.load_players.length}</td>"
- add " <td>{game.load_achievements.length}</td>"
- add "</tr>"
- end
- add "</table>"
- end
-end
-
-# A panel that display repo statistics.
-class GameStatusPanel
- super Panel
-
- # Repo to display.
- var game: Game
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-home\"></span> "
- add "{game.link}"
- end
-
- redef fun render_body do
- add "<strong class=\"text-success\">{game.load_players.length}</strong>"
- add " <a href=\"{game.url}/players\">players</a><br>"
- add "<strong class=\"text-success\">{game.stats["achievements"]}</strong>"
- add " <a href=\"{game.url}/achievements\">achievements</a><br><br>"
- add "<strong class=\"text-success\">{game.stats["pulls"]}</strong> pull requests"
- add " (<strong>{game.stats["pulls_open"]}</strong> open)<br>"
- add "<strong class=\"text-success\">{game.stats["issues"]}</strong> issues"
- add " (<strong>{game.stats["issues_open"]}</strong> open)<br>"
- add "<strong class=\"text-success\">{game.stats["commits"]}</strong> commits"
- end
-end
-
-# Player status panel.
-class PlayerStatusPanel
- super Panel
-
- # Game instance.
- var game: Game
-
- # Target player.
- var player: Player
-
- redef fun render_title do
- add "<a href=\"{player.url}\">"
- add " <img class=\"img-circle\" style=\"width: 30px\""
- add " src=\"{player.user.avatar_url or else "#"}\" alt=\"{player.name}\">"
- add "</a> {player.link}"
- end
-
- redef fun render_body do
- var ranking = game.player_ranking
- # TODO player.rank
- add "<p class=\"lead\">ranked "
- add " <span class=\"text-success\"># {ranking[player.name]}</span></p>"
- add "<strong class=\"text-success\">{player.nitcoins}</strong> nitcoins<br><br>"
- add "<strong class=\"text-success\">{player.stats["achievements"]}</strong> achievements<br><br>"
- add "<strong>{player.stats["pulls"]}</strong> pull requests<br>"
- add "<strong>{player.stats["issues"]}</strong> issues<br>"
- add "<strong>{player.stats["commits"]}</strong> commits"
- end
-end
-
-# A panel that display a list of player in a repo.
-class ShortListPlayersPanel
- super Panel
-
- # Game instance.
- var game: Game
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-user\"></span> "
- add "<a href=\"{game.url}/players\">Players</a>"
- end
-
- redef fun render_body do
- var players = game.load_players.values.to_a
- if players.is_empty then
- add "<em>No player yet...</em>"
- return
- end
- (new PlayerCoinComparator).sort(players)
- for player in players do
- add "{player.nitcoins} - {player.link}<br>"
- end
- end
-end
-
-# A panel that display a list of player in a repo.
-class ListPlayersPanel
- super TablePanel
-
- # Game instance.
- var game: Game
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-user\"></span> "
- add "<a href=\"{game.url}/players\">Players</a>"
- end
-
- redef fun render_body do
- var players = game.load_players.values.to_a
- (new PlayerCoinComparator).sort(players)
- if players.is_empty then
- add "<div class=\"panel-body\">"
- add "<em>No player yet...</em>"
- add "</div>"
- return
- end
- add """<table class="table table-striped table-hover">
- <tr>
- <th>#</th>
- <th>Player</th>
- <th>Nitcoins</th>
- </tr>"""
- var rank = 1
- for player in players do
- add "<tr>"
- add " <td>{rank}</td>"
- add " <td>{player.link}</td>"
- add " <td>{player.nitcoins}</td>"
- add "</tr>"
- rank += 1
- end
- add "</table>"
- end
-end
-
-# A panel that display the podium.
-class PodiumPanel
- super Panel
-
- # Game instance.
- var game: Game
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-stats\"></span> Hall of fame"
- end
-
- redef fun render_body do
- var players = game.load_players.values.to_a
- (new PlayerCoinComparator).sort(players)
- if players.is_empty then
- add "<em>No players yet...</em>"
- return
- end
- add """
- <div class="container-fluid">
- <div id="podium" class="row row-sm-height">"""
- var max = players.first.nitcoins
- var orders = [3, 1, 0, 2, 4]
- for order in orders do
- if order >= players.length then continue
- var player = players[order]
- var size = 0
- if max > 0 then size = player.nitcoins * 300 / max
- add """
- <div class="col-xs-2 col-xs-height col-xs-offset-{{{order}}} col-bottom"
- style="text-align: center;">
- <p>
- <a href="{{{player.url}}}">
- <img class="img-circle" style="width: 80px"
- src="{{{player.user.avatar_url or else "#"}}}" alt="{{{player.name}}}">
- </a>
- </p>
- <p>{{{player.link}}}</p>
- <p>{{{player.nitcoins}}}</p>
- <div class=" progress-bar-warning progress-bar-striped"
- style="height: {{{size}}}px;"></div>
- </div>"""
- end
- add """
- </div>
- </div>"""
- end
-end
-
-# A `Panel` that displays the list of PR to review for a `Player`.
-class PlayerReviewsPanel
- super Panel
-
- # Repo to display.
- var game: Game
-
- # Player to display customized list for.
- var player: Player
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-check\"></span> "
- add "Review pull requests and comment issues to gain nitcoins!"
- end
-
- redef fun render_body do
- var q = "is:open label:need_review sort:updated-asc " +
- "-involves:{player.name}"
-
- var q2 = "is:open label:request_for_comments sort:updated-asc " +
- "-involves:{player.name}"
-
- var issues = new ArraySet[Issue]
- issues.add_all game.api.search_repo_issues(game.repo, q)
- issues.add_all game.api.search_repo_issues(game.repo, q2)
- if issues.is_empty then
- add "<em>No pull request or issue to review yet...</em>"
- return
- end
- for issue in issues do
- var user = issue.user
- var uplay = user.player(game)
- add """<div class="media">
- <a class="media-left" href="{{{uplay.url}}}">
- <img class=\"img-circle\" style="width:50px"
- src="{{{user.avatar_url or else "#"}}}" alt="{{{uplay.name}}}">
- </a>
- <div class="media-body">
- <h4 class="media-heading">
- {{{issue.link}}} {{{issue.title}}}
- </h4>
- <span class="text-muted">opened by </span>
- {{{uplay.link}}}
- </div>
- </div>"""
- end
- end
-end
-
-# A `Panel` that displays the work assigned or tagged.
-class PlayerWorkPanel
- super Panel
-
- # Repo to display.
- var game: Game
-
- # Player to display customized list for.
- var player: Player
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-check\"></span> "
- add "Do your tasks to gain nitcoins!"
- end
-
- redef fun render_body do
- var q = "is:open label:need_work sort:updated-asc author:{player.name}"
- var q2 = "is:open sort:updated-asc assignee:{player.name}"
-
- var issues = new ArraySet[Issue]
- issues.add_all game.api.search_repo_issues(game.repo, q)
- issues.add_all game.api.search_repo_issues(game.repo, q2)
- if issues.is_empty then
- add "<em>No work to do yet...</em>"
- return
- end
- for issue in issues do
- var user = issue.user
- var uplay = user.player(game)
- add """<div class="media">
- <a class="media-left" href="{{{uplay.url}}}">
- <img class=\"img-circle\" style="width:50px"
- src="{{{user.avatar_url or else "#"}}}" alt="{{{uplay.name}}}">
- </a>
- <div class="media-body">
- <h4 class="media-heading">
- {{{issue.link}}} {{{issue.title}}}
- </h4>
- <span class="text-muted">opened by </span>
- {{{uplay.link}}}
- </div>
- </div>"""
- end
- end
-end
-
-# A `Panel` that displays a pagined list of events stored in the `entity`.
-#
-# This way the panel can be used to view events stored under `Game`, `Player`...
-class EventListPanel
- super Panel
-
- # Entity to load the events from.
- var entity: GameEntity
-
- # Number of events to display.
- var limit: Int
-
- # From where to start?
- var from: Int
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-flash\"></span> "
- add "Last events"
- end
-
- redef fun render_body do
- var events = entity.load_events
- if events.is_empty then
- add "<em>No event yet...</em>"
- return
- end
- # check input
- if limit < 0 then limit = 10
- if from < 0 then from = 0
- # display events
- for i in [from .. from + limit] do
- if i >= events.length then break
- add events[i].tpl_event.media_item
- end
- # pagination
- if limit > events.length then return
- add "<hr>"
- add """<div class="btn-group" role="group">"""
- if from > 0 then
- add """<a class="btn btn-default" role="button"
- href="?pfrom={{{from - limit}}}&plimit={{{limit}}}">
- <span class=\"glyphicon glyphicon-chevron-left\"></span></a>"""
- end
- if from + limit < events.length then
- add """
- <a class="btn btn-default" role="button"
- href="?pfrom={{{from + limit}}}&plimit={{{limit}}}">
- <span class=\"glyphicon glyphicon-chevron-right\"></span></a>"""
- end
- add "</div>"
- end
-end
-
-# Achievement unlocked list panel.
-class AchievementsListPanel
- super Panel
-
- # Entity to load the events from.
- var entity: GameEntity
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-list\"></span> "
- add "Achievements unlocked"
- end
-
- redef fun render_body do
- var achs = entity.load_achievements.values.to_a
- if achs.is_empty then
- add "<em>No achievement yet...</em>"
- return
- end
- for ach in achs do add ach.list_item
- end
-end
-
-# Achievement detail panel.
-class AchievementPanel
- super Panel
-
- # Achievement to display.
- var achievement: Achievement
-
- redef fun render_title do
- add "<span class=\"glyphicon glyphicon-check\"></span> "
- add "Achievement details"
- end
-
- redef fun render_body do
- add """<p class=\"lead\">
- <span class="badge progress-bar-success"
- style="vertical-align: middle">+{{{achievement.reward}}}</span>
- {{{achievement.name}}}
- </p>
- <p><strong>{{{achievement.desc}}}</strong></p>"""
-
- var events = achievement.load_events
-
- if events.is_empty then
- add "<em>Never unlocked...</em>"
- return
- end
-
- var event = events.last
- var tpl = event.tpl_event
- var player = tpl.player
- add "<hr>"
- add """<div class="media">
- <a class="media-left" href="{{{player.url}}}">
- <span class="badge progress-bar-warning" style="position: absolute">#1</span>
- <img class=\"img-circle\" style="width:50px"
- src="{{{player.user.avatar_url or else "#"}}}" alt="{{{player.name}}}">
- </a>
- <div class="media-body">
- <h4 class="media-heading">Unlocked first by {{{player.link}}}</h4>
- <span class="text-muted">at {{{event.time}}} </span>
- </div>
- </div>"""
-
- if events.length > 1 then
- add """<p><br>Also unlocked by <strong class="text-success">
- {{{events.length}}} players</strong>.</p>"""
- end
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Templates that compose the `nitrpg` site.
-module templates
-
-import panels
-
-# A page in the nitrp site.
-class NitRpgPage
- super Template
-
- # URL used as prefix for all the links generated in this page.
- var root_url: String
-
- # Breadcrumbs to this page if any.
- var breadcrumbs: nullable Breadcrumbs = null is public writable
-
- # Panels to display in the sidebar.
- var side_panels = new Array[Panel]
-
- # Panels to display in the page main container.
- var flow_panels = new Array[Panel]
-
- redef fun rendering do
- render_header
- render_footer
- end
-
- # Render the header shared by all pages.
- fun render_header do
- add """
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="UTF-8">
- <title>Github RPG</title>
- <link rel="stylesheet"
- href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
- <link rel="stylesheet" href="{{{root_url}}}/styles/main.css">
- </head>
- <body>
- <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
- <a class="navbar-brand" href="{{{root_url}}}/">Github RPG</a>"""
- if not breadcrumbs == null then
- add breadcrumbs.as(not null)
- end
- add """
- </nav>
- <div class="container-fluid">
- <div class="row">"""
- if not side_panels.is_empty then
- add """<div class="col-xs-3" id="side">"""
- for panel in side_panels do add panel
- add """</div>
- <div class="col-xs-9" id="flow">"""
- else
- add """<div class="col-xs-12" id="flow">"""
- end
- for panel in flow_panels do add panel
- add """ </div>
- </div>
- </div>
-"""
- end
-
- # Render the footer shared by all pages.
- fun render_footer do
- add """
- <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
- </body>
-</html>
-"""
- end
-end
-
-# A Bootstrap breadcrumbs component.
-class Breadcrumbs
- super Template
-
- # Items to display in this breadcrumb.
- var entries = new Array[String]
-
- redef fun rendering do
- add "<ol class=\"breadcrumb\">"
- for entry in entries do
- add "<li>{entry}</li>"
- end
- add "</ol>"
- end
-
- # Add a link to the breadcrumbs.
- fun add_link(href, name: String) do
- entries.add "<a href=\"{href}\">{name}</a>"
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Base HTML rendering templates for `nitpg`.
-module templates_base
-
-import achievements
-
-redef class GameEntity
-
- # Path to this entity from root.
- fun path: String do return collection_name / key
-
- # URL to this game entity page.
- fun url: String do return game.url / path
-end
-
-redef class Game
-
- # Root URL ise used as a prefix for `url`.
- #
- # This must be set before any access to `url`.
- var root_url: String is noinit, writable
-
- redef fun url do return "{root_url}/{path}"
-
- # Return a HTML link to this Game.
- fun link: String do return "<a href=\"{url}\">{name}</a>"
-end
-
-redef class Player
- # Return a HTML link to this Player.
- fun link: String do return "<a href=\"{url}\">{name}</a>"
-end
-
-redef class Issue
- # Return a HTML link to this Issue.
- fun link: String do return "<a href=\"{html_url or else "#"}\">#{number}</a>"
-end
-
-redef class Achievement
- # Return a HTML link to this Issue.
- fun link: String do return "<a href=\"{url}\">{name}</a>"
-
- # Render self as a media item.
- fun list_item: String do
- return """<div class="media">
- <div class="media-left" style="width: 50px">
- <span class="glyphicon glyphicon-check"></span>
- <span class="badge progress-bar-success"
- style="position: absolute; margin-top: 10px;
- margin-left: -5px;">+{{{reward}}}</span>
- </div>
- <div class="media-body">
- <h4 class="media-heading">{{{link}}}</h4>
- <span class="text-muted">{{{desc}}}</span>
- </div>
- </div>"""
-
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Templates to display `GameEvent` kinds.
-module templates_events
-
-import achievements
-import templates_base
-
-redef class GameEvent
- # See `TplEvent`
- fun tpl_event: TplEvent do
- if kind == "pull_open" then
- return new TplPullOpened(self)
- else if kind == "pull_merged" then
- return new TplPullMerged(self)
- else if kind == "pull_review" then
- return new TplPullReview(self)
- else if kind == "achievement_unlocked" then
- return new TplAchievementUnlocked(self)
- end
- abort
- end
-end
-
-# A TplEvent factorizes HTML rendering methods for `GameEvent`.
-class TplEvent
-
- # Event to display.
- var event: GameEvent
-
- # Title to display.
- var title: String is lazy do return "raw event"
-
- # Load Player from event data.
- var player: nullable Player is lazy do
- return event.game.load_player(event.data["player"].to_s)
- end
-
- # Load reward from event data.
- var reward: Int is lazy do return event.data["reward"].as(Int)
-
- # Load `github_event` data key as a PullRequestEvent.
- var pull_event: PullRequestEvent is lazy do
- return event.game.api.deserialize(event.data["github_event"].as(JsonObject).to_json).as(PullRequestEvent)
- end
-
- # Load `github_event` data key as a IssueCommentEvent.
- var issue_comment_event: IssueCommentEvent is lazy do
- return event.game.api.deserialize(event.data["github_event"].as(JsonObject).to_json).as(IssueCommentEvent)
- end
-
- # Load `achievement` data key as an Achievement.
- var achievement: Achievement is lazy do
- return player.load_achievement(event.data["achievement"].to_s).as(not null)
- end
-
- # Display a media item for a reward event.
- fun media_item: String do
- return """<div class="media">
- <a class="media-left" href="{{{player.url}}}">
- <span class="badge progress-bar-success"
- style=\"position: absolute\">+{{{reward}}}</span>
- <img class=\"img-circle\" style="width:50px"
- src="{{{player.user.avatar_url or else "#"}}}" alt="{{{player.name}}}">
- </a>
- <div class="media-body">
- <h4 class="media-heading">{{{title}}}</h4>
- <span class="text-muted">at {{{event.time}}}</span>
- </div>
- </div>"""
- end
-end
-
-# Event: pull_open
-class TplPullOpened
- super TplEvent
-
- redef var title is lazy do
- var pull = pull_event.pull
- return "{player.link} pushed {pull.link}"
- end
-end
-
-# Event: pull_merged
-class TplPullMerged
- super TplEvent
-
- redef var title is lazy do
- var pull = pull_event.pull
- return "{player.link} merged <strong>{pull.commits}</strong> commits with {pull.link}"
- end
-end
-
-# Event: pull_review
-class TplPullReview
- super TplEvent
-
- redef var title is lazy do
- var issue = issue_comment_event.issue
- return "{player.link} reviewed {issue.link}"
- end
-end
-
-# Event: achievement_unlocked
-class TplAchievementUnlocked
- super TplEvent
-
- redef var title is lazy do
- return "{player.link} unlocked {achievement.link}"
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test module for `achievements.nit`
-module test_achievements is test
-
-import test_helper
-import achievements
-
-class TestGame
- super NitrpgTestHelper
- test
-
- fun test_add_achievement is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- game.add_achievement(a1)
- game.add_achievement(a2)
- assert game.load_achievements.length == 2
- end
-
- fun test_load_achievement is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- game.add_achievement(a1)
- assert game.load_achievement(a1.id).id == "test_id1"
- assert game.load_achievement(a2.id) == null
- end
-
- fun test_load_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- var a3 = new Achievement(game, "test_id3", "test_name", "test_desc", 15)
- game.add_achievement(a1)
- game.add_achievement(a2)
- game.db.collection("achievements").insert(a3.to_json_object)
- var ok = [a1.id, a2.id]
- var res = game.load_achievements
- assert res.length == 2
- for a in res.values do assert ok.has(a.id)
- end
-end
-
-class TestPlayer
- super NitrpgTestHelper
- test
-
- fun test_add_achievement is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- player1.add_achievement(a1)
- player1.add_achievement(a2)
- assert player1.load_achievements.length == 2
- end
-
- fun test_load_achievement is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(game, "xymus")
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- player1.add_achievement(a1)
- player2.add_achievement(a2)
- assert player1.load_achievement(a1.id).id == "test_id1"
- assert player1.load_achievement(a2.id) == null
- assert player2.load_achievement(a2.id).id == "test_id2"
- assert player2.load_achievement(a1.id) == null
- end
-
- fun test_load_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(game, "xymus")
- var a1 = new Achievement(game, "test_id1", "test_name", "test_desc", 15)
- var a2 = new Achievement(game, "test_id2", "test_name", "test_desc", 15)
- var a3 = new Achievement(game, "test_id3", "test_name", "test_desc", 15)
- player1.add_achievement(a1)
- player1.add_achievement(a2)
- player2.add_achievement(a3)
- var ok = [a1.id, a2.id]
- var res = player1.load_achievements
- assert res.length == 2
- for a in res.values do assert ok.has(a.id)
- end
-end
-
-class TestAchievement
- super NitrpgTestHelper
- test
-
- fun test_init is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var a = new Achievement(game, "test_id", "test_name", "test_desc", 15)
- assert a.id == "test_id"
- assert a.name == "test_name"
- assert a.desc == "test_desc"
- assert a.reward == 15
- end
-
- fun test_init_from_json is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var json = """{
- "id": "test_id",
- "name": "test_name",
- "desc": "test_desc",
- "reward": 15
- }""".parse_json.as(JsonObject)
- var a = new Achievement.from_json(game, json)
- assert a.id == "test_id"
- assert a.name == "test_name"
- assert a.desc == "test_desc"
- assert a.reward == 15
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test module for `events.nit`
-module test_events is test
-
-import test_helper
-import events
-
-class TestGame
- super NitrpgTestHelper
- test
-
- fun test_add_event is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- game.add_event(event1)
- game.add_event(event2)
- assert game.load_events.length == 2
- end
-
- fun test_load_event is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- game.add_event(event1)
- assert game.load_event(event1.internal_id).kind == "test_kind"
- assert game.load_event(event2.internal_id) == null
- end
-
- fun test_load_events is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- var event3 = new GameEvent(game, "test_kind", new JsonObject)
- game.add_event(event1)
- game.add_event(event2)
- game.db.collection("events").insert(event3.to_json_object)
- var ok = [event1.internal_id, event2.internal_id]
- var res = game.load_events
- assert res.length == 2
- for event in res do assert ok.has(event.internal_id)
- end
-end
-
-class TestPlayer
- super NitrpgTestHelper
- test
-
- fun test_add_event is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(game, "xymus")
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- player1.add_event(event1)
- player1.add_event(event2)
- assert player1.load_events.length == 2
- assert player2.load_events.length == 0
- end
-
- fun test_load_event is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(game, "xymus")
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- player1.add_event(event1)
- player2.add_event(event2)
- assert player1.load_event(event1.internal_id).kind == "test_kind"
- assert player1.load_event(event2.internal_id) == null
- assert player2.load_event(event2.internal_id).kind == "test_kind"
- assert player2.load_event(event1.internal_id) == null
- end
-
- fun test_load_events is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(game, "xymus")
- var event1 = new GameEvent(game, "test_kind", new JsonObject)
- var event2 = new GameEvent(game, "test_kind", new JsonObject)
- var event3 = new GameEvent(game, "test_kind", new JsonObject)
- player1.add_event(event1)
- player1.add_event(event2)
- player2.add_event(event3)
- assert player1.load_events.length == 2
- assert player2.load_events.length == 1
- var ok = [event1.internal_id, event2.internal_id]
- for event in player1.load_events do assert ok.has(event.internal_id)
- end
-end
-
-class TestGameEvent
- super NitrpgTestHelper
- test
-
- fun test_init is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var event = new GameEvent(game, "test_kind", new JsonObject)
- assert event.to_json_object["kind"] == "test_kind"
- end
-
- fun test_init_from_json is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var json = """{
- "internal_id": "test_id",
- "kind": "test_kind",
- "time": "2015-02-05T00:00:00Z",
- "data": {"test_field": "test_value"}
- }""".parse_json.as(JsonObject)
- var event = new GameEvent.from_json(game, json)
- assert event.internal_id == "test_id"
- assert event.kind == "test_kind"
- assert event.data.to_json == """{"test_field":"test_value"}"""
- assert event.time.to_s == "2015-02-05T00:00:00Z"
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test module for `game.nit`.
-module test_game is test
-
-import test_helper
-
-class TestGame
- super NitrpgTestHelper
- test
-
- fun test_add_player is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var users = ["Morriar", "xymus"]
- for name in users do
- game.add_player(game.api.load_user(name).as(not null))
- end
- var res = game.load_players.values
- assert res.length == 2
- for player in res do
- assert users.has(player.name)
- end
- end
-
- fun test_load_player is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var ogame = load_game("Morriar/nit", db)
-
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(ogame, "privat")
- game.db.collection("players").insert(player1.to_json_object)
- ogame.db.collection("players").insert(player2.to_json_object)
-
- assert game.load_player("privat") == null
- assert game.load_player("Morriar").name == "Morriar"
- assert ogame.load_player("privat").name == "privat"
- assert ogame.load_player("Morriar") == null
- end
-
- fun test_load_players is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var ogame = load_game("Morriar/nit", db)
-
- var player1 = new Player(game, "Morriar")
- var player2 = new Player(ogame, "privat")
- var player3 = new Player(game, "xymus")
- game.db.collection("players").insert(player1.to_json_object)
- ogame.db.collection("players").insert(player2.to_json_object)
- game.db.collection("players").insert(player3.to_json_object)
-
- var players = game.load_players
- var ok = ["Morriar", "xymus"]
- for player in players.values do assert ok.has(player.name)
- end
-end
-
-class TestPlayer
- super NitrpgTestHelper
- test
-
- fun test_init is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var player = new Player(game, "Morriar")
- assert player.name == "Morriar"
- assert player.user.login == "Morriar"
- assert player.nitcoins == 0
- end
-
- fun test_init_from_json is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var json = """{"name": "Morriar", "nitcoins": 10}""".parse_json
- var player = new Player.from_json(game, json.as(JsonObject))
- assert player.name == "Morriar"
- assert player.user.login == "Morriar"
- assert player.nitcoins == 10
- end
-
- fun test_save is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var json = """{"name": "Morriar", "nitcoins": 10}""".parse_json.as(JsonObject)
- var player = new Player.from_json(game, json)
- player.save
- assert game.db.collection("players").find(json) != null
- end
-
- fun test_game_add_player is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- game.add_player(game.api.load_user("Morriar").as(not null))
- var json = """{"name": "Morriar"}""".parse_json.as(JsonObject)
- assert game.db.collection("players").find(json) != null
- end
-
- fun test_game_load_player is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var json = """{"name": "Morriar", "nitcoins": 10}""".parse_json.as(JsonObject)
- var player = new Player.from_json(game, json)
- player.save
- var oplayer = game.load_player("Morriar")
- assert oplayer != null
- assert player.nitcoins == oplayer.nitcoins
- end
-end
-
-class TestUser
- super NitrpgTestHelper
- test
-
- fun test_player is test do
- var db = gen_test_db
- var api = new GithubAPI(get_github_oauth)
- var game = load_game("privat/nit", db)
- var user = api.load_user("Morriar")
- assert user != null
- var player = user.player(game)
- assert player.name == "Morriar"
- game.clear
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test tools for NitRPG.
-module test_helper
-
-import game
-import github::cache
-
-# Used to factorize test treatments.
-abstract class NitrpgTestHelper
-
- # Github API client
- var api: GithubAPI do
- var api = new GithubAPI(get_github_oauth)
- api.enable_cache = true
- return api
- end
-
- # Mongo API client
- var mongo = new MongoClient("mongodb://mongo:27017/")
-
- # Load a new test database by with a name
- private fun load_db(name: String): MongoDb do return mongo.database(name)
-
- # Load a repo by its name.
- fun load_repo(name: String): Repo do
- var repo = api.load_repo(name)
- assert repo != null
- return repo
- end
-
- # Load a game by its name.
- fun load_game(name: String, db: MongoDb): Game do
- var game = new Game(api, load_repo(name))
- game.db_name = db.name
- return game
- end
-
- # Stack of db used for testing.
- var test_dbs = new Array[MongoDb]
-
- # Gen a test db with a random name (to avoid race conditions).
- fun gen_test_db: MongoDb do
- var testid = "NIT_TESTING_ID".environ.to_i
- var db_name = "test_nitrpg_{testid}"
- var db = load_db(db_name)
- test_dbs.add db
- return db
- end
-
- # Should be called after your test.
- fun drop_test_db do
- var db = test_dbs.pop
- db.drop
- end
-
- # Drop the databse after each test
- fun after_test is after do drop_test_db
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test module for `listener.nit`
-module test_listener is test
-
-import test_helper
-import reactors
-import achievements
-import events_generator
-
-private class DummyListener
- super NitrpgTestHelper
- test
-
- var reactors = new Array[GameReactor]
-
- fun apply_event(event: GithubEvent, db: MongoDb) do
- var game = load_game(event.repo.full_name, db)
- for reactor in reactors do
- reactor.react_event(game, event)
- end
- end
-
- fun add_reactor(reactors: GameReactor...) do self.reactors.add_all reactors
-end
-
-class TestListener
- super NitrpgTestHelper
- test
-
- var generator = new EventsGenerator(api)
-
- var repo: Repo is lazy do return load_repo("Morriar/nit")
-
- fun test_game_issue_stats is test do
- var db = gen_test_db
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
-
- var issue = api.load_issue(repo, 322)
- assert issue != null
-
- l.apply_event(generator.issue_open(repo, issue), db)
- var game = load_game("Morriar/nit", db)
- assert game.stats.overall["issues"] == 1
- assert game.stats.overall["issues_open"] == 1
- l.apply_event(generator.issue_close(repo, issue), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["issues"] == 1
- assert game.stats.overall["issues_open"] == 0
- l.apply_event(generator.issue_reopen(repo, issue), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["issues"] == 1
- assert game.stats.overall["issues_open"] == 1
- end
-
- fun test_player_issue_stats is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
-
- var issue = api.load_issue(repo, 322)
- assert issue != null
-
- l.apply_event(generator.issue_open(repo, issue), db)
- var player = new Player(game, "Morriar")
- assert player.stats.overall["issues"] == 1
- assert player.stats.overall["issues_open"] == 1
- l.apply_event(generator.issue_close(repo, issue), db)
- player = new Player(game, "Morriar")
- assert player.stats.overall["issues"] == 1
- assert player.stats.overall["issues_open"] == 0
- l.apply_event(generator.issue_reopen(repo, issue), db)
- player = new Player(game, "Morriar")
- assert player.stats.overall["issues"] == 1
- assert player.stats.overall["issues_open"] == 1
- end
-
- fun test_game_pr_stats is test do
- var db = gen_test_db
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
-
- var pr = api.load_pull(repo, 275)
- assert pr != null
-
- l.apply_event(generator.pull_open(repo, pr), db)
- var game = load_game("Morriar/nit", db)
- assert game.stats.overall["pulls"] == 1
- assert game.stats.overall["pulls_open"] == 1
- assert game.stats.overall["commits"] == 0
- pr.merged = false
- l.apply_event(generator.pull_close(repo, pr), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["pulls"] == 1
- assert game.stats.overall["pulls_open"] == 0
- assert game.stats.overall["commits"] == 0
- l.apply_event(generator.pull_reopen(repo, pr), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["pulls"] == 1
- assert game.stats.overall["pulls_open"] == 1
- assert game.stats.overall["commits"] == 0
- pr.merged = true
- l.apply_event(generator.pull_close(repo, pr), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["pulls"] == 1
- assert game.stats.overall["pulls_open"] == 0
- assert game.stats.overall["commits"] == 2
- end
-
- fun test_game_issue_comment_stats is test do
- var db = gen_test_db
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
-
- var issue = api.load_issue(repo, 322)
- assert issue != null
- var comment = api.load_issue_comment(repo, 76119442)
- assert comment != null
-
- comment.body = "foo bar"
- l.apply_event(generator.issue_comment_event(repo, issue, comment), db)
- var game = load_game("Morriar/nit", db)
- assert game.stats.overall["comments"] == 1
- assert game.stats.overall["reviews"] == 0
- comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(repo, issue, comment), db)
- game = load_game("Morriar/nit", db)
- assert game.stats.overall["comments"] == 2
- assert game.stats.overall["reviews"] == 1
- end
-
- fun test_player_pull_reactor is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new PlayerReactor)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
-
- l.apply_event(generator.pull_open(repo, pull), db)
- var player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 10
- pull.merged = false
- l.apply_event(generator.pull_close(repo, pull), db)
- player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 0
- l.apply_event(generator.pull_reopen(repo, pull), db)
- player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 10
- pull.merged = true
- l.apply_event(generator.pull_close(repo, pull), db)
- player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 12
- end
-
- fun test_player_review_reactor is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new PlayerReactor)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
- var comment = api.load_issue_comment(repo, 36961230)
- assert comment != null
-
- # TODO handle multiple review by the same user
-
- # no review in opened issue
- pull.state = "open"
- comment.body = "foo bar"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- var player = new Player(game, "Morriar")
- assert player.stats.overall["nitcoins"] == 0
-
- # review in opened issue
- pull.state = "open"
- comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- player = new Player(game, "Morriar")
- print player.stats.overall["nitcoins"]
- assert player.stats.overall["nitcoins"] == 2
-
- # review in closed issue
- pull.state = "closed"
- comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- player = new Player(game, "Morriar")
- assert player.stats.overall["nitcoins"] == 2
-
- # review in reopened issue
- pull.state = "open"
- comment.body = "foo +1 bar"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- player = new Player(game, "Morriar")
- assert player.stats.overall["nitcoins"] == 4
- end
-
- fun test_X_issues_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
- l.add_reactor(new Player1Issue, new Player100Issues, new Player1KIssues)
-
- var issue = api.load_issue(repo, 322)
- assert issue != null
-
- for i in [0, 99, 999] do
- var id = "player_{i + 1}_issue"
- if i > 0 then id = "{id}s"
- var player = new Player(game, "Morriar")
- player.stats["issues"] = i
- player.save
- l.apply_event(generator.issue_open(repo, issue), db)
- assert player.load_achievements.has_key(id)
- end
- var player = new Player(game, "Morriar")
- assert player.stats.overall["nitcoins"] == 1110
- end
-
- fun test_X_pulls_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
- l.add_reactor(new Player1Pull, new Player100Pulls, new Player1KPulls)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
-
- for i in [0, 99, 999] do
- var id = "player_{i + 1}_pull"
- if i > 0 then id = "{id}s"
- var player = new Player(game, "itch76")
- player.stats["pulls"] = i
- player.save
- l.apply_event(generator.pull_open(repo, pull), db)
- assert player.load_achievements.has_key(id)
- end
- var player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 1110
- end
-
- fun test_X_commits_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
- l.add_reactor(new Player1Commit, new Player100Commits)
- l.add_reactor(new Player1KCommits, new Player10KCommits)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
- pull.state = "closed"
- pull.merged = true
-
- for i in [0, 99, 999, 9999] do
- var id = "player_{i + 1}_commit"
- if i > 0 then id = "{id}s"
- var player = new Player(game, "itch76")
- player.stats["commits"] = i
- player.save
- l.apply_event(generator.pull_close(repo, pull), db)
- assert player.load_achievements.has_key(id)
- end
- var player = new Player(game, "itch76")
- assert player.stats.overall["nitcoins"] == 11110
- end
-
- fun test_X_comments_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new StatisticsReactor)
- l.add_reactor(new Player1Comment, new Player100Comments, new Player1KComments)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
- var comment = api.load_issue_comment(repo, 36961230)
- assert comment != null
-
- for i in [0, 99, 999] do
- var id = "player_{i + 1}_comment"
- if i > 0 then id = "{id}s"
- var player = new Player(game, "Morriar")
- player.stats["comments"] = i
- player.save
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- assert player.load_achievements.has_key(id)
- end
- var player = new Player(game, "Morriar")
- assert player.stats.overall["nitcoins"] == 1110
- end
-
- fun test_issues_achievements is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new IssueAboutNitdoc, new IssueAboutFFI)
-
- var issue = api.load_issue(repo, 322)
- assert issue != null
-
- issue.title = "nitdoc ffi"
- l.apply_event(generator.issue_open(repo, issue), db)
- var player = new Player(game, "Morriar")
- assert player.load_achievements.has_key("issue_about_nitdoc")
- assert player.load_achievements.has_key("issue_about_ffi")
- assert player.stats.overall["nitcoins"] == 20
- end
-
- fun test_comments_reactor is test do
- var db = gen_test_db
- var game = load_game("Morriar/nit", db)
- var l = new DummyListener
- l.add_reactor(new PlayerPingGod, new PlayerFirstReview, new PlayerSaysNitcoin)
-
- var pull = api.load_pull(repo, 275)
- assert pull != null
- var comment = api.load_issue_comment(repo, 36961230)
- assert comment != null
-
- comment.body = "@{game.repo.owner.login}"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- var player = new Player(game, "Morriar")
- assert player.load_achievements.has_key("player_ping_god")
- assert player.stats.overall["nitcoins"] == 50
-
- comment.body = "+1"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- player = new Player(game, "Morriar")
- assert player.load_achievements.has_key("player_first_review")
- assert player.stats.overall["nitcoins"] == 60
-
- comment.body = "Nitcoins"
- l.apply_event(generator.issue_comment_event(repo, pull, comment), db)
- player = new Player(game, "Morriar")
- assert player.load_achievements.has_key("player_says_nitcoin")
- assert player.stats.overall["nitcoins"] == 70
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Test module for `stats.nit`
-module test_statistics is test
-
-import test_helper
-import statistics
-
-class TestGame
- super NitrpgTestHelper
- test
-
- fun test_game_stats is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var stats = game.stats
- assert stats.overall["test"] == 0
- stats.overall.inc("test")
- assert stats.overall["test"] == 1
- stats.save
- var ogame = load_game("privat/nit", db)
- var ostats = ogame.stats
- ostats.overall.inc("test")
- assert ostats.overall["test"] == 2
- end
-end
-
-class TestPlayer
- super NitrpgTestHelper
- test
-
- fun test_player_stats is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var player = new Player(game, "Morriar")
- var stats = player.stats
- assert stats.overall["test"] == 0
- stats.overall.inc("test")
- assert stats.overall["test"] == 1
- stats.save
- var oplayer = new Player(game, "Morriar")
- var ostats = oplayer.stats
- ostats.overall.inc("test")
- assert ostats.overall["test"] == 2
- end
-end
-
-class TestGameStats
- super NitrpgTestHelper
- test
-
- fun test_init_from_json is test do
- var db = gen_test_db
- var game = load_game("privat/nit", db)
- var owner = new Player(game, "Morriar")
- var json = """{
- "period": "2015",
- "owner": "Morriar",
- "values": {
- "test1": 10,
- "test2": 20
- }
- }""".parse_json.as(JsonObject)
- var stats = new GameStats.from_json(game, "2015", owner, json)
- assert stats["test0"] == 0
- assert stats["test1"] == 10
- assert stats["test2"] == 20
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2014-2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Display `nitrpg` data as a website.
-module web
-
-import nitcorn
-import templates
-
-# A custom action forn `nitrpg`.
-class RpgAction
- super Action
-
- # Root URL is used as a prefix for all URL generated by the actions.
- var root_url: String
-
- # Github oauth token used for GithubAPI.
- var auth: String is lazy do return get_github_oauth
-
- # API client used to import data from Github.
- var api: GithubAPI is lazy do
- var api = new GithubAPI(auth)
- return api
- end
-
- init do
- super
- if auth.is_empty then
- print "Error: Invalid Github oauth token!"
- exit 1
- end
- end
-
- # Return an Error reponse page.
- fun bad_request(msg: String): HttpResponse do
- var rsp = new HttpResponse(400)
- var page = new NitRpgPage(root_url)
- var error = new ErrorPanel(msg)
- page.flow_panels.add error
- rsp.body = page
- return rsp
- end
-
- # Returns the game with `name` or null if no game exists with this name.
- fun load_game(name: String): nullable Game do
- var repo = api.load_repo(name)
- if repo == null then return null
- var game = new Game.from_mongo(api, repo)
- game.root_url = root_url
- return game
- end
-
- # Returns the list of saved games from NitRPG data.
- fun load_games: Array[Game] do
- var res = new Array[Game]
- # TODO should be option
- var mongo = new MongoClient("mongodb://mongo:27017")
- var db = mongo.database("nitrpg")
- for obj in db.collection("games").find_all(new JsonObject) do
- var repo = api.load_repo(obj["name"].to_s)
- assert repo != null
- var game = new Game(api, repo)
- game.from_json(obj)
- game.root_url = root_url
- res.add game
- end
- return res
- end
-end
-
-# Repo overview page.
-class RpgHome
- super RpgAction
-
- # Response page stub.
- var page: NitRpgPage is noinit
-
- redef fun answer(request, url) do
- var readme = load_readme
- var games = load_games
- var response = new HttpResponse(200)
- page = new NitRpgPage(root_url)
- page.side_panels.add new GamesShortListPanel(root_url, games)
- page.flow_panels.add new MDPanel(readme)
- response.body = page
- return response
- end
-
- # Load the string content of the nitrpg readme file.
- private fun load_readme: String do
- var readme = "README.md"
- if not readme.file_exists then
- return "Unable to locate README file."
- end
- var file = new FileReader.open(readme)
- var text = file.read_all
- file.close
- return text
- end
-end
-
-# Display the list of active game.
-class ListGames
- super RpgAction
-
- # Response page stub.
- var page: NitRpgPage is noinit
-
- redef fun answer(request, url) do
- var games = load_games
- var response = new HttpResponse(200)
- page = new NitRpgPage(root_url)
- page.breadcrumbs = new Breadcrumbs
- page.breadcrumbs.add_link(root_url / "games", "games")
- page.flow_panels.add new GamesListPanel(root_url, games)
- response.body = page
- return response
- end
-end
-
-# An action that require a game.
-class GameAction
- super RpgAction
-
- # Response page stub.
- var page: NitRpgPage is noinit
-
- # Target game.
- var game: Game is noinit
-
- redef fun answer(request, url) is abstract
-
- # Check errors and prepare response.
- private fun prepare_response(request: HttpRequest, url: String): HttpResponse do
- var owner = request.param("owner")
- var repo_name = request.param("repo")
- if owner == null or repo_name == null then
- var msg = "Bad request: should look like /games/:owner/:repo."
- return bad_request(msg)
- end
- var game = load_game("{owner}/{repo_name}")
- if game == null then
- var msg = api.last_error.message
- return bad_request("Repo Error: {msg}")
- end
- self.game = game
- var response = new HttpResponse(200)
- page = new NitRpgPage(root_url)
- page.side_panels.add new GameStatusPanel(game)
- page.breadcrumbs = new Breadcrumbs
- page.breadcrumbs.add_link(game.url, game.name)
- prepare_pagination(request)
- return response
- end
-
- # Parse pagination related parameters.
- private fun prepare_pagination(request: HttpRequest) do
- var args = request.get_args
- list_from = args.get_or_default("pfrom", "0").to_i
- list_limit = args.get_or_default("plimit", "10").to_i
- end
-
- # Limit of events to display in lists.
- var list_limit = 10
-
- # From where to start the display of events related lists.
- var list_from = 0
-
- # TODO should also check 201, 203 ...
- private fun is_response_error(response: HttpResponse): Bool do
- return response.status_code != 200
- end
-end
-
-# Repo overview page.
-class RepoHome
- super GameAction
-
- redef fun answer(request, url) do
- var rsp = prepare_response(request, url)
- if is_response_error(rsp) then return rsp
- page.side_panels.add new ShortListPlayersPanel(game)
- page.flow_panels.add new PodiumPanel(game)
- page.flow_panels.add new EventListPanel(game, list_limit, list_from)
- page.flow_panels.add new AchievementsListPanel(game)
- rsp.body = page
- return rsp
- end
-end
-
-# Repo players list.
-class ListPlayers
- super GameAction
-
- redef fun answer(request, url) do
- var rsp = prepare_response(request, url)
- if is_response_error(rsp) then return rsp
- page.breadcrumbs.add_link(game.url / "players", "players")
- page.flow_panels.add new ListPlayersPanel(game)
- rsp.body = page
- return rsp
- end
-end
-
-# Player details page.
-class PlayerHome
- super GameAction
-
- redef fun answer(request, url) do
- var rsp = prepare_response(request, url)
- if is_response_error(rsp) then return rsp
- var name = request.param("player")
- if name == null then
- var msg = "Bad request: should look like /:owner/:repo/:players/:name."
- return bad_request(msg)
- end
- var player = game.load_player(name)
- if player == null then
- return bad_request("Request Error: unknown player {name}.")
- end
- page.breadcrumbs.add_link(game.url / "players", "players")
- page.breadcrumbs.add_link(player.url, name)
- page.side_panels.clear
- page.side_panels.add new PlayerStatusPanel(game, player)
- page.flow_panels.add new PlayerReviewsPanel(game, player)
- page.flow_panels.add new PlayerWorkPanel(game, player)
- page.flow_panels.add new AchievementsListPanel(player)
- page.flow_panels.add new EventListPanel(player, list_limit, list_from)
- rsp.body = page
- return rsp
- end
-end
-
-# Display the list of achievements unlocked for this game.
-class ListAchievements
- super GameAction
-
- redef fun answer(request, url) do
- var rsp = prepare_response(request, url)
- if is_response_error(rsp) then return rsp
- page.breadcrumbs.add_link(game.url / "achievements", "achievements")
- page.flow_panels.add new AchievementsListPanel(game)
- rsp.body = page
- return rsp
- end
-end
-
-# Player details page.
-class AchievementHome
- super GameAction
-
- redef fun answer(request, url) do
- var rsp = prepare_response(request, url)
- if is_response_error(rsp) then return rsp
- var name = request.param("achievement")
- if name == null then
- var msg = "Bad request: should look like /:owner/:repo/achievements/:achievement."
- return bad_request(msg)
- end
- var achievement = game.load_achievement(name)
- if achievement == null then
- return bad_request("Request Error: unknown achievement {name}.")
- end
- page.breadcrumbs.add_link(game.url / "achievements", "achievements")
- page.breadcrumbs.add_link(achievement.url, achievement.name)
- page.flow_panels.add new AchievementPanel(achievement)
- page.flow_panels.add new EventListPanel(achievement, list_limit, list_from)
- rsp.body = page
- return rsp
- end
-end
-
-if args.length != 3 then
- print "Error: missing argument"
- print ""
- print "Usage:"
- print "web <host> <port> <root_url>"
- exit 1
-end
-
-var host = args[0]
-var port = args[1]
-var root = args[2]
-
-var iface = "{host}:{port}"
-var vh = new VirtualHost(iface)
-vh.routes.add new Route("/styles/", new FileServer("www/styles"))
-vh.routes.add new Route("/games/:owner/:repo/players/:player", new PlayerHome(root))
-vh.routes.add new Route("/games/:owner/:repo/players", new ListPlayers(root))
-vh.routes.add new Route("/games/:owner/:repo/achievements/:achievement", new AchievementHome(root))
-vh.routes.add new Route("/games/:owner/:repo/achievements", new ListAchievements(root))
-vh.routes.add new Route("/games/:owner/:repo", new RepoHome(root))
-vh.routes.add new Route("/games", new ListGames(root))
-vh.routes.add new Route("/", new RpgHome(root))
-
-var fac = new HttpFactory.and_libevent
-fac.config.virtual_hosts.add vh
-
-print "Launching server on http://{iface}/"
-fac.run
+++ /dev/null
-body { padding-top: 70px; }
-
-.navbar .breadcrumb {
- background-color: transparent;
- margin-bottom: 0;
- margin-top: 0.5em;
-}
-
-/* columns of same height styles */
-.container-xs-height {
- display:table;
- padding-left:0px;
- padding-right:0px;
-}
-.row-xs-height {
- display:table-row;
-}
-.col-xs-height {
- display:table-cell;
- float:none;
-}
-@media (min-width: 768px) {
- .container-sm-height {
- display:table;
- padding-left:0px;
- padding-right:0px;
- }
- .row-sm-height {
- display:table-row;
- }
- .col-sm-height {
- display:table-cell;
- float:none;
- }
-}
-@media (min-width: 992px) {
- .container-md-height {
- display:table;
- padding-left:0px;
- padding-right:0px;
- }
- .row-md-height {
- display:table-row;
- }
- .col-md-height {
- display:table-cell;
- float:none;
- }
-}
-@media (min-width: 1200px) {
- .container-lg-height {
- display:table;
- padding-left:0px;
- padding-right:0px;
- }
- .row-lg-height {
- display:table-row;
- }
- .col-lg-height {
- display:table-cell;
- float:none;
- }
-}
-
-/* vertical alignment styles */
-.col-top {
- vertical-align:top;
-}
-.col-middle {
- vertical-align:middle;
-}
-.col-bottom {
- vertical-align:bottom;
-}
+++ /dev/null
-bin/
-tests/out/
-stats.json
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-NITC ?= nitc
-NITLS ?= nitls
-NITUNIT ?= nitunit
-NITDOC ?= nitdoc
-
-.PHONY: all
-all: bin/refund
-
-bin/refund: $(shell $(NITLS) -M src/refund.nit)
- mkdir -p bin/
- $(NITC) src/refund.nit -o bin/refund
-
-.PHONY: check
-check: bin/refund
- $(NITUNIT) .
- cd tests; make
-
-.PHONY: doc
-doc:
- $(NITDOC) . -o doc/
-
-.PHONY: clean
-clean:
- rm -rf bin/
- rm -rf doc/
- cd tests; make clean
+++ /dev/null
-[package]
-name=refund
-tags=example,cli
-maintainer=Alexandre Terrasa <alexandre@moz-code.org>
-license=Apache-2.0
-desc=Insurance refunds calculation tool
-[upstream]
-browse=https://github.com/nitlang/nit/tree/master/contrib/refund/
-git=https://github.com/nitlang/nit.git
-git.directory=contrib/refund/
-homepage=http://nitlanguage.org
-issues=https://github.com/nitlang/nit/issues
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Insurance refunds calculation tool.
-#
-# `refund` computes automatically the allowed refund for a reclamation according
-# to an insurrance policy.
-#
-# Usage:
-#
-# ~~~sh
-# > refund (<input_file> <output_file> | [OPTIONS])
-# ~~~
-#
-# Input file:
-#
-# `refund` expects a JSON input file on the form:
-#
-# ~~~json
-# {
-# "dossier": "A100323",
-# "mois": "2015-01",
-# "reclamations": [
-# {
-# "soin": 100,
-# "date": "2015-01-11",
-# "montant": "234.00$"
-# }, {
-# "soin": 200,
-# "date": "2015-01-13",
-# "montant": "128.00$"
-# }, {
-# "soin": 334,
-# "date": "2015-01-23",
-# "montant": "50.00$"
-# }
-# ]
-# }
-# ~~~
-#
-# Output file:
-#
-# You have to specify the path where `refund` should output the result file.
-#
-# Results are formatted as JSON:
-#
-# ~~~json
-# {
-# "client": "100323",
-# "mois": "2015-01",
-# "remboursements": [
-# {
-# "soin": 100,
-# "date": "2015-01-11",
-# "montant": "58.50$"
-# }, {
-# "soin": 200,
-# "date": "2015-01-13",
-# "montant": "22.50$"
-# }, {
-# "soin": 334,
-# "date": "2015-01-23",
-# "montant": "0.00$"
-# }
-# ]
-# }
-# ~~~
-#
-# Options:
-#
-# `refund` can generate statistics about reclamations and refunds computed.
-#
-# * `-S`: display statistics
-# * `-SR`: reset statistics
-#
-# Error handling:
-#
-# In case of error, a JSON object is generated in place of the output file:
-#
-# ~~~json
-# { "message": "Invalid input data" }
-# ~~~
-module refund
-
-
-import refund_json
-
-# Display usage in console then leave.
-fun usage do
- print ""
- print "Usage:"
- print "refund <input.json> <output.json>"
- print ""
- print "options"
- print " -S\tShow stats in console"
- print " -RS\tClear stats"
- exit 1
-end
-
-var proc = new RefundProcessor
-
-if args.length == 1 then
- var flag = args.first
- if flag == "-RS" then
- proc.clear_stats
- exit 0
- else if flag == "-S" then
- proc.show_stats
- exit 0
- else
- print "Error: Unknown flag {flag}."
- usage
- end
-else if args.length != 2 then
- print "Error: Incorrect number of arguments. Got {args.length}, expected 2."
- usage
-end
-
-proc.process(args[0], args[1])
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Insurance refunds calculation base classes.
-module refund_base
-
-import counter
-
-# `RefundProcessor` manages the calculation of the refunds.
-#
-# See `process`.
-class RefundProcessor
-
- # Where to generate output file.
- var output_file: String is noinit, writable
-
- # Where to save usage statistics.
- var stats_file = "stats.json"
-
- # Processes the `input_file` and write the output in `output_file`.
- #
- # Steps:
- #
- # 1. Parses the input_file and check json validity (see `load_input`).
- # 2. Instantiates and checks the reclamation sheet against client rules
- # (see `ReclamationSheet.from_json`).
- # 3. Processes refunds (see `proces_refunds`).
- # 4. Writes the output file (see `write_output`).
- fun process(input_file, output_file: String) is abstract
-
- # Refunds allowed for the current reclamation sheet.
- var current_refunds = new HashMap[Care, Dollar]
-
- # Computes allowed refunds for a given `Reclamation` found in a `ReclamationSheet`.
- fun process_refund(sheet: ReclamationSheet, recl: Reclamation): Dollar is abstract
-
- # Shows stats values in console
- fun show_stats do print load_stats
-
- # Loads stats from file as a RefundStats instance.
- fun load_stats: RefundStats is abstract
-
- # Saves stats in file.
- fun save_stats(stats: RefundStats) is abstract
-
- # Outputs error object then exit.
- fun die(msg: String) is abstract
-
- # Clears stats.
- #
- # Basically delete the stats file.
- fun clear_stats do if stats_file.file_exists then stats_file.file_delete
-end
-
-# Stats representation using a `Counter`.
-class RefundStats
- super Counter[String]
-end
-
-# A `Client` can ask for refunds from the insurance company.
-class Client
-
- # Client number.
- var number: String
-
- redef fun to_s do return "#{number}"
-end
-
-# A `ReclamationSheet` is filled by the `Client` to obtain a `RefundSheet`.
-class ReclamationSheet
-
- # File used for this refund.
- var file: ReclFile is writable
-
- # Month concerned by the refund.
- var month: ReclMonth is writable
-
- # Array of reclamations.
- var recls = new Array[Reclamation] is writable
-
- redef fun to_s do
- return "Refund (file: {file}, month: {month}, recls: {recls.length})"
- end
-end
-
-# A File found in a `ReclamationSheet`.
-#
-# A File points to a `Contract` and a `Client`.
-#
-# Allowed format is: `X12345` where `X` is the contract kind and `12345` is the
-# client number.
-class ReclFile
-
- # File string id.
- var id: String is writable
-
- # Contract instance linked to this file.
- var contract: Contract is noinit, writable
-
- # Client instance linked to this file.
- var client: Client is noinit, writable
-
- # Returns the contract instance corresponding to `kind`.
- fun contract_factory(proc: RefundProcessor, kind: String): Contract do
- if kind == "A" then return new ContractA
- if kind == "B" then return new ContractB
- if kind == "C" then return new ContractC
- if kind == "D" then return new ContractD
- if kind == "E" then return new ContractE
- proc.die("Unknown contract {kind}")
- abort
- end
-
- redef fun to_s do return "{contract.kind}{client.number}"
-end
-
-# Month date formatted for contracts.
-#
-# Mainly used to factorize treatments on date calculation.
-class ReclMonth
-
- # Internal date used to store the month.
- var date: ReclDate is writable
-
- # Is `date` in this month?
- fun has(date: ReclDate): Bool do return self.date.month == date.month
-
- redef fun to_s do
- if date.month < 10 then
- return "{date.year}-0{date.month}"
- end
- return "{date.year}-0{date.month}"
- end
-end
-
-# The date on which a `Care` occured.
-class ReclDate
- # Year of the month.
- var year: Int is writable
-
- # Month number (`1` is January).
- var month: Int is writable
-
- # Day number.
- var day: Int is writable
-
- redef fun to_s do
- var res = new FlatBuffer
- res.append "{year}-"
- if month < 10 then
- res.append "0{month}-"
- else
- res.append "{month}-"
- end
- if day < 10 then
- res.append "0{day}"
- else
- res.append day.to_s
- end
- return res.write_to_string
- end
-end
-
-# `RefundRecl` are parts of the `RefundReclamation`.
-class Reclamation
- # `Care` id concerned by this reclamation.
- var care_id: Int is writable
-
- # Date this care was applied.
- var date: ReclDate is writable
-
- # Amount of money given by the `Client` in exchange of this care.
- var fees: Dollar is writable
-
- redef fun to_s do return "Entry (care: {care_id}, date: {date}, fees: {fees})"
-end
-
-# A `Contract` specifies the refund applicable on care.
-class Contract
-
- # Kind of the contract (specified by a letter).
- var kind: String is noinit, writable
-
- # Covered cares for this kind of contract.
- var cares = new Array[Care] is writable
-
- # Adds a care to this contract.
- fun add_care(care: Care) do cares.add care
-
- # Gets a `Care` instance by its id.
- #
- # Returns `null` if no `Care` found.
- fun care_by_id(id: Int): nullable Care do
- for care in cares do
- if care.match_id(id) then return care
- end
- return null
- end
-
- redef fun to_s do return "{kind} ({cares.length} cares)"
-end
-
-# Contracts
-# FIXME move contracts to a JSON configuration file.
-
-private class ContractA
- super Contract
-
- init do
- kind = "A"
- add_care(new UniqCare.with_vals(0, 25.0, null, null))
- add_care(new UniqCare.with_vals(100, 35.0, null, 250.0.to_dollar))
- add_care(new UniqCare.with_vals(150, 0.0, null, null))
- add_care(new UniqCare.with_vals(175, 50.0, null, 200.0.to_dollar))
- add_care(new UniqCare.with_vals(200, 25.0, null, 250.0.to_dollar))
- add_care(new RangeCare.with_vals([300..399], 0.0, null, null))
- add_care(new UniqCare.with_vals(400, 0.0, null, null))
- add_care(new UniqCare.with_vals(500, 25.0, null, 150.0.to_dollar))
- add_care(new UniqCare.with_vals(600, 40.0, null, 300.0.to_dollar))
- add_care(new UniqCare.with_vals(700, 0.0, null, null))
- end
-end
-
-private class ContractB
- super Contract
-
- init do
- kind = "B"
- add_care(new UniqCare.with_vals(0, 50.0, 40.0.to_dollar, null))
- add_care(new UniqCare.with_vals(100, 50.0, 50.0.to_dollar, 250.0.to_dollar))
- add_care(new UniqCare.with_vals(150, 0.0, null, null))
- add_care(new UniqCare.with_vals(175, 75.0, null, 200.0.to_dollar))
- add_care(new UniqCare.with_vals(200, 100.0,null, 250.0.to_dollar))
- add_care(new RangeCare.with_vals([300..399], 50.0, null, null))
- add_care(new UniqCare.with_vals(400, 0.0, null, null))
- add_care(new UniqCare.with_vals(500, 50.0, 50.0.to_dollar, 150.0.to_dollar))
- add_care(new UniqCare.with_vals(600, 100.0,null, 300.0.to_dollar))
- add_care(new UniqCare.with_vals(700, 70.0, null, null))
- end
-end
-
-private class ContractC
- super Contract
-
- init do
- kind = "C"
- add_care(new UniqCare.with_vals(0, 90.0, null, null))
- add_care(new UniqCare.with_vals(100, 95.0, null, 250.0.to_dollar))
- add_care(new UniqCare.with_vals(150, 85.0, null, null))
- add_care(new UniqCare.with_vals(175, 90.0, null, 200.0.to_dollar))
- add_care(new UniqCare.with_vals(200, 90.0, null, 250.0.to_dollar))
- add_care(new RangeCare.with_vals([300..399], 90.0, null, null))
- add_care(new UniqCare.with_vals(400, 90.0, null, null))
- add_care(new UniqCare.with_vals(500, 90.0, null, 150.0.to_dollar))
- add_care(new UniqCare.with_vals(600, 75.0, null, 300.0.to_dollar))
- add_care(new UniqCare.with_vals(700, 90.0, null, null))
- end
-end
-
-private class ContractD
- super Contract
-
- init do
- kind = "D"
- add_care(new UniqCare.with_vals(0, 100.0, 85.0.to_dollar, null))
- add_care(new UniqCare.with_vals(100, 100.0, 75.0.to_dollar, 250.0.to_dollar))
- add_care(new UniqCare.with_vals(150, 100.0, 150.0.to_dollar, null))
- add_care(new UniqCare.with_vals(175, 95.0, null, 200.0.to_dollar))
- add_care(new UniqCare.with_vals(200, 100.0, 100.0.to_dollar, 250.0.to_dollar))
- add_care(new RangeCare.with_vals([300..399],100.0, null, null))
- add_care(new UniqCare.with_vals(400, 100.0, 65.0.to_dollar, null))
- add_care(new UniqCare.with_vals(500, 100.0, null, 150.0.to_dollar))
- add_care(new UniqCare.with_vals(600, 100.0, 100.0.to_dollar, 300.0.to_dollar))
- add_care(new UniqCare.with_vals(700, 100.0, 90.0.to_dollar, null))
- end
-end
-
-private class ContractE
- super Contract
-
- init do
- kind = "E"
- add_care(new UniqCare.with_vals(0, 15.0, null, null))
- add_care(new UniqCare.with_vals(100, 25.0, null, 250.0.to_dollar))
- add_care(new UniqCare.with_vals(150, 15.0, null, null))
- add_care(new UniqCare.with_vals(175, 25.0, 20.0.to_dollar, 200.0.to_dollar))
- add_care(new UniqCare.with_vals(200, 12.0, null, 250.0.to_dollar))
- add_care(new RangeCare.with_vals([300..399], 60.0, null, null))
- add_care(new UniqCare.with_vals(400, 25.0, 15.0.to_dollar, null))
- add_care(new UniqCare.with_vals(500, 30.0, 20.0.to_dollar, 150.0.to_dollar))
- add_care(new UniqCare.with_vals(600, 15.0, null, 300.0.to_dollar))
- add_care(new UniqCare.with_vals(700, 22.0, null, null))
- end
-end
-
-# A `Care` is payed by the `Client` and can raises a `Refund`.
-interface Care
-
- # Does `id` is acceptable for this care?
- fun match_id(id: Int): Bool is abstract
-
- # Percent covered for this kind of care.
- fun cover: Float is abstract
-
- # Max amount covered for this kind of care by reclamation.
- fun max: nullable Dollar is abstract
-
- # Max amount covered for this kind of care by month.
- fun month_max: nullable Dollar is abstract
-
- # Computes the refund for this care.
- fun process_refund(fees: Dollar): Dollar do
- var max = self.max
- var val = ((fees.value.to_f * (cover / 100.0)) / 100.0).to_dollar
- if max != null and val > max then val = max
- return val
- end
-end
-
-# A `UniqCare` refers to one and only one kind of `Care`.
-#
-# For example, the care `Ostéopathie` as the uniq id `200`.
-class UniqCare
- super Care
-
- # Care id.
- var id: Int
-
- redef fun match_id(id) do return self.id == id
-
- redef var cover = 0.0
- redef var max = null
- redef var month_max = null
-
- # Inits this `Care` with values.
- #
- # * `id`: the `Care` id.
- # * `cover`: refund percentage covered for this `Care`.
- # * `max`: max amount refunded for this `Care` in a reclamation sheet.
- # * `month_max`: max amount refunded by month.
- init with_vals(id: Int, cover: Float, max, month_max: nullable Dollar) do
- init(id)
- self.cover = cover
- self.max = max
- self.month_max = month_max
- end
-
- redef fun to_s do return id.to_s
-end
-
-# A `RangeCare` refers to a set of id corresponding to the same `Care`.
-#
-# For example, the care `Soins Dentaires` is refered by the ids 300 to 399.
-class RangeCare
- super Care
-
- # Care id range.
- var id: Range[Int]
-
- redef fun match_id(id) do return self.id.has(id)
- redef var cover = 0.0
- redef var max = null
- redef var month_max = null
-
- # Inits this `Care` with values.
- #
- # * `id`: the `Care` id.
- # * `cover`: refund percentage covered for this `Care`.
- # * `max`: max amount refunded for this `Care` in a reclamation sheet.
- # * `month_max`: max amount refunded by month.
- init with_vals(id: Range[Int], cover: Float, max, month_max: nullable Dollar) do
- init(id)
- self.cover = cover
- self.max = max
- self.month_max = month_max
- end
-
- redef fun to_s do return id.first.to_s
-end
-
-# Used to represent currencies values.
-class Dollar
- super Comparable
-
- redef type OTHER: Dollar
-
- # Amount of cents.
- var value: Int
-
- # Inits `self` from a float `value`.
- init from_float(value: Float) do
- init((value * 100.0).to_i)
- end
-
- redef fun to_s do return "{value / 100}.{value % 100}$"
- redef fun <(o) do return value < o.value
-
- # Dollars addition.
- fun +(o: Dollar): Dollar do return new Dollar(value + o.value)
-
- # Dollars substraction.
- fun -(o: Dollar): Dollar do return new Dollar(value - o.value)
-end
-
-redef class Float
- # Returns `self` as a Dollar instance.
- fun to_dollar: Dollar do return new Dollar.from_float(self)
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# JSON handling for `refund`.
-module refund_json
-
-import refund_base
-import json::static
-import json
-
-redef class RefundProcessor
-
- redef fun process(input_file, output_file) do
- self.output_file = output_file
- var json = load_input(input_file)
- var sheet = new ReclamationSheet.from_json(self, json)
- var res = process_refunds(sheet)
- write_output(res.to_pretty_json, output_file)
- end
-
- # Computes allowed refunds for a given `ReclamationSheet`.
- fun process_refunds(sheet: ReclamationSheet): JsonObject do
- # update stats
- var stats = load_stats
- stats.inc("total_treatments")
- # compute refunds
- current_refunds.clear
- var json = new JsonObject
- json["dossier"] = sheet.file.to_s
- json["mois"] = sheet.month.to_s
- var arr = new JsonArray
- var sum = 0.0.to_dollar
- for recl in sheet.recls do
- var refund = process_refund(sheet, recl)
- var obj = new JsonObject
- obj["soin"] = recl.care_id
- obj["date"] = recl.date.to_s
- obj["montant"] = refund.to_s
- arr.add obj
- sum += refund
- # update stats for care
- stats.inc("total_{recl.care_id}")
- end
- save_stats(stats)
- json["remboursements"] = arr
- json["total"] = sum.to_s
- return json
- end
-
- # Loads the input string and returns its content as a JsonObject.
- #
- # Dies if the file cannot be read or does not contain a valid JSONObject.
- fun load_input(file: String): JsonObject do
- if not file.file_exists then
- die("File `{file}` not found.")
- abort
- end
- var ptr = new FileReader.open(file)
- var json = ptr.read_all.parse_json
- if json isa JsonParseError then
- die("Wrong input file ({json.message})")
- abort
- else if json == null then
- die("Unable to parse input file as json (got null)")
- abort
- else if not json isa JsonObject then
- die("Wrong input type (expected JsonObject got {json.class_name})")
- abort
- end
- ptr.close
- return json
- end
-
- # Writes `str` in path specified by `file`.
- #
- # Used to produce output and stats.
- fun write_output(str: String, file: String) do
- var ofs = new FileWriter.open(file)
- ofs.write(str)
- ofs.write("\n")
- ofs.close
- end
-
- # UTILS
-
- # Does `json` contains `key`? Dies otherwise.
- private fun check_key(json: JsonObject, key: String) do
- if json.has_key(key) then return
- die("Malformed input (missing key {key})")
- end
-
- # Does `str` match the regex `re`.
- private fun check_format(str, re: String): Bool do
- return str.has(re.to_re)
- end
-
- redef fun die(msg) do
- # save error
- var obj = new JsonObject
- obj["message"] = msg
- write_output(obj.to_pretty_json, output_file)
- # update stats
- var stats = load_stats
- stats.inc("total_reject")
- save_stats(stats)
- # leave
- exit 1
- end
-
- redef fun show_stats do print load_stats.to_json_object.to_pretty_json
-
- redef fun load_stats do
- # If no stats found, return a new object
- if not stats_file.file_exists then return new RefundStats
- # Try to read from file
- var ifs = new FileReader.open(stats_file)
- var content = ifs.read_all.parse_json
- ifs.close
- # If file is corrupted, return a new object
- if not content isa JsonObject then return new RefundStats
- # Return file contained stats
- return new RefundStats.from_json(content)
- end
-
- redef fun save_stats(stats) do
- write_output(stats.to_json_object.to_pretty_json, stats_file)
- end
-end
-
-redef class RefundStats
-
- # Inits `self` from the content of a JsonObject
- init from_json(json: JsonObject) do
- for k, v in json do self[k] = v.as(Int)
- end
-
- # Outputs `self` as a JSON string.
- fun to_json_object: JsonObject do
- var obj = new JsonObject
- for k, v in self do obj[k] = v
- return obj
- end
-end
-
-redef class ReclamationSheet
-
- # Inits `self` from the content of a `JsonObject`.
- init from_json(proc: RefundProcessor, json: JsonObject) do
- file = new ReclFile.from_json(proc, json)
- month = new ReclMonth.from_json(proc, json)
- recls = parse_recls(proc, json)
- init(file, month)
- end
-
- # Parses and checks the given `json` then returns an array of `Reclamation` instances.
- private fun parse_recls(proc: RefundProcessor, json: JsonObject): Array[Reclamation] do
- proc.check_key(json, "reclamations")
- var res = new Array[Reclamation]
- var recls = json["reclamations"]
- if recls == null then
- proc.die("Wrong type for `number` (expected JsonArray got null)")
- abort
- else if not recls isa JsonArray then
- proc.die("Wrong type for `number` (expected JsonArray got {recls.class_name})")
- abort
- end
- var i = 0
- for obj in recls do
- if obj == null then
- proc.die("Wrong type for `reclamations#{i}` (expected JsonObject got null)")
- abort
- else if not obj isa JsonObject then
- proc.die("Wrong type for `reclamations#{i}` " +
- "(expected JsonObject got {obj.class_name})")
- abort
- end
- var recl = new Reclamation.from_json(proc, obj)
- if not month.has(recl.date) then
- proc.die("Wrong `mois` for `soin` with id `{recl.care_id}`")
- abort
- end
- if file.contract.care_by_id(recl.care_id) == null then
- proc.die("Unknown `soin` with id `{recl.care_id}`")
- abort
- end
- res.add recl
- i += 1
- end
- return res
- end
-end
-
-redef class ReclFile
- # Inits `self` from the content of a JsonObject.
- init from_json(proc: RefundProcessor, json: JsonObject) do
- proc.check_key(json, "dossier")
- var id = json["dossier"]
- if id == null then
- proc.die("Wrong type for `dossier` (expected String got null)")
- abort
- else if not id isa String then
- proc.die("Wrong type for `dossier` (expected String got {id.class_name})")
- abort
- end
- # Check format
- parse_contract(proc, id)
- parse_client(proc, id)
- init(id)
- end
-
- # Tries to parse the contract from `file_id` string.
- private fun parse_contract(proc: RefundProcessor, file_id: String) do
- var kind = file_id.first.to_s
- if not proc.check_format(kind, "^[A-E]\{1\}$") then
- proc.die("Wrong contract (expected A, B, C, D or E got {kind})")
- end
- contract = contract_factory(proc, kind)
- end
-
- # Tries to parse the client number from the `file_id` string.
- private fun parse_client(proc: RefundProcessor, file_id: String) do
- var num = file_id.substring_from(1)
- if not proc.check_format(num, "^[0-9]\{6\}$") then
- proc.die("Wrong format for `number` (expected XXXXXX got {num})")
- abort
- end
- client = new Client(num)
- end
-end
-
-redef class ReclMonth
- # Inits `self` from a `JsonObject`.
- init from_json(proc: RefundProcessor, json: JsonObject) do
- proc.check_key(json, "mois")
- var month = json["mois"]
- if month == null then
- proc.die("Wrong type for `mois` (expected String got null)")
- return
- else if not month isa String then
- proc.die("Wrong type for `mois` (expected String got {month.class_name})")
- return
- end
- if not proc.check_format(month, "^[0-9]\{4\}-[0-9]\{2\}$") then
- proc.die("Wrong format for `mois` (expected AAAA-MM got {month})")
- return
- end
- from_string(proc, month)
- end
-
- # Inits `self` from a string representation formatted as `AAAA-MM`.
- init from_string(proc: RefundProcessor, str: String) do
- var parts = str.split("-")
- var year = parts[0].to_i
- var month = parts[1].to_i
- if month < 1 or month > 12 then
- proc.die("Wrong format for `mois` (expected AAAA-MM got {str})")
- return
- end
- date = new ReclDate(year, month, 1)
- init(date)
- end
-end
-
-redef class ReclDate
- # Inits `self` from a `JsonObject`.
- #
- # Dies if the `json` input is invalid.
- init from_json(proc: RefundProcessor, json: JsonObject) do
- proc.check_key(json, "date")
- var date = json["date"]
- if date == null then
- proc.die("Wrong type for `date` (expected String got null)")
- abort
- else if not date isa String then
- proc.die("Wrong type for `date` (expected String got {date.class_name})")
- abort
- end
- if not proc.check_format(date, "^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$") then
- proc.die("Wrong format for `date` (expected AAAA-MM-DD got {date})")
- abort
- end
- from_string(proc, date)
- end
-
- # Inits `self` from its string representation formatted as `AAAA-MM`.
- init from_string(proc: RefundProcessor, str: String) do
- var parts = str.split("-")
- year = parts[0].to_i
- month = parts[1].to_i
- day = parts[2].to_i
- if month < 1 or month > 12 or day < 1 or day > 31 then
- proc.die("Wrong format for `mois` (expected AAAA-MM got {str})")
- abort
- end
- init(year, month, day)
- end
-end
-
-redef class Reclamation
- # Inits `self` from a `JsonObject`.
- init from_json(proc: RefundProcessor, json: JsonObject) do
- care_id = parse_care_id(proc, json)
- date = new ReclDate.from_json(proc, json)
- fees = parse_fees(proc, json)
- init(care_id, date, fees)
- end
-
- # Inits `self` from its string representation formatted as `Int`.
- private fun parse_care_id(proc: RefundProcessor, json: JsonObject): Int do
- proc.check_key(json, "soin")
- var id = json["soin"]
- if id == null then
- proc.die("Wrong type for `soin` (expected Int got null)")
- abort
- else if not id isa Int then
- proc.die("Wrong type for `soin` (expected Int got {id.class_name})")
- abort
- end
- return id
- end
-
- # Inits `self` from its string representation formatted as `0.00$`.
- private fun parse_fees(proc: RefundProcessor, json: JsonObject): Dollar do
- proc.check_key(json, "montant")
- var fees = json["montant"]
- if fees == null then
- proc.die("Wrong type for `fees` (expected String got null)")
- abort
- else if not fees isa String then
- proc.die("Wrong type for `fees` (expected String got {fees.class_name})")
- abort
- end
- if not proc.check_format(fees, "^[0-9]+((\\.|\\,)[0-9]+)?\\$$") then
- proc.die("Wrong format for `montant` (expected XX.XX$ got {fees})")
- abort
- end
- return new Dollar.from_float(fees.basename("$").to_f)
- end
-end
+++ /dev/null
-# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-all: tests
-
-tests: clean
- ./tests.sh
-
-clean:
- rm -rf out/
+++ /dev/null
-{
- "dossier": "A",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A1003233",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A10032A",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": 1003233,
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 0,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-13",
- "montant": "90.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200,00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "130.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-14",
- "montant": "130.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-15",
- "montant": "130.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-17",
- "montant": "130.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.00$"
- },
- {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200,00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200,00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "400,00$"
- },
- {
- "soin": 600,
- "date": "2015-01-11",
- "montant": "1400,00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "100.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "200.00$"
- },
- {
- "soin": 399,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "reclamations": []
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "900.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "100.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.00$"
- },
- {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "400.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "0.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.00$"
- },
- {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "900.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "100.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.00$"
- },
- {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.00$"
- },
- {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 500,
- "date": "2015-01-23",
- "montant": "400.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 150,
- "date": "2015-01-11",
- "montant": "200.00$"
- },
- {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "200.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "a100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "Z100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "100100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": 10,
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015/01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-23",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015/01/11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-13-32",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-02-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": {
- "1": {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- "2": {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- "3": {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- }
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [1, 2, 3]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {},
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "ABCD"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "234.00"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": "200",
- "date": "2015-01-11",
- "montant": "234.00$"
- },
- {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.00$"
- },
- {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "125.00$"
- }
- ]
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "reclamations": [
- {
- "soin": 900,
- "date": "2015-01-11",
- "montant": "234.00$"
- }
- ]
-}
+++ /dev/null
-{
- "message": "Wrong format for `number` (expected XXXXXX got )"
-}
+++ /dev/null
-{
- "message": "Wrong format for `number` (expected XXXXXX got 1003233)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `number` (expected XXXXXX got 10032A)"
-}
+++ /dev/null
-{
- "message": "Wrong type for `dossier` (expected String got Int)"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "81.89$"
- }, {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "22.50$"
- }, {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "0.0$"
- }],
- "total": "104.39$"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 0,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "0.0$"
- }, {
- "soin": 600,
- "date": "2015-01-13",
- "montant": "36.0$"
- }],
- "total": "86.0$"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "0.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "100.0$"
- }],
- "total": "100.0$"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "0.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "100.0$"
- }],
- "total": "100.0$"
-}
+++ /dev/null
-{
- "dossier": "A100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 175,
- "date": "2015-01-11",
- "montant": "65.0$"
- }, {
- "soin": 175,
- "date": "2015-01-14",
- "montant": "65.0$"
- }, {
- "soin": 175,
- "date": "2015-01-15",
- "montant": "65.0$"
- }, {
- "soin": 175,
- "date": "2015-01-17",
- "montant": "5.0$"
- }],
- "total": "200.0$"
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 200,
- "date": "2015-01-13",
- "montant": "90.0$"
- }, {
- "soin": 334,
- "date": "2015-01-23",
- "montant": "200.0$"
- }],
- "total": "340.0$"
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.0$"
- }, {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "0.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "300.0$"
- }],
- "total": "369.0$"
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "0.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "150.0$"
- }],
- "total": "150.0$"
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "0.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "150.0$"
- }],
- "total": "150.0$"
-}
+++ /dev/null
-{
- "dossier": "B100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "50.0$"
- }, {
- "soin": 100,
- "date": "2015-01-11",
- "montant": "0.0$"
- }, {
- "soin": 600,
- "date": "2015-01-11",
- "montant": "300.0$"
- }],
- "total": "550.0$"
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "95.0$"
- }, {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "180.0$"
- }, {
- "soin": 399,
- "date": "2015-01-23",
- "montant": "360.0$"
- }],
- "total": "635.0$"
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "remboursements": [],
- "total": "0.0$"
-}
+++ /dev/null
-{
- "dossier": "C100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "170.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "180.0$"
- }],
- "total": "350.0$"
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "75.0$"
- }, {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "900.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "100.0$"
- }],
- "total": "1075.0$"
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.0$"
- }, {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "65.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "100.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "0.0$"
- }],
- "total": "234.0$"
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 200,
- "date": "2015-01-11",
- "montant": "69.0$"
- }, {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "65.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "100.0$"
- }],
- "total": "234.0$"
-}
+++ /dev/null
-{
- "dossier": "D100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "150.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "190.0$"
- }],
- "total": "340.0$"
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 100,
- "date": "2015-01-11",
- "montant": "58.50$"
- }, {
- "soin": 334,
- "date": "2015-01-13",
- "montant": "540.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "15.0$"
- }],
- "total": "613.50$"
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 200,
- "date": "2015-01-11",
- "montant": "8.27$"
- }, {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "15.0$"
- }, {
- "soin": 600,
- "date": "2015-01-23",
- "montant": "60.0$"
- }],
- "total": "83.27$"
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 200,
- "date": "2015-01-11",
- "montant": "8.27$"
- }, {
- "soin": 400,
- "date": "2015-01-13",
- "montant": "15.0$"
- }, {
- "soin": 500,
- "date": "2015-01-23",
- "montant": "20.0$"
- }],
- "total": "43.27$"
-}
+++ /dev/null
-{
- "dossier": "E100323",
- "mois": "2015-01",
- "remboursements": [{
- "soin": 150,
- "date": "2015-01-11",
- "montant": "30.0$"
- }, {
- "soin": 175,
- "date": "2015-01-11",
- "montant": "20.0$"
- }],
- "total": "50.0$"
-}
+++ /dev/null
-{
- "message": "Wrong contract (expected A, B, C, D or E got 1)"
-}
+++ /dev/null
-{
- "message": "Wrong contract (expected A, B, C, D or E got a)"
-}
+++ /dev/null
-{
- "message": "Wrong contract (expected A, B, C, D or E got Z)"
-}
+++ /dev/null
-{
- "message": "Wrong contract (expected A, B, C, D or E got 1)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key dossier)"
-}
+++ /dev/null
-{
- "message": "Wrong input file (Empty JSON)"
-}
+++ /dev/null
-{
- "message": "Wrong input type (expected JsonObject got JsonArray)"
-}
+++ /dev/null
-{
- "message": "Wrong input file (Malformed JSON object)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key mois)"
-}
+++ /dev/null
-{
- "message": "Wrong type for `mois` (expected String got Int)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `mois` (expected AAAA-MM got 2015/01)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `mois` (expected AAAA-MM got 2015-23)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key date)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `date` (expected AAAA-MM-DD got 2015/01/11)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `mois` (expected AAAA-MM got 2015-13-32)"
-}
+++ /dev/null
-{
- "message": "Wrong `mois` for `soin` with id `100`"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key reclamations)"
-}
+++ /dev/null
-{
- "message": "Wrong type for `number` (expected JsonArray got JsonObject)"
-}
+++ /dev/null
-{
- "message": "Wrong type for `reclamations#0` (expected JsonObject got Int)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key soin)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key montant)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `montant` (expected XX.XX$ got ABCD)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `montant` (expected XX.XX$ got 234)"
-}
+++ /dev/null
-{
- "message": "Wrong format for `montant` (expected XX.XX$ got 234.00)"
-}
+++ /dev/null
-{
- "message": "Malformed input (missing key soin)"
-}
+++ /dev/null
-{
- "message": "Wrong type for `soin` (expected Int got ASCIIFlatString)"
-}
+++ /dev/null
-{
- "message": "Unknown `soin` with id `900`"
-}
+++ /dev/null
-#!/bin/bash
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-BIN=../bin
-OUT=out
-RES=res
-
-# Execute test with name $1.
-run_test()
-{
- local test="$1"
- $BIN/refund $test.json $OUT/$test.res > $OUT/$test.out 2> $OUT/$test.err
- diff $OUT/$test.res $RES/$test.res > $OUT/$test.diff 2> /dev/null
-}
-
-# Return
-# 0 if the sav not exists
-# 1 if the file does match
-# 2 if the file does not match
-check_result() {
- local test="$1"
-
- if [ ! -r "$RES/$test.res" ]; then
- return 0
- elif [ ! -s $OUT/$test.diff ]; then
- return 1
- else
- return 2
- fi
-}
-
-echo "Testing..."
-echo ""
-
-rm -rf $OUT 2>/dev/null
-mkdir $OUT 2>/dev/null
-
-all=0
-ok=0
-ko=0
-sk=0
-
-for file in `ls *.json`; do
- ((all++))
- test="${file%.*}"
- echo -n "* $test: "
-
- run_test $test
- check_result $test
-
- case "$?" in
- 0)
- echo "skip ($test.res not found)"
- ((sk++))
- continue;;
- 1)
- echo "success"
- ((ok++))
- ;;
- 2)
- echo "error (diff $OUT/$test.res $RES/$test.res)"
- ((ko++))
- ;;
- esac
-done
-
-# clear tmp stats file.
-rm stats.json
-
-echo ""
-echo "==> success $ok/$all ($ko tests failed, $sk skipped)"
-
-# return result
-test "$ok" == "$all"
+++ /dev/null
-# wiringPi nit wrapper
-
-## Installation
-
-You need to install the [wiringPi library](http://wiringpi.com/). Refer to [download and install](http://wiringpi.com/download-and-install/) manual.
-
-## Compiling
-
-Link to the library must be passed to nit compiler:
-
- nitc myprogram.nit --cc-lib-name wiringPi
-
-## Usage
-
-You first need to initialize the wiringPi library using a setup methods.
-
-Setup methods are:
-
-* `wiringPi_setup`: This initialises wiringPi and assumes that the calling program is going to be using the wiringPi pin numbering scheme;
-* `wiringPi_setup_gpio`: Same as wiringPi_setup, however it allows the calling programs to use the Broadcom GPIO pin numbers directly with no re-mapping;
-* `wiringPi_setup_phys`: Identical to wiringPi_setup, however it allows the calling programs to use the physical pin numbers on the P1 connector only;
-* `wiringPi_setup_sys`: This initialises wiringPi but uses the /sys/class/gpio interface rather than accessing the hardware directly;
-
-For example:
-
- # init wiringPi lib with gpio output
- wiringPi_set_gpio
-
-Then you can refer to a GPIO Pin using its id:
-
- var pin = new RPIPin(23)
-
-Before read or write a value on a pin you need to set its mode.
-
-Modes are:
-
-* INPUT
-* OUTPUT
-* PWM_OUTPUT
-* GPIO_CLOCK
-
-Note that only wiringPi pin 1 (BCM\_GPIO 18) supports PWM output and only wiringPi pin 7 (BCM\_GPIO 4) supports CLOCK output modes.
-
- pin.mode(new RPIPinMode.output_mode)
-
-You can then `write` or `read` a value from the pin:
-
- pin.write(true)
- pin.read
-
-## Copyrigth
-
-The wiringPi library is released under [GNU LGPLv3](http://www.gnu.org/copyleft/lesser.html) licence.
-
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-module shift is example
-
-import wiringPi
-
-if args.is_empty or args.length > 2 then
- print "usage:"
- print "\tshift <register> <state>"
- print "\tshift clear"
- print "\tshift all"
- exit(1)
-end
-
-# init wiringPi lib
-wiringPi_setup
-
-# register layout and pin numbering
-var nb_pins = 8
-var ser_pin = 7
-var rclk_pin = 6
-var srclk_pin = 5
-var sr = new SR595(nb_pins, ser_pin, rclk_pin, srclk_pin)
-
-# set all registers to 0
-if args.first == "clear" then
- sr.clear_registers
-# set all registers to 1
-else if args.first == "all" then
- var regs = new Array[Bool].filled_with(true, nb_pins)
- sr.clear_registers
- sr.write_all(regs)
-# set specified register to specified value
-else
- if args[1].to_i == 0 then
- sr.write(args.first.to_i, false)
- else
- sr.write(args.first.to_i, true)
- end
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Nit wrapping of the wiringPi library [http://wiringpi.com/]
-# WiringPi is an Arduino wiring-like library written in C
-# and released under the GNU LGPLv3 license which is usable
-# from C and C++ and many other languages with suitable wrappers
-module wiringPi
-
-in "C Header" `{
- #include <wiringPi.h>
-
- typedef struct {
- int id;
- } CRPiPin;
-`}
-
-
-# Initializes wiringPi.
-# Assumes that the calling program is going to be using the wiringPi pin numbering scheme.
-fun wiringPi_setup `{ wiringPiSetup(); `}
-
-# Same as wiringPi_setup, but with GPIO.
-# It allows the calling programs to use the Broadcom GPIO pin numbers directly with no re-mapping.
-fun wiringPi_setup_gpio `{ wiringPiSetupGpio(); `}
-
-# Same as to wiringPi_setup, but with physical pin numbers.
-# It allows the calling programs to use the physical pin numbers on the P1 connector only.
-fun wiringPi_setup_phys `{ wiringPiSetupPhys(); `}
-
-# This initializes wiringPi, but with the /sys/class/gpio interface.
-# Use `/sys/class/gpio` rather than accessing the hardware directly.
-fun wiringPi_setup_sys `{ wiringPiSetupSys(); `}
-
-# A Raspberry Pi GPIO Pin
-extern class RPiPin `{ CRPiPin *`}
- new (id: Int) `{
- CRPiPin *pin = malloc( sizeof(CRPiPin) );
- pin->id = id;
- return pin;
- `}
-
- # The pin `id` depends on wiringPi setup used
- fun id: Int `{ return self->id; `}
-
- # Sets the mode of the pin
- fun mode(mode: RPiPinMode) `{ pinMode(self->id, mode); `}
-
- # This sets the pull-up or pull-down resistor mode on the given pin,
- # which should be set as an input.
- fun pullup_dncontrol(pud: PUDControl) `{ pullUpDnControl(self->id, pud); `}
-
- # Writes the value HIGH or LOW (true or false) to the given pin which must
- # have been previously set as an output.
- fun write(high: Bool) `{ digitalWrite(self->id, high? HIGH: LOW); `}
-
- # Writes the value to the PWM register for the given pin.
- # The Raspberry Pi has one on-board PWM pin, pin 1 (BMC_GPIO 18, Phys 12)
- # and the range is 0-1024.
- # Other PWM devices may have other PWM ranges.
- fun pwm_write(value: Int) `{ pwmWrite(self->id, value); `}
-
- # This function returns the value read at the given pin.
- # It will be HIGH or LOW (true or false) depending on the logic level at the pin.
- fun read: Bool `{ return digitalRead(self->id) == HIGH? true: false; `}
-end
-
-# RPI Pin modes
-# Modes are:
-# * INPUT
-# * OUTPUT
-# * PWM_OUTPUT
-# * GPIO_CLOCK
-# Note that only wiringPi pin 1 (BCM_GPIO 18) supports PWM output
-# and only wiringPi pin 7 (BCM_GPIO 4) supports CLOCK output modes.
-extern class RPiPinMode `{ int `}
- new input_mode `{ return INPUT; `}
- new output_mode `{ return OUTPUT; `}
- new pwm_mode `{ return PWM_OUTPUT; `}
- new clock_mode `{ return GPIO_CLOCK; `}
-end
-
-# The BCM2835 has both pull-up an down internal resistors.
-# The parameter pud should be:
-# * PUD_OFF, (no pull up/down)
-# * PUD_DOWN (pull to ground)
-# * PUD_UP (pull to 3.3v)
-# The internal pull up/down resistors have a value of approximately
-# 50Kohms on the Raspberry Pi.
-extern class PUDControl `{ int `}
- new off `{ return PUD_OFF; `}
- new down `{ return PUD_DOWN; `}
- new up `{ return PUD_UP; `}
-end
-
-# Abstraction a daisy chain of 74×595 shift registers
-class SR595
- private var registers: Array[Bool]
- private var nb_pins: Int
- private var ser: RPiPin
- private var rclk: RPiPin
- private var srclk: RPiPin
-
- # Initialize a new shift register chain
- # `nb_pins`: number of pins available
- # `ser_pin`: SER (serial) pin id
- # `rclk_pin`: RCLK (register clock) pin id
- # `srclk_pin`: SRCLK (serial clock) pin id
- init(nb_pins, ser_pin, rclk_pin, srclk_pin: Int) do
- # configure pin layout
- self.nb_pins = nb_pins
- self.ser = new RPiPin(7)
- self.rclk = new RPiPin(6)
- self.srclk = new RPiPin(5)
- clear_registers
- # enable output mode on shift register output
- ser.mode(new RPiPinMode.output_mode)
- rclk.mode(new RPiPinMode.output_mode)
- srclk.mode(new RPiPinMode.output_mode)
- end
-
- # write 'state' on register 'reg'
- fun write(reg: Int, state: Bool) do
- registers[reg] = state
- write_registers
- end
-
- # write all registers
- fun write_all(regs: Array[Bool]) do
- assert regs.length == nb_pins
- registers = regs
- write_registers
- end
-
- # clear all registers
- fun clear_registers do
- registers = new Array[Bool].filled_with(false, nb_pins)
- write_registers
- end
-
- private fun write_registers do
- rclk.write(false)
- var i = registers.length - 1
- while i >= 0 do
- var reg = registers[i]
- srclk.write(false)
- ser.write(reg)
- srclk.write(true)
- i -= 1
- end
- rclk.write(true)
- end
-end
-
--- /dev/null
+blank
+nitreference.aux
+nitreference.epub
+nitreference.log
+nitreference-main.md
+nitreference-main.tex
+nitreference.pdf
--- /dev/null
+nitreference.pdf: *.md
+ ./makedoc.sh
--- /dev/null
+# Attributes
+
+`var`, used inside concrete and abstract classes, declares attributes. Attributes require a static type and can possibly have an initial value (it may be any kind of expression, even including
+`self`)
+
+~~~
+class Foo
+ var i: Int = 5
+ fun dec(x: Int)
+ do
+ var k = self.i
+ if k > x then self.i = k - x else self.i = 0
+ end
+end
+~~~
+
+Note that from an API point of view, there is no way to distinguish the read access of an attribute with a normal method neither to distinguish a write access of an attribute with a setter. Therefore, the read access of an attribute is called a getter while the write access is called a setter.
+
+~~~
+var x = foo.bar # Is bar an attribute or a method?
+foo.bar = y # Is bar an attribute or a setter?
+# In fact, we do not need to know.
+~~~
+
+## Visibility of Attributes
+
+By default, a getter is public and a setter is private. The visibility of getters can be precised with the `private` or `protected` keywords. The visibility of setters can be specified with an
+additional `writable` keyword.
+
+~~~
+class Foo
+ var pub_pri: X
+ protected var pro_pri: X
+ var pub_pub: X is writable
+ private var pri_pro: X is protected writable
+ var pub_pri2: X is private writable # the default
+end
+~~~
+
+## Redefinition of Attributes
+
+Getters and setters of attributes behave like genuine methods that can be inherited and redefined. Getters and setters can also redefine inherited methods. `redef var` declares that the getter is
+a redefinition while `redef writable` declares that the setter is a redefinition.
+
+~~~
+interface Foo
+ fun derp: Int is abstract
+ fun derp=(o: Int) is abstract
+end
+class Bar
+ super Foo
+ redef var derp: Int redef writable
+end
+class Baz
+ super Bar
+ redef fun derp do ...
+ redef fun derp=(o) do ...
+end
+~~~
--- /dev/null
+# Basic Types
+
+## Object
+
+Nit is a full object language. Every value is an instance of a
+class. Even the basic types described in this section.
+
+`Object` is the root of the class hierarchy. All other classes,
+including the basic ones, are a specialization of `Object`.
+
+Classes, methods and operators presented in this section are defined in
+the standard Nit library that is implicitly imported by every module.
+Many other classes and methods are also defined in the standard library.
+Please look at the specific standard library documentation for all
+details.
+
+## Int and Float
+
+`1`, `-1` are `Int` literals, and `1.0`, `-0.1` are `Float`
+literals. Standard arithmetic operators are available with a common
+precedence rules: `*`, `/`, and `%` (modulo) ; then `+` and `-`. Some
+operators can be composed with the assignment (`=`).
+
+~~~
+var i = 5
+i += 2
+print i # outputs 7
+~~~
+
+Conversion from `Int` to `Float` and `Float` to `Int` must be done with
+the `to_f` and `to_i` methods.
+
+## String
+
+Literal strings are enclosed within quotes (`"`).
+To insert a value
+inside a literal string, include the values inside braces (`{}`).
+Braces has to be escaped.
+`+` is the concatenation operator but is less efficient than the brace form.
+
+~~~
+var j = 5
+print "j={j}; j+1={j+1}" # outputs "j=5; j+1=6"
+~~~
+
+Common escaping sequences are available (`\"`, `\n`, `\t`, etc.) plus the escaped brace `\{`.
+
+~~~
+print "hel\"lo\nwo\{rld"
+# outputs `hel"lo` on a first line
+# and `wo{rld` on a second line
+~~~
+
+Multi-line strings are enclosed with triple quotes (`"""`).
+Values are inserted with a triple braces (`{{{value}}}`).
+The multi-line form thus allows verbatim new-lines, quotes and braces
+
+~~~
+print """some text
+with line breaks
+and characters like " and {
+but {{{ 1+2 }}} is rendered as 3
+"""
+~~~
+
+All objects have a `to_s` method that converts the object to a String.
+`print` is a top-level method that takes any number of arguments and
+prints to the standard output. `print` always add a newline, another
+top-level method, `printn`, does not add the newline.
+
+~~~
+var x: String
+x = 5.to_s # -> the String "5"
+print x # outputs "5"
+~~~
+
+## Bool
+
+`true` and `false` are the only two `Bool` values. Standard
+Boolean operators are available with the standard precedence rule:
+`not`; then `and`; then `or`.
+
+Common comparison operators are available: `==` and `!=` on all objects;
+`<`, `>`, `<=`, `>=` and `<=>` on `Comparable` objects (which include
+`Int`, `String` and others).
+
+- `==`, `<`, `>`, `<=`, `>=` and `<=>` are standard Nit operators (so they are redefinable).
+
+- `and`, `or` and `not` are not standard Nit operators: they are not
+ redefinable, also they are lazy and have adaptive typing flow
+ effects.
+
+- `==` is not for reference equality but for value equality (like
+ `equals` in Java). There is a special reference equality operator,
+ `is`, but it cannot be redefined and its usage is not recommended.
+ Note also that while `==` is redefinable, it has a special adaptive
+ typing flow effect when used with `null`.
+
+- `!=` is not a standard Nit operator. In fact `x != y` is
+ syntactically equivalent to `not x == y`.
+
+## Array
+
+`Array` is a generic class, thus `Array[Int]` denotes an array
+of integers and `Array[Array[Bool]]` denotes an array of array of
+Booleans. Literal arrays can be declared with the bracket notation
+(`[]`). Empty arrays can also be instantiated with the `new` keyword and
+elements added with the `add` method. Elements can be retrieved or
+stored with the bracket operator.
+
+~~~
+var a = [1, 2, 3, 4] # A literal array of integers
+print a.join(":") # outputs "1:2:3:4"
+var b = new Array[Int] # A new empty array of integers
+b.add(10)
+b.add_all(a)
+b.add(20)
+print b[0] # outputs "10"
+print b.length # outputs "6"
+b[1] = 30
+print b.join(", ") # outputs "10, 30, 2, 3, 4, 20"
+~~~
+
+Note that the type of literal arrays is deduced using the static type
+combination rule.
+
+## Range
+
+`Range` is also a generic class but accepts only `Discrete`
+types (`Int` is discrete). There are two kinds of literal ranges, the
+open one `[1..5[` that excludes the last element, and the closed one
+`[1..5]` that includes it.
+
+~~~
+print([1..5[.join(":")) # outputs "1:2:3:4"
+print([1..5].join(":")) # outputs "1:2:3:4:5"
+~~~
+
+Ranges are mainly used in `for` loops.
+
+## HashMap
+
+`HashMap` is a generic class that associates keys with values.
+There is no literal hashmap, therefore the `new` keyword is used to
+create an empty `HashMap` and the bracket operators are used to store
+and retrieve values.
+
+~~~
+var h = new HashMap[String, Int]
+# h associates strings to integers
+h["six"] = 6
+print h["six"] + 1 # outputs "7"
+~~~
--- /dev/null
+# Classes
+
+`interface`, `abstract class`, `class` and `enum` are the four kinds of classes. All these classes can be in multiple inheritance, can define new methods and redefine inherited method (yes, even interfaces).
+
+Here are the differences:
+
+- interfaces can only specialize other interfaces, cannot have attributes, cannot have constructors, cannot be instantiated.
+
+- abstract classes cannot specialize enums, can have attributes, must have constructors, cannot be instantiated.
+
+- concrete classes (i.e. `class`) cannot specialize enums, can have attributes, must have constructors, can be instantiated.
+
+- enums (e.g. `Int` or `Bool`) can only specialize interfaces, cannot have attributes, cannot have constructors, have proper instances but they are not instantiated by the programmer—it means no `new Int`. Note that at this point there is no user-defined enums.
+
+All kinds of classes must have a name, can have some superclasses and can have some definitions of properties. Properties are methods, attributes, constructors and virtual types. All kinds of classes can also be generic. When we talk about “classes” in general, it means all these four kinds. We say “concrete classes” to designate only the classes declared with the `class` keyword alone.
+
+## Class Specialization
+
+`super` declares superclasses. Classes inherit methods, attributes and virtual-types defined in their superclasses. Currently, constructors are inherited in a specific manner.
+
+`Object` is the root of the class hierarchy. It is an interface and all other kinds of classes are implicitly a subclass of `Object`.
+
+There is no repeated inheritance nor private inheritance. The specialization between classes is transitive, therefore `super` declarations are superfluous (thus ignored).
+
+## Class Refinement
+
+`redef` allows modules to refine imported classes (even basic ones). Refining a class means:
+
+- adding new properties: methods, attributes, constructors, virtual types;
+
+- redefining existing properties: methods and constructors;
+
+- adding new superclasses.
+
+Note that the kind or the visibility of a class cannot be changed by a refinement. Therefore, it is allowed to just write `redef class X` whatever is the kind or the visibility of `X`.
+
+In programs, the real instantiated classes are always the combination of all their refinements.
+
+~~~
+redef class Int
+ fun fib: Int
+ do
+ if self < 2 then return self
+ return (self-1).fib + (self-2).fib
+ end
+end
+# Now all integers have the fib method
+print 15.fib # outputs 610
+~~~
--- /dev/null
+# Constructors
+
+Constructors in Nit behave differently.
+
+Their objective is double :
+
+* be compatible with full multiple-inheritance
+* be simple enough to be KISS and compatible with the principle of least surprise.
+
+
+## `new` construction and simple classes
+
+Classes in OO models are often a simple aggregates of attributes and methods.
+
+By default, the `new` construction require a value for each attribute defined in a class without a default value.
+
+~~~
+class Product
+ var id: String
+ var description: String
+ var price: Float
+end
+var p = new Product("ABC", "Bla bla", 15.95)
+assert p.id == "ABC"
+~~~
+
+In subclasses, additional attributes are automatically collected.
+
+~~~
+class Book
+ super Product
+ var author: String
+end
+
+var book = new Book("ABC", "Bla bla", 15.95, "John Doe")
+~~~
+
+
+## special `init` method
+
+The special init method is automatically invoked after the end of a `new` construction.
+It is used to perform additional systematic tasks.
+
+Because the `init` is run at the end of the initialization sequence, initialized attributes are usable in the body.
+
+~~~
+class OverpricedProduct
+ super Product
+ init
+ do
+ price = price * 10.0
+ end
+end
+var op = new OverpricedProduct("ABC", "Bla bla", 15.95)
+assert op.price == 159.50
+~~~
+
+
+## Uncollected attributes
+
+There is three cases for an attributes to not be collected in the `new`.
+
+* Attributes with a default value
+* Attributes with the annotation `noinit`
+* Attributes introduced in refinement of classes
+
+~~~
+class TaxedProduct
+ super Product
+ var tax_rate = 9.90
+ var total_price: Float is noinit
+ init
+ do
+ total_price = price * (1.0 + tax_rate/100.0)
+ end
+end
+var tp = new TaxedProduct("ABC", "Bla bla", 15.95)
+assert tp.total_price == 17.52905
+~~~
+
+Note: The orchestration here is important. In order, the following is executed:
+
+1. All defauts values are computed and set
+2. Setters are invoked.
+3. `init` is invoked.
+
+Therefore, `total_price` cannot be initialised with a default value, because at the time of the computation of the default values, the attribute `price` in not yet initialised.
+
+
+## Generalized initializers
+
+Initializers are methods that are automatically invoked by the new.
+In fact, by default, the setter of an attribute is used as a initializer.
+
+`autoinit` is used to register a method as a setter.
+
+~~~
+class FooProduct
+ super Product
+ fun set_xy(x, y: Int) is autoinit do z = x * 10 + y
+ var z: Int is noinit
+end
+var fp = new FooProduct("ABC", "Bla bla", 15.96, 1, 3)
+assert fp.z == 13
+~~~
+
+Generalized setters are a powerful tool but often needed in only rare specific cases.
+In most case, there is no reason that an argument of a `new` construction is not stored in the object as a real attribute.
+
+
+## Inheritance
+
+As explained above, one of the main advantage of these constructors is their compatibility with multiple inheritance.
+
+~~~
+class MultiProduct
+ super OverpricedProduct
+ super TaxedProduct
+ super FooProduct
+end
+var mp = new MultiProduct("ABC", "Bla bla", 15.96, 1, 3)
+assert mp.id == "ABC"
+assert mp.price == 159.6
+assert mp.total_price == 175.4
+assert mp.z == 13
+~~~
+
+
+## Named init
+
+Named `init` are less flexible trough inheritance, thus should no be used.
+They allow to have additional constructor for classes and more control in the construction mechanism.
+
+~~~
+class Point
+ var x: Float
+ var y: Float
+
+ init origin
+ do
+ init(0.0, 0.0)
+ end
+
+ init polar(r, phi: Float)
+ do
+ var x = r * phi.cos
+ var y = r * phi.sin
+ init(x, y)
+ end
+
+ redef fun to_s do return "({x},{y})"
+end
+var p1 = new Point(1.0, 2.0)
+assert p1.to_s == "(1,2)"
+var p2 = new Point.origin
+assert p2.to_s == "(0,0)"
+var p3 = new Point.polar(1.0, 2.0)
+assert p3.to_s == "(-0.4161,0.9092)"
+~~~
+
+
+## Legacy `init`
+
+nameless `init` defined with argument or with an explicit visibility are still accepted as a fallback of the old-constructors.
+They should not be used since they will be removed in a near future.
+
+
+## `new` factories
+
+`new` factories permit to completely shortcut the class instantiation mechanim.
+It could be used to provide `new` syntax on non-concrete class (mainly `extern class`).
+
+`new` factories behave like a top-level function that return the result of the construction.
+It is basically some kind of syntactic sugar.
+
+~~~
+abstract class Person
+ var age: Int
+ new(age: Int)
+ do
+ if age >= 18 then
+ return new Adult(age)
+ else
+ return new Child(age)
+ end
+ end
+end
+class Adult
+ super Person
+ # ...
+end
+class Child
+ super Person
+ # ...
+end
+~~~
--- /dev/null
+# Generic Classes
+
+Generic classes are defined with formal generic parameters
+declared within brackets. Formal generic parameters can then be used as
+a regular type inside the class. Generic classes must always be
+qualified when used.
+
+~~~
+class Pair[E]
+ var first: E
+ var second: E
+ fun is_same: Bool
+ do
+ return self.first == self.second
+ end
+end
+var p1 = new Pair[Int](1, 2)
+print p1.second * 10 # outputs "20"
+print p1.is_same # outputs "false"
+var p2 = new Pair[String]("hello", "world")
+p2.first = "world"
+print p2.is_same # outputs "true"
+~~~
+
+Unlike many object-oriented languages, generic classes in Nit yield a
+kind of sub-typing. For example, `Pair[Int]` is a subtype of
+`Pair[Object]`.
--- /dev/null
+#!/bin/sh
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+echo > blank
+cat \
+ syntax.md blank\
+ basic_type.md blank\
+ structure.md blank\
+ variable.md blank\
+ module.md blank\
+ class.md blank\
+ method.md blank\
+ attribute.md blank\
+ constructor.md blank\
+ genericity.md blank\
+ virtual_type.md\
+ | sed -e '/\[\[!template/d' \
+ -e 's/\[\[\([^|]*\)|\([^]]*\)\]\]/\1 \\goto{\2}/g' \
+ -e 's/\[\[\([^]]*\)\]\]/\1 \\goto{\1}/g' \
+ > nitreference-main.md
+pandoc nitreference-main.md -f markdown -t latex --listings -o nitreference-main.tex
+pdflatex nitreference.tex
+pandoc nitreference-main.md -V title="Nit Reference" -f markdown -t epub -o nitreference.epub
--- /dev/null
+# Methods
+
+`fun` declares methods. Methods must have a name, may have parameters, and may have a return type. Parameters are typed; however, a single type can be used for multiple parameters.
+
+~~~
+fun foo(x, y: Int, s: String): Bool ...
+~~~
+
+`do` declares the body of methods. Alike control structures, a one-liner version is available.
+Therefore, the two following methods are equivalent.
+
+~~~
+fun next1(i: Int): Int
+do
+ return i + 1
+end
+
+fun next2(i: Int): Int do return i + 1
+~~~
+
+Inside the method body, parameters are considered as variables. They can be assigned and are subject to adaptive typing.
+
+`self`, the current receiver, is a special parameter. It is not assignable but is subject to adaptive typing.
+
+`return` exits the method and returns to the caller. In a function, the return value must be provided with a return in all control flow paths.
+
+## Method Call
+
+Calling a method is usually done with the dotted notation `x.foo(y, z)`. The dotted notation can be chained.
+
+A method call with no argument does not need parentheses. Moreover, even with arguments, the parentheses are not required in the principal method of a statement.
+
+~~~
+var a = [1]
+a.add 5 # no () for add
+print a.length # no () for length, no () for print
+~~~
+
+However, this last facility requires that the first argument does not start with a parenthesis or a bracket.
+
+~~~
+foo (x).bar # will be interpreted as (foo(x)).bar
+foo [x].bar # will be interpreted as (foo[x]).bar
+~~~
+
+## Method Redefinition
+
+`redef` denotes methods that are redefined in subclasses or in class refinements. The number and the types of the parameters must be invariant. Thus, there is no need to reprecise the types of the parameters, only names are mandatory.
+
+The return type can be redefined to be a more precise type. If same type is returned, there is no need to reprecise it.
+
+The visibility, also, cannot be changed, thus there is also no need to reprecise it.
+
+~~~
+class Foo
+ # implicitly an Object
+ # therefore inherit '==' and 'to_s'
+ var i: Int
+ redef fun to_s do return "Foo{self.i}"
+ redef fun ==(f) do return f isa Foo and f.i == self.i
+end
+~~~
+
+## Abstract Methods
+
+`is abstract` indicates methods defined without a body. Subclasses and refinements can then redefine it (the `redef` is still mandatory) with a proper body.
+
+~~~
+interface Foo
+ fun derp(x: Int): Int is abstract
+end
+class Bar
+ super Foo
+ redef fun derp(x) do return x + 1
+end
+~~~
+
+Concrete classes may have abstract methods. It is up to a refinement to provide a body.
+
+## Call to Super
+
+`super` calls the “previous” definition of the method. It is used in a redefinition of a method in a subclass or in a refinement, It can be used with or without arguments; in the latter case, the original arguments are implicitly used.
+
+The `super` of Nit behave more like the `call-next-method` of CLOS that the `super` of Java or Smalltalk. It permits the traversal of complex class hierarchies and refinement. Basically, `super` is polymorphic: the method called by `super` is not only determined by the class of
+definition of the method but also by the dynamic type of `self`.
+
+The principle it to produce a strict order of the redefinitions of a method (the linearization). Each call to `super` call the next method definition in the linearization. From a technical point of view, the linearization algorithm used is based on C3. It ensures that:
+
+- A definition comes after its redefinition.
+
+- A redefinition in a refinement comes before a redefnition in its superclass.
+
+- The order of the declaration of the superclasses is used as the
+ ultimate disambiguation.
+
+<!-- -->
+
+~~~
+class A
+ fun derp: String do return "A"
+end
+class B
+ super A
+ redef fun derp do return "B" + super
+end
+class C
+ super A
+ redef fun derp do return "C" + super
+end
+class D
+ super B
+ super C
+ redef fun derp do return "D" + super
+ # Here the linearization order of the class D is DBCA
+ # D before B because D specializes B
+ # B before A because B specializes A
+ # D before C because D specializes C
+ # C before A because C specializes A
+ # B before C because in D 'super B' is before 'super C'
+end
+var b = new B
+print b.derp # outputs "BA"
+var d = new D
+print d.derp # outputs "DBCA"
+~~~
+
+## Operators and Setters
+
+Operators and setters are methods that require a special syntax for their definition and their invocation.
+
+- binary operators: `+`, `-`, `*`, `/`, `\%`, `==`, `<`, `>`, `<=`,`>=`, `<<`, `>>` and `<=>`. Their definitions require exactly one parameter and a return value. Their invocation is done with `x + y` where `x` is the receiver, `+` is the operator, and `y` is the argument.
+
+- unary operator: `-`. Its definition requires a return value but no parameter. Its invocation is done with `-x` where `x` is the receiver.
+
+- bracket operator: `[]`. Its definition requires one parameter or more and a return value. Its invocation is done with `x[y, z]` where `x` is the receiver, `y` the first argument and `z` the second argument.
+
+- setters: `something=` where `something` can be any valid method identifier. Their definitions require one parameter or more and no return value. If there is only one parameter, the invocation is done with `x.something = y` where `x` is the receiver and y the argument. If there is more that one parameter, the invocation is done with `x.something(y, z) = t` where `x` is the receiver, `y` the first argument, `z` the second argument and `t` the last argument.
+
+- bracket setter: `[]=`. Its definition requires two parameters or more and no return value. Its invocation is done with `x[y, z] = t` where `x` is the receiver, `y` the first argument, `z` the second argument and `t` the last argument.
+
+<!-- -->
+
+~~~
+class Foo
+ fun +(a: Bar): Baz do ...
+ fun -: Baz do ...
+ fun [](a: Bar): Baz do ...
+ fun derp(a: Bar): Baz do ...
+ fun derp=(a: Bar, b: Baz) do ...
+ fun []= (a: Bar, b: Baz) do ...
+end
+var a: Foo = ...
+var b: Bar = ...
+var c: Baz = ...
+c = a + b
+c = -b
+c = a[b] # The bracket operator '[]'
+c = a.derp(b) # A normal method 'derp'
+a.derp(b) = c # A setter 'derp='
+a[b] = c # The bracket setter '[]='
+~~~
+
+`+=` and `-=` are combinations of the assignment (`=`) and a binary operator. These feature are extended to setters where a single `+=` is in fact three method calls: a function call, the operator call, then a setter call.
+
+~~~
+a += c # equiv. a = a + c
+a[b] += c # equiv. a[b] = a[b] + c
+a.foo += c # equiv. a.foo = a.foo + c
+a.bar(b) += c # equiv. a.bar(b) = a.bar(b) + c
+~~~
+
+## Variable Number of Arguments
+
+A method can accept a variable number of arguments using ellipsis (`...`). The definition use `x: Foo...` where `x` is the name of the parameter and `Foo` a type. Inside the body, the static type of `x` is `Array[Foo]`. The caller can use 0, 1, or more arguments for the parameter `x`. Only one ellipsis is allowed in a signature.
+
+~~~
+fun foo(x: Int, y: Int..., z: Int)
+do
+ print "{x};{y.join(",")};{z}"
+end
+foo(1, 2, 3, 4, 5) # outputs "1;2,3,4;5"
+foo(1, 2, 3) # outputs "1;2;3"
+~~~
+
+## Top-level Methods and Main Body
+
+Some functions, like `print`, are usable everywhere simply without using a specific receiver. Such methods are just defined outside any classes. In fact, these methods are implicitly defined in the
+`Object` interface, therefore inherited by all classes, therefore usable everywhere. However, this principle may change in a future version.
+
+In a module, the main body is a bunch of statements at the end of a file. The main body of the main module is the program entry point. In fact, the main method of a program is implicitly defined as the redefinition of the method `main` of the `Sys` class; and the start of the program is the implicit statement `(Sys.new).main`. Note that because it is a redefinition, the main part can use `super` to call the “previous” main part in the imported modules. If there is no main part
+in a module, it is inherited from imported modules.
+
+Top-level methods coupled with the main body can be used to program in a pseudo-procedural way. Therefore, the following programs are valid:
+
+~~~
+print "Hello World!"
+~~~
+
+~~~
+fun sum(i, j: Int): Int
+do
+ return i + j
+end
+print sum(4, 5)
+~~~
+
+## Intern and Extern Methods
+
+`intern` and `extern` indicate concrete methods whose body is not written in Nit.
+
+The body of `intern` methods is provided by the compiler itself for performance or bootstrap reasons. For the same reasons, some intern methods, like `+` in `Int` are not redefinable.
+
+The body of `extern` methods is provided by libraries written in C; for instance, the system libraries required for input/output. Extern methods are always redefinable. See [[FFI]] for more information on `extern` methods.
--- /dev/null
+# Modules
+
+`module` declares the name of a module. While optional it is recommended to use it, at least for documentation purpose. The basename of the source file must match the name declared with `module`. The extension of the source file must be `nit`.
+
+A module is made of, in order:
+
+- the module declaration;
+- module importations;
+- class definitions (and refinements) ;
+- top-level function definitions (and redefinitions) ;
+- main instructions .
+
+## Module Importation
+
+`import` declares dependencies between modules. By default (that is without any `import` declaration), a module publicly imports the module `standard`. Dependencies must not produce cycles. By importing a module, the importer module can see and use classes and properties defined in the imported module.
+
+- `import` indicates a public importation. Importers of a given module will also import its publicly imported modules. An analogy is using `#include` in a header file (`.h`) in C/C++.
+
+- `private import` indicates a private importation. Importers of a given module will not automatically import its privately imported modules. An analogy is using `#include` in a body file (`.c`) in C/C++.
+
+- `intrude import` indicates an intrusive importation. `intrude` `import` bypasses the `private` visibility and gives to the importer module a full access on the imported module. Such an import may only be considered when modules are strongly bounded and developed together. The closest, but insufficient, analogy is something like including a body file in a body file in C/C++.
+
+## Visibility
+
+By default, all classes, methods, constructors and virtual types are public which means freely usable by any importer module. Once something is public it belongs to the API of the module and should not be changed.
+
+`private` indicates classes and methods that do not belong to the API. They are still freely usable inside the module but are invisible in other modules (except those that use `intrude import`).
+
+`protected` indicates restricted methods and constructors. Such methods belong to the API of the module but they can only be used with the `self` receiver. Basically, `protected` methods are limited to the current class and its subclasses. Note that inside the module (and in
+intrude importers), there is still no restriction.
+
+Visibility of attributes is more specific and is detailed in its own section.
+
+~~~
+module m1
+class Foo
+ fun pub do ...
+ protected fun pro
+ do ...
+ private fun pri
+ do ...
+end
+private class Bar
+ fun pri2 do ...
+end
+var x: Foo = ...
+var y: Bar = ...
+# All OK, it is
+# inside the module
+x.foo
+x.pro
+x.pro
+y.pri2
+~~~
+
+<!-- -->
+
+~~~
+module m2
+import m1
+class Baz
+ super Foo
+ fun derp
+ do
+ self.pro # OK
+ end
+end
+var x: Foo = ...
+x.pub # OK
+x.pro # Compile error:
+ # pro is protected
+x.pri # Compile error:
+ # unknown method pri
+
+var y: Bar
+# Compile error:
+# unknown class Bar
+~~~
+
+## Visibility Coherence
+
+In order to guarantee the coherence in the visibility, the following rules apply:
+
+- Classes and properties privately imported are considered private: they are not exported and do not belong to the API of the importer.
+
+- Properties defined in a private class are private.
+
+- A static type is private if it contains a private class or a private virtual type.
+
+- Signatures of public and protected properties cannot contain a private static type.
+
+- Bounds of public generic class and public virtual types cannot contain a private static type.
--- /dev/null
+% This file is part of Nit ( http://www.nitlanguage.org ).
+%
+% Copyright 2011 Jean Privat <jean@pryen.org>
+%
+% Licensed under the Apache License, Version 2.0 (the "License");
+% you may not use this file except in compliance with the License.
+% You may obtain a copy of the License at
+%
+% http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS,
+% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+% See the License for the specific language governing permissions and
+% limitations under the License.
+
+\usepackage{lmodern} % because there is a bizarre 'pdfTeX error (font expansion): auto expansion is only possible with scalable fonts' unless
+\usepackage{listings} % because we extends it
+\usepackage{xcolor} % because we like colors
+
+% definition of the nit language
+\lstdefinelanguage{nit}{%
+keywords={import,class,interface,universal,super,fun,var,redef,protected,private,module,init,do,end,new,%
+ return,if,then,else,while,for,loop,in,isa,isset,break,continue,label,%
+ is,abstract,self,true,false,null,nullable,writable,assert,and,or,not,extern,intern},%
+morecomment=[l]{\#},%
+morestring=[b]",%
+}
+
+% disable spaces ij strings by default
+\lstset{showstringspaces=false}
+
+% easy nice environement for nit listings
+%\lstnewenvironment{lst}[1][]{%
+ \lstset{basicstyle=\scriptsize\ttfamily,%
+ keywordstyle=\bf\color{blue!30!black},%
+ commentstyle=\itshape\color{green!30!black},%
+ language=nit,%
+ backgroundcolor=\color{black!10},%
+ moredelim=[is][\color{yellow!30!black}]{@}{@},%
+tabsize=3}%,%
+% #1}}{}
+
+% makes @ a nice shortcut for inline Nit code
+%\lstMakeShortInline[basicstyle=\small\ttfamily\color{blue!30!black}]{@}
--- /dev/null
+% This file is part of Nit ( http://www.nitlanguage.org ).
+%
+% Copyright 2011 Jean Privat <jean@pryen.org>
+%
+% Licensed under the Apache License, Version 2.0 (the "License");
+% you may not use this file except in compliance with the License.
+% You may obtain a copy of the License at
+%
+% http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS,
+% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+% See the License for the specific language governing permissions and
+% limitations under the License.
+\documentclass[10pt]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage{nitlanguage}
+\usepackage{multicol}
+\usepackage{savetrees}
+\usepackage{listings}
+\usepackage{microtype}
+\usepackage{xcolor}
+\usepackage{comment}
+%\usepackage{../nit_version}
+
+\newcommand\thedoctitle{A Concise Reference of the Nit Language}
+\title{\thedoctitle}
+\author{Jean Privat}
+\date{\today}
+
+\usepackage[bookmarks=false,pdftitle={\thedoctitle}]{hyperref}
+\pdfcompresslevel=9 %best compression level for text and image
+
+%\setcounter{collectmore}{90} % Force better column breaks
+
+\lstMakeShortInline[basicstyle=\small\ttfamily\color{blue!30!black}]{@}
+\lstset{language=nit}
+
+\hypersetup{colorlinks=true}
+\newcommand\goto[1]{\hyperref[#1]{{\color{red}\scriptsize[\ref*{#1}]}}}
+\newcommand\future[1]{}
+\newcommand\passthrough[1]{#1}
+\newcommand\tightlist{}
+
+\geometry{margin=0.35in} % short margins
+% footer
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\lhead{}
+\chead{}
+\rhead{}
+\lfoot{\small\it\today}
+\cfoot{\small\it\thedoctitle}
+\rfoot{\small\it\thepage}
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\setlength\footskip{15pt}
+
+\begin{document}
+\setlength\columnsep{8pt} % space around big columns
+\begin{multicols}{2}
+\setlength\columnsep{4pt} % space around smalls columns (for examples)
+
+\noindent\textbf{A Concise Reference of the Nit Language}
+
+This document attempts to be as short as possible while covering all features of the language in deepth.
+It is not a real manual to learn the language since concepts are covered when required.
+%Forward and backward references about concepts are written like this~\goto{redef} which means Section~\ref*{redef}.
+%An index\goto{index} also lists concepts and keywords for an improved navigation.
+
+\input{nitreference-main.tex}
+\end{multicols}
+\end{document}
--- /dev/null
+# Control Structures
+
+Traditional procedural control structures exist in Nit. They
+also often exist in two versions: a one-liner and a block version.
+
+## Control Flow
+
+Control structures dictate the control flow of the
+program. Nit heavily refers to the control flow in its specification:
+
+- No unreachable statement;
+
+- No usage of undefined variables;
+
+- No function without a `return` with a value;
+
+- Adaptive typing.
+
+Some structures alter the control flow but are not described in this
+section: `and`, `or`, `not`, `or else` and `return`.
+
+Note that the control flow is determined only from the position, the
+order and the nesting of the control structures. The real value of the
+expressions used has no effect on the control flow analyses.
+
+~~~
+if true then
+ return
+else
+ return
+end
+print 1 # Compile error: unreachable statement
+
+if true then
+ return
+end
+print 1 # OK, but never executed
+~~~
+
+## if
+
+~~~
+if exp then stm
+if exp then stm else stm
+if exp then
+ stms
+end
+
+if exp then
+ stms
+else if exp then
+ stms
+else
+ stms
+end
+~~~
+
+Note that the following example is invalid since the first line is
+syntactically complete thus the newline terminate the whole `if`
+structure; then an error is signaled since a statement cannot begin with
+`else`.
+
+~~~
+if exp then stm # OK: complete 'if' structure
+else stm # Syntax error: unexpected 'else'
+~~~
+
+## while
+
+~~~
+while exp do stm
+while exp do
+ stms
+end
+~~~
+
+## for
+
+`for` declares an automatic variable used to iterates on `Collection` (`Array` and `Range` are both `Collection`).
+
+~~~
+for x in [1..5] do print x # outputs 1 2 3 4 5
+for x in [1, 4, 6] do
+ print x # outputs 1 4 6
+end
+~~~
+
+`for` can also be used with reversed ranges to iterate in reverse order.
+
+Step can also be used to specify the size of each increment at the end of a for cycle.
+
+~~~
+for x in [9 .. 4].step(-1) do print x # outputs 9 8 7 6 5 4
+for x in [9 .. 4[.step(-2) do print x # outputs 9 7 5
+~~~
+
+## loop
+
+Infinite loops are mainly used with breaks. They are useful to implement *until* loops or to simulate the *exit when* control of Ada.
+
+~~~
+loop
+ stms
+ if exp then break
+ stms
+end
+~~~
+
+Note that `loop` is different from `while true` because the control flow does not consider the values of expression.
+
+## do
+
+Single `do` are used to create scope for variables or to be attached with labeled breaks.
+
+~~~
+do
+ var x = 5
+ print x
+end
+# x is not defined here
+~~~
+
+## break, continue and label
+
+Unlabeled `break` exits the current `for`, `while`, `loop`, Unlabeled `continue` skips the current `for`, `while`, `loop`.
+
+`label` can be used with `break` or `continue` to act on a specific control structure (not necessary the current one). The corresponding `label` must be defined after the `end` keyword of the designated control structure.
+
+~~~
+for i in [0..width[ do
+ for j in [0..height[ do
+ if foo(i, j) then break label outer_loop
+ # The 'break' breaks the 'for i' loop
+ end
+end label outer_loop
+~~~
+
+`label` can also be used with `break` and single `do` structures.
+
+~~~
+do
+ stmts
+ if expr then break label block
+ stmts
+end label block
+~~~
+
+## abort
+
+`abort` stops the program with a fatal error and prints a stack trace. Since there is currently no exception nor run-time-errors, abort is somewhat used to simulate them.
+
+## assert
+
+`assert` verifies that a given Boolean expression is true, or else it aborts. An optional label can be precised, it will be displayed on the error message. An optional `else` can also be added and will be executed before the abort.
+
+~~~
+assert bla: whatever else
+ # "bla" is the label
+ # "whatever" is the expression to verify
+ print "Fatal error in module blablabla."
+ print "Please contact the customer service."
+end
+~~~
--- /dev/null
+# Basic Syntax of Nit
+
+The syntax of Nit follows the Pascal tradition and is
+inspired by various script languages (especially Ruby). Its main objective is
+readability.
+
+Indentation is not meaningful in Nit; blocks usually starts with a
+specific keyword and finish with `end`. Newlines are only meaningful at
+the end of declarations, at the end of statements, and after some
+specific keywords. The philosophy is that the newline is ignored if
+something (a statement, a declaration, or whatever) obviously needs more
+input; while the newline terminates lines that seems completed. See the
+complete Nit grammar for more details.
+
+~~~
+# a first complete statement that outputs "2"
+print 1 + 1
+# the second statement is not yet finished
+print 2 +
+# the end of the second statement, outputs "4"
+2
+~~~
+
+Nit aims to achieve some uniformity in its usage of the common
+punctuation: equal (`=`) is for assignment, double equal (`==`) is for
+equality test, column (`:`) is for type declaration, dot (`.`) is for
+polymorphism, comma (`,`) separates elements, and quad (`::`) is for
+explicit designation.
+
+## Identifiers
+
+Identifiers of modules, variables, methods, attributes and
+labels must begin with a lowercase letter and can be followed by
+letters, digits, or underscores. However, the usage of uppercase letters
+(and camelcase) is discouraged and the usage of underscore to separate
+words in identifiers is preferred: `some_identifier`.
+
+Identifiers of classes and types must begin with an uppercase letter and
+can be followed by letters, digits, or underscores. However
+the usage of camelcase is preferred for class identifiers while formal types should be written in all uppercase: `SomeClass` and `SOME_VIRTUAL_TYPE`.
+
+## Style
+
+While Nit does not enforce any kind of source code formatting, the
+following is encouraged:
+
+- indentation uses the tabulation character and is displayed
+ as 8 spaces;
+
+- lines are less than 80 characters long;
+
+- binary operators have spaces around them: `4 + 5`, `x = 5`;
+
+- columns (`:`) and commas (`,`) have a space after them but not
+ before: `var x: X`, `[1, 2, 3]`;
+
+- parenthesis and brackets do not need spaces around them;
+
+- superfluous parenthesis should be avoided;
+
+- the `do` of methods and the single `do` is on its own line and not
+ indented;
+
+- the other `do` are not on a newline.
+
+## Comments and Documentation
+
+As in many script languages, comments begin with a sharp (`#`)
+and run up to the end of the line. Currently, there is no
+multiline-comments.
+
+A comment block right before any definition of module, class, or
+property, is considered as its documentation and will be displayed as
+such by the autodoc. At this point, documentation is displayed verbatim
+(no special formatting or meta-information).
+
+~~~
+# doc. of foo
+module foo
+
+# doc. of Bar
+class Bar
+ # doc. of baz
+ fun baz do end
+end
+~~~
--- /dev/null
+# Local Variables and Static Typing
+
+`var` declares local variables. In fact there is no global variable in Nit, so in this document *variable* always refers to a local variable. A variable is visible up to the end of the current
+control structure. Two variables with the same name cannot coexist: no nesting nor masking.
+
+Variables are bound to values. A variable cannot be used unless it has a value in all control flow paths (à la Java).
+
+~~~
+var x
+var y
+if whatever then
+ x = 5
+ y = 6
+else
+ x = 7
+end
+print x # OK
+print y # Compile error: y is possibly not initialized
+~~~
+
+## Adaptive Typing
+
+Nit features adaptive typing, which means that the static type of a variable can change according to: the assignments of variables, the control flow, and some special operators (`and`, `or`,
+`or else`, `==`, `!=`, and `isa`).
+
+~~~
+var x # a variable
+x = 5
+# static type is Int
+print x + 1 # outputs 6
+x = [6, 7]
+# static type is Array[Int]
+print x[0] # outputs "6"
+
+var x
+if whatever then
+ x = 5
+else
+ x = 6
+end
+# Static type is Int
+~~~
+
+## Variable Upper Bound
+
+An optional type information can be added to a variable declaration. This type is used as an upper bound of the type of the variable. When a initial value is given in a variable declaration without a specific type information, the static type of the initial value is used as an upper bound. If no type and no initial value are given, the upper bound is set to `nullable Object`.
+
+~~~
+var x: Int # Upper bound is Int
+x = "Hello" # Compile error: expected Int
+var y: Object # Upper bound is Object
+y = 5 # OK since Int specializes Object
+var z = 5 # Upper bound is Int
+z = "Hello" # Compile error: expected Int
+var t: Object = 5 # Upper bound is Object
+t = "Hello" # OK
+~~~
+
+The adaptive typing flow is straightforward, therefore loops (`for`, `while`, `loop`) have a special requirement: on entry, the upper bound is set to the current static type; on exit, the upper bound is reset to its previous value.
+
+~~~
+var x: Object = ...
+# static type is Object, upper bound is Object
+x = 5
+# static type is Int, bound remains Object
+while x > 0 do
+ # static type remains Int, bound sets to Int
+ x -= 1 # OK
+ x = "Hello" # Compile error: expected Int
+end
+# static type is Int, bound reset to Object
+x = "Hello" # OK
+~~~
+
+## Type Checks
+
+`isa` tests if an object is an instance of a given type. If the expression used in an `isa` is a variable, then its static type is automatically adapted, therefore avoiding the need of a specific cast.
+
+~~~
+var x: Object = whatever
+if x isa Int then
+ # static type of x is Int
+ print x * 10 # OK
+end
+~~~
+
+Remember that adaptive typing follows the control flow, including the Boolean operators.
+
+~~~
+var a: Array[Object] = ...
+for i in a do
+ # the static type of i is Object
+ if not i isa Int then continue
+ # now the static type of i is Int
+ print i * 10 # OK
+end
+~~~
+
+An interesting example:
+
+~~~
+var max = 0
+for i in whatever do
+ if i isa Int and i > max then max = i
+ # the > is valid since, in the right part
+ # of the "and", the static type of i is Int
+end
+~~~
+
+Note that type adaptation occurs only in an `isa` if the target type is more specific that the current type.
+
+~~~
+var a: Collection[Int] = ...
+if a isa Comparable then
+ # the static type is still Collection[Int]
+ # even if the dynamic type of a is a subclass
+ # of both Collection[Int] and Comparable
+ ...
+end
+~~~
+
+## Nullable Types
+
+`null` is a literal value that is only accepted by some specific static types. However, thanks to adaptive typing, the static type management can be mainly automatic.
+
+`nullable` annotates types that can accept `null` or an expression of a compatible nullable static type.
+
+~~~
+var x: nullable Int
+var y: Int
+x = 1 # OK
+y = 1 # OK
+x = null # OK
+y = null # Compile error
+x = y # OK
+y = x # Compile error
+~~~
+
+Adaptive typing works well with nullable types.
+
+~~~
+var x
+if whatever then
+ x = 5
+else
+ x = null
+end
+# The static type of x is nullable Int
+~~~
+
+Moreover, like the `isa` keyword, the `==` and `!=` operators can adapt the static type of a variable when compared to `null`.
+
+~~~
+var x: nullable Int = whatever
+if x != null then
+ # The static type of x is Int (without nullable)
+ print x + 6
+end
+# The static type of x is nullable Int
+~~~
+
+And another example:
+
+~~~
+var x: nullable Int = whatever
+loop
+ if x == null then continue
+ # The static type of x is Int
+end
+~~~
+
+`or else` can be used to compose a nullable expression with any other expression. The value of `x or else y` is `x` if `x` is not `null` and is `y` if `x` is null. The static type of `x or else y` is the combination of the type of `y` and the not null version of the type of `x`.
+
+~~~
+var i: nullable Int = ...
+var j = i or else 0
+# the static type of j is Int (without nullable)
+~~~
+
+Note that nullable types require a special management for [[attributes|attribute]] and [[constructors|constructor]].
+
+## Explicit Cast
+
+`as` casts an expression to a type. The expression is either casted successfully or there is an `abort`.
+
+~~~
+var x: Object = 5 # static type of x is Object
+print x.as(Int) * 10 # outputs 50
+print x.as(String) # aborts: cast failed
+~~~
+
+Note that `as` does not change the object nor does perform conversion.
+
+~~~
+var x: Object = 5 # static type of x is Object
+print x.as(Int) + 10 # outputs "15"
+print x.to_s + "10" # outputs "510"
+~~~
+
+Because of type adaptation, `as` is rarely used on variables. `isa` (sometime coupled with `assert`) is preferred.
+
+~~~
+var x: Object = 5 # static type of x is Object
+assert x isa Int
+# static type of x is now Int
+print x * 10 # outputs 50
+~~~
+
+`as(not null)` can be used to cast an expression typed by a nullable type to its non nullable version. This form keeps the programmer from writing explicit static types.
+
+~~~
+var x: nullable Int = 5 # static type of x is nullable Int
+print x.as(not null) * 10 # cast, outputs 50
+print x.as(Int) * 10 # same cast, outputs 50
+assert x != null # same cast, but type of x is now Int
+print x * 10 # outputs 50
+~~~
+
+## Static Type Combination Rule
+
+Adaptive typing, literal arrays, and `or else` need to determine a static type by combining other static types. This is done by using the following rule:
+
+- The final type is `nullable` if at least one of the types is `nullable`.
+
+- The final type is the static type that is more general than all the other types.
+
+- If there is no such a type, and the thing typed is a variable, then the final type is the upper bound type of the variable; else there is a compilation error.
+
+<!-- -->
+
+~~~
+var d: Discrete = ...
+# Note: Int < Discrete < Object
+var x
+if whatever then x = 1 else x = d
+# static type is Discrete
+if whatever then x = 1 else x = "1"
+# static type is nullable Object (upper bound)
+var a1 = [1, d] # a1 is a Array[Discrete]
+var a2 = [1, "1"] # Compile error:
+ # incompatible types Int and String
+~~~
--- /dev/null
+# Virtual Types
+
+`type` declares a virtual types in a class. A bound type is
+mandatory. Virtual types can then be used as regular types in the class
+and its subclasses. Subclasses can also redefine it with a more specific
+bound type. One can see a virtual type as an internal formal generic
+parameter or as a redefinable *typedef*.
+
+~~~
+class Foo
+ type E: Object
+ var derp: E
+end
+class Bar
+ super Foo
+ redef type E: Int
+end
+var b = new Bar(5)
+print b.derp + 1 # outputs 6
+~~~
super Config
# Config tree used to store config options
- var ini: ConfigTree is noinit
+ var ini: IniFile is noinit
# Path to app config file
var opt_config = new OptionString("Path to config file", "--config")
redef fun parse_options(args) do
super
- ini = new ConfigTree(config_file)
+ ini = new IniFile.from_file(config_file)
end
# Default config file path
# ~~~
# assert 12.34.to_s == "12.34"
# assert (-0120.030).to_s == "-120.03"
+ # assert (-inf).to_s == "-inf"
+ # assert (nan).to_s == "nan"
# ~~~
#
# see `to_precision` for a custom precision.
redef fun to_s do
- var str = to_precision( 3 )
- if is_inf != 0 or is_nan then return str
- var len = str.length
+ var str = to_precision(3)
+ return adapt_number_of_decimal(str, false)
+ end
+
+ # Return the representation of `self`, with scientific notation
+ #
+ # Adpat the number of decimals as needed from 1 to a maximum of 6
+ # ~~~
+ # assert 12.34.to_sci == "1.234e+01"
+ # assert 123.45.to_sci.to_f.to_sci == "1.2345e+02"
+ # assert 0.001234.to_sci == "1.234e-03"
+ # assert (inf).to_sci == "inf"
+ # assert (nan).to_sci == "nan"
+ # ~~~
+ fun to_sci: String
+ do
+ var is_inf_or_nan = check_inf_or_nan
+ if is_inf_or_nan != null then return is_inf_or_nan
+ return adapt_number_of_decimal(return_from_specific_format("%e".to_cstring), true)
+ end
+
+ # Return the `string_number` with the adapted number of decimal (i.e the fonction remove the useless `0`)
+ # `is_expo` it's here to specifi if the given `string_number` is in scientific notation
+ private fun adapt_number_of_decimal(string_number: String, is_expo: Bool): String
+ do
+ # check if `self` does not need an adaptation of the decimal
+ if is_inf != 0 or is_nan then return string_number
+ var len = string_number.length
+ var expo_value = ""
+ var numeric_value = ""
for i in [0..len-1] do
- var j = len-1-i
- var c = str.chars[j]
- if c == '0' then
- continue
- else if c == '.' then
- return str.substring( 0, j+2 )
- else
- return str.substring( 0, j+1 )
+ var j = len - 1 - i
+ var c = string_number.chars[j]
+ if not is_expo then
+ if c == '0' then
+ continue
+ else if c == '.' then
+ numeric_value = string_number.substring( 0, j + 2)
+ break
+ else
+ numeric_value = string_number.substring( 0, j + 1)
+ break
+ end
+ else if c == 'e' then
+ expo_value = string_number.substring( j, len - 1 )
+ is_expo = false
end
end
- return str
+ return numeric_value + expo_value
+ end
+
+ # Return a string representation of `self` in fonction if it is not a number or infinity.
+ # Return `null` if `self` is not a not a number or an infinity
+ private fun check_inf_or_nan: nullable String
+ do
+ if is_nan then return "nan"
+
+ var isinf = self.is_inf
+ if isinf == 1 then
+ return "inf"
+ else if isinf == -1 then
+ return "-inf"
+ end
+ return null
end
# `String` representation of `self` with the given number of `decimals`
# ~~~
fun to_precision(decimals: Int): String
do
- if is_nan then return "nan"
+ var is_inf_or_nan = check_inf_or_nan
+ if is_inf_or_nan != null then return is_inf_or_nan
+ return return_from_specific_format("%.{decimals}f".to_cstring)
+ end
- var isinf = self.is_inf
- if isinf == 1 then
- return "inf"
- else if isinf == -1 then
- return "-inf"
- end
+ # Returns the hexadecimal (`String`) representation of `self` in exponential notation
+ #
+ # ~~~
+ # assert 12.345.to_hexa_exponential_notation == "0x1.8b0a3d70a3d71p+3"
+ # assert 12.345.to_hexa_exponential_notation.to_f == 12.345
+ # ~~~
+ fun to_hexa_exponential_notation: String
+ do
+ return return_from_specific_format("%a".to_cstring)
+ end
- var size = to_precision_size(decimals)
- var cstr = new CString(size+1)
- to_precision_fill(decimals, size+1, cstr)
- return cstr.to_s_unsafe(byte_length=size, copy=false)
+ # Return the representation of `self`, with the specific given c `format`.
+ private fun return_from_specific_format(format: CString): String
+ do
+ var size = to_precision_size_with_format(format)
+ var cstr = new CString(size + 1)
+ to_precision_fill_with_format(format, size + 1, cstr)
+ return cstr.to_s_unsafe(byte_length = size, copy = false)
end
- # Required string length to hold `self` with `nb` decimals
- #
- # The length does not include the terminating null byte.
- private fun to_precision_size(nb: Int): Int `{
- return snprintf(NULL, 0, "%.*f", (int)nb, self);
+ # The lenght of `self` in the specific given c `format`
+ private fun to_precision_size_with_format(format: CString): Int`{
+ return snprintf(NULL, 0, format, self);
`}
- # Fill `cstr` with `self` and `nb` decimals
- private fun to_precision_fill(nb, size: Int, cstr: CString) `{
- snprintf(cstr, size, "%.*f", (int)nb, self);
+ # Fill `cstr` with `self` in the specific given c `format`
+ private fun to_precision_fill_with_format(format: CString, size: Int, cstr: CString) `{
+ snprintf(cstr, size, format, self);
`}
end
# For most use-cases you need to use the `GithubAPI` client.
module api
-import github_curl
intrude import json::serialization_read
+import base64
+import curl
+import json
+
# Client to Github API
#
# To access the API you need an instance of a `GithubAPI` client.
# The API client allows you to get Github API entities.
#
# ~~~nitish
-# var repo = api.load_repo("nitlang/nit")
+# var repo = api.get_repo("nitlang/nit")
# assert repo != null
# assert repo.name == "nit"
#
-# var user = api.load_user("Morriar")
+# var user = api.get_user("Morriar")
# assert user != null
# assert user.login == "Morriar"
# ~~~
#
# Be aware that there is [rate limits](https://developer.github.com/v3/rate_limit/)
# associated to the key.
- var auth: String
-
- # Github API base url.
- #
- # Default is `https://api.github.com` and should not be changed.
- var api_url = "https://api.github.com"
+ var auth: nullable String = null is optional
# User agent used for HTTP requests.
#
# Default is `nit_github_api`.
#
# See <https://developer.github.com/v3/#user-agent-required>
- var user_agent = "nit_github_api"
+ var user_agent: String = "nit_github_api" is optional
+
+ # Headers to use on all requests
+ fun new_headers: HeaderMap do
+ var map = new HeaderMap
+ var auth = self.auth
+ if auth != null then
+ map["Authorization"] = "token {auth}"
+ end
+ map["User-Agent"] = user_agent
+ # FIXME remove when projects and team are no more in beta
+ map["Accept"] = "application/vnd.github.inertia-preview+json"
+ map["Accept"] = "application/vnd.github.hellcat-preview+json"
+ return map
+ end
- # Curl instance.
+ # Github API base url.
#
- # Internal Curl instance used to perform API calls.
- private var ghcurl: GithubCurl is noinit
+ # Default is `https://api.github.com` and should not be changed.
+ var api_url = "https://api.github.com"
- # Verbosity level.
- #
- # * `0`: only errors (default)
- # * `1`: verbose
- var verbose_lvl = 0 is public writable
+ # Send a HTTPRequest to the Github API
+ fun send(method, path: String, headers: nullable HeaderMap, body: nullable String): nullable String do
+ last_error = null
+ path = sanitize_uri(path)
+ var uri = "{api_url}{path}"
+ var request = new CurlHTTPRequest(uri)
+ request.method = method
+ request.user_agent = user_agent
+ request.headers = headers or else self.new_headers
+ request.body = body
+ return check_response(uri, request.execute)
+ end
- init do
- ghcurl = new GithubCurl(auth, user_agent)
+ private fun check_response(uri: String, response: CurlResponse): nullable String do
+ if response isa CurlResponseSuccess then
+ was_error = false
+ return response.body_str
+ else if response isa CurlResponseFailed then
+ last_error = new GithubAPIError(
+ response.error_msg,
+ response.error_code,
+ uri
+ )
+ was_error = true
+ return null
+ else abort
end
# Deserialize an object
- fun deserialize(string: String): nullable Object do
- var deserializer = new GithubDeserializer(string)
+ fun deserialize(string: nullable Serializable): nullable Object do
+ if string == null then return null
+ var deserializer = new GithubDeserializer(string.to_s)
var res = deserializer.deserialize
- # print deserializer.errors.join("\n") # DEBUG
- return res
- end
-
- # Execute a GET request on Github API.
- #
- # This method returns raw json data.
- # See other `load_*` methods to use more expressive types.
- #
- # var api = new GithubAPI(get_github_oauth)
- # var obj = api.get("/repos/nitlang/nit")
- # assert obj isa JsonObject
- # assert obj["name"] == "nit"
- #
- # Returns `null` in case of `error`.
- #
- # obj = api.get("/foo/bar/baz")
- # assert obj == null
- # assert api.was_error
- # var err = api.last_error
- # assert err isa GithubError
- # assert err.name == "GithubAPIError"
- # assert err.message == "Not Found"
- fun get(path: String): nullable Serializable do
- path = sanitize_uri(path)
- var res = ghcurl.get_and_parse("{api_url}{path}")
- if res isa Error then
- last_error = res
+ if deserializer.errors.not_empty then
was_error = true
+ last_error = new GithubDeserializerErrors("Deserialization failed", deserializer.errors)
+ return null
+ else if res isa GithubError then
+ was_error = true
+ last_error = res
return null
end
was_error = false
return res
end
- # Display a message depending on `verbose_lvl`.
- fun message(lvl: Int, message: String) do
- if lvl <= verbose_lvl then print message
- end
-
# Escape `uri` in an acceptable format for Github.
private fun sanitize_uri(uri: String): String do
# TODO better URI escape.
# Does the last request provoqued an error?
var was_error = false is protected writable
- # Load the json object from Github.
- # See `GithubEntity::load_from_github`.
- protected fun load_from_github(key: String): nullable GithubEntity do
- message(1, "Get {key} (github)")
- var res = get(key)
- if was_error then return null
- return deserialize(res.as(JsonObject).to_json).as(nullable GithubEntity)
+ # Execute a GET request on Github API.
+ #
+ # This method returns a deserialized result.
+ #
+ # For raw data see `send`.
+ #
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var obj = api.get("/repos/nitlang/nit")
+ # assert obj isa Repo
+ # assert obj.name == "nit"
+ # ~~~
+ #
+ # Returns `null` in case of `error`.
+ #
+ # ~~~nitish
+ # obj = api.get("/foo/bar/baz")
+ # assert obj == null
+ # assert api.was_error
+ # assert api.last_error isa GithubError
+ # ~~~
+ fun get(path: String, headers: nullable HeaderMap, data: nullable String): nullable Object do
+ return deserialize(send("GET", path, headers, data))
end
# Get the Github logged user from `auth` token.
#
# ~~~nitish
# var api = new GithubAPI(get_github_oauth)
- # var user = api.load_auth_user
+ # var user = api.get_auth_user
# assert user.login == "Morriar"
# ~~~
- fun load_auth_user: nullable User do
- var user = load_from_github("/user")
- if was_error then return null
- return user.as(nullable User)
+ fun get_auth_user: nullable User do
+ return get("/user").as(nullable User)
end
# Get the Github user with `login`
#
# Loads the `User` from the API or returns `null` if the user cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var user = api.load_user("Morriar")
- # print user or else "null"
- # assert user.login == "Morriar"
- fun load_user(login: String): nullable User do
- return load_from_github("/users/{login}").as(nullable User)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var user = api.get_user("Morriar")
+ # print user or else "null"
+ # assert user.login == "Morriar"
+ # ~~~
+ fun get_user(login: String): nullable User do
+ return get("/users/{login}").as(nullable User)
end
# Get the Github repo with `full_name`.
#
# Loads the `Repo` from the API or returns `null` if the repo cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo.name == "nit"
- # assert repo.owner.login == "nitlang"
- # assert repo.default_branch == "master"
- fun load_repo(full_name: String): nullable Repo do
- return load_from_github("/repos/{full_name}").as(nullable Repo)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo.name == "nit"
+ # assert repo.owner.login == "nitlang"
+ # assert repo.default_branch == "master"
+ # ~~~
+ fun get_repo(repo_slug: String): nullable Repo do
+ return get("/repos/{repo_slug}").as(nullable Repo)
end
- # List of branches associated with their names.
- fun load_repo_branches(repo: Repo): Array[Branch] do
- message(1, "Get branches for {repo.full_name}")
- var array = get("/repos/{repo.full_name}/branches")
- var res = new Array[Branch]
- if not array isa JsonArray then return res
- var deser = deserialize(array.to_json)
- if deser isa Array[Object] then return res # empty array
- return deser.as(Array[Branch])
+ # List of repo branches.
+ #
+ # Pagination:
+ # * `page`: page to fetch (default: 1)
+ # * `per_page`: number of branches by page (default: 30)
+ fun get_repo_branches(repo_slug: String, page, per_page: nullable Int): Array[Branch] do
+ return new GithubArray[Branch].from(get(
+ "/repos/{repo_slug}/branches?{pagination(page, per_page)}"))
end
# List of issues associated with their ids.
- fun load_repo_issues(repo: Repo): Array[Issue] do
- message(1, "Get issues for {repo.full_name}")
- var res = new Array[Issue]
- var issue = load_repo_last_issue(repo)
- if issue == null then return res
- res.add issue
- while issue != null and issue.number > 1 do
- issue = load_issue(repo, issue.number - 1)
- if issue == null then continue
- res.add issue
- end
- return res
+ fun get_repo_issues(repo_slug: String, page, per_page: nullable Int): Array[Issue] do
+ return new GithubArray[Issue].from(get(
+ "/repos/{repo_slug}/issues?{pagination(page, per_page)}"))
end
# Search issues in this repo form an advanced query.
# ~~~
#
# See <https://developer.github.com/v3/search/#search-issues>.
- fun search_repo_issues(repo: Repo, query: String): Array[Issue] do
- query = "/search/issues?q={query} repo:{repo.full_name}"
- var res = new Array[Issue]
- var response = get(query)
- if was_error then return res
- var arr = response.as(JsonObject)["items"].as(JsonArray)
- return deserialize(arr.to_json).as(Array[Issue])
- end
-
- # Get the last published issue.
- fun load_repo_last_issue(repo: Repo): nullable Issue do
- var array = get("/repos/{repo.full_name}/issues")
- if not array isa JsonArray then return null
- if array.is_empty then return null
- var obj = array.first
- if not obj isa JsonObject then return null
- return deserialize(obj.to_json).as(nullable Issue)
+ fun search_repo_issues(repo_slug: String, query: String, page, per_page: nullable Int): nullable SearchResults do
+ return get("/search/issues?q={query} repo:{repo_slug}&{pagination(page, per_page)}").as(nullable SearchResults)
end
# List of labels associated with their names.
- fun load_repo_labels(repo: Repo): Array[Label] do
- message(1, "Get labels for {repo.full_name}")
- var array = get("repos/{repo.full_name}/labels")
- if not array isa JsonArray then return new Array[Label]
- return deserialize(array.to_json).as(Array[Label])
+ fun get_repo_labels(repo_slug: String, page, per_page: nullable Int): Array[Label] do
+ return new GithubArray[Label].from(get(
+ "/repos/{repo_slug}/labels?{pagination(page, per_page)}"))
end
# List of milestones associated with their ids.
- fun load_repo_milestones(repo: Repo): Array[Milestone] do
- message(1, "Get milestones for {repo.full_name}")
- var array = get("/repos/{repo.full_name}/milestones")
- if not array isa JsonArray then return new Array[Milestone]
- return deserialize(array.to_json).as(Array[Milestone])
+ fun get_repo_milestones(repo_slug: String, page, per_page: nullable Int): Array[Milestone] do
+ return new GithubArray[Milestone].from(get(
+ "/repos/{repo_slug}/milestones?{pagination(page, per_page)}"))
end
# List of pull-requests associated with their ids.
# Implementation notes: because PR numbers are not consecutive,
# PR are loaded from pages.
# See: https://developer.github.com/v3/pulls/#list-pull-requests
- fun load_repo_pulls(repo: Repo): Array[PullRequest] do
- message(1, "Get pulls for {repo.full_name}")
- var key = "/repos/{repo.full_name}"
- var res = new Array[PullRequest]
- var page = 1
- loop
- var array = get("{key}/pulls?page={page}").as(JsonArray)
- if array.is_empty then break
- for obj in array do
- if not obj isa JsonObject then continue
- var pr = deserialize(array.to_json).as(nullable PullRequest)
- if pr == null then continue
- res.add pr
- end
- page += 1
- end
- return res
+ fun get_repo_pulls(repo_slug: String, page, per_page: nullable Int): Array[PullRequest] do
+ return new GithubArray[PullRequest].from(get(
+ "/repos/{repo_slug}/pulls?{pagination(page, per_page)}"))
end
# List of contributor related statistics.
- fun load_repo_contrib_stats(repo: Repo): Array[ContributorStats] do
- message(1, "Get contributor stats for {repo.full_name}")
- var res = new Array[ContributorStats]
- var array = get("/repos/{repo.full_name}/stats/contributors")
- if not array isa JsonArray then return res
- return deserialize(array.to_json).as(Array[ContributorStats])
+ fun get_repo_contrib_stats(repo_slug: String): Array[ContributorStats] do
+ return new GithubArray[ContributorStats].from(get("/repos/{repo_slug}/stats/contributors"))
end
# Get the Github branch with `name`.
#
# Returns `null` if the branch cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var branch = api.load_branch(repo, "master")
- # assert branch.name == "master"
- # assert branch.commit isa Commit
- fun load_branch(repo: Repo, name: String): nullable Branch do
- return load_from_github("/repos/{repo.full_name}/branches/{name}").as(nullable Branch)
- end
-
- # List all commits in `self`.
- #
- # This can be long depending on the branch size.
- # Commit are returned in an unspecified order.
- fun load_branch_commits(branch: Branch): Array[Commit] do
- var res = new Array[Commit]
- var done = new HashSet[String]
- var todos = new Array[Commit]
- todos.add branch.commit
- loop
- if todos.is_empty then break
- var commit = todos.pop
- if done.has(commit.sha) then continue
- done.add commit.sha
- res.add commit
- var parents = commit.parents
- if parents == null then continue
- for parent in parents do
- todos.add parent
- end
- end
- return res
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var branch = api.get_branch(repo, "master")
+ # assert branch.name == "master"
+ # assert branch.commit isa Commit
+ # ~~~
+ fun get_branch(repo_slug: String, name: String): nullable Branch do
+ return get("/repos/{repo_slug}/branches/{name}").as(nullable Branch)
end
# Get the Github commit with `sha`.
#
# Returns `null` if the commit cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var commit = api.load_commit(repo, "64ce1f")
- # assert commit isa Commit
- fun load_commit(repo: Repo, sha: String): nullable Commit do
- return load_from_github("/repos/{repo.full_name}/commits/{sha}").as(nullable Commit)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var commit = api.get_commit(repo, "64ce1f")
+ # assert commit isa Commit
+ # ~~~
+ fun get_commit(repo_slug: String, sha: String): nullable Commit do
+ return get("/repos/{repo_slug}/commits/{sha}").as(nullable Commit)
+ end
+
+ # Get the status of a commit
+ #
+ # The status holds the result of each check ran on a commit like CI, reviews etc.
+ fun get_commit_status(repo_slug: String, sha: String): nullable CommitStatus do
+ return get("/repos/{repo_slug}/commits/{sha}/status").as(nullable CommitStatus)
end
# Get the Github issue #`number`.
#
# Returns `null` if the issue cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var issue = api.load_issue(repo, 1)
- # assert issue.title == "Doc"
- fun load_issue(repo: Repo, number: Int): nullable Issue do
- return load_from_github("/repos/{repo.full_name}/issues/{number}").as(nullable Issue)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var issue = api.get_issue(repo, 1)
+ # assert issue.title == "Doc"
+ # ~~~
+ fun get_issue(repo_slug: String, number: Int): nullable Issue do
+ return get("/repos/{repo_slug}/issues/{number}").as(nullable Issue)
end
# List of event on this issue.
- fun load_issue_comments(repo: Repo, issue: Issue): Array[IssueComment] do
- var res = new Array[IssueComment]
- var count = issue.comments or else 0
- var page = 1
- loop
- var array = get("/repos/{repo.full_name}/issues/{issue.number}/comments?page={page}")
- if not array isa JsonArray then break
- if array.is_empty then break
- for obj in array do
- if not obj isa JsonObject then continue
- var id = obj["id"].as(Int)
- var comment = load_issue_comment(repo, id)
- if comment == null then continue
- res.add(comment)
- end
- if res.length >= count then break
- page += 1
- end
- return res
+ fun get_issue_comments(repo_slug: String, issue_number: Int, page, per_page: nullable Int): Array[IssueComment] do
+ return new GithubArray[IssueComment].from(get(
+ "/repos/{repo_slug}/issues/{issue_number}/comments?{pagination(page, per_page)}"))
end
# List of events on this issue.
- fun load_issue_events(repo: Repo, issue: Issue): Array[IssueEvent] do
- var res = new Array[IssueEvent]
- var key = "/repos/{repo.full_name}/issues/{issue.number}"
- var page = 1
- loop
- var array = get("{key}/events?page={page}")
- if not array isa JsonArray or array.is_empty then break
- for obj in array do
- if not obj isa JsonObject then continue
- var event = deserialize(obj.to_json).as(nullable IssueEvent)
- if event == null then continue
- res.add event
- end
- page += 1
- end
- return res
+ fun get_issue_events(repo_slug: String, issue_number: Int, page, per_page: nullable Int): Array[IssueEvent] do
+ return new GithubArray[IssueEvent].from(get(
+ "/repos/{repo_slug}/issues/{issue_number}/events?{pagination(page, per_page)}"))
end
# Get the Github pull request #`number`.
#
# Returns `null` if the pull request cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var pull = api.load_pull(repo, 1)
- # assert pull.title == "Doc"
- # assert pull.user.login == "Morriar"
- fun load_pull(repo: Repo, number: Int): nullable PullRequest do
- return load_from_github("/repos/{repo.full_name}/pulls/{number}").as(nullable PullRequest)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var pull = api.get_pull(repo, 1)
+ # assert pull.title == "Doc"
+ # assert pull.user.login == "Morriar"
+ # ~~~
+ fun get_pull(repo_slug: String, number: Int): nullable PullRequest do
+ return get("/repos/{repo_slug}/pulls/{number}").as(nullable PullRequest)
+ end
+
+ # List of comments on a pull request
+ fun get_pull_comments(repo_slug: String, pull_number: Int, page, per_page: nullable Int): Array[PullComment] do
+ return new GithubArray[PullComment].from(get(
+ "/repos/{repo_slug}/pulls/{pull_number}/comments?{pagination(page, per_page)}"))
+ end
+
+ # Get a specific pull request comment
+ fun get_pull_comment(repo_slug: String, id: Int): nullable PullComment do
+ return get("/repos/{repo_slug}/pulls/comments/{id}").as(nullable PullComment)
end
# Get the Github label with `name`.
#
# Returns `null` if the label cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var labl = api.load_label(repo, "ok_will_merge")
- # assert labl != null
- fun load_label(repo: Repo, name: String): nullable Label do
- return load_from_github("/repos/{repo.full_name}/labels/{name}").as(nullable Label)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var labl = api.get_label(repo, "ok_will_merge")
+ # assert labl != null
+ # ~~~
+ fun get_label(repo_slug: String, name: String): nullable Label do
+ return get("/repos/{repo_slug}/labels/{name}").as(nullable Label)
end
# Get the Github milestone with `id`.
#
# Returns `null` if the milestone cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var stone = api.load_milestone(repo, 4)
- # assert stone.title == "v1.0prealpha"
- fun load_milestone(repo: Repo, id: Int): nullable Milestone do
- return load_from_github("/repos/{repo.full_name}/milestones/{id}").as(nullable Milestone)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var stone = api.get_milestone(repo, 4)
+ # assert stone.title == "v1.0prealpha"
+ # ~~~
+ fun get_milestone(repo_slug: String, id: Int): nullable Milestone do
+ return get("/repos/{repo_slug}/milestones/{id}").as(nullable Milestone)
end
# Get the Github issue event with `id`.
#
# Returns `null` if the event cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo isa Repo
- # var event = api.load_issue_event(repo, 199674194)
- # assert event isa IssueEvent
- # assert event.actor.login == "privat"
- # assert event.event == "labeled"
- # assert event.labl isa Label
- # assert event.labl.name == "need_review"
- fun load_issue_event(repo: Repo, id: Int): nullable IssueEvent do
- return load_from_github("/repos/{repo.full_name}/issues/events/{id}").as(nullable IssueEvent)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo isa Repo
+ # var event = api.get_issue_event(repo, 199674194)
+ # assert event isa IssueEvent
+ # assert event.actor.login == "privat"
+ # assert event.event == "labeled"
+ # assert event.labl isa Label
+ # assert event.labl.name == "need_review"
+ # ~~~
+ fun get_issue_event(repo_slug: String, id: Int): nullable IssueEvent do
+ return get("/repos/{repo_slug}/issues/events/{id}").as(nullable IssueEvent)
end
# Get the Github commit comment with `id`.
#
# Returns `null` if the comment cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var comment = api.load_commit_comment(repo, 8982707)
- # assert comment.user.login == "Morriar"
- # assert comment.body == "For testing purposes...\n"
- # assert comment.commit_id == "7eacb86d1e24b7e72bc9ac869bf7182c0300ceca"
- fun load_commit_comment(repo: Repo, id: Int): nullable CommitComment do
- return load_from_github("/repos/{repo.full_name}/comments/{id}").as(nullable CommitComment)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var comment = api.get_commit_comment(repo, 8982707)
+ # assert comment.user.login == "Morriar"
+ # assert comment.body == "For testing purposes...\n"
+ # assert comment.commit_id == "7eacb86d1e24b7e72bc9ac869bf7182c0300ceca"
+ # ~~~
+ fun get_commit_comment(repo_slug: String, id: Int): nullable CommitComment do
+ return get("/repos/{repo_slug}/comments/{id}").as(nullable CommitComment)
end
# Get the Github issue comment with `id`.
#
# Returns `null` if the comment cannot be found.
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var comment = api.load_issue_comment(repo, 6020149)
- # assert comment.user.login == "privat"
- # assert comment.created_at.to_s == "2012-05-30T20:16:54Z"
- # assert comment.issue_number == 10
- fun load_issue_comment(repo: Repo, id: Int): nullable IssueComment do
- return load_from_github("/repos/{repo.full_name}/issues/comments/{id}").as(nullable IssueComment)
+ # ~~~nitish
+ # var api = new GithubAPI(get_github_oauth)
+ # var repo = api.get_repo("nitlang/nit")
+ # assert repo != null
+ # var comment = api.get_issue_comment(repo, 6020149)
+ # assert comment.user.login == "privat"
+ # assert comment.created_at.to_s == "2012-05-30T20:16:54Z"
+ # assert comment.issue_number == 10
+ # ~~~
+ fun get_issue_comment(repo_slug: String, id: Int): nullable IssueComment do
+ return get("/repos/{repo_slug}/issues/comments/{id}").as(nullable IssueComment)
end
- # Get the Github diff comment with `id`.
- #
- # Returns `null` if the comment cannot be found.
+ private fun pagination(page, per_page: nullable Int): String do
+ return "page={page or else 1}&per_page={per_page or else 30}"
+ end
+end
+
+# Return deserialization as an array of E
+#
+# Non-subtypes will be ignored.
+private class GithubArray[E]
+ super Array[E]
+
+ # Create `self` from an Array of objects
#
- # var api = new GithubAPI(get_github_oauth)
- # var repo = api.load_repo("nitlang/nit")
- # assert repo != null
- # var comment = api.load_review_comment(repo, 21010363)
- # assert comment.path == "src/modelize/modelize_property.nit"
- # assert comment.original_position == 26
- # assert comment.pull_number == 945
- fun load_review_comment(repo: Repo, id: Int): nullable ReviewComment do
- return load_from_github("/repos/{repo.full_name}/pulls/comments/{id}").as(nullable ReviewComment)
+ # Objects non-subtyping E will be ignored.
+ init from(res: nullable Object) do
+ if not res isa Array[Object] then return
+ for obj in res do
+ if obj isa E then add obj
+ end
end
end
-# Something returned by the Github API.
+# An Error returned by GithubAPI
+class GithubError
+ super Error
+end
+
+# An Error returned by https://api.github.com
#
-# Mainly a Nit wrapper around a JSON objet.
-abstract class GithubEntity
- serialize
+# Anything that can occurs when sending request to the API:
+# * Can't connect to API
+# * Ressource not found
+# * Validation error
+# * ...
+class GithubAPIError
+ super GithubError
+
+ # Status code obtained
+ var status_code: Int
+
+ # URI that returned the error
+ var requested_uri: String
+end
+
+# An Error returned while deserializing objects from the API
+class GithubDeserializerErrors
+ super GithubError
- # Github page url.
- var html_url: nullable String is writable
+ # Errors returned by the deserizalization process
+ var deserizalization_errors: Array[Error]
end
# A Github user
#
# Provides access to [Github user data](https://developer.github.com/v3/users/).
-# Should be accessed from `GithubAPI::load_user`.
+# Should be accessed from `GithubAPI::get_user`.
class User
super GitUser
serialize
# A Github repository.
#
# Provides access to [Github repo data](https://developer.github.com/v3/repos/).
-# Should be accessed from `GithubAPI::load_repo`.
+# Should be accessed from `GithubAPI::get_repo`.
class Repo
- super GithubEntity
serialize
# Repo full name on Github.
var owner: User is writable
# Repo default branch name.
- var default_branch: String is writable
+ var default_branch: nullable String = null is optional, writable
end
# A Github branch.
#
-# Should be accessed from `GithubAPI::load_branch`.
+# Should be accessed from `GithubAPI::get_branch`.
#
# See <https://developer.github.com/v3/repos/#list-branches>.
class Branch
- super GithubEntity
serialize
# Branch name.
# A Github commit.
#
-# Should be accessed from `GithubAPI::load_commit`.
+# Should be accessed from `GithubAPI::get_commit`.
#
# See <https://developer.github.com/v3/repos/commits/>.
class Commit
- super GithubEntity
serialize
# Commit SHA.
# Authoring date as String.
var author_date: nullable String is writable
- # Authoring date as ISODate.
- fun iso_author_date: nullable ISODate do
- var author_date = self.author_date
- if author_date == null then return null
- return new ISODate.from_string(author_date)
- end
-
# Commit date as String.
var commit_date: nullable String is writable
- # Commit date as ISODate.
- fun iso_commit_date: nullable ISODate do
- var commit_date = self.commit_date
- if commit_date == null then return null
- return new ISODate.from_string(commit_date)
- end
-
# List files staged in this commit.
var files: nullable Array[GithubFile] = null is optional, writable
# A Git Commit representation
class GitCommit
- super GithubEntity
serialize
# Commit SHA.
# Git user authoring data
class GitUser
- super GithubEntity
serialize
# Authoring date.
var date: nullable String = null is writable
-
- # Authoring date as ISODate.
- fun iso_date: nullable ISODate do
- var date = self.date
- if date == null then return null
- return new ISODate.from_string(date)
- end
end
# A Github issue.
#
-# Should be accessed from `GithubAPI::load_issue`.
+# Should be accessed from `GithubAPI::get_issue`.
#
# See <https://developer.github.com/v3/issues/>.
class Issue
- super GithubEntity
serialize
# Issue Github ID.
# Creation time as String.
var created_at: String is writable
- # Creation time as ISODate.
- fun iso_created_at: ISODate do
- return new ISODate.from_string(created_at)
- end
-
# Last update time as String (if any).
var updated_at: nullable String is writable
- # Last update date as ISODate.
- fun iso_updated_at: nullable ISODate do
- var updated_at = self.updated_at
- if updated_at == null then return null
- return new ISODate.from_string(updated_at)
- end
-
# Close time as String (if any).
var closed_at: nullable String is writable
- # Close time as ISODate.
- fun iso_closed_at: nullable ISODate do
- var closed_at = self.closed_at
- if closed_at == null then return null
- return new ISODate.from_string(closed_at)
- end
-
# Full description of the issue.
var body: nullable String is writable
# A Github pull request.
#
-# Should be accessed from `GithubAPI::load_pull`.
+# Should be accessed from `GithubAPI::get_pull`.
#
# PullRequest are basically Issues with more data.
# See <https://developer.github.com/v3/pulls/>.
# Merge time as String (if any).
var merged_at: nullable String is writable
- # Merge time as ISODate.
- fun iso_merged_at: nullable ISODate do
- var merged_at = self.merged_at
- if merged_at == null then return null
- return new ISODate.from_string(merged_at)
- end
-
# Merge commit SHA.
var merge_commit_sha: nullable String is writable
# Count of comments made on the pull request diff.
- var review_comments: Int is writable
+ var review_comments: nullable Int is writable
# Pull request head (can be a commit SHA or a branch name).
var head: PullRef is writable
var base: PullRef is writable
# Is this pull request merged?
- var merged: Bool is writable
+ var merged: nullable Bool is writable
# Is this pull request mergeable?
var mergeable: nullable Bool is writable
# Mergeable state of this pull request.
#
# See <https://developer.github.com/v3/pulls/#list-pull-requests>.
- var mergeable_state: String is writable
+ var mergeable_state: nullable String is writable
# User that merged this pull request (if any).
var merged_by: nullable User is writable
# Count of commits in this pull request.
- var commits: Int is writable
+ var commits: nullable Int is writable
# Added line count.
- var additions: Int is writable
+ var additions: nullable Int is writable
# Deleted line count.
- var deletions: Int is writable
+ var deletions: nullable Int is writable
# Changed files count.
- var changed_files: Int is writable
+ var changed_files: nullable Int is writable
# URL to patch file
var patch_url: nullable String is writable
# A Github label.
#
-# Should be accessed from `GithubAPI::load_label`.
+# Should be accessed from `GithubAPI::get_label`.
#
# See <https://developer.github.com/v3/issues/labels/>.
class Label
- super GithubEntity
serialize
# Label name.
# A Github milestone.
#
-# Should be accessed from `GithubAPI::load_milestone`.
+# Should be accessed from `GithubAPI::get_milestone`.
#
# See <https://developer.github.com/v3/issues/milestones/>.
class Milestone
- super GithubEntity
serialize
# The milestone id on Github.
# Creation time as String.
var created_at: nullable String is writable
- # Creation time as ISODate.
- fun iso_created_at: nullable ISODate do
- var created_at = self.created_at
- if created_at == null then return null
- return new ISODate.from_string(created_at)
- end
-
# User that created this milestone.
var creator: nullable User is writable
# Due time as String (if any).
var due_on: nullable String is writable
- # Due time in ISODate format (if any).
- fun iso_due_on: nullable ISODate do
- var due_on = self.due_on
- if due_on == null then return null
- return new ISODate.from_string(due_on)
- end
-
# Last update time as String (if any).
var updated_at: nullable String is writable
- # Last update date as ISODate.
- fun iso_updated_at: nullable ISODate do
- var updated_at = self.updated_at
- if updated_at == null then return null
- return new ISODate.from_string(updated_at)
- end
-
# Close time as String (if any).
var closed_at: nullable String is writable
-
- # Close time as ISODate.
- fun iso_closed_at: nullable ISODate do
- var closed_at = self.closed_at
- if closed_at == null then return null
- return new ISODate.from_string(closed_at)
- end
end
# A Github comment
#
# * `CommitComment` are made on a commit page.
# * `IssueComment` are made on an issue or pull request page.
-# * `ReviewComment` are made on the diff associated to a pull request.
+# * `PullComment` are made on the diff associated to a pull request.
abstract class Comment
- super GithubEntity
serialize
# Identifier of this comment.
# Creation time as String.
var created_at: String is writable
- # Creation time as ISODate.
- fun iso_created_at: nullable ISODate do
- return new ISODate.from_string(created_at)
- end
-
# Last update time as String (if any).
var updated_at: nullable String is writable
- # Last update date as ISODate.
- fun iso_updated_at: nullable ISODate do
- var updated_at = self.updated_at
- if updated_at == null then return null
- return new ISODate.from_string(updated_at)
- end
-
# Comment body text.
var body: String is writable
var path: nullable String is writable
end
+# Status of a commit
+#
+# Can contain sub-status for reviews, CI etc.
+class CommitStatus
+ serialize
+
+ # Global state of this commit
+ var state: nullable String = null is optional, writable
+
+ # Sha of the commit this status is for
+ var sha: nullable String = null is optional, writable
+
+ # Repository the commit belongs to
+ var repository: nullable Repo = null is optional, writable
+
+ # All sub statuses (one for each check)
+ var statuses = new Array[RepoStatus] is optional, writable
+
+ # Total count of sub statuses
+ var total_count: nullable Int = null is optional, writable
+end
+
+# Sub status of a CommitStatus
+#
+# Represents a check applied to a commit (reviews, CI, ...).
+class RepoStatus
+ serialize
+
+ # State of this check
+ var state: nullable String = null is optional, writable
+
+ # Description of this check
+ var description: nullable String = null is optional, writable
+
+ # External URL
+ var target_url: nullable String = null is optional, writable
+
+ # Context this status is related to
+ #
+ # Used to hold the name of the check applied.
+ var context: nullable String = null is optional, writable
+
+ # Date when this status was created
+ var created_at: nullable String = null is optional, writable
+
+ # Last date this status was updated
+ var updated_at: nullable String = null is optional, writable
+end
+
# Comments made on Github issue and pull request pages.
#
-# Should be accessed from `GithubAPI::load_issue_comment`.
+# Should be accessed from `GithubAPI::get_issue_comment`.
#
# See <https://developer.github.com/v3/issues/comments/>.
class IssueComment
# Comments made on Github pull request diffs.
#
-# Should be accessed from `GithubAPI::load_diff_comment`.
+# Should be accessed from `GithubAPI::get_diff_comment`.
#
# See <https://developer.github.com/v3/pulls/comments/>.
-class ReviewComment
+class PullComment
super Comment
serialize
# An event that occurs on a Github `Issue`.
#
-# Should be accessed from `GithubAPI::load_issue_event`.
+# Should be accessed from `GithubAPI::get_issue_event`.
#
# See <https://developer.github.com/v3/issues/events/>.
class IssueEvent
- super GithubEntity
serialize
# Event id on Github.
# Creation time as String.
var created_at: String is writable
- # Creation time as ISODate.
- fun iso_created_at: nullable ISODate do
- return new ISODate.from_string(created_at)
- end
-
# Event descriptor.
var event: String is writable
redef type OTHER: ContributorStats
- # Github API client.
- var api: GithubAPI is writable
-
# User these statistics are about.
var author: User is writable
# Total number of commit.
var total: Int is writable
- # Are of weeks of activity with detailed statistics.
- var weeks: JsonArray is writable
+ # Array of weeks of activity with detailed statistics.
+ var weeks: Array[ContributorWeek] is writable
# ContributorStats can be compared on the total amount of commits.
redef fun <(o) do return total < o.total
end
+# Contributor stats weekly hash
+class ContributorWeek
+ serialize
+
+ # Start of week given a Unix timestamp
+ var w: Int
+
+ # Number of additions
+ var a: Int
+
+ # Number of deletions
+ var d: Int
+
+ # Number of commits
+ var c: Int
+end
+
# A Github file representation.
#
# Mostly a wrapper around a json object.
var filename: String is writable
end
-# Make ISO Datew serilizable
-redef class ISODate
+# A list of results returned buy `/search`
+class SearchResults
serialize
+
+ # Total count with other pages
+ var total_count: Int
+
+ # Does this page contain all the results?
+ var incomplete_results: Bool
+
+ # Results in this page
+ var items: Array[Object]
end
# JsonDeserializer specific for Github objects.
class GithubDeserializer
super JsonDeserializer
- redef fun class_name_heuristic(json_object) do
- if json_object.has_key("login") then
- return "User"
- else if json_object.has_key("full_name") then
- return "Repo"
- else if json_object.has_key("name") and json_object.has_key("commit") then
+ private var pattern_base = "https://api.github.com"
+
+ # Url patterns to class names
+ var url_patterns: Map[Regex, String] is lazy do
+ var map = new HashMap[Regex, String]
+ map["{pattern_base}/users/[^/]*$".to_re] = "User"
+ map["{pattern_base}/repos/[^/]*/[^/]*$".to_re] = "Repo"
+ map["{pattern_base}/repos/[^/]*/[^/]*/labels/[^/]+$".to_re] = "Label"
+ map["{pattern_base}/repos/[^/]*/[^/]*/milestones/[0-9]+$".to_re] = "Milestone"
+ map["{pattern_base}/repos/[^/]*/[^/]*/issues/[0-9]+$".to_re] = "Issue"
+ map["{pattern_base}/repos/[^/]*/[^/]*/issues/comments/[0-9]+$".to_re] = "IssueComment"
+ map["{pattern_base}/repos/[^/]*/[^/]*/issues/events/[0-9]+$".to_re] = "IssueEvent"
+ map["{pattern_base}/repos/[^/]*/[^/]*/pulls/[0-9]+$".to_re] = "PullRequest"
+ map["{pattern_base}/repos/[^/]*/[^/]*/pulls/comments/[0-9]+$".to_re] = "PullComment"
+ map["{pattern_base}/repos/[^/]*/[^/]*/comments/[0-9]+$".to_re] = "CommitComment"
+ map["{pattern_base}/repos/[^/]*/[^/]*/commits/[a-f0-9]+$".to_re] = "Commit"
+ map["{pattern_base}/repos/[^/]*/[^/]*/commits/[a-f0-9]+/status$".to_re] = "CommitStatus"
+ map["{pattern_base}/repos/[^/]*/[^/]*/statuses/[a-f0-9]+$".to_re] = "RepoStatus"
+ return map
+ end
+
+ # Match `url` property in object to a class name
+ fun url_heuristic(raw: Map[String, nullable Object]): nullable String do
+ if not raw.has_key("url") then return null
+
+ var url = raw["url"].as(String)
+ for re, class_name in url_patterns do
+ if url.has(re) then return class_name
+ end
+ return null
+ end
+
+ redef fun class_name_heuristic(raw) do
+ # Try with url
+ var class_name = url_heuristic(raw)
+ if class_name != null then return class_name
+
+ # print raw.serialize_to_json(true, true) # debug
+
+ # Use properties heuristics
+ if raw.has_key("name") and raw.has_key("commit") then
return "Branch"
- else if json_object.has_key("sha") and json_object.has_key("ref") then
- return "PullRef"
- else if (json_object.has_key("sha") and json_object.has_key("commit")) or (json_object.has_key("id") and json_object.has_key("tree_id")) then
- return "Commit"
- else if json_object.has_key("sha") and json_object.has_key("tree") then
- return "GitCommit"
- else if json_object.has_key("name") and json_object.has_key("date") then
- return "GitUser"
- else if json_object.has_key("number") and json_object.has_key("patch_url") then
- return "PullRequest"
- else if json_object.has_key("open_issues") and json_object.has_key("closed_issues") then
- return "Milestone"
- else if json_object.has_key("number") and json_object.has_key("title") then
- return "Issue"
- else if json_object.has_key("color") then
- return "Label"
- else if json_object.has_key("event") then
- return "IssueEvent"
- else if json_object.has_key("original_commit_id") then
- return "ReviewComment"
- else if json_object.has_key("commit_id") then
- return "CommitComment"
- else if json_object.has_key("issue_url") then
- return "IssueComment"
+ else if raw.has_key("total_count") and raw.has_key("items") then
+ return "SearchResults"
+ else if raw.has_key("total") and raw.has_key("weeks") then
+ return "ContributorStats"
+ else if raw.has_key("a") and raw.has_key("d") and raw.has_key("c") then
+ return "ContributorWeek"
end
return null
end
return super
end
end
+
+# Gets the Github token from `git` configuration
+#
+# Return the value of `git config --get github.oauthtoken`
+# or `""` if no key exists.
+fun get_github_oauth: String
+do
+ var p = new ProcessReader("git", "config", "--get", "github.oauthtoken")
+ var token = p.read_line
+ p.wait
+ p.close
+ return token.trim
+end
#
# var name = "nitlang/nit"
# assert not api.has_cache(name)
-# var repo = api.load_repo(name) # load from GitHub
+# var repo = api.get_repo(name) # load from GitHub
# #assert api.has_cache(name) FIXME bring back this assert
-# repo = api.load_repo(name) # load from cache
+# repo = api.get_repo(name) # load from cache
#
# api.clear_cache
# assert not api.has_cache(name)
fun clear_cache do store.clear
# If no cache data is found for `key` then json is loaded from Github API.
- redef fun load_from_github(key) do
+ redef fun get(key, headers, data) do
if not enable_cache then return super
if store.has_key(key) then
- message(1, "Get {key} (cache)")
+ # print "Get {key} (cache)" # debug
was_error = false
- return deserialize(store.load_object(key).to_json).as(nullable GithubEntity)
+ return deserialize(store.load_object(key).to_json)
end
var obj = super
- if not was_error then
- cache(key, obj.as(not null))
+ if not was_error and obj isa Serializable then
+ cache(key, obj)
end
return obj
end
# Save `json` data in cache under `key`.
- private fun cache(key: String, obj: GithubEntity) do
- message(2, "Cache key {key}")
+ private fun cache(key: String, obj: Serializable) do
+ # print "Cache key {key}" # debug
store.store_object(key, obj.to_json.parse_json.as(JsonObject))
end
end
# Triggered when a comment is created on a pull request diff.
-class PullRequestReviewCommentEvent
+class PullRequestPullCommentEvent
super GithubEvent
serialize
# The `Comment` itself.
- var comment: ReviewComment is writable
+ var comment: PullComment is writable
# `PullRequest` the `comment` belongs to.
var pull: PullRequest is writable
else if json_object.has_key("action") and json_object.has_key("number") then
return "PullRequestEvent"
else if json_object.has_key("action") and json_object.has_key("pull") and json_object.has_key("comment") then
- return "PullRequestReviewCommentEvent"
+ return "PullRequestPullCommentEvent"
else if json_object.has_key("head_commit") and json_object.has_key("commits") then
return "PushEvent"
else if json_object.has_key("action") and json_object.has_key("branches") then
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Curl extention to access the Github API
-# See https://developer.github.com/v3/ for details
-module github_curl
-
-import curl
-import json::static
-import json
-
-# Specific Curl that know hot to talk to the github API
-class GithubCurl
-
- # Headers to use on all requests
- var header: HeaderMap is noinit
-
- # OAuth token
- #
- # Use an empty string to disable authentication and connect
- # anonymously (thus less capabilities and more rate limits)
- var auth: String
-
- # User agent (is used by github to contact devs in case of problems)
- # Eg. "Awesome-Octocat-App"
- var user_agent: String
-
- init do
- header = new HeaderMap
- if auth != "" then header["Authorization"] = "token {auth}"
- end
-
- # Get the requested URI, and check the HTTP response. Then convert to JSON
- # and check for Github errors.
- fun get_and_check(uri: String): nullable Serializable
- do
- var request = new CurlHTTPRequest(uri)
- request.user_agent = user_agent
- request.headers = header
- var response = request.execute
-
- if response isa CurlResponseSuccess then
- var obj = response.body_str.parse_json
- if obj isa JsonObject then
- if obj.keys.has("message") and obj.keys.has("documentation_url") then
- print "Message from Github API: {obj["message"] or else ""}"
- print "Requested URI: {uri}"
- abort
- end
- end
- return obj
-
- else if response isa CurlResponseFailed then
- print "Request to Github API failed"
- print "Requested URI: {uri}"
- print "Error code: {response.error_code}"
- print "Error msg: {response.error_msg}"
- abort
- else abort
- end
-
- # Get the requested URI, and check the HTTP response.
- # Then convert to JSON and check for Github errors.
- # Unlike `get_and_check`, error do not trigger an abort but
- # are reported as `GithubError`.
- fun get_and_parse(uri: String): nullable Serializable
- do
- var request = new CurlHTTPRequest(uri)
- request.user_agent = user_agent
- request.headers = header
- var response = request.execute
- if response isa CurlResponseSuccess then
- var obj = response.body_str.parse_json
- if obj isa JsonObject then
- if obj.keys.has("message") and obj.keys.has("documentation_url") then
- var title = "GithubAPIError"
- var msg = obj["message"].as(not null).to_s
- var err = new GithubError(msg, title)
- err.json["requested_uri"] = uri
- err.json["status_code"] = response.status_code
- return err
- end
- end
- return obj
-
- else if response isa CurlResponseFailed then
- var title = "CurlResponseFailed"
- var msg = "Request to Github API failed"
- var err = new GithubError(msg, title)
- err.json["requested_uri"] = uri
- err.json["error_code"] = response.error_code
- err.json["response"] = response.error_msg
- return err
- else abort
- end
-
-end
-
-# An error thrown by the Github API.
-#
-# Depending on the kind of error, additionnal informations can be stored in
-# the error object.
-# Check the `json` value to find them.
-class GithubError
- super Error
- super Serializable
-
- # The name of the error.
- var name: String
-
- # The json content of the error.
- var json = new JsonObject
-
- redef init do
- super
- json["error"] = name.to_json
- json["message"] = message.to_json
- end
-
- redef fun serialize_to(v) do json.serialize_to v
-
- redef fun to_s do return "[{name}] {super}"
-end
-
-# Gets the Github token from `git` configuration
-#
-# Return the value of `git config --get github.oauthtoken`
-# or `""` if no key exists.
-fun get_github_oauth: String
-do
- var p = new ProcessReader("git", "config", "--get", "github.oauthtoken")
- var token = p.read_line
- p.wait
- p.close
- return token.trim
-end
end
# How to build events from received json objects.
- fun event_factory(kind: String, json: JsonObject): GithubEvent do
+ fun event_factory(kind: String, json: String): nullable GithubEvent do
if kind == "commit_comment" then
- return api.deserialize(json.to_json).as(CommitCommentEvent)
+ return api.deserialize(json).as(CommitCommentEvent)
else if kind == "create" then
- return api.deserialize(json.to_json).as(CreateEvent)
+ return api.deserialize(json).as(CreateEvent)
else if kind == "delete" then
- return api.deserialize(json.to_json).as(DeleteEvent)
+ return api.deserialize(json).as(DeleteEvent)
else if kind == "deployment" then
- return api.deserialize(json.to_json).as(DeploymentEvent)
+ return api.deserialize(json).as(DeploymentEvent)
else if kind == "deployment_status" then
- return api.deserialize(json.to_json).as(DeploymentStatusEvent)
+ return api.deserialize(json).as(DeploymentStatusEvent)
else if kind == "fork" then
- return api.deserialize(json.to_json).as(ForkEvent)
+ return api.deserialize(json).as(ForkEvent)
else if kind == "issues" then
- return api.deserialize(json.to_json).as(IssuesEvent)
+ return api.deserialize(json).as(IssuesEvent)
else if kind == "issue_comment" then
- return api.deserialize(json.to_json).as(IssueCommentEvent)
+ return api.deserialize(json).as(IssueCommentEvent)
else if kind == "member" then
- return api.deserialize(json.to_json).as(MemberEvent)
+ return api.deserialize(json).as(MemberEvent)
else if kind == "pull_request" then
- return api.deserialize(json.to_json).as(PullRequestEvent)
+ return api.deserialize(json).as(PullRequestEvent)
else if kind == "pull_request_review_comment" then
- return api.deserialize(json.to_json).as(PullRequestReviewCommentEvent)
+ return api.deserialize(json).as(PullRequestPullCommentEvent)
else if kind == "push" then
- return api.deserialize(json.to_json).as(PushEvent)
+ return api.deserialize(json).as(PushEvent)
else if kind == "status" then
- return api.deserialize(json.to_json).as(StatusEvent)
- else
- return api.deserialize(json.to_json).as(GithubEvent)
+ return api.deserialize(json).as(StatusEvent)
end
+ return null
end
# What to do when we receive an event from a hook?
# get event type
var kind = request.header.get_or_null("X-GitHub-Event")
if kind == null then return new HttpResponse(403)
- # get POST object
- var obj = request.body.parse_json
- if not obj isa JsonObject then return new HttpResponse(403)
# parse event
- var event = listener.event_factory(kind, obj)
+ var event = listener.event_factory(kind, request.body)
+ if event == null then return new HttpResponse(403)
listener.apply_event(event)
return new HttpResponse(200)
end
# Github tokens used to access data.
var tokens: Array[String] is lazy do
- var arr = opt_tokens.value
- if arr.is_empty then
- var iarr = ini.at("tokens")
- if iarr != null then arr = iarr.values.to_a
+ var opt_tokens = self.opt_tokens.value
+ if opt_tokens.not_empty then return opt_tokens
+
+ var res = new Array[String]
+ var ini_tokens = ini.section("tokens")
+ if ini_tokens == null then return res
+
+ for token in ini_tokens.values do
+ if token == null then continue
+ res.add token
end
- return arr or else new Array[String]
+ return res
end
# Github tokens wallet\13
var wallet: GithubWallet is lazy do
- var wallet = new GithubWallet.from_tokens(tokens)
- wallet.no_colors = no_colors
- return wallet
+ return new GithubWallet(tokens)
end
# Use colors in console display
# Verbosity level (the higher the more verbose)
fun verbose_level: Int do
var opt = opt_start.value
- if opt > 0 then return opt
+ if opt > 0 then
+ return info_level
+ end
var v = ini["loader.verbose"]
- if v != null then return v.to_i
- return 4
+ if v != null and v.to_i > 0 then
+ return info_level
+ end
+ return warn_level
end
# Logger used to print things
- var logger: ConsoleLog is lazy do
- var logger = new ConsoleLog
+ var logger: PopLogger is lazy do
+ var logger = new PopLogger
logger.level = verbose_level
return logger
end
return new IssueEventRepo(config.db.collection("issue_events"))
end
- fun start(repo_full_name: String) do
- var job = jobs.find_by_id(repo_full_name)
+ fun start(repo_slug: String) do
+ var job = jobs.find_by_id(repo_slug)
if job == null then
- log.info "Creating new job for `{repo_full_name}`"
- job = add_job(repo_full_name)
+ log.info "Creating new job for `{repo_slug}`"
+ job = add_job(repo_slug)
else
- log.info "Resuming pending job for `{repo_full_name}`"
+ log.info "Resuming pending job for `{repo_slug}`"
end
print "Load history for {job}..."
- load_branches(job)
- load_issues(job)
+ get_branches(job)
+ get_issues(job)
finish_job(job)
end
- fun remove(repo_full_name: String) do
- var job = jobs.find_by_id(repo_full_name)
+ fun remove(repo_slug: String) do
+ var job = jobs.find_by_id(repo_slug)
if job == null then
- log.info "No job found for `{repo_full_name}`"
+ log.info "No job found for `{repo_slug}`"
else
- jobs.remove_by_id(repo_full_name)
- log.info "Deleted job for `{repo_full_name}`"
+ jobs.remove_by_id(repo_slug)
+ log.info "Deleted job for `{repo_slug}`"
end
end
# Show wallet status
- fun show_wallet do config.wallet.show_status
+ fun show_wallet do config.wallet.show_status(config.no_colors)
# Show jobs status
fun show_jobs do
end
# Add a new job
- fun add_job(repo_full_name: String): LoaderJob do
- var repo = config.wallet.api.load_repo(repo_full_name)
+ fun add_job(repo_slug: String): LoaderJob do
+ var repo = config.wallet.api.get_repo(repo_slug)
assert repo != null else
- error "Repository `{repo_full_name}` not found"
+ error "Repository `{repo_slug}` not found"
end
repos.save repo
var job = new LoaderJob(repo, config.start_from_issue)
jobs.remove_by_id(job.id)
end
- fun load_branches(job: LoaderJob) do
+ fun get_branches(job: LoaderJob) do
if config.no_branches then return
var api = config.wallet.api
var repo = job.repo
- for branch in api.load_repo_branches(repo) do
+ for branch in api.get_repo_branches(repo.full_name) do
branch.repo = repo
branches.save branch
- load_commits(job, branch)
+ get_commits(job, branch)
end
end
- fun load_commits(job: LoaderJob, branch: Branch) do
+ fun get_commits(job: LoaderJob, branch: Branch) do
if config.no_commits then return
- load_commit(job, branch.commit.sha)
+ get_commit(job, branch.commit.sha)
end
- fun load_commit(job: LoaderJob, commit_sha: String) do
+ fun get_commit(job: LoaderJob, commit_sha: String) do
if commits.find_by_id(commit_sha) != null then return
var api = config.wallet.api
- var commit = api.load_commit(job.repo, commit_sha)
+ var commit = api.get_commit(job.repo.full_name, commit_sha)
# print commit or else "NULL"
if commit == null then return
var message = commit.message or else "no message"
var parents = commit.parents
if parents == null then return
for parent in parents do
- load_commit(job, parent.sha)
+ get_commit(job, parent.sha)
end
end
# Load game for `repo_name`.
- fun load_issues(job: LoaderJob) do
+ fun get_issues(job: LoaderJob) do
if config.no_issues then return
- var i = job.last_issue
- var last_issue = load_last_issue(job)
- if last_issue != null then
- while i <= last_issue.number do
- load_issue(job, i)
- job.last_issue = i
+ var api = config.wallet.api
+ var page = 1
+ var issues = api.get_repo_issues(job.repo.full_name, page, 100)
+ while issues.not_empty do
+ for issue in issues do
+ get_issue(job, issue.number)
+ job.last_issue = issue.number
jobs.save job
- i += 1
end
end
end
- # Load the `repo` last issue or abort.
- private fun load_last_issue(job: LoaderJob): nullable Issue do
- var api = config.wallet.api
- return api.load_repo_last_issue(job.repo)
- end
-
# Load an issue or abort.
- private fun load_issue(job: LoaderJob, issue_number: Int) do
+ private fun get_issue(job: LoaderJob, issue_number: Int) do
if issues.find_by_id("{job.repo.mongo_id}/{issue_number}") != null then return
var api = config.wallet.api
- var issue = api.load_issue(job.repo, issue_number)
+ var issue = api.get_issue(job.repo.full_name, issue_number)
assert issue != null else
check_error(api, "Issue #{issue_number} not found")
end
if issue.is_pull_request then
- load_pull(job, issue)
+ get_pull(job, issue)
else
log.info "Load issue #{issue.number}: {issue.title.split("\n").first}"
issue.repo = job.repo
issues.save issue
- load_issue_events(job, issue)
+ get_issue_events(job, issue)
end
- load_issue_comments(job, issue)
+ get_issue_comments(job, issue)
end
# Load issue comments.
- private fun load_issue_comments(job: LoaderJob, issue: Issue) do
+ private fun get_issue_comments(job: LoaderJob, issue: Issue) do
if config.no_comments then return
var api = config.wallet.api
- for comment in api.load_issue_comments(job.repo, issue) do
+ for comment in api.get_issue_comments(job.repo.full_name, issue.number) do
comment.repo = job.repo
issue_comments.save comment
end
end
# Load issue events.
- private fun load_issue_events(job: LoaderJob, issue: Issue) do
+ private fun get_issue_events(job: LoaderJob, issue: Issue) do
if config.no_events then return
var api = config.wallet.api
- for event in api.load_issue_events(job.repo, issue) do
+ for event in api.get_issue_events(job.repo.full_name, issue.number) do
event.repo = job.repo
issue_events.save event
end
end
# Load a pull request or abort.
- private fun load_pull(job: LoaderJob, issue: Issue): PullRequest do
+ private fun get_pull(job: LoaderJob, issue: Issue): PullRequest do
var api = config.wallet.api
- var pr = api.load_pull(job.repo, issue.number)
+ var pr = api.get_pull(job.repo.full_name, issue.number)
assert pr != null else
check_error(api, "Pull request #{issue.number} not found")
end
log.info "Load pull request #{issue.number}: {pr.title.split("\n").first}"
pr.repo = job.repo
pulls.save pr
- load_pull_events(job, pr)
+ get_pull_events(job, pr)
return pr
end
# Load pull events.
- private fun load_pull_events(job: LoaderJob, pull: PullRequest) do
+ private fun get_pull_events(job: LoaderJob, pull: PullRequest) do
if config.no_events then return
var api = config.wallet.api
- for event in api.load_issue_events(job.repo, pull) do
+ for event in api.get_issue_events(job.repo.full_name, pull.number) do
event.repo = job.repo
issue_events.save event
end
end
# Logger shortcut
- fun log: ConsoleLog do return config.logger
+ fun log: PopLogger do return config.logger
# Display a error and exit
fun error(msg: String) do
else
loader.start args.first
- var repo = loader.config.wallet.api.load_repo(args.first)
+ var repo = loader.config.wallet.api.get_repo(args.first)
if repo == null then return
print "Loaded"
print "* {if loader.repos.find_by_id(args.first) != null then 1 else 0} repos"
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-module test_github_curl is test
-
-import github::github_curl
-
-class TestGithubCurl
- test
-
- var auth: String = get_github_oauth
- var user_agent: String = "nit"
- var testee: GithubCurl is noinit
-
- fun before_test is before do
- testee = new GithubCurl(auth, user_agent)
- end
-
- fun test_get_repo is test do
- var uri = "https://api.github.com/repos/nitlang/nit"
- var res = testee.get_and_check(uri)
-
- assert res isa JsonObject
- assert res["name"] == "nit"
- assert res["owner"] isa JsonObject
- end
-
- fun test_get_user is test do
- var uri = "https://api.github.com/users/Morriar"
- var res = testee.get_and_check(uri)
-
- assert res isa JsonObject
- assert res["login"] == "Morriar"
- assert res["html_url"] == "https://github.com/Morriar"
- end
-end
--- /dev/null
+{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
\ No newline at end of file
--- /dev/null
+{"name":"master","commit":{"sha":"9248f1c81c08b6c0ec7785678dbb1d7440b885d9","node_id":"MDY6Q29tbWl0MzI4NTk3OjkyNDhmMWM4MWMwOGI2YzBlYzc3ODU2NzhkYmIxZDc0NDBiODg1ZDk=","commit":{"author":{"name":"Jean Privat","email":"jean@pryen.org","date":"2019-06-13T14:14:24Z"},"committer":{"name":"Jean Privat","email":"jean@pryen.org","date":"2019-06-13T14:14:24Z"},"message":"Merge: Some more small improvements on gitlab-ci\n\nPull-Request: #2744","tree":{"sha":"1c40bdc143d18c628fb7939b8258fa65f6ada2e7","url":"https://api.github.com/repos/nitlang/nit/git/trees/1c40bdc143d18c628fb7939b8258fa65f6ada2e7"},"url":"https://api.github.com/repos/nitlang/nit/git/commits/9248f1c81c08b6c0ec7785678dbb1d7440b885d9","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/nitlang/nit/commits/9248f1c81c08b6c0ec7785678dbb1d7440b885d9","html_url":"https://github.com/nitlang/nit/commit/9248f1c81c08b6c0ec7785678dbb1d7440b885d9","comments_url":"https://api.github.com/repos/nitlang/nit/commits/9248f1c81c08b6c0ec7785678dbb1d7440b885d9/comments","author":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"committer":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"parents":[{"sha":"afc737008b2b10b9317f0e528dedf27dcf9926ab","url":"https://api.github.com/repos/nitlang/nit/commits/afc737008b2b10b9317f0e528dedf27dcf9926ab","html_url":"https://github.com/nitlang/nit/commit/afc737008b2b10b9317f0e528dedf27dcf9926ab"},{"sha":"61e9c7897630bfe23a2bf6c2a02803c1fc8dd51d","url":"https://api.github.com/repos/nitlang/nit/commits/61e9c7897630bfe23a2bf6c2a02803c1fc8dd51d","html_url":"https://github.com/nitlang/nit/commit/61e9c7897630bfe23a2bf6c2a02803c1fc8dd51d"}]},"_links":{"self":"https://api.github.com/repos/nitlang/nit/branches/master","html":"https://github.com/nitlang/nit/tree/master"},"protected":true,"protection":{"enabled":true,"required_status_checks":{"enforcement_level":"non_admins","contexts":[]}},"protection_url":"https://api.github.com/repos/nitlang/nit/branches/master/protection"}
\ No newline at end of file
--- /dev/null
+[{"name":"master","commit":{"sha":"8fd264ae263d5418c56671414b9788c5d67621b4","url":"https://api.github.com/repos/nitlang/nit/commits/8fd264ae263d5418c56671414b9788c5d67621b4"},"protected":true},{"name":"next","commit":{"sha":"9248f1c81c08b6c0ec7785678dbb1d7440b885d9","url":"https://api.github.com/repos/nitlang/nit/commits/9248f1c81c08b6c0ec7785678dbb1d7440b885d9"},"protected":false}]
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/comments/8982707","html_url":"https://github.com/nitlang/nit/commit/7eacb86d1e24b7e72bc9ac869bf7182c0300ceca#commitcomment-8982707","id":8982707,"node_id":"MDEzOkNvbW1pdENvbW1lbnQ4OTgyNzA3","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"position":null,"line":null,"path":null,"commit_id":"7eacb86d1e24b7e72bc9ac869bf7182c0300ceca","created_at":"2014-12-16T00:37:24Z","updated_at":"2014-12-16T00:37:24Z","author_association":"MEMBER","body":"For testing purposes...\n"}
\ No newline at end of file
--- /dev/null
+{"state":"failure","statuses":[{"url":"https://api.github.com/repos/nitlang/nit/statuses/4e3c688d2c4b875c00f206eb4c4b6f2c4f34c096","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","id":7133267167,"node_id":"MDEzOlN0YXR1c0NvbnRleHQ3MTMzMjY3MTY3","state":"failure","description":"Merged pipeline on gitlab: failed","target_url":"https://gitlab.com/nit/nit-ci/pipelines/69275842","context":"gitlab-ci","created_at":"2019-07-03T20:28:57Z","updated_at":"2019-07-03T20:28:57Z"}],"sha":"4e3c688d2c4b875c00f206eb4c4b6f2c4f34c096","total_count":1,"repository":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments"},"commit_url":"https://api.github.com/repos/nitlang/nit/commits/4e3c688d2c4b875c00f206eb4c4b6f2c4f34c096","url":"https://api.github.com/repos/nitlang/nit/commits/4e3c688d2c4b875c00f206eb4c4b6f2c4f34c096/status"}
\ No newline at end of file
--- /dev/null
+{"sha":"64ce1f587209024f5de46d06c70526a569ff537f","node_id":"MDY6Q29tbWl0MzI4NTk3OjY0Y2UxZjU4NzIwOTAyNGY1ZGU0NmQwNmM3MDUyNmE1NjlmZjUzN2Y=","commit":{"author":{"name":"Jean Privat","email":"jean@pryen.org","date":"2014-12-03T15:16:13Z"},"committer":{"name":"Jean Privat","email":"jean@pryen.org","date":"2014-12-03T15:33:19Z"},"message":"lib/string: add `chomp`\n\nSigned-off-by: Jean Privat <jean@pryen.org>","tree":{"sha":"66ac4b2bd9247d98afbb5309db97dda06991ed77","url":"https://api.github.com/repos/nitlang/nit/git/trees/66ac4b2bd9247d98afbb5309db97dda06991ed77"},"url":"https://api.github.com/repos/nitlang/nit/git/commits/64ce1f587209024f5de46d06c70526a569ff537f","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/nitlang/nit/commits/64ce1f587209024f5de46d06c70526a569ff537f","html_url":"https://github.com/nitlang/nit/commit/64ce1f587209024f5de46d06c70526a569ff537f","comments_url":"https://api.github.com/repos/nitlang/nit/commits/64ce1f587209024f5de46d06c70526a569ff537f/comments","author":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"committer":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"parents":[{"sha":"a882d5602264623f9275698b5abe73d95b127b9f","url":"https://api.github.com/repos/nitlang/nit/commits/a882d5602264623f9275698b5abe73d95b127b9f","html_url":"https://github.com/nitlang/nit/commit/a882d5602264623f9275698b5abe73d95b127b9f"}],"stats":{"total":13,"additions":13,"deletions":0},"files":[{"sha":"664ecbcb0652892b7659a98e5fb24c995211563c","filename":"lib/standard/string.nit","status":"modified","additions":13,"deletions":0,"changes":13,"blob_url":"https://github.com/nitlang/nit/blob/64ce1f587209024f5de46d06c70526a569ff537f/lib/standard/string.nit","raw_url":"https://github.com/nitlang/nit/raw/64ce1f587209024f5de46d06c70526a569ff537f/lib/standard/string.nit","contents_url":"https://api.github.com/repos/nitlang/nit/contents/lib/standard/string.nit?ref=64ce1f587209024f5de46d06c70526a569ff537f","patch":"@@ -385,6 +385,19 @@ abstract class Text\n \t# assert \"\\na\\nb\\tc\\t\".trim == \"a\\nb\\tc\"\n \tfun trim: SELFTYPE do return (self.l_trim).r_trim\n \n+\t# Returns `self` removed from its last `\\n` (if any).\n+\t#\n+\t# assert \"Hello\\n\".chomp == \"Hello\"\n+\t# assert \"Hello\".chomp == \"Hello\"\n+\t# assert \"\\n\\n\\n\".chomp == \"\\n\\n\"\n+\t#\n+\t# This method is mainly used to remove the LINE_FEED character from lines of text.\n+\tfun chomp: SELFTYPE\n+\tdo\n+\t\tif self.chars.last != '\\n' then return self\n+\t\treturn substring(0, length-1)\n+\tend\n+\n \t# Justify a self in a space of `length`\n \t#\n \t# `left` is the space ratio on the left side."}]}
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/issues/1000","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/1000/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/1000/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/1000/events","html_url":"https://github.com/nitlang/nit/pull/1000","id":51639845,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU4NzM0Mzg=","number":1000,"title":"Raise nitc from the dead","user":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"labels":[{"id":81916206,"node_id":"MDU6TGFiZWw4MTkxNjIwNg==","url":"https://api.github.com/repos/nitlang/nit/labels/ok_will_merge","name":"ok_will_merge","color":"009800","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2014-12-11T02:55:09Z","updated_at":"2014-12-18T14:14:33Z","closed_at":"2014-12-13T15:38:09Z","author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/1000","html_url":"https://github.com/nitlang/nit/pull/1000","diff_url":"https://github.com/nitlang/nit/pull/1000.diff","patch_url":"https://github.com/nitlang/nit/pull/1000.patch"},"body":"Raise dead on `nitc`.\nIt's super effective...\n","closed_by":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false}}
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/issues/comments/6020149","html_url":"https://github.com/nitlang/nit/pull/10#issuecomment-6020149","issue_url":"https://api.github.com/repos/nitlang/nit/issues/10","id":6020149,"node_id":"MDEyOklzc3VlQ29tbWVudDYwMjAxNDk=","user":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"created_at":"2012-05-30T20:16:54Z","updated_at":"2012-05-30T20:16:54Z","author_association":"MEMBER","body":"Rebased e766cde to drop the ugly github merge commit 0e3a614.\nThe result is 8f221e3.\n"}
\ No newline at end of file
--- /dev/null
+[{"url":"https://api.github.com/repos/nitlang/nit/issues/comments/66562728","html_url":"https://github.com/nitlang/nit/pull/1000#issuecomment-66562728","issue_url":"https://api.github.com/repos/nitlang/nit/issues/1000","id":66562728,"node_id":"MDEyOklzc3VlQ29tbWVudDY2NTYyNzI4","user":{"login":"R4PaSs","id":1444825,"node_id":"MDQ6VXNlcjE0NDQ4MjU=","avatar_url":"https://avatars3.githubusercontent.com/u/1444825?v=4","gravatar_id":"","url":"https://api.github.com/users/R4PaSs","html_url":"https://github.com/R4PaSs","followers_url":"https://api.github.com/users/R4PaSs/followers","following_url":"https://api.github.com/users/R4PaSs/following{/other_user}","gists_url":"https://api.github.com/users/R4PaSs/gists{/gist_id}","starred_url":"https://api.github.com/users/R4PaSs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/R4PaSs/subscriptions","organizations_url":"https://api.github.com/users/R4PaSs/orgs","repos_url":"https://api.github.com/users/R4PaSs/repos","events_url":"https://api.github.com/users/R4PaSs/events{/privacy}","received_events_url":"https://api.github.com/users/R4PaSs/received_events","type":"User","site_admin":false},"created_at":"2014-12-11T03:05:01Z","updated_at":"2014-12-11T03:05:01Z","author_association":"CONTRIBUTOR","body":"The king is dead, long live the king.\n"},{"url":"https://api.github.com/repos/nitlang/nit/issues/comments/66562735","html_url":"https://github.com/nitlang/nit/pull/1000#issuecomment-66562735","issue_url":"https://api.github.com/repos/nitlang/nit/issues/1000","id":66562735,"node_id":"MDEyOklzc3VlQ29tbWVudDY2NTYyNzM1","user":{"login":"R4PaSs","id":1444825,"node_id":"MDQ6VXNlcjE0NDQ4MjU=","avatar_url":"https://avatars3.githubusercontent.com/u/1444825?v=4","gravatar_id":"","url":"https://api.github.com/users/R4PaSs","html_url":"https://github.com/R4PaSs","followers_url":"https://api.github.com/users/R4PaSs/followers","following_url":"https://api.github.com/users/R4PaSs/following{/other_user}","gists_url":"https://api.github.com/users/R4PaSs/gists{/gist_id}","starred_url":"https://api.github.com/users/R4PaSs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/R4PaSs/subscriptions","organizations_url":"https://api.github.com/users/R4PaSs/orgs","repos_url":"https://api.github.com/users/R4PaSs/repos","events_url":"https://api.github.com/users/R4PaSs/events{/privacy}","received_events_url":"https://api.github.com/users/R4PaSs/received_events","type":"User","site_admin":false},"created_at":"2014-12-11T03:05:07Z","updated_at":"2014-12-11T03:05:07Z","author_association":"CONTRIBUTOR","body":"+1\n"},{"url":"https://api.github.com/repos/nitlang/nit/issues/comments/66563386","html_url":"https://github.com/nitlang/nit/pull/1000#issuecomment-66563386","issue_url":"https://api.github.com/repos/nitlang/nit/issues/1000","id":66563386,"node_id":"MDEyOklzc3VlQ29tbWVudDY2NTYzMzg2","user":{"login":"xymus","id":208057,"node_id":"MDQ6VXNlcjIwODA1Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/208057?v=4","gravatar_id":"","url":"https://api.github.com/users/xymus","html_url":"https://github.com/xymus","followers_url":"https://api.github.com/users/xymus/followers","following_url":"https://api.github.com/users/xymus/following{/other_user}","gists_url":"https://api.github.com/users/xymus/gists{/gist_id}","starred_url":"https://api.github.com/users/xymus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xymus/subscriptions","organizations_url":"https://api.github.com/users/xymus/orgs","repos_url":"https://api.github.com/users/xymus/repos","events_url":"https://api.github.com/users/xymus/events{/privacy}","received_events_url":"https://api.github.com/users/xymus/received_events","type":"User","site_admin":false},"created_at":"2014-12-11T03:15:31Z","updated_at":"2014-12-11T03:15:31Z","author_association":"CONTRIBUTOR","body":"Je seconde Lucas, +1, mais je crains qu'il faudra aussi mettre à jour plusieurs contrib!\n"}]
\ No newline at end of file
--- /dev/null
+{"id":199674194,"node_id":"MDEyOkxhYmVsZWRFdmVudDE5OTY3NDE5NA==","url":"https://api.github.com/repos/nitlang/nit/issues/events/199674194","actor":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"event":"labeled","commit_id":null,"commit_url":null,"created_at":"2014-11-27T20:32:30Z","label":{"name":"need_review","color":"fbca04"},"issue":{"url":"https://api.github.com/repos/nitlang/nit/issues/945","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/945/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/945/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/945/events","html_url":"https://github.com/nitlang/nit/pull/945","id":50322007,"node_id":"MDExOlB1bGxSZXF1ZXN0MjUxNjg4ODY=","number":945,"title":"Useless type","user":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"labels":[{"id":81916206,"node_id":"MDU6TGFiZWw4MTkxNjIwNg==","url":"https://api.github.com/repos/nitlang/nit/labels/ok_will_merge","name":"ok_will_merge","color":"009800","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2014-11-27T20:32:27Z","updated_at":"2014-12-03T20:22:42Z","closed_at":"2014-12-01T13:53:03Z","author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/945","html_url":"https://github.com/nitlang/nit/pull/945","diff_url":"https://github.com/nitlang/nit/pull/945.diff","patch_url":"https://github.com/nitlang/nit/pull/945.patch"},"body":"Fix a wrong `useless-type` warning for attributes.\nExtends the `useless-type` warning to local variables.\n"}}
\ No newline at end of file
--- /dev/null
+[{"id":205931537,"node_id":"MDEyOkxhYmVsZWRFdmVudDIwNTkzMTUzNw==","url":"https://api.github.com/repos/nitlang/nit/issues/events/205931537","actor":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"event":"labeled","commit_id":null,"commit_url":null,"created_at":"2014-12-11T02:55:15Z","label":{"name":"need_review","color":"fbca04"}},{"id":205944886,"node_id":"MDIzOkhlYWRSZWZGb3JjZVB1c2hlZEV2ZW50MjA1OTQ0ODg2","url":"https://api.github.com/repos/nitlang/nit/issues/events/205944886","actor":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"event":"head_ref_force_pushed","commit_id":null,"commit_url":null,"created_at":"2014-12-11T03:49:46Z"},{"id":205946351,"node_id":"MDE0Ok1lbnRpb25lZEV2ZW50MjA1OTQ2MzUx","url":"https://api.github.com/repos/nitlang/nit/issues/events/205946351","actor":{"login":"xymus","id":208057,"node_id":"MDQ6VXNlcjIwODA1Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/208057?v=4","gravatar_id":"","url":"https://api.github.com/users/xymus","html_url":"https://github.com/xymus","followers_url":"https://api.github.com/users/xymus/followers","following_url":"https://api.github.com/users/xymus/following{/other_user}","gists_url":"https://api.github.com/users/xymus/gists{/gist_id}","starred_url":"https://api.github.com/users/xymus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xymus/subscriptions","organizations_url":"https://api.github.com/users/xymus/orgs","repos_url":"https://api.github.com/users/xymus/repos","events_url":"https://api.github.com/users/xymus/events{/privacy}","received_events_url":"https://api.github.com/users/xymus/received_events","type":"User","site_admin":false},"event":"mentioned","commit_id":null,"commit_url":null,"created_at":"2014-12-11T03:55:37Z"}]
\ No newline at end of file
--- /dev/null
+[{"url":"https://api.github.com/repos/nitlang/nit/issues/2755","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/2755/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2755/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/2755/events","html_url":"https://github.com/nitlang/nit/pull/2755","id":458934924,"node_id":"MDExOlB1bGxSZXF1ZXN0MjkwNDEzOTAw","number":2755,"title":"nitrpg: Move `nitrpg` to its own repository","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-06-20T23:34:44Z","updated_at":"2019-06-21T00:45:47Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/2755","html_url":"https://github.com/nitlang/nit/pull/2755","diff_url":"https://github.com/nitlang/nit/pull/2755.diff","patch_url":"https://github.com/nitlang/nit/pull/2755.patch"},"body":"`nitrpg` is broken since a long time. I think https:/api.github.com actually changed twice since it broke. I don't plan on killing it yet but I moved it to its own repository until I worked again on it (or never).\r\n\r\nSee https://github.com/Morriar/nitrpg.\r\n\r\nSigned-off-by: Alexandre Terrasa <alexandre@moz-code.org>"},{"url":"https://api.github.com/repos/nitlang/nit/issues/2754","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/2754/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2754/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/2754/events","html_url":"https://github.com/nitlang/nit/pull/2754","id":458805732,"node_id":"MDExOlB1bGxSZXF1ZXN0MjkwMzI2MTEw","number":2754,"title":"First (and small) integration of the ICU library in Nit : locale and case modification","user":{"login":"anadaouda","id":36400538,"node_id":"MDQ6VXNlcjM2NDAwNTM4","avatar_url":"https://avatars1.githubusercontent.com/u/36400538?v=4","gravatar_id":"","url":"https://api.github.com/users/anadaouda","html_url":"https://github.com/anadaouda","followers_url":"https://api.github.com/users/anadaouda/followers","following_url":"https://api.github.com/users/anadaouda/following{/other_user}","gists_url":"https://api.github.com/users/anadaouda/gists{/gist_id}","starred_url":"https://api.github.com/users/anadaouda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anadaouda/subscriptions","organizations_url":"https://api.github.com/users/anadaouda/orgs","repos_url":"https://api.github.com/users/anadaouda/repos","events_url":"https://api.github.com/users/anadaouda/events{/privacy}","received_events_url":"https://api.github.com/users/anadaouda/received_events","type":"User","site_admin":false},"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-06-20T18:28:52Z","updated_at":"2019-06-20T18:48:05Z","closed_at":null,"author_association":"FIRST_TIMER","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/2754","html_url":"https://github.com/nitlang/nit/pull/2754","diff_url":"https://github.com/nitlang/nit/pull/2754.diff","patch_url":"https://github.com/nitlang/nit/pull/2754.patch"},"body":"## ICU\r\nICU (International Components for Unicode) is an API which implements algorithms provided by the Unicode Consortium in C.\r\n\r\n## locale.nit\r\nLocale object which makes sure that the name of the locale is valid and handled by the ICU library\r\n\r\n## caseModification.nit\r\nAddition of `uppercase`, `lowercase` and `title` in the `String` and `CString` classes using a `CaseModification` object."},{"url":"https://api.github.com/repos/nitlang/nit/issues/2753","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/2753/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2753/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/2753/events","html_url":"https://github.com/nitlang/nit/pull/2753","id":457781476,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjg5NTE5NzM0","number":2753,"title":"Mock Github API tests","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false},{"id":225254102,"node_id":"MDU6TGFiZWwyMjUyNTQxMDI=","url":"https://api.github.com/repos/nitlang/nit/labels/tests_are_ok","name":"tests_are_ok","color":"00b800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2019-06-19T02:53:50Z","updated_at":"2019-06-20T18:27:49Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/2753","html_url":"https://github.com/nitlang/nit/pull/2753","diff_url":"https://github.com/nitlang/nit/pull/2753.diff","patch_url":"https://github.com/nitlang/nit/pull/2753.patch"},"body":"This PR adds a mock to GithubAPI so we can avoid sending requests to the API on CI.\r\n\r\nFor each API call we save the actual Github response body from the API and reuse it during the tests.\r\nThe attribute `update_responses_cache` can be set to `true` so the cache files are updated from the API when `nitunit` is called."}]
\ No newline at end of file
--- /dev/null
+[{"id":87474920,"node_id":"MDU6TGFiZWw4NzQ3NDkyMA==","url":"https://api.github.com/repos/nitlang/nit/labels/API","name":"API","color":"006b75","default":false},{"id":243644303,"node_id":"MDU6TGFiZWwyNDM2NDQzMDM=","url":"https://api.github.com/repos/nitlang/nit/labels/Feature%20Request","name":"Feature Request","color":"d4c5f9","default":false},{"id":250684857,"node_id":"MDU6TGFiZWwyNTA2ODQ4NTc=","url":"https://api.github.com/repos/nitlang/nit/labels/NEP","name":"NEP","color":"50a0ff","default":false}]
\ No newline at end of file
--- /dev/null
+{"id":81916206,"node_id":"MDU6TGFiZWw4MTkxNjIwNg==","url":"https://api.github.com/repos/nitlang/nit/labels/ok_will_merge","name":"ok_will_merge","color":"009800","default":false}
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/milestones/4","html_url":"https://github.com/nitlang/nit/milestone/4","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/4/labels","id":795157,"node_id":"MDk6TWlsZXN0b25lNzk1MTU3","number":4,"title":"v1.0prealpha","description":"The first public version that we are proud off and can be used sanely by non Nit people.","creator":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":22,"state":"open","created_at":"2014-09-19T00:16:45Z","updated_at":"2017-06-02T12:43:15Z","due_on":null,"closed_at":null}
\ No newline at end of file
--- /dev/null
+[{"url":"https://api.github.com/repos/nitlang/nit/milestones/4","html_url":"https://github.com/nitlang/nit/milestone/4","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/4/labels","id":795157,"node_id":"MDk6TWlsZXN0b25lNzk1MTU3","number":4,"title":"v1.0prealpha","description":"The first public version that we are proud off and can be used sanely by non Nit people.","creator":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":22,"state":"open","created_at":"2014-09-19T00:16:45Z","updated_at":"2017-06-02T12:43:15Z","due_on":null,"closed_at":null},{"url":"https://api.github.com/repos/nitlang/nit/milestones/5","html_url":"https://github.com/nitlang/nit/milestone/5","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/5/labels","id":904285,"node_id":"MDk6TWlsZXN0b25lOTA0Mjg1","number":5,"title":"nitdoc - Structured Documentation","description":"Display the documentation as a user manual and with reading suggestions.","creator":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":7,"state":"open","created_at":"2014-12-15T13:49:19Z","updated_at":"2018-06-21T12:50:02Z","due_on":null,"closed_at":null},{"url":"https://api.github.com/repos/nitlang/nit/milestones/6","html_url":"https://github.com/nitlang/nit/milestone/6","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/6/labels","id":904291,"node_id":"MDk6TWlsZXN0b25lOTA0Mjkx","number":6,"title":"nitdoc - Abstraction levels","description":"Provide abstraction mecanisms for lists and tress, diagrams and figures, source code presentation.","creator":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2014-12-15T13:52:04Z","updated_at":"2014-12-15T15:37:50Z","due_on":null,"closed_at":null}]
\ No newline at end of file
--- /dev/null
+{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-17T13:13:03Z","pushed_at":"2019-06-19T00:02:11Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123083,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":56,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":171,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":56,"open_issues":171,"watchers":187,"default_branch":"master","permissions":{"admin":false,"push":true,"pull":true},"organization":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"network_count":56,"subscribers_count":18}
\ No newline at end of file
--- /dev/null
+[{"total":1,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":16,"d":0,"c":1},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"ventilooo","id":9092178,"node_id":"MDQ6VXNlcjkwOTIxNzg=","avatar_url":"https://avatars1.githubusercontent.com/u/9092178?v=4","gravatar_id":"","url":"https://api.github.com/users/ventilooo","html_url":"https://github.com/ventilooo","followers_url":"https://api.github.com/users/ventilooo/followers","following_url":"https://api.github.com/users/ventilooo/following{/other_user}","gists_url":"https://api.github.com/users/ventilooo/gists{/gist_id}","starred_url":"https://api.github.com/users/ventilooo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ventilooo/subscriptions","organizations_url":"https://api.github.com/users/ventilooo/orgs","repos_url":"https://api.github.com/users/ventilooo/repos","events_url":"https://api.github.com/users/ventilooo/events{/privacy}","received_events_url":"https://api.github.com/users/ventilooo/received_events","type":"User","site_admin":false}},{"total":1,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":3,"d":6,"c":1},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"tonygaetani","id":5572832,"node_id":"MDQ6VXNlcjU1NzI4MzI=","avatar_url":"https://avatars0.githubusercontent.com/u/5572832?v=4","gravatar_id":"","url":"https://api.github.com/users/tonygaetani","html_url":"https://github.com/tonygaetani","followers_url":"https://api.github.com/users/tonygaetani/followers","following_url":"https://api.github.com/users/tonygaetani/following{/other_user}","gists_url":"https://api.github.com/users/tonygaetani/gists{/gist_id}","starred_url":"https://api.github.com/users/tonygaetani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tonygaetani/subscriptions","organizations_url":"https://api.github.com/users/tonygaetani/orgs","repos_url":"https://api.github.com/users/tonygaetani/repos","events_url":"https://api.github.com/users/tonygaetani/events{/privacy}","received_events_url":"https://api.github.com/users/tonygaetani/received_events","type":"User","site_admin":false}},{"total":1,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":24,"d":0,"c":1},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"jpcaissy","id":632559,"node_id":"MDQ6VXNlcjYzMjU1OQ==","avatar_url":"https://avatars1.githubusercontent.com/u/632559?v=4","gravatar_id":"","url":"https://api.github.com/users/jpcaissy","html_url":"https://github.com/jpcaissy","followers_url":"https://api.github.com/users/jpcaissy/followers","following_url":"https://api.github.com/users/jpcaissy/following{/other_user}","gists_url":"https://api.github.com/users/jpcaissy/gists{/gist_id}","starred_url":"https://api.github.com/users/jpcaissy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpcaissy/subscriptions","organizations_url":"https://api.github.com/users/jpcaissy/orgs","repos_url":"https://api.github.com/users/jpcaissy/repos","events_url":"https://api.github.com/users/jpcaissy/events{/privacy}","received_events_url":"https://api.github.com/users/jpcaissy/received_events","type":"User","site_admin":false}},{"total":1,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":305,"d":0,"c":1},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"budi-kurniawan","id":2431123,"node_id":"MDQ6VXNlcjI0MzExMjM=","avatar_url":"https://avatars0.githubusercontent.com/u/2431123?v=4","gravatar_id":"","url":"https://api.github.com/users/budi-kurniawan","html_url":"https://github.com/budi-kurniawan","followers_url":"https://api.github.com/users/budi-kurniawan/followers","following_url":"https://api.github.com/users/budi-kurniawan/following{/other_user}","gists_url":"https://api.github.com/users/budi-kurniawan/gists{/gist_id}","starred_url":"https://api.github.com/users/budi-kurniawan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/budi-kurniawan/subscriptions","organizations_url":"https://api.github.com/users/budi-kurniawan/orgs","repos_url":"https://api.github.com/users/budi-kurniawan/repos","events_url":"https://api.github.com/users/budi-kurniawan/events{/privacy}","received_events_url":"https://api.github.com/users/budi-kurniawan/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":53,"d":0,"c":1},{"w":1526169600,"a":122,"d":13,"c":1},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"olivierschirm","id":38984634,"node_id":"MDQ6VXNlcjM4OTg0NjM0","avatar_url":"https://avatars1.githubusercontent.com/u/38984634?v=4","gravatar_id":"","url":"https://api.github.com/users/olivierschirm","html_url":"https://github.com/olivierschirm","followers_url":"https://api.github.com/users/olivierschirm/followers","following_url":"https://api.github.com/users/olivierschirm/following{/other_user}","gists_url":"https://api.github.com/users/olivierschirm/gists{/gist_id}","starred_url":"https://api.github.com/users/olivierschirm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olivierschirm/subscriptions","organizations_url":"https://api.github.com/users/olivierschirm/orgs","repos_url":"https://api.github.com/users/olivierschirm/repos","events_url":"https://api.github.com/users/olivierschirm/events{/privacy}","received_events_url":"https://api.github.com/users/olivierschirm/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":164,"d":30,"c":1},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":47,"d":2,"c":1},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"matthmsl","id":8661695,"node_id":"MDQ6VXNlcjg2NjE2OTU=","avatar_url":"https://avatars3.githubusercontent.com/u/8661695?v=4","gravatar_id":"","url":"https://api.github.com/users/matthmsl","html_url":"https://github.com/matthmsl","followers_url":"https://api.github.com/users/matthmsl/followers","following_url":"https://api.github.com/users/matthmsl/following{/other_user}","gists_url":"https://api.github.com/users/matthmsl/gists{/gist_id}","starred_url":"https://api.github.com/users/matthmsl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthmsl/subscriptions","organizations_url":"https://api.github.com/users/matthmsl/orgs","repos_url":"https://api.github.com/users/matthmsl/repos","events_url":"https://api.github.com/users/matthmsl/events{/privacy}","received_events_url":"https://api.github.com/users/matthmsl/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":47,"d":27,"c":2},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"itch76","id":6430803,"node_id":"MDQ6VXNlcjY0MzA4MDM=","avatar_url":"https://avatars0.githubusercontent.com/u/6430803?v=4","gravatar_id":"","url":"https://api.github.com/users/itch76","html_url":"https://github.com/itch76","followers_url":"https://api.github.com/users/itch76/followers","following_url":"https://api.github.com/users/itch76/following{/other_user}","gists_url":"https://api.github.com/users/itch76/gists{/gist_id}","starred_url":"https://api.github.com/users/itch76/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/itch76/subscriptions","organizations_url":"https://api.github.com/users/itch76/orgs","repos_url":"https://api.github.com/users/itch76/repos","events_url":"https://api.github.com/users/itch76/events{/privacy}","received_events_url":"https://api.github.com/users/itch76/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":36,"d":1,"c":2},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Johann673","id":6461852,"node_id":"MDQ6VXNlcjY0NjE4NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/6461852?v=4","gravatar_id":"","url":"https://api.github.com/users/Johann673","html_url":"https://github.com/Johann673","followers_url":"https://api.github.com/users/Johann673/followers","following_url":"https://api.github.com/users/Johann673/following{/other_user}","gists_url":"https://api.github.com/users/Johann673/gists{/gist_id}","starred_url":"https://api.github.com/users/Johann673/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Johann673/subscriptions","organizations_url":"https://api.github.com/users/Johann673/orgs","repos_url":"https://api.github.com/users/Johann673/repos","events_url":"https://api.github.com/users/Johann673/events{/privacy}","received_events_url":"https://api.github.com/users/Johann673/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":90,"d":0,"c":2},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Herve-M","id":1846023,"node_id":"MDQ6VXNlcjE4NDYwMjM=","avatar_url":"https://avatars3.githubusercontent.com/u/1846023?v=4","gravatar_id":"","url":"https://api.github.com/users/Herve-M","html_url":"https://github.com/Herve-M","followers_url":"https://api.github.com/users/Herve-M/followers","following_url":"https://api.github.com/users/Herve-M/following{/other_user}","gists_url":"https://api.github.com/users/Herve-M/gists{/gist_id}","starred_url":"https://api.github.com/users/Herve-M/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Herve-M/subscriptions","organizations_url":"https://api.github.com/users/Herve-M/orgs","repos_url":"https://api.github.com/users/Herve-M/repos","events_url":"https://api.github.com/users/Herve-M/events{/privacy}","received_events_url":"https://api.github.com/users/Herve-M/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":2,"d":2,"c":2},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"ChrisProlls","id":1511666,"node_id":"MDQ6VXNlcjE1MTE2NjY=","avatar_url":"https://avatars1.githubusercontent.com/u/1511666?v=4","gravatar_id":"","url":"https://api.github.com/users/ChrisProlls","html_url":"https://github.com/ChrisProlls","followers_url":"https://api.github.com/users/ChrisProlls/followers","following_url":"https://api.github.com/users/ChrisProlls/following{/other_user}","gists_url":"https://api.github.com/users/ChrisProlls/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisProlls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisProlls/subscriptions","organizations_url":"https://api.github.com/users/ChrisProlls/orgs","repos_url":"https://api.github.com/users/ChrisProlls/repos","events_url":"https://api.github.com/users/ChrisProlls/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisProlls/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":6,"d":0,"c":1},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":77,"d":5,"c":1},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"CaptainKali","id":6105829,"node_id":"MDQ6VXNlcjYxMDU4Mjk=","avatar_url":"https://avatars3.githubusercontent.com/u/6105829?v=4","gravatar_id":"","url":"https://api.github.com/users/CaptainKali","html_url":"https://github.com/CaptainKali","followers_url":"https://api.github.com/users/CaptainKali/followers","following_url":"https://api.github.com/users/CaptainKali/following{/other_user}","gists_url":"https://api.github.com/users/CaptainKali/gists{/gist_id}","starred_url":"https://api.github.com/users/CaptainKali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CaptainKali/subscriptions","organizations_url":"https://api.github.com/users/CaptainKali/orgs","repos_url":"https://api.github.com/users/CaptainKali/repos","events_url":"https://api.github.com/users/CaptainKali/events{/privacy}","received_events_url":"https://api.github.com/users/CaptainKali/received_events","type":"User","site_admin":false}},{"total":2,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":1018,"d":0,"c":1},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":62,"d":0,"c":1},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Bl4ckb0ne","id":5001005,"node_id":"MDQ6VXNlcjUwMDEwMDU=","avatar_url":"https://avatars3.githubusercontent.com/u/5001005?v=4","gravatar_id":"","url":"https://api.github.com/users/Bl4ckb0ne","html_url":"https://github.com/Bl4ckb0ne","followers_url":"https://api.github.com/users/Bl4ckb0ne/followers","following_url":"https://api.github.com/users/Bl4ckb0ne/following{/other_user}","gists_url":"https://api.github.com/users/Bl4ckb0ne/gists{/gist_id}","starred_url":"https://api.github.com/users/Bl4ckb0ne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bl4ckb0ne/subscriptions","organizations_url":"https://api.github.com/users/Bl4ckb0ne/orgs","repos_url":"https://api.github.com/users/Bl4ckb0ne/repos","events_url":"https://api.github.com/users/Bl4ckb0ne/events{/privacy}","received_events_url":"https://api.github.com/users/Bl4ckb0ne/received_events","type":"User","site_admin":false}},{"total":3,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":48,"d":4,"c":3},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"matthieuauger","id":1172099,"node_id":"MDQ6VXNlcjExNzIwOTk=","avatar_url":"https://avatars0.githubusercontent.com/u/1172099?v=4","gravatar_id":"","url":"https://api.github.com/users/matthieuauger","html_url":"https://github.com/matthieuauger","followers_url":"https://api.github.com/users/matthieuauger/followers","following_url":"https://api.github.com/users/matthieuauger/following{/other_user}","gists_url":"https://api.github.com/users/matthieuauger/gists{/gist_id}","starred_url":"https://api.github.com/users/matthieuauger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthieuauger/subscriptions","organizations_url":"https://api.github.com/users/matthieuauger/orgs","repos_url":"https://api.github.com/users/matthieuauger/repos","events_url":"https://api.github.com/users/matthieuauger/events{/privacy}","received_events_url":"https://api.github.com/users/matthieuauger/received_events","type":"User","site_admin":false}},{"total":3,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":18,"d":7,"c":2},{"w":1546128000,"a":2,"d":2,"c":1},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"dullin","id":7041033,"node_id":"MDQ6VXNlcjcwNDEwMzM=","avatar_url":"https://avatars0.githubusercontent.com/u/7041033?v=4","gravatar_id":"","url":"https://api.github.com/users/dullin","html_url":"https://github.com/dullin","followers_url":"https://api.github.com/users/dullin/followers","following_url":"https://api.github.com/users/dullin/following{/other_user}","gists_url":"https://api.github.com/users/dullin/gists{/gist_id}","starred_url":"https://api.github.com/users/dullin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dullin/subscriptions","organizations_url":"https://api.github.com/users/dullin/orgs","repos_url":"https://api.github.com/users/dullin/repos","events_url":"https://api.github.com/users/dullin/events{/privacy}","received_events_url":"https://api.github.com/users/dullin/received_events","type":"User","site_admin":false}},{"total":3,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":13,"d":0,"c":1},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":907,"d":0,"c":1},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":76,"d":0,"c":1},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"ablondin","id":398340,"node_id":"MDQ6VXNlcjM5ODM0MA==","avatar_url":"https://avatars1.githubusercontent.com/u/398340?v=4","gravatar_id":"","url":"https://api.github.com/users/ablondin","html_url":"https://github.com/ablondin","followers_url":"https://api.github.com/users/ablondin/followers","following_url":"https://api.github.com/users/ablondin/following{/other_user}","gists_url":"https://api.github.com/users/ablondin/gists{/gist_id}","starred_url":"https://api.github.com/users/ablondin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ablondin/subscriptions","organizations_url":"https://api.github.com/users/ablondin/orgs","repos_url":"https://api.github.com/users/ablondin/repos","events_url":"https://api.github.com/users/ablondin/events{/privacy}","received_events_url":"https://api.github.com/users/ablondin/received_events","type":"User","site_admin":false}},{"total":4,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":180,"d":0,"c":1},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":25,"d":25,"c":1},{"w":1433030400,"a":83,"d":7,"c":1},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":19,"d":0,"c":1},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"MehdiAit","id":3407293,"node_id":"MDQ6VXNlcjM0MDcyOTM=","avatar_url":"https://avatars0.githubusercontent.com/u/3407293?v=4","gravatar_id":"","url":"https://api.github.com/users/MehdiAit","html_url":"https://github.com/MehdiAit","followers_url":"https://api.github.com/users/MehdiAit/followers","following_url":"https://api.github.com/users/MehdiAit/following{/other_user}","gists_url":"https://api.github.com/users/MehdiAit/gists{/gist_id}","starred_url":"https://api.github.com/users/MehdiAit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MehdiAit/subscriptions","organizations_url":"https://api.github.com/users/MehdiAit/orgs","repos_url":"https://api.github.com/users/MehdiAit/repos","events_url":"https://api.github.com/users/MehdiAit/events{/privacy}","received_events_url":"https://api.github.com/users/MehdiAit/received_events","type":"User","site_admin":false}},{"total":4,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":65,"d":0,"c":4},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"AnisBoubaker","id":46570545,"node_id":"MDQ6VXNlcjQ2NTcwNTQ1","avatar_url":"https://avatars0.githubusercontent.com/u/46570545?v=4","gravatar_id":"","url":"https://api.github.com/users/AnisBoubaker","html_url":"https://github.com/AnisBoubaker","followers_url":"https://api.github.com/users/AnisBoubaker/followers","following_url":"https://api.github.com/users/AnisBoubaker/following{/other_user}","gists_url":"https://api.github.com/users/AnisBoubaker/gists{/gist_id}","starred_url":"https://api.github.com/users/AnisBoubaker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnisBoubaker/subscriptions","organizations_url":"https://api.github.com/users/AnisBoubaker/orgs","repos_url":"https://api.github.com/users/AnisBoubaker/repos","events_url":"https://api.github.com/users/AnisBoubaker/events{/privacy}","received_events_url":"https://api.github.com/users/AnisBoubaker/received_events","type":"User","site_admin":false}},{"total":5,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":142,"d":0,"c":5},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"renatamc","id":12816791,"node_id":"MDQ6VXNlcjEyODE2Nzkx","avatar_url":"https://avatars0.githubusercontent.com/u/12816791?v=4","gravatar_id":"","url":"https://api.github.com/users/renatamc","html_url":"https://github.com/renatamc","followers_url":"https://api.github.com/users/renatamc/followers","following_url":"https://api.github.com/users/renatamc/following{/other_user}","gists_url":"https://api.github.com/users/renatamc/gists{/gist_id}","starred_url":"https://api.github.com/users/renatamc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/renatamc/subscriptions","organizations_url":"https://api.github.com/users/renatamc/orgs","repos_url":"https://api.github.com/users/renatamc/repos","events_url":"https://api.github.com/users/renatamc/events{/privacy}","received_events_url":"https://api.github.com/users/renatamc/received_events","type":"User","site_admin":false}},{"total":5,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":140,"d":1,"c":1},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":404,"d":0,"c":1},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":231,"d":211,"c":3},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"lucasmatthieu","id":1231844,"node_id":"MDQ6VXNlcjEyMzE4NDQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1231844?v=4","gravatar_id":"","url":"https://api.github.com/users/lucasmatthieu","html_url":"https://github.com/lucasmatthieu","followers_url":"https://api.github.com/users/lucasmatthieu/followers","following_url":"https://api.github.com/users/lucasmatthieu/following{/other_user}","gists_url":"https://api.github.com/users/lucasmatthieu/gists{/gist_id}","starred_url":"https://api.github.com/users/lucasmatthieu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucasmatthieu/subscriptions","organizations_url":"https://api.github.com/users/lucasmatthieu/orgs","repos_url":"https://api.github.com/users/lucasmatthieu/repos","events_url":"https://api.github.com/users/lucasmatthieu/events{/privacy}","received_events_url":"https://api.github.com/users/lucasmatthieu/received_events","type":"User","site_admin":false}},{"total":5,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":13,"d":1,"c":1},{"w":1451174400,"a":325,"d":0,"c":2},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":1,"d":0,"c":1},{"w":1463270400,"a":204,"d":8,"c":1},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"itsWill","id":6386302,"node_id":"MDQ6VXNlcjYzODYzMDI=","avatar_url":"https://avatars1.githubusercontent.com/u/6386302?v=4","gravatar_id":"","url":"https://api.github.com/users/itsWill","html_url":"https://github.com/itsWill","followers_url":"https://api.github.com/users/itsWill/followers","following_url":"https://api.github.com/users/itsWill/following{/other_user}","gists_url":"https://api.github.com/users/itsWill/gists{/gist_id}","starred_url":"https://api.github.com/users/itsWill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/itsWill/subscriptions","organizations_url":"https://api.github.com/users/itsWill/orgs","repos_url":"https://api.github.com/users/itsWill/repos","events_url":"https://api.github.com/users/itsWill/events{/privacy}","received_events_url":"https://api.github.com/users/itsWill/received_events","type":"User","site_admin":false}},{"total":6,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":134,"d":0,"c":1},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":1148,"d":0,"c":1},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":164,"d":0,"c":1},{"w":1432425600,"a":103,"d":0,"c":1},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":114,"d":0,"c":2},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Tagachi","id":8526489,"node_id":"MDQ6VXNlcjg1MjY0ODk=","avatar_url":"https://avatars0.githubusercontent.com/u/8526489?v=4","gravatar_id":"","url":"https://api.github.com/users/Tagachi","html_url":"https://github.com/Tagachi","followers_url":"https://api.github.com/users/Tagachi/followers","following_url":"https://api.github.com/users/Tagachi/following{/other_user}","gists_url":"https://api.github.com/users/Tagachi/gists{/gist_id}","starred_url":"https://api.github.com/users/Tagachi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tagachi/subscriptions","organizations_url":"https://api.github.com/users/Tagachi/orgs","repos_url":"https://api.github.com/users/Tagachi/repos","events_url":"https://api.github.com/users/Tagachi/events{/privacy}","received_events_url":"https://api.github.com/users/Tagachi/received_events","type":"User","site_admin":false}},{"total":6,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":75,"d":21,"c":4},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":9,"d":13,"c":1},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":26,"d":3,"c":1},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Dresdof","id":1213151,"node_id":"MDQ6VXNlcjEyMTMxNTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1213151?v=4","gravatar_id":"","url":"https://api.github.com/users/Dresdof","html_url":"https://github.com/Dresdof","followers_url":"https://api.github.com/users/Dresdof/followers","following_url":"https://api.github.com/users/Dresdof/following{/other_user}","gists_url":"https://api.github.com/users/Dresdof/gists{/gist_id}","starred_url":"https://api.github.com/users/Dresdof/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dresdof/subscriptions","organizations_url":"https://api.github.com/users/Dresdof/orgs","repos_url":"https://api.github.com/users/Dresdof/repos","events_url":"https://api.github.com/users/Dresdof/events{/privacy}","received_events_url":"https://api.github.com/users/Dresdof/received_events","type":"User","site_admin":false}},{"total":6,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":884,"d":0,"c":1},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":412,"d":95,"c":1},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":77,"d":103,"c":1},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":126,"d":0,"c":1},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":14,"d":0,"c":2},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Delja","id":26239416,"node_id":"MDQ6VXNlcjI2MjM5NDE2","avatar_url":"https://avatars1.githubusercontent.com/u/26239416?v=4","gravatar_id":"","url":"https://api.github.com/users/Delja","html_url":"https://github.com/Delja","followers_url":"https://api.github.com/users/Delja/followers","following_url":"https://api.github.com/users/Delja/following{/other_user}","gists_url":"https://api.github.com/users/Delja/gists{/gist_id}","starred_url":"https://api.github.com/users/Delja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Delja/subscriptions","organizations_url":"https://api.github.com/users/Delja/orgs","repos_url":"https://api.github.com/users/Delja/repos","events_url":"https://api.github.com/users/Delja/events{/privacy}","received_events_url":"https://api.github.com/users/Delja/received_events","type":"User","site_admin":false}},{"total":7,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":398,"d":14,"c":4},{"w":1250380800,"a":70,"d":26,"c":3},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"JulienChevalier","id":13573494,"node_id":"MDQ6VXNlcjEzNTczNDk0","avatar_url":"https://avatars3.githubusercontent.com/u/13573494?v=4","gravatar_id":"","url":"https://api.github.com/users/JulienChevalier","html_url":"https://github.com/JulienChevalier","followers_url":"https://api.github.com/users/JulienChevalier/followers","following_url":"https://api.github.com/users/JulienChevalier/following{/other_user}","gists_url":"https://api.github.com/users/JulienChevalier/gists{/gist_id}","starred_url":"https://api.github.com/users/JulienChevalier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JulienChevalier/subscriptions","organizations_url":"https://api.github.com/users/JulienChevalier/orgs","repos_url":"https://api.github.com/users/JulienChevalier/repos","events_url":"https://api.github.com/users/JulienChevalier/events{/privacy}","received_events_url":"https://api.github.com/users/JulienChevalier/received_events","type":"User","site_admin":false}},{"total":7,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":34,"d":1,"c":7},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"GeoffreyHecht","id":6412112,"node_id":"MDQ6VXNlcjY0MTIxMTI=","avatar_url":"https://avatars1.githubusercontent.com/u/6412112?v=4","gravatar_id":"","url":"https://api.github.com/users/GeoffreyHecht","html_url":"https://github.com/GeoffreyHecht","followers_url":"https://api.github.com/users/GeoffreyHecht/followers","following_url":"https://api.github.com/users/GeoffreyHecht/following{/other_user}","gists_url":"https://api.github.com/users/GeoffreyHecht/gists{/gist_id}","starred_url":"https://api.github.com/users/GeoffreyHecht/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GeoffreyHecht/subscriptions","organizations_url":"https://api.github.com/users/GeoffreyHecht/orgs","repos_url":"https://api.github.com/users/GeoffreyHecht/repos","events_url":"https://api.github.com/users/GeoffreyHecht/events{/privacy}","received_events_url":"https://api.github.com/users/GeoffreyHecht/received_events","type":"User","site_admin":false}},{"total":10,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":2865,"d":997,"c":9},{"w":1368316800,"a":162,"d":7,"c":1},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"nheu","id":3933505,"node_id":"MDQ6VXNlcjM5MzM1MDU=","avatar_url":"https://avatars1.githubusercontent.com/u/3933505?v=4","gravatar_id":"","url":"https://api.github.com/users/nheu","html_url":"https://github.com/nheu","followers_url":"https://api.github.com/users/nheu/followers","following_url":"https://api.github.com/users/nheu/following{/other_user}","gists_url":"https://api.github.com/users/nheu/gists{/gist_id}","starred_url":"https://api.github.com/users/nheu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nheu/subscriptions","organizations_url":"https://api.github.com/users/nheu/orgs","repos_url":"https://api.github.com/users/nheu/repos","events_url":"https://api.github.com/users/nheu/events{/privacy}","received_events_url":"https://api.github.com/users/nheu/received_events","type":"User","site_admin":false}},{"total":13,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":35,"d":8,"c":3},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":112,"d":0,"c":2},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":848,"d":296,"c":8},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"ppepos","id":6002658,"node_id":"MDQ6VXNlcjYwMDI2NTg=","avatar_url":"https://avatars1.githubusercontent.com/u/6002658?v=4","gravatar_id":"","url":"https://api.github.com/users/ppepos","html_url":"https://github.com/ppepos","followers_url":"https://api.github.com/users/ppepos/followers","following_url":"https://api.github.com/users/ppepos/following{/other_user}","gists_url":"https://api.github.com/users/ppepos/gists{/gist_id}","starred_url":"https://api.github.com/users/ppepos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppepos/subscriptions","organizations_url":"https://api.github.com/users/ppepos/orgs","repos_url":"https://api.github.com/users/ppepos/repos","events_url":"https://api.github.com/users/ppepos/events{/privacy}","received_events_url":"https://api.github.com/users/ppepos/received_events","type":"User","site_admin":false}},{"total":29,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":1,"d":0,"c":1},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":741,"d":2,"c":1},{"w":1398556800,"a":44,"d":48,"c":4},{"w":1399161600,"a":311,"d":0,"c":1},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":5,"d":2,"c":1},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":321,"d":38,"c":8},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":6339,"d":60,"c":12},{"w":1404000000,"a":9,"d":0,"c":1},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Djomanix","id":3929556,"node_id":"MDQ6VXNlcjM5Mjk1NTY=","avatar_url":"https://avatars1.githubusercontent.com/u/3929556?v=4","gravatar_id":"","url":"https://api.github.com/users/Djomanix","html_url":"https://github.com/Djomanix","followers_url":"https://api.github.com/users/Djomanix/followers","following_url":"https://api.github.com/users/Djomanix/following{/other_user}","gists_url":"https://api.github.com/users/Djomanix/gists{/gist_id}","starred_url":"https://api.github.com/users/Djomanix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Djomanix/subscriptions","organizations_url":"https://api.github.com/users/Djomanix/orgs","repos_url":"https://api.github.com/users/Djomanix/repos","events_url":"https://api.github.com/users/Djomanix/events{/privacy}","received_events_url":"https://api.github.com/users/Djomanix/received_events","type":"User","site_admin":false}},{"total":35,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":1492,"d":5,"c":5},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":1,"d":0,"c":1},{"w":1404604800,"a":100,"d":0,"c":2},{"w":1405209600,"a":1286,"d":5,"c":6},{"w":1405814400,"a":377,"d":195,"c":7},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":2370,"d":138,"c":10},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":25,"d":22,"c":3},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":103,"d":0,"c":1},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Freddrickk","id":5316424,"node_id":"MDQ6VXNlcjUzMTY0MjQ=","avatar_url":"https://avatars2.githubusercontent.com/u/5316424?v=4","gravatar_id":"","url":"https://api.github.com/users/Freddrickk","html_url":"https://github.com/Freddrickk","followers_url":"https://api.github.com/users/Freddrickk/followers","following_url":"https://api.github.com/users/Freddrickk/following{/other_user}","gists_url":"https://api.github.com/users/Freddrickk/gists{/gist_id}","starred_url":"https://api.github.com/users/Freddrickk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Freddrickk/subscriptions","organizations_url":"https://api.github.com/users/Freddrickk/orgs","repos_url":"https://api.github.com/users/Freddrickk/repos","events_url":"https://api.github.com/users/Freddrickk/events{/privacy}","received_events_url":"https://api.github.com/users/Freddrickk/received_events","type":"User","site_admin":false}},{"total":50,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":324,"d":0,"c":2},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":377,"d":1,"c":2},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":185,"d":53,"c":4},{"w":1405814400,"a":14,"d":15,"c":1},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":203,"d":57,"c":4},{"w":1410652800,"a":15,"d":0,"c":1},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":176,"d":30,"c":1},{"w":1414886400,"a":12,"d":9,"c":1},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":56,"d":21,"c":2},{"w":1416700800,"a":19,"d":3,"c":1},{"w":1417305600,"a":46,"d":13,"c":3},{"w":1417910400,"a":32,"d":26,"c":2},{"w":1418515200,"a":50,"d":27,"c":1},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":23,"d":13,"c":1},{"w":1421539200,"a":346,"d":2,"c":2},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":225,"d":0,"c":1},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":92,"d":19,"c":3},{"w":1426377600,"a":1459,"d":1442,"c":1},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":1,"d":1,"c":1},{"w":1430006400,"a":54,"d":0,"c":1},{"w":1430611200,"a":46,"d":30,"c":1},{"w":1431216000,"a":8,"d":10,"c":1},{"w":1431820800,"a":106,"d":51,"c":1},{"w":1432425600,"a":223,"d":90,"c":3},{"w":1433030400,"a":1149,"d":4,"c":6},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":16,"d":11,"c":3},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"jpages","id":2535352,"node_id":"MDQ6VXNlcjI1MzUzNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/2535352?v=4","gravatar_id":"","url":"https://api.github.com/users/jpages","html_url":"https://github.com/jpages","followers_url":"https://api.github.com/users/jpages/followers","following_url":"https://api.github.com/users/jpages/following{/other_user}","gists_url":"https://api.github.com/users/jpages/gists{/gist_id}","starred_url":"https://api.github.com/users/jpages/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpages/subscriptions","organizations_url":"https://api.github.com/users/jpages/orgs","repos_url":"https://api.github.com/users/jpages/repos","events_url":"https://api.github.com/users/jpages/events{/privacy}","received_events_url":"https://api.github.com/users/jpages/received_events","type":"User","site_admin":false}},{"total":94,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":277,"d":24,"c":3},{"w":1367712000,"a":9,"d":0,"c":1},{"w":1368316800,"a":2,"d":2,"c":1},{"w":1368921600,"a":1271,"d":163,"c":18},{"w":1369526400,"a":260,"d":73,"c":8},{"w":1370131200,"a":8,"d":8,"c":1},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":1249,"d":5,"c":52},{"w":1372550400,"a":198,"d":27,"c":10},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"StefanLage","id":3008132,"node_id":"MDQ6VXNlcjMwMDgxMzI=","avatar_url":"https://avatars1.githubusercontent.com/u/3008132?v=4","gravatar_id":"","url":"https://api.github.com/users/StefanLage","html_url":"https://github.com/StefanLage","followers_url":"https://api.github.com/users/StefanLage/followers","following_url":"https://api.github.com/users/StefanLage/following{/other_user}","gists_url":"https://api.github.com/users/StefanLage/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanLage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanLage/subscriptions","organizations_url":"https://api.github.com/users/StefanLage/orgs","repos_url":"https://api.github.com/users/StefanLage/repos","events_url":"https://api.github.com/users/StefanLage/events{/privacy}","received_events_url":"https://api.github.com/users/StefanLage/received_events","type":"User","site_admin":false}},{"total":97,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":163,"d":55,"c":2},{"w":1421539200,"a":45,"d":17,"c":4},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":145,"d":0,"c":4},{"w":1427587200,"a":47,"d":9,"c":3},{"w":1428192000,"a":55,"d":18,"c":4},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":1608,"d":0,"c":6},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":427,"d":162,"c":5},{"w":1433635200,"a":83,"d":0,"c":3},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":720,"d":158,"c":15},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":47,"d":38,"c":1},{"w":1437868800,"a":14,"d":10,"c":1},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":14,"d":14,"c":1},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":2,"d":3,"c":2},{"w":1442102400,"a":88,"d":2,"c":3},{"w":1442707200,"a":139,"d":78,"c":1},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":160,"d":7,"c":3},{"w":1448755200,"a":117,"d":0,"c":2},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":16790,"d":15794,"c":7},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":17,"d":13,"c":1},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":21,"d":2,"c":1},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":74,"d":0,"c":1},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":241,"d":0,"c":1},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":137,"d":0,"c":1},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":428,"d":0,"c":2},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":576,"d":0,"c":7},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":1,"d":1,"c":1},{"w":1487462400,"a":1,"d":0,"c":1},{"w":1488067200,"a":1,"d":0,"c":1},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":35,"d":98,"c":4},{"w":1491091200,"a":6,"d":6,"c":2},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":335,"d":98,"c":5},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":78,"d":4,"c":2},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"BlackMinou","id":6372714,"node_id":"MDQ6VXNlcjYzNzI3MTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6372714?v=4","gravatar_id":"","url":"https://api.github.com/users/BlackMinou","html_url":"https://github.com/BlackMinou","followers_url":"https://api.github.com/users/BlackMinou/followers","following_url":"https://api.github.com/users/BlackMinou/following{/other_user}","gists_url":"https://api.github.com/users/BlackMinou/gists{/gist_id}","starred_url":"https://api.github.com/users/BlackMinou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BlackMinou/subscriptions","organizations_url":"https://api.github.com/users/BlackMinou/orgs","repos_url":"https://api.github.com/users/BlackMinou/repos","events_url":"https://api.github.com/users/BlackMinou/events{/privacy}","received_events_url":"https://api.github.com/users/BlackMinou/received_events","type":"User","site_admin":false}},{"total":109,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":11,"d":0,"c":1},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":84,"d":3,"c":1},{"w":1245542400,"a":77,"d":9,"c":4},{"w":1246147200,"a":45,"d":0,"c":1},{"w":1246752000,"a":705,"d":747,"c":8},{"w":1247356800,"a":104,"d":83,"c":5},{"w":1247961600,"a":434,"d":111,"c":10},{"w":1248566400,"a":113,"d":6,"c":5},{"w":1249171200,"a":845,"d":719,"c":4},{"w":1249776000,"a":338,"d":72,"c":4},{"w":1250380800,"a":592,"d":117,"c":5},{"w":1250985600,"a":74,"d":63,"c":5},{"w":1251590400,"a":8,"d":0,"c":2},{"w":1252195200,"a":43,"d":47,"c":4},{"w":1252800000,"a":97,"d":31,"c":5},{"w":1253404800,"a":617,"d":3450,"c":6},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":332,"d":3,"c":7},{"w":1256428800,"a":1,"d":0,"c":1},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":145,"d":0,"c":3},{"w":1258848000,"a":113,"d":212,"c":7},{"w":1259452800,"a":357,"d":48,"c":7},{"w":1260057600,"a":104,"d":0,"c":1},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":4,"d":2,"c":2},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":66,"d":6,"c":5},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":7,"d":4,"c":3},{"w":1295740800,"a":5,"d":3,"c":1},{"w":1296345600,"a":22,"d":1,"c":1},{"w":1296950400,"a":1,"d":1,"c":1},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":0,"d":0,"c":0},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":0,"d":0,"c":0},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":0,"d":0,"c":0},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":0,"d":0,"c":0},{"w":1417910400,"a":0,"d":0,"c":0},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":0,"d":0,"c":0},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":0,"d":0,"c":0},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":0,"d":0,"c":0},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"calestar","id":388096,"node_id":"MDQ6VXNlcjM4ODA5Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/388096?v=4","gravatar_id":"","url":"https://api.github.com/users/calestar","html_url":"https://github.com/calestar","followers_url":"https://api.github.com/users/calestar/followers","following_url":"https://api.github.com/users/calestar/following{/other_user}","gists_url":"https://api.github.com/users/calestar/gists{/gist_id}","starred_url":"https://api.github.com/users/calestar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calestar/subscriptions","organizations_url":"https://api.github.com/users/calestar/orgs","repos_url":"https://api.github.com/users/calestar/repos","events_url":"https://api.github.com/users/calestar/events{/privacy}","received_events_url":"https://api.github.com/users/calestar/received_events","type":"User","site_admin":false}},{"total":315,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":0,"d":0,"c":0},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":0,"d":0,"c":0},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":0,"d":0,"c":0},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":0,"d":0,"c":0},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":0,"d":0,"c":0},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":0,"d":0,"c":0},{"w":1392508800,"a":0,"d":0,"c":0},{"w":1393113600,"a":0,"d":0,"c":0},{"w":1393718400,"a":0,"d":0,"c":0},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":0,"c":0},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":0,"d":0,"c":0},{"w":1399161600,"a":0,"d":0,"c":0},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":0,"d":0,"c":0},{"w":1402185600,"a":0,"d":0,"c":0},{"w":1402790400,"a":0,"d":0,"c":0},{"w":1403395200,"a":0,"d":0,"c":0},{"w":1404000000,"a":0,"d":0,"c":0},{"w":1404604800,"a":0,"d":0,"c":0},{"w":1405209600,"a":0,"d":0,"c":0},{"w":1405814400,"a":0,"d":0,"c":0},{"w":1406419200,"a":0,"d":0,"c":0},{"w":1407024000,"a":0,"d":0,"c":0},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":0,"d":0,"c":0},{"w":1409443200,"a":0,"d":0,"c":0},{"w":1410048000,"a":145,"d":89,"c":2},{"w":1410652800,"a":4047,"d":3,"c":3},{"w":1411257600,"a":755,"d":0,"c":1},{"w":1411862400,"a":364,"d":33,"c":4},{"w":1412467200,"a":1644,"d":18,"c":3},{"w":1413072000,"a":22,"d":17,"c":3},{"w":1413676800,"a":149,"d":18,"c":7},{"w":1414281600,"a":276,"d":7,"c":7},{"w":1414886400,"a":3369,"d":195,"c":21},{"w":1415491200,"a":348,"d":593,"c":12},{"w":1416096000,"a":453,"d":59,"c":12},{"w":1416700800,"a":13960,"d":302,"c":33},{"w":1417305600,"a":8579,"d":141,"c":24},{"w":1417910400,"a":5797,"d":397,"c":33},{"w":1418515200,"a":3721,"d":2880,"c":37},{"w":1419120000,"a":0,"d":0,"c":0},{"w":1419724800,"a":39,"d":0,"c":1},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":0,"d":0,"c":0},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":0,"d":0,"c":0},{"w":1422748800,"a":0,"d":0,"c":0},{"w":1423353600,"a":0,"d":0,"c":0},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":0,"d":0,"c":0},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":0,"d":0,"c":0},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":0,"d":0,"c":0},{"w":1431216000,"a":0,"d":0,"c":0},{"w":1431820800,"a":0,"d":0,"c":0},{"w":1432425600,"a":0,"d":0,"c":0},{"w":1433030400,"a":0,"d":0,"c":0},{"w":1433635200,"a":0,"d":0,"c":0},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":0,"d":0,"c":0},{"w":1436054400,"a":0,"d":0,"c":0},{"w":1436659200,"a":0,"d":0,"c":0},{"w":1437264000,"a":0,"d":0,"c":0},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":0,"d":0,"c":0},{"w":1439078400,"a":0,"d":0,"c":0},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":0,"c":0},{"w":1441497600,"a":0,"d":0,"c":0},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":0,"d":0,"c":0},{"w":1445731200,"a":0,"d":0,"c":0},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":0,"d":0,"c":0},{"w":1448755200,"a":0,"d":0,"c":0},{"w":1449360000,"a":0,"d":0,"c":0},{"w":1449964800,"a":0,"d":0,"c":0},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":0,"d":0,"c":0},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":1,"d":1,"c":1},{"w":1463270400,"a":0,"d":0,"c":0},{"w":1463875200,"a":26,"d":12,"c":2},{"w":1464480000,"a":2,"d":5,"c":2},{"w":1465084800,"a":143,"d":10,"c":3},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":4,"d":8,"c":4},{"w":1466899200,"a":7,"d":7,"c":5},{"w":1467504000,"a":11,"d":11,"c":5},{"w":1468108800,"a":8,"d":4,"c":2},{"w":1468713600,"a":5,"d":9,"c":1},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":41,"d":12,"c":6},{"w":1470528000,"a":51,"d":0,"c":2},{"w":1471132800,"a":1,"d":7,"c":2},{"w":1471737600,"a":125,"d":35,"c":5},{"w":1472342400,"a":3,"d":3,"c":1},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":1,"d":1,"c":1},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":19,"d":24,"c":7},{"w":1490486400,"a":5,"d":4,"c":2},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":693,"d":13,"c":2},{"w":1494115200,"a":16,"d":7,"c":3},{"w":1494720000,"a":40,"d":26,"c":8},{"w":1495324800,"a":58,"d":27,"c":6},{"w":1495929600,"a":187,"d":105,"c":15},{"w":1496534400,"a":17101,"d":16543,"c":15},{"w":1497139200,"a":88,"d":27,"c":9},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":555,"d":215,"c":2},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":5,"d":0,"c":1},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":0,"c":0},{"w":1525564800,"a":0,"d":0,"c":0},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"jcbrinfo","id":6044484,"node_id":"MDQ6VXNlcjYwNDQ0ODQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6044484?v=4","gravatar_id":"","url":"https://api.github.com/users/jcbrinfo","html_url":"https://github.com/jcbrinfo","followers_url":"https://api.github.com/users/jcbrinfo/followers","following_url":"https://api.github.com/users/jcbrinfo/following{/other_user}","gists_url":"https://api.github.com/users/jcbrinfo/gists{/gist_id}","starred_url":"https://api.github.com/users/jcbrinfo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcbrinfo/subscriptions","organizations_url":"https://api.github.com/users/jcbrinfo/orgs","repos_url":"https://api.github.com/users/jcbrinfo/repos","events_url":"https://api.github.com/users/jcbrinfo/events{/privacy}","received_events_url":"https://api.github.com/users/jcbrinfo/received_events","type":"User","site_admin":false}},{"total":611,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":0,"d":0,"c":0},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":0,"d":0,"c":0},{"w":1329004800,"a":0,"d":0,"c":0},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":0,"d":0,"c":0},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":0,"d":0,"c":0},{"w":1359244800,"a":0,"d":0,"c":0},{"w":1359849600,"a":0,"d":0,"c":0},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":0,"d":0,"c":0},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":309,"d":3,"c":13},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":184,"d":0,"c":6},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":0,"d":0,"c":0},{"w":1370131200,"a":0,"d":0,"c":0},{"w":1370736000,"a":0,"d":0,"c":0},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":0,"d":0,"c":0},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":0,"d":0,"c":0},{"w":1375574400,"a":0,"d":0,"c":0},{"w":1376179200,"a":0,"d":0,"c":0},{"w":1376784000,"a":0,"d":0,"c":0},{"w":1377388800,"a":87032,"d":62035,"c":7},{"w":1377993600,"a":95,"d":14,"c":3},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":33,"d":21,"c":2},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":68,"d":0,"c":1},{"w":1381622400,"a":0,"d":0,"c":0},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":0,"d":0,"c":0},{"w":1384041600,"a":44,"d":26,"c":2},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":330,"d":85,"c":8},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":168,"d":15,"c":3},{"w":1391299200,"a":0,"d":0,"c":0},{"w":1391904000,"a":242,"d":37,"c":4},{"w":1392508800,"a":169,"d":232,"c":3},{"w":1393113600,"a":175,"d":176,"c":5},{"w":1393718400,"a":311,"d":266,"c":11},{"w":1394323200,"a":0,"d":0,"c":0},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":699,"d":123,"c":15},{"w":1396137600,"a":532,"d":4,"c":4},{"w":1396742400,"a":237,"d":79,"c":10},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":0,"d":0,"c":0},{"w":1398556800,"a":391,"d":875,"c":11},{"w":1399161600,"a":1,"d":0,"c":1},{"w":1399766400,"a":53,"d":18,"c":2},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":0,"d":0,"c":0},{"w":1401580800,"a":1234,"d":1084,"c":30},{"w":1402185600,"a":119,"d":6,"c":4},{"w":1402790400,"a":152,"d":200,"c":3},{"w":1403395200,"a":635,"d":132,"c":10},{"w":1404000000,"a":430,"d":0,"c":1},{"w":1404604800,"a":6,"d":0,"c":1},{"w":1405209600,"a":53,"d":0,"c":1},{"w":1405814400,"a":480,"d":4,"c":16},{"w":1406419200,"a":647,"d":1,"c":6},{"w":1407024000,"a":732,"d":14,"c":8},{"w":1407628800,"a":3,"d":3,"c":1},{"w":1408233600,"a":643,"d":0,"c":4},{"w":1408838400,"a":192,"d":29,"c":9},{"w":1409443200,"a":20,"d":1415,"c":2},{"w":1410048000,"a":208,"d":122,"c":2},{"w":1410652800,"a":394,"d":6,"c":6},{"w":1411257600,"a":612,"d":9,"c":5},{"w":1411862400,"a":1158,"d":0,"c":4},{"w":1412467200,"a":141,"d":85,"c":6},{"w":1413072000,"a":364,"d":115,"c":4},{"w":1413676800,"a":1275,"d":0,"c":3},{"w":1414281600,"a":110,"d":39,"c":8},{"w":1414886400,"a":10093,"d":496,"c":3},{"w":1415491200,"a":287,"d":74,"c":5},{"w":1416096000,"a":113,"d":24,"c":2},{"w":1416700800,"a":0,"d":0,"c":0},{"w":1417305600,"a":96,"d":25,"c":2},{"w":1417910400,"a":183,"d":190,"c":5},{"w":1418515200,"a":0,"d":0,"c":0},{"w":1419120000,"a":7,"d":5,"c":1},{"w":1419724800,"a":0,"d":0,"c":0},{"w":1420329600,"a":0,"d":0,"c":0},{"w":1420934400,"a":98,"d":60,"c":4},{"w":1421539200,"a":0,"d":0,"c":0},{"w":1422144000,"a":8,"d":12,"c":2},{"w":1422748800,"a":31,"d":29,"c":4},{"w":1423353600,"a":442,"d":442,"c":2},{"w":1423958400,"a":0,"d":0,"c":0},{"w":1424563200,"a":0,"d":0,"c":0},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":752,"d":644,"c":4},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":613,"d":13,"c":5},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":112,"d":8,"c":3},{"w":1431216000,"a":423,"d":359,"c":7},{"w":1431820800,"a":216,"d":147,"c":3},{"w":1432425600,"a":30638,"d":27245,"c":16},{"w":1433030400,"a":5153,"d":6309,"c":8},{"w":1433635200,"a":857,"d":0,"c":3},{"w":1434240000,"a":25249,"d":18,"c":5},{"w":1434844800,"a":0,"d":0,"c":0},{"w":1435449600,"a":235,"d":0,"c":1},{"w":1436054400,"a":1193,"d":453,"c":15},{"w":1436659200,"a":12,"d":2,"c":2},{"w":1437264000,"a":1135,"d":319,"c":6},{"w":1437868800,"a":1159,"d":1207,"c":13},{"w":1438473600,"a":14776,"d":16925,"c":19},{"w":1439078400,"a":1734,"d":358,"c":16},{"w":1439683200,"a":47210,"d":536,"c":6},{"w":1440288000,"a":103,"d":15,"c":6},{"w":1440892800,"a":97688,"d":46046,"c":6},{"w":1441497600,"a":321,"d":166,"c":12},{"w":1442102400,"a":256,"d":139,"c":5},{"w":1442707200,"a":344,"d":254,"c":7},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":0,"d":0,"c":0},{"w":1445126400,"a":112,"d":0,"c":2},{"w":1445731200,"a":143,"d":60,"c":6},{"w":1446336000,"a":4015,"d":3915,"c":4},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":21,"d":18,"c":3},{"w":1448150400,"a":1930,"d":1045,"c":10},{"w":1448755200,"a":73,"d":7,"c":1},{"w":1449360000,"a":1167,"d":599,"c":22},{"w":1449964800,"a":555,"d":446,"c":12},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":15,"d":1,"c":1},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":509,"d":26,"c":5},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":161,"d":33,"c":1},{"w":1460246400,"a":679,"d":0,"c":2},{"w":1460851200,"a":5551,"d":24,"c":6},{"w":1461456000,"a":321,"d":597,"c":8},{"w":1462060800,"a":378,"d":125,"c":13},{"w":1462665600,"a":280,"d":1,"c":5},{"w":1463270400,"a":216,"d":103,"c":8},{"w":1463875200,"a":81,"d":0,"c":5},{"w":1464480000,"a":0,"d":0,"c":0},{"w":1465084800,"a":235,"d":199,"c":4},{"w":1465689600,"a":37,"d":60,"c":4},{"w":1466294400,"a":0,"d":0,"c":0},{"w":1466899200,"a":34,"d":1,"c":2},{"w":1467504000,"a":43,"d":1094,"c":5},{"w":1468108800,"a":307,"d":146,"c":1},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":0,"d":0,"c":0},{"w":1471132800,"a":0,"d":0,"c":0},{"w":1471737600,"a":10,"d":4,"c":2},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":36,"d":0,"c":2},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":34,"d":3,"c":2},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":6,"d":4,"c":1},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":0,"d":0,"c":0},{"w":1486252800,"a":0,"d":0,"c":0},{"w":1486857600,"a":0,"d":0,"c":0},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":0,"d":0,"c":0},{"w":1488672000,"a":0,"d":0,"c":0},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":11,"d":1,"c":2},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":0,"d":0,"c":0},{"w":1497139200,"a":0,"d":0,"c":0},{"w":1497744000,"a":0,"d":0,"c":0},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":0,"d":0,"c":0},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":0,"d":0,"c":0},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":0,"d":0,"c":0},{"w":1511654400,"a":0,"d":0,"c":0},{"w":1512259200,"a":0,"d":0,"c":0},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":0,"d":0,"c":0},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":131,"d":99,"c":3},{"w":1522540800,"a":92,"d":60,"c":4},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":82,"d":34,"c":1},{"w":1524960000,"a":156,"d":105,"c":3},{"w":1525564800,"a":512,"d":7957,"c":15},{"w":1526169600,"a":564,"d":749,"c":2},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":18,"d":53,"c":1},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"R4PaSs","id":1444825,"node_id":"MDQ6VXNlcjE0NDQ4MjU=","avatar_url":"https://avatars3.githubusercontent.com/u/1444825?v=4","gravatar_id":"","url":"https://api.github.com/users/R4PaSs","html_url":"https://github.com/R4PaSs","followers_url":"https://api.github.com/users/R4PaSs/followers","following_url":"https://api.github.com/users/R4PaSs/following{/other_user}","gists_url":"https://api.github.com/users/R4PaSs/gists{/gist_id}","starred_url":"https://api.github.com/users/R4PaSs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/R4PaSs/subscriptions","organizations_url":"https://api.github.com/users/R4PaSs/orgs","repos_url":"https://api.github.com/users/R4PaSs/repos","events_url":"https://api.github.com/users/R4PaSs/events{/privacy}","received_events_url":"https://api.github.com/users/R4PaSs/received_events","type":"User","site_admin":false}},{"total":2033,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":0,"d":0,"c":0},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":0,"d":0,"c":0},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":0,"d":0,"c":0},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":2380,"d":0,"c":1},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":0,"d":0,"c":0},{"w":1301184000,"a":94,"d":85,"c":1},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":26,"d":23,"c":5},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":119,"d":7,"c":1},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":0,"c":0},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":636,"d":17,"c":2},{"w":1329004800,"a":101,"d":3,"c":3},{"w":1329609600,"a":0,"d":0,"c":0},{"w":1330214400,"a":0,"d":0,"c":0},{"w":1330819200,"a":0,"d":0,"c":0},{"w":1331424000,"a":0,"d":0,"c":0},{"w":1332028800,"a":0,"d":0,"c":0},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":1734,"d":1462,"c":3},{"w":1335052800,"a":71,"d":37,"c":4},{"w":1335657600,"a":248,"d":65,"c":4},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":0,"d":0,"c":0},{"w":1338681600,"a":0,"d":0,"c":0},{"w":1339286400,"a":1,"d":1,"c":1},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":0,"d":0,"c":0},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":0,"d":0,"c":0},{"w":1348963200,"a":1163,"d":3,"c":4},{"w":1349568000,"a":450,"d":1,"c":1},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":752,"d":32,"c":4},{"w":1354406400,"a":3160,"d":635,"c":32},{"w":1355011200,"a":1374,"d":255,"c":12},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":137,"d":487,"c":4},{"w":1359244800,"a":3011,"d":2975,"c":1},{"w":1359849600,"a":1657,"d":2297,"c":37},{"w":1360454400,"a":91,"d":0,"c":1},{"w":1361059200,"a":110,"d":0,"c":1},{"w":1361664000,"a":1244,"d":1235,"c":10},{"w":1362268800,"a":580,"d":618,"c":26},{"w":1362873600,"a":49,"d":22,"c":3},{"w":1363478400,"a":0,"d":0,"c":0},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":0,"d":0,"c":0},{"w":1368921600,"a":0,"d":0,"c":0},{"w":1369526400,"a":89,"d":16,"c":2},{"w":1370131200,"a":104,"d":0,"c":1},{"w":1370736000,"a":219,"d":0,"c":2},{"w":1371340800,"a":1492,"d":664,"c":23},{"w":1371945600,"a":16,"d":16,"c":2},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":224,"d":153,"c":6},{"w":1373760000,"a":3264,"d":2771,"c":26},{"w":1374364800,"a":769,"d":814,"c":20},{"w":1374969600,"a":2488,"d":2365,"c":25},{"w":1375574400,"a":252,"d":375,"c":6},{"w":1376179200,"a":495,"d":285,"c":2},{"w":1376784000,"a":3557,"d":1319,"c":1},{"w":1377388800,"a":3320,"d":1807,"c":15},{"w":1377993600,"a":57,"d":133,"c":2},{"w":1378598400,"a":548,"d":294,"c":7},{"w":1379203200,"a":621,"d":549,"c":2},{"w":1379808000,"a":7,"d":7,"c":1},{"w":1380412800,"a":343,"d":0,"c":1},{"w":1381017600,"a":1682,"d":1264,"c":3},{"w":1381622400,"a":862,"d":54,"c":2},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":0,"d":0,"c":0},{"w":1383436800,"a":5668,"d":9764,"c":5},{"w":1384041600,"a":0,"d":0,"c":0},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":0,"d":0,"c":0},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":272,"d":116,"c":4},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":102,"d":83,"c":13},{"w":1391299200,"a":2371,"d":2319,"c":6},{"w":1391904000,"a":3363,"d":3117,"c":16},{"w":1392508800,"a":3688,"d":2787,"c":10},{"w":1393113600,"a":1734,"d":1361,"c":14},{"w":1393718400,"a":1888,"d":930,"c":19},{"w":1394323200,"a":1,"d":1,"c":1},{"w":1394928000,"a":0,"d":0,"c":0},{"w":1395532800,"a":229,"d":13,"c":10},{"w":1396137600,"a":0,"d":0,"c":0},{"w":1396742400,"a":0,"d":1,"c":1},{"w":1397347200,"a":0,"d":0,"c":0},{"w":1397952000,"a":272,"d":89,"c":1},{"w":1398556800,"a":159,"d":987,"c":14},{"w":1399161600,"a":2902,"d":1343,"c":14},{"w":1399766400,"a":0,"d":0,"c":0},{"w":1400371200,"a":0,"d":0,"c":0},{"w":1400976000,"a":1,"d":1,"c":1},{"w":1401580800,"a":9841,"d":3034,"c":10},{"w":1402185600,"a":97,"d":78,"c":1},{"w":1402790400,"a":258,"d":148,"c":12},{"w":1403395200,"a":527,"d":10,"c":8},{"w":1404000000,"a":749,"d":369,"c":9},{"w":1404604800,"a":759,"d":365,"c":6},{"w":1405209600,"a":2442,"d":89,"c":8},{"w":1405814400,"a":1611,"d":32,"c":15},{"w":1406419200,"a":164,"d":1,"c":1},{"w":1407024000,"a":4786,"d":0,"c":2},{"w":1407628800,"a":0,"d":0,"c":0},{"w":1408233600,"a":0,"d":0,"c":0},{"w":1408838400,"a":1119,"d":369,"c":11},{"w":1409443200,"a":5682,"d":265,"c":16},{"w":1410048000,"a":396,"d":227,"c":2},{"w":1410652800,"a":0,"d":0,"c":0},{"w":1411257600,"a":3071,"d":167,"c":21},{"w":1411862400,"a":0,"d":0,"c":0},{"w":1412467200,"a":0,"d":0,"c":0},{"w":1413072000,"a":0,"d":0,"c":0},{"w":1413676800,"a":0,"d":0,"c":0},{"w":1414281600,"a":0,"d":0,"c":0},{"w":1414886400,"a":0,"d":0,"c":0},{"w":1415491200,"a":0,"d":0,"c":0},{"w":1416096000,"a":554,"d":195,"c":36},{"w":1416700800,"a":337,"d":310,"c":10},{"w":1417305600,"a":478,"d":207,"c":12},{"w":1417910400,"a":3429,"d":2789,"c":97},{"w":1418515200,"a":969,"d":32,"c":12},{"w":1419120000,"a":227,"d":46,"c":5},{"w":1419724800,"a":13,"d":6,"c":1},{"w":1420329600,"a":78,"d":111,"c":6},{"w":1420934400,"a":2833,"d":144,"c":15},{"w":1421539200,"a":825,"d":2,"c":7},{"w":1422144000,"a":196,"d":2,"c":3},{"w":1422748800,"a":4244,"d":1754,"c":46},{"w":1423353600,"a":16,"d":16,"c":3},{"w":1423958400,"a":1127,"d":1081,"c":12},{"w":1424563200,"a":4023,"d":2835,"c":37},{"w":1425168000,"a":0,"d":0,"c":0},{"w":1425772800,"a":0,"d":0,"c":0},{"w":1426377600,"a":0,"d":0,"c":0},{"w":1426982400,"a":0,"d":0,"c":0},{"w":1427587200,"a":105,"d":1,"c":1},{"w":1428192000,"a":0,"d":0,"c":0},{"w":1428796800,"a":0,"d":0,"c":0},{"w":1429401600,"a":973,"d":585,"c":28},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":5788,"d":954,"c":27},{"w":1431216000,"a":823,"d":900,"c":18},{"w":1431820800,"a":551,"d":660,"c":33},{"w":1432425600,"a":1856,"d":1294,"c":59},{"w":1433030400,"a":2232,"d":2827,"c":20},{"w":1433635200,"a":2294,"d":239,"c":22},{"w":1434240000,"a":0,"d":0,"c":0},{"w":1434844800,"a":1913,"d":320,"c":13},{"w":1435449600,"a":286,"d":7,"c":6},{"w":1436054400,"a":1184,"d":83,"c":21},{"w":1436659200,"a":1105,"d":23,"c":17},{"w":1437264000,"a":934,"d":0,"c":1},{"w":1437868800,"a":8,"d":4,"c":1},{"w":1438473600,"a":14,"d":4,"c":3},{"w":1439078400,"a":19,"d":16,"c":4},{"w":1439683200,"a":0,"d":0,"c":0},{"w":1440288000,"a":0,"d":0,"c":0},{"w":1440892800,"a":0,"d":2,"c":1},{"w":1441497600,"a":27,"d":10,"c":3},{"w":1442102400,"a":0,"d":0,"c":0},{"w":1442707200,"a":0,"d":0,"c":0},{"w":1443312000,"a":0,"d":0,"c":0},{"w":1443916800,"a":0,"d":0,"c":0},{"w":1444521600,"a":1795,"d":20,"c":21},{"w":1445126400,"a":104,"d":38,"c":4},{"w":1445731200,"a":1,"d":1,"c":1},{"w":1446336000,"a":0,"d":0,"c":0},{"w":1446940800,"a":0,"d":0,"c":0},{"w":1447545600,"a":0,"d":0,"c":0},{"w":1448150400,"a":118,"d":130,"c":4},{"w":1448755200,"a":54,"d":21,"c":5},{"w":1449360000,"a":1338,"d":514,"c":9},{"w":1449964800,"a":1284,"d":839,"c":31},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":0,"d":0,"c":0},{"w":1453593600,"a":0,"d":0,"c":0},{"w":1454198400,"a":0,"d":0,"c":0},{"w":1454803200,"a":0,"d":0,"c":0},{"w":1455408000,"a":0,"d":0,"c":0},{"w":1456012800,"a":0,"d":0,"c":0},{"w":1456617600,"a":0,"d":0,"c":0},{"w":1457222400,"a":0,"d":0,"c":0},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":0,"d":0,"c":0},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":0,"d":0,"c":0},{"w":1460246400,"a":0,"d":0,"c":0},{"w":1460851200,"a":483,"d":102,"c":29},{"w":1461456000,"a":0,"d":0,"c":0},{"w":1462060800,"a":0,"d":0,"c":0},{"w":1462665600,"a":0,"d":0,"c":0},{"w":1463270400,"a":4957,"d":379,"c":39},{"w":1463875200,"a":1621,"d":1054,"c":34},{"w":1464480000,"a":8333,"d":1695,"c":49},{"w":1465084800,"a":1172,"d":380,"c":22},{"w":1465689600,"a":0,"d":0,"c":0},{"w":1466294400,"a":1121,"d":340,"c":14},{"w":1466899200,"a":491,"d":254,"c":4},{"w":1467504000,"a":1244,"d":227,"c":11},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":233,"d":157,"c":3},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":1444,"d":126,"c":17},{"w":1470528000,"a":844,"d":89,"c":7},{"w":1471132800,"a":2977,"d":1625,"c":34},{"w":1471737600,"a":1251,"d":588,"c":32},{"w":1472342400,"a":88,"d":41,"c":5},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":251,"d":315,"c":2},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":72,"d":21,"c":5},{"w":1479600000,"a":10819,"d":0,"c":1},{"w":1480204800,"a":828,"d":179,"c":18},{"w":1480809600,"a":545,"d":468,"c":14},{"w":1481414400,"a":102,"d":59,"c":2},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":38,"d":15,"c":1},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":174,"d":20,"c":5},{"w":1486252800,"a":28,"d":1,"c":4},{"w":1486857600,"a":1072,"d":84,"c":12},{"w":1487462400,"a":133,"d":10,"c":3},{"w":1488067200,"a":7,"d":0,"c":2},{"w":1488672000,"a":3,"d":3,"c":1},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":0,"d":0,"c":0},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":0,"d":0,"c":0},{"w":1492905600,"a":0,"d":0,"c":0},{"w":1493510400,"a":0,"d":0,"c":0},{"w":1494115200,"a":1544,"d":1445,"c":10},{"w":1494720000,"a":690,"d":285,"c":10},{"w":1495324800,"a":209,"d":23,"c":3},{"w":1495929600,"a":9,"d":0,"c":1},{"w":1496534400,"a":2073,"d":1891,"c":41},{"w":1497139200,"a":243,"d":113,"c":12},{"w":1497744000,"a":126,"d":2,"c":3},{"w":1498348800,"a":0,"d":0,"c":0},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":0,"d":0,"c":0},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":1525,"d":735,"c":30},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":462,"d":262,"c":8},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":636,"d":122,"c":10},{"w":1506211200,"a":1669,"d":281,"c":19},{"w":1506816000,"a":2,"d":2,"c":1},{"w":1507420800,"a":209,"d":205,"c":9},{"w":1508025600,"a":324,"d":300,"c":13},{"w":1508630400,"a":12377,"d":11966,"c":35},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":6219,"d":6557,"c":5},{"w":1510444800,"a":40,"d":18,"c":1},{"w":1511049600,"a":1678,"d":758,"c":13},{"w":1511654400,"a":2585,"d":3669,"c":5},{"w":1512259200,"a":26,"d":4,"c":2},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":3,"d":8602,"c":2},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":0,"c":0},{"w":1515888000,"a":1,"d":1,"c":1},{"w":1516492800,"a":58,"d":43,"c":3},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":0,"d":0,"c":0},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":0,"d":0,"c":0},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":18748,"d":14905,"c":40},{"w":1525564800,"a":2002,"d":483,"c":33},{"w":1526169600,"a":3526,"d":1969,"c":48},{"w":1526774400,"a":0,"d":0,"c":0},{"w":1527379200,"a":19054,"d":2465,"c":37},{"w":1527984000,"a":0,"d":0,"c":0},{"w":1528588800,"a":915,"d":995,"c":23},{"w":1529193600,"a":11045,"d":10671,"c":11},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":0,"d":0,"c":0},{"w":1550966400,"a":0,"d":0,"c":0},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":843,"d":95,"c":13},{"w":1560643200,"a":960,"d":4297,"c":5},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false}},{"total":3265,"weeks":[{"w":1215302400,"a":0,"d":0,"c":0},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":0,"d":0,"c":0},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":0,"d":0,"c":0},{"w":1226793600,"a":0,"d":0,"c":0},{"w":1227398400,"a":0,"d":0,"c":0},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":0,"d":0,"c":0},{"w":1230422400,"a":0,"d":0,"c":0},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":0,"d":0,"c":0},{"w":1232841600,"a":0,"d":0,"c":0},{"w":1233446400,"a":0,"d":0,"c":0},{"w":1234051200,"a":0,"d":0,"c":0},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":0,"d":0,"c":0},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":0,"d":0,"c":0},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":0,"d":0,"c":0},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":0,"d":0,"c":0},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":0,"d":0,"c":0},{"w":1244332800,"a":0,"d":0,"c":0},{"w":1244937600,"a":0,"d":0,"c":0},{"w":1245542400,"a":0,"d":0,"c":0},{"w":1246147200,"a":0,"d":0,"c":0},{"w":1246752000,"a":0,"d":0,"c":0},{"w":1247356800,"a":559,"d":0,"c":1},{"w":1247961600,"a":0,"d":0,"c":0},{"w":1248566400,"a":0,"d":0,"c":0},{"w":1249171200,"a":0,"d":0,"c":0},{"w":1249776000,"a":0,"d":0,"c":0},{"w":1250380800,"a":0,"d":0,"c":0},{"w":1250985600,"a":0,"d":0,"c":0},{"w":1251590400,"a":0,"d":0,"c":0},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":0,"d":0,"c":0},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":18,"d":2,"c":2},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":0,"d":0,"c":0},{"w":1263081600,"a":0,"d":0,"c":0},{"w":1263686400,"a":0,"d":0,"c":0},{"w":1264291200,"a":0,"d":0,"c":0},{"w":1264896000,"a":0,"d":0,"c":0},{"w":1265500800,"a":0,"d":0,"c":0},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":0,"d":0,"c":0},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":0,"d":0,"c":0},{"w":1276992000,"a":0,"d":0,"c":0},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":0,"d":0,"c":0},{"w":1279411200,"a":0,"d":0,"c":0},{"w":1280016000,"a":0,"d":0,"c":0},{"w":1280620800,"a":0,"d":0,"c":0},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":12,"d":2,"c":3},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":0,"d":0,"c":0},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":0,"d":0,"c":0},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":0,"d":0,"c":0},{"w":1295740800,"a":44,"d":3,"c":1},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":0,"d":0,"c":0},{"w":1297555200,"a":0,"d":0,"c":0},{"w":1298160000,"a":0,"d":0,"c":0},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":6,"d":2,"c":1},{"w":1300579200,"a":0,"d":1,"c":1},{"w":1301184000,"a":10,"d":0,"c":1},{"w":1301788800,"a":7,"d":0,"c":1},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":0,"d":0,"c":0},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":23,"d":0,"c":1},{"w":1307836800,"a":593,"d":0,"c":1},{"w":1308441600,"a":0,"d":0,"c":0},{"w":1309046400,"a":0,"d":0,"c":0},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":536,"d":21,"c":3},{"w":1312675200,"a":893,"d":569,"c":6},{"w":1313280000,"a":107301,"d":90129,"c":11},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":9,"d":6,"c":2},{"w":1318723200,"a":0,"d":0,"c":0},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":1,"d":1,"c":1},{"w":1320537600,"a":1,"d":0,"c":1},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":0,"d":0,"c":0},{"w":1322352000,"a":63881,"d":44609,"c":1},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":0,"d":0,"c":0},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":0,"d":0,"c":0},{"w":1327190400,"a":0,"d":0,"c":0},{"w":1327795200,"a":0,"d":0,"c":0},{"w":1328400000,"a":323111,"d":325970,"c":4},{"w":1329004800,"a":225,"d":248,"c":13},{"w":1329609600,"a":248,"d":25,"c":7},{"w":1330214400,"a":12828,"d":3769,"c":10},{"w":1330819200,"a":102,"d":4,"c":2},{"w":1331424000,"a":49,"d":0,"c":1},{"w":1332028800,"a":9,"d":9,"c":1},{"w":1332633600,"a":410,"d":29,"c":2},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":0,"d":0,"c":0},{"w":1334448000,"a":0,"d":0,"c":0},{"w":1335052800,"a":196,"d":104,"c":2},{"w":1335657600,"a":0,"d":0,"c":0},{"w":1336262400,"a":0,"d":0,"c":0},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":0,"d":0,"c":0},{"w":1338076800,"a":233,"d":13,"c":7},{"w":1338681600,"a":65,"d":4,"c":3},{"w":1339286400,"a":0,"d":0,"c":0},{"w":1339891200,"a":0,"d":0,"c":0},{"w":1340496000,"a":45,"d":4,"c":1},{"w":1341100800,"a":0,"d":0,"c":0},{"w":1341705600,"a":14,"d":4,"c":1},{"w":1342310400,"a":0,"d":0,"c":0},{"w":1342915200,"a":0,"d":0,"c":0},{"w":1343520000,"a":0,"d":0,"c":0},{"w":1344124800,"a":0,"d":0,"c":0},{"w":1344729600,"a":0,"d":0,"c":0},{"w":1345334400,"a":0,"d":0,"c":0},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":3,"d":0,"c":1},{"w":1347148800,"a":152,"d":152,"c":1},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":703,"d":1,"c":3},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":0,"d":0,"c":0},{"w":1350172800,"a":0,"d":0,"c":0},{"w":1350777600,"a":0,"d":0,"c":0},{"w":1351382400,"a":0,"d":0,"c":0},{"w":1351987200,"a":0,"d":0,"c":0},{"w":1352592000,"a":0,"d":0,"c":0},{"w":1353196800,"a":0,"d":0,"c":0},{"w":1353801600,"a":0,"d":0,"c":0},{"w":1354406400,"a":0,"d":0,"c":0},{"w":1355011200,"a":0,"d":0,"c":0},{"w":1355616000,"a":0,"d":0,"c":0},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":0,"d":0,"c":0},{"w":1358640000,"a":4043,"d":1,"c":1},{"w":1359244800,"a":21292,"d":15327,"c":6},{"w":1359849600,"a":904,"d":22,"c":7},{"w":1360454400,"a":0,"d":0,"c":0},{"w":1361059200,"a":579,"d":168,"c":5},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":76,"d":68,"c":1},{"w":1362873600,"a":0,"d":0,"c":0},{"w":1363478400,"a":2,"d":1,"c":2},{"w":1364083200,"a":0,"d":0,"c":0},{"w":1364688000,"a":0,"d":0,"c":0},{"w":1365292800,"a":0,"d":0,"c":0},{"w":1365897600,"a":0,"d":0,"c":0},{"w":1366502400,"a":0,"d":0,"c":0},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":0,"d":0,"c":0},{"w":1368316800,"a":2510,"d":2451,"c":7},{"w":1368921600,"a":808,"d":0,"c":4},{"w":1369526400,"a":310,"d":14,"c":6},{"w":1370131200,"a":9,"d":36,"c":2},{"w":1370736000,"a":61,"d":4,"c":3},{"w":1371340800,"a":0,"d":0,"c":0},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":0,"d":0,"c":0},{"w":1373155200,"a":0,"d":0,"c":0},{"w":1373760000,"a":544,"d":1,"c":4},{"w":1374364800,"a":0,"d":0,"c":0},{"w":1374969600,"a":2076,"d":305,"c":14},{"w":1375574400,"a":312,"d":9,"c":7},{"w":1376179200,"a":182,"d":0,"c":1},{"w":1376784000,"a":7853,"d":1097,"c":40},{"w":1377388800,"a":162,"d":147,"c":5},{"w":1377993600,"a":0,"d":0,"c":0},{"w":1378598400,"a":0,"d":0,"c":0},{"w":1379203200,"a":116,"d":9,"c":2},{"w":1379808000,"a":0,"d":0,"c":0},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":1,"d":1,"c":1},{"w":1381622400,"a":542,"d":1031,"c":7},{"w":1382227200,"a":0,"d":0,"c":0},{"w":1382832000,"a":814,"d":84,"c":8},{"w":1383436800,"a":820,"d":815,"c":8},{"w":1384041600,"a":809,"d":23,"c":10},{"w":1384646400,"a":0,"d":0,"c":0},{"w":1385251200,"a":1692,"d":107,"c":18},{"w":1385856000,"a":26,"d":8,"c":2},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":0,"d":0,"c":0},{"w":1389484800,"a":43,"d":6,"c":4},{"w":1390089600,"a":197,"d":104,"c":9},{"w":1390694400,"a":1296,"d":1438,"c":16},{"w":1391299200,"a":19406,"d":384,"c":22},{"w":1391904000,"a":469,"d":47,"c":22},{"w":1392508800,"a":154352,"d":94,"c":17},{"w":1393113600,"a":783,"d":51,"c":18},{"w":1393718400,"a":461,"d":415,"c":39},{"w":1394323200,"a":1322,"d":200,"c":40},{"w":1394928000,"a":136,"d":12,"c":6},{"w":1395532800,"a":0,"d":0,"c":0},{"w":1396137600,"a":208516,"d":168984,"c":49},{"w":1396742400,"a":289,"d":91,"c":12},{"w":1397347200,"a":909,"d":156,"c":13},{"w":1397952000,"a":43082,"d":1872,"c":12},{"w":1398556800,"a":2887,"d":2555,"c":35},{"w":1399161600,"a":267,"d":187,"c":22},{"w":1399766400,"a":252,"d":110,"c":16},{"w":1400371200,"a":7,"d":2,"c":2},{"w":1400976000,"a":428,"d":266,"c":11},{"w":1401580800,"a":603,"d":599,"c":11},{"w":1402185600,"a":4475,"d":4013,"c":20},{"w":1402790400,"a":2124,"d":176,"c":19},{"w":1403395200,"a":263,"d":114,"c":23},{"w":1404000000,"a":1305,"d":6,"c":7},{"w":1404604800,"a":780,"d":276,"c":19},{"w":1405209600,"a":1846,"d":293,"c":25},{"w":1405814400,"a":2986,"d":138,"c":27},{"w":1406419200,"a":1460,"d":42,"c":23},{"w":1407024000,"a":1259,"d":364,"c":21},{"w":1407628800,"a":64,"d":40,"c":5},{"w":1408233600,"a":128,"d":0,"c":1},{"w":1408838400,"a":261,"d":3,"c":4},{"w":1409443200,"a":657,"d":648,"c":9},{"w":1410048000,"a":2679,"d":2037,"c":13},{"w":1410652800,"a":44,"d":18,"c":8},{"w":1411257600,"a":351,"d":23,"c":6},{"w":1411862400,"a":144,"d":82,"c":9},{"w":1412467200,"a":111,"d":4,"c":5},{"w":1413072000,"a":59,"d":49,"c":4},{"w":1413676800,"a":364,"d":343,"c":3},{"w":1414281600,"a":1335,"d":89,"c":19},{"w":1414886400,"a":281,"d":76,"c":17},{"w":1415491200,"a":300,"d":98,"c":16},{"w":1416096000,"a":322,"d":62,"c":16},{"w":1416700800,"a":1589,"d":81,"c":32},{"w":1417305600,"a":655,"d":121,"c":31},{"w":1417910400,"a":689,"d":93,"c":32},{"w":1418515200,"a":338,"d":249,"c":11},{"w":1419120000,"a":707,"d":344,"c":25},{"w":1419724800,"a":888,"d":130,"c":21},{"w":1420329600,"a":936,"d":701,"c":27},{"w":1420934400,"a":1230,"d":982,"c":7},{"w":1421539200,"a":175,"d":68,"c":8},{"w":1422144000,"a":454,"d":383,"c":21},{"w":1422748800,"a":605,"d":111,"c":14},{"w":1423353600,"a":126,"d":5,"c":6},{"w":1423958400,"a":85,"d":69,"c":6},{"w":1424563200,"a":68,"d":47,"c":3},{"w":1425168000,"a":570,"d":21,"c":9},{"w":1425772800,"a":615,"d":206,"c":17},{"w":1426377600,"a":191,"d":65,"c":11},{"w":1426982400,"a":929,"d":35,"c":8},{"w":1427587200,"a":308,"d":187,"c":11},{"w":1428192000,"a":70,"d":155,"c":9},{"w":1428796800,"a":214,"d":17,"c":9},{"w":1429401600,"a":682,"d":58,"c":8},{"w":1430006400,"a":11,"d":14,"c":3},{"w":1430611200,"a":3537,"d":3013,"c":49},{"w":1431216000,"a":497,"d":260,"c":20},{"w":1431820800,"a":2823,"d":888,"c":36},{"w":1432425600,"a":2419,"d":2064,"c":58},{"w":1433030400,"a":1415,"d":1226,"c":38},{"w":1433635200,"a":213,"d":390,"c":28},{"w":1434240000,"a":771,"d":714,"c":35},{"w":1434844800,"a":194,"d":196,"c":19},{"w":1435449600,"a":3535,"d":217,"c":45},{"w":1436054400,"a":306,"d":134,"c":16},{"w":1436659200,"a":288,"d":97,"c":12},{"w":1437264000,"a":1292,"d":932,"c":72},{"w":1437868800,"a":3147,"d":448,"c":59},{"w":1438473600,"a":501,"d":143,"c":23},{"w":1439078400,"a":7095,"d":4964,"c":24},{"w":1439683200,"a":612,"d":668,"c":24},{"w":1440288000,"a":2282,"d":1995,"c":51},{"w":1440892800,"a":399,"d":128,"c":32},{"w":1441497600,"a":412,"d":118,"c":24},{"w":1442102400,"a":1516,"d":154509,"c":34},{"w":1442707200,"a":366,"d":18,"c":4},{"w":1443312000,"a":906,"d":184,"c":13},{"w":1443916800,"a":88,"d":58,"c":4},{"w":1444521600,"a":30,"d":26,"c":6},{"w":1445126400,"a":151,"d":15,"c":7},{"w":1445731200,"a":686,"d":70,"c":17},{"w":1446336000,"a":190,"d":29,"c":18},{"w":1446940800,"a":2767,"d":141,"c":28},{"w":1447545600,"a":555,"d":373,"c":27},{"w":1448150400,"a":585,"d":72,"c":18},{"w":1448755200,"a":916,"d":79,"c":14},{"w":1449360000,"a":5647,"d":170,"c":24},{"w":1449964800,"a":18630,"d":5195,"c":20},{"w":1450569600,"a":5,"d":0,"c":1},{"w":1451174400,"a":14491,"d":37,"c":6},{"w":1451779200,"a":196,"d":11,"c":3},{"w":1452384000,"a":2362,"d":926,"c":14},{"w":1452988800,"a":1087,"d":72,"c":29},{"w":1453593600,"a":162,"d":84,"c":8},{"w":1454198400,"a":13806,"d":145,"c":12},{"w":1454803200,"a":1441,"d":145,"c":29},{"w":1455408000,"a":559,"d":146,"c":20},{"w":1456012800,"a":69,"d":31,"c":7},{"w":1456617600,"a":58,"d":3,"c":4},{"w":1457222400,"a":1834,"d":61,"c":14},{"w":1457827200,"a":658,"d":74,"c":23},{"w":1458432000,"a":226,"d":37,"c":10},{"w":1459036800,"a":1051,"d":97,"c":14},{"w":1459641600,"a":284,"d":159,"c":25},{"w":1460246400,"a":128,"d":34,"c":11},{"w":1460851200,"a":1150,"d":196,"c":21},{"w":1461456000,"a":44,"d":20,"c":3},{"w":1462060800,"a":264,"d":157,"c":10},{"w":1462665600,"a":182,"d":33,"c":16},{"w":1463270400,"a":2661,"d":1745,"c":22},{"w":1463875200,"a":368,"d":379,"c":11},{"w":1464480000,"a":47,"d":28,"c":3},{"w":1465084800,"a":0,"d":0,"c":0},{"w":1465689600,"a":126,"d":108,"c":14},{"w":1466294400,"a":835,"d":501,"c":33},{"w":1466899200,"a":37,"d":24,"c":5},{"w":1467504000,"a":0,"d":0,"c":0},{"w":1468108800,"a":0,"d":0,"c":0},{"w":1468713600,"a":560,"d":153,"c":15},{"w":1469318400,"a":90,"d":43,"c":8},{"w":1469923200,"a":131,"d":41,"c":13},{"w":1470528000,"a":674,"d":532,"c":24},{"w":1471132800,"a":166,"d":40,"c":11},{"w":1471737600,"a":13,"d":6,"c":5},{"w":1472342400,"a":170,"d":116,"c":15},{"w":1472947200,"a":462,"d":102,"c":26},{"w":1473552000,"a":1385,"d":1485,"c":17},{"w":1474156800,"a":137,"d":75,"c":13},{"w":1474761600,"a":260,"d":71,"c":15},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":588,"d":96,"c":27},{"w":1476576000,"a":57,"d":2,"c":4},{"w":1477180800,"a":17,"d":8,"c":3},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":4,"d":1747,"c":1},{"w":1478995200,"a":64,"d":58,"c":6},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":474,"d":472,"c":3},{"w":1481414400,"a":82,"d":82,"c":2},{"w":1482019200,"a":147,"d":154,"c":2},{"w":1482624000,"a":10,"d":5,"c":2},{"w":1483228800,"a":75,"d":42,"c":1},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":235,"d":25,"c":6},{"w":1486252800,"a":550,"d":377,"c":10},{"w":1486857600,"a":30,"d":7,"c":1},{"w":1487462400,"a":474,"d":223,"c":16},{"w":1488067200,"a":518587,"d":350506,"c":5},{"w":1488672000,"a":33,"d":10,"c":3},{"w":1489276800,"a":225,"d":16,"c":9},{"w":1489881600,"a":1061,"d":166,"c":7},{"w":1490486400,"a":358,"d":9,"c":6},{"w":1491091200,"a":3958,"d":2635,"c":16},{"w":1491696000,"a":86,"d":31,"c":5},{"w":1492300800,"a":200,"d":14,"c":2},{"w":1492905600,"a":2,"d":3,"c":2},{"w":1493510400,"a":308,"d":128,"c":11},{"w":1494115200,"a":219,"d":190,"c":7},{"w":1494720000,"a":239,"d":125,"c":9},{"w":1495324800,"a":1097,"d":191,"c":10},{"w":1495929600,"a":154,"d":44,"c":7},{"w":1496534400,"a":248,"d":66,"c":11},{"w":1497139200,"a":1647,"d":70,"c":9},{"w":1497744000,"a":874,"d":110,"c":7},{"w":1498348800,"a":2536,"d":2355,"c":15},{"w":1498953600,"a":158,"d":5,"c":4},{"w":1499558400,"a":260,"d":86,"c":11},{"w":1500163200,"a":319,"d":98,"c":15},{"w":1500768000,"a":4165,"d":208,"c":20},{"w":1501372800,"a":1147,"d":1941,"c":8},{"w":1501977600,"a":63,"d":15,"c":3},{"w":1502582400,"a":800,"d":59,"c":6},{"w":1503187200,"a":100,"d":37,"c":8},{"w":1503792000,"a":279,"d":18,"c":7},{"w":1504396800,"a":883,"d":620,"c":21},{"w":1505001600,"a":198,"d":2,"c":5},{"w":1505606400,"a":100,"d":96,"c":5},{"w":1506211200,"a":127,"d":38,"c":10},{"w":1506816000,"a":516,"d":121,"c":12},{"w":1507420800,"a":68,"d":16,"c":4},{"w":1508025600,"a":79,"d":36,"c":7},{"w":1508630400,"a":504,"d":169,"c":6},{"w":1509235200,"a":16,"d":8,"c":4},{"w":1509840000,"a":59,"d":44,"c":9},{"w":1510444800,"a":100,"d":44,"c":10},{"w":1511049600,"a":7,"d":8,"c":2},{"w":1511654400,"a":3,"d":1,"c":1},{"w":1512259200,"a":7,"d":0,"c":2},{"w":1512864000,"a":644,"d":29,"c":14},{"w":1513468800,"a":111,"d":12,"c":5},{"w":1514073600,"a":2,"d":2,"c":1},{"w":1514678400,"a":9,"d":5,"c":2},{"w":1515283200,"a":8,"d":55236,"c":12},{"w":1515888000,"a":47,"d":34,"c":11},{"w":1516492800,"a":69,"d":9269,"c":6},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":736,"d":129,"c":14},{"w":1518912000,"a":1,"d":1,"c":1},{"w":1519516800,"a":910,"d":723,"c":14},{"w":1520121600,"a":96,"d":49,"c":6},{"w":1520726400,"a":51,"d":31,"c":3},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":425,"d":409,"c":5},{"w":1522540800,"a":11,"d":1,"c":1},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":0,"d":640,"c":1},{"w":1525564800,"a":9,"d":6,"c":4},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":70,"d":27,"c":3},{"w":1527379200,"a":0,"d":0,"c":0},{"w":1527984000,"a":230,"d":156,"c":10},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":192,"d":21,"c":6},{"w":1532217600,"a":10,"d":9,"c":2},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":0,"d":0,"c":0},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":107,"d":21,"c":2},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":13,"d":6,"c":1},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":4,"d":9,"c":3},{"w":1550361600,"a":208,"d":59,"c":2},{"w":1550966400,"a":133,"d":84,"c":10},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":0,"d":0,"c":0},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":0,"d":0,"c":0},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"xymus","id":208057,"node_id":"MDQ6VXNlcjIwODA1Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/208057?v=4","gravatar_id":"","url":"https://api.github.com/users/xymus","html_url":"https://github.com/xymus","followers_url":"https://api.github.com/users/xymus/followers","following_url":"https://api.github.com/users/xymus/following{/other_user}","gists_url":"https://api.github.com/users/xymus/gists{/gist_id}","starred_url":"https://api.github.com/users/xymus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xymus/subscriptions","organizations_url":"https://api.github.com/users/xymus/orgs","repos_url":"https://api.github.com/users/xymus/repos","events_url":"https://api.github.com/users/xymus/events{/privacy}","received_events_url":"https://api.github.com/users/xymus/received_events","type":"User","site_admin":false}},{"total":4536,"weeks":[{"w":1215302400,"a":336225,"d":0,"c":1},{"w":1215907200,"a":0,"d":0,"c":0},{"w":1216512000,"a":0,"d":0,"c":0},{"w":1217116800,"a":0,"d":0,"c":0},{"w":1217721600,"a":0,"d":0,"c":0},{"w":1218326400,"a":0,"d":0,"c":0},{"w":1218931200,"a":0,"d":0,"c":0},{"w":1219536000,"a":0,"d":0,"c":0},{"w":1220140800,"a":0,"d":0,"c":0},{"w":1220745600,"a":205,"d":4,"c":2},{"w":1221350400,"a":0,"d":0,"c":0},{"w":1221955200,"a":0,"d":0,"c":0},{"w":1222560000,"a":0,"d":0,"c":0},{"w":1223164800,"a":0,"d":0,"c":0},{"w":1223769600,"a":0,"d":0,"c":0},{"w":1224374400,"a":0,"d":0,"c":0},{"w":1224979200,"a":0,"d":0,"c":0},{"w":1225584000,"a":0,"d":0,"c":0},{"w":1226188800,"a":17933,"d":12108,"c":8},{"w":1226793600,"a":5542,"d":5054,"c":1},{"w":1227398400,"a":50883,"d":50865,"c":7},{"w":1228003200,"a":0,"d":0,"c":0},{"w":1228608000,"a":0,"d":0,"c":0},{"w":1229212800,"a":0,"d":0,"c":0},{"w":1229817600,"a":173820,"d":154140,"c":26},{"w":1230422400,"a":378,"d":326,"c":4},{"w":1231027200,"a":0,"d":0,"c":0},{"w":1231632000,"a":0,"d":0,"c":0},{"w":1232236800,"a":33548,"d":10420,"c":21},{"w":1232841600,"a":221249,"d":156096,"c":18},{"w":1233446400,"a":30887,"d":76015,"c":8},{"w":1234051200,"a":188,"d":165,"c":6},{"w":1234656000,"a":0,"d":0,"c":0},{"w":1235260800,"a":105,"d":81,"c":4},{"w":1235865600,"a":0,"d":0,"c":0},{"w":1236470400,"a":0,"d":0,"c":0},{"w":1237075200,"a":0,"d":0,"c":0},{"w":1237680000,"a":24,"d":0,"c":2},{"w":1238284800,"a":0,"d":0,"c":0},{"w":1238889600,"a":133,"d":197,"c":2},{"w":1239494400,"a":0,"d":0,"c":0},{"w":1240099200,"a":0,"d":0,"c":0},{"w":1240704000,"a":0,"d":0,"c":0},{"w":1241308800,"a":0,"d":0,"c":0},{"w":1241913600,"a":0,"d":0,"c":0},{"w":1242518400,"a":17287,"d":11282,"c":4},{"w":1243123200,"a":0,"d":0,"c":0},{"w":1243728000,"a":350,"d":237,"c":6},{"w":1244332800,"a":80928,"d":82623,"c":35},{"w":1244937600,"a":1231,"d":799,"c":24},{"w":1245542400,"a":216695,"d":122952,"c":28},{"w":1246147200,"a":1297,"d":30,"c":12},{"w":1246752000,"a":920,"d":713,"c":21},{"w":1247356800,"a":844,"d":776,"c":5},{"w":1247961600,"a":22770,"d":14816,"c":15},{"w":1248566400,"a":82839,"d":56641,"c":31},{"w":1249171200,"a":18652,"d":17308,"c":13},{"w":1249776000,"a":462,"d":176,"c":13},{"w":1250380800,"a":11327,"d":10145,"c":23},{"w":1250985600,"a":737436,"d":334624,"c":23},{"w":1251590400,"a":6616,"d":6827,"c":5},{"w":1252195200,"a":0,"d":0,"c":0},{"w":1252800000,"a":152,"d":20,"c":2},{"w":1253404800,"a":0,"d":0,"c":0},{"w":1254009600,"a":0,"d":0,"c":0},{"w":1254614400,"a":0,"d":0,"c":0},{"w":1255219200,"a":0,"d":0,"c":0},{"w":1255824000,"a":0,"d":0,"c":0},{"w":1256428800,"a":0,"d":0,"c":0},{"w":1257033600,"a":0,"d":0,"c":0},{"w":1257638400,"a":0,"d":0,"c":0},{"w":1258243200,"a":0,"d":0,"c":0},{"w":1258848000,"a":0,"d":0,"c":0},{"w":1259452800,"a":0,"d":0,"c":0},{"w":1260057600,"a":0,"d":0,"c":0},{"w":1260662400,"a":0,"d":0,"c":0},{"w":1261267200,"a":0,"d":0,"c":0},{"w":1261872000,"a":0,"d":0,"c":0},{"w":1262476800,"a":493,"d":34,"c":8},{"w":1263081600,"a":752,"d":353,"c":9},{"w":1263686400,"a":263,"d":139,"c":9},{"w":1264291200,"a":671,"d":373,"c":5},{"w":1264896000,"a":129,"d":73,"c":1},{"w":1265500800,"a":437,"d":245,"c":5},{"w":1266105600,"a":0,"d":0,"c":0},{"w":1266710400,"a":0,"d":0,"c":0},{"w":1267315200,"a":0,"d":0,"c":0},{"w":1267920000,"a":6935,"d":6847,"c":1},{"w":1268524800,"a":0,"d":0,"c":0},{"w":1269129600,"a":0,"d":0,"c":0},{"w":1269734400,"a":0,"d":0,"c":0},{"w":1270339200,"a":0,"d":0,"c":0},{"w":1270944000,"a":0,"d":0,"c":0},{"w":1271548800,"a":0,"d":0,"c":0},{"w":1272153600,"a":0,"d":0,"c":0},{"w":1272758400,"a":0,"d":0,"c":0},{"w":1273363200,"a":0,"d":0,"c":0},{"w":1273968000,"a":0,"d":0,"c":0},{"w":1274572800,"a":0,"d":0,"c":0},{"w":1275177600,"a":0,"d":0,"c":0},{"w":1275782400,"a":0,"d":0,"c":0},{"w":1276387200,"a":9254,"d":8839,"c":6},{"w":1276992000,"a":21,"d":30,"c":2},{"w":1277596800,"a":0,"d":0,"c":0},{"w":1278201600,"a":0,"d":0,"c":0},{"w":1278806400,"a":153,"d":132,"c":5},{"w":1279411200,"a":235,"d":38,"c":2},{"w":1280016000,"a":20,"d":19,"c":2},{"w":1280620800,"a":25312,"d":66874,"c":7},{"w":1281225600,"a":0,"d":0,"c":0},{"w":1281830400,"a":0,"d":0,"c":0},{"w":1282435200,"a":0,"d":0,"c":0},{"w":1283040000,"a":0,"d":0,"c":0},{"w":1283644800,"a":0,"d":0,"c":0},{"w":1284249600,"a":0,"d":0,"c":0},{"w":1284854400,"a":466,"d":7565,"c":1},{"w":1285459200,"a":0,"d":0,"c":0},{"w":1286064000,"a":0,"d":0,"c":0},{"w":1286668800,"a":0,"d":0,"c":0},{"w":1287273600,"a":0,"d":0,"c":0},{"w":1287878400,"a":0,"d":0,"c":0},{"w":1288483200,"a":0,"d":0,"c":0},{"w":1289088000,"a":0,"d":0,"c":0},{"w":1289692800,"a":0,"d":0,"c":0},{"w":1290297600,"a":0,"d":0,"c":0},{"w":1290902400,"a":0,"d":0,"c":0},{"w":1291507200,"a":0,"d":0,"c":0},{"w":1292112000,"a":2,"d":0,"c":1},{"w":1292716800,"a":0,"d":0,"c":0},{"w":1293321600,"a":0,"d":0,"c":0},{"w":1293926400,"a":4862,"d":3262,"c":5},{"w":1294531200,"a":0,"d":0,"c":0},{"w":1295136000,"a":898,"d":869,"c":4},{"w":1295740800,"a":234514,"d":627606,"c":8},{"w":1296345600,"a":0,"d":0,"c":0},{"w":1296950400,"a":3652,"d":1788,"c":14},{"w":1297555200,"a":12822,"d":10627,"c":12},{"w":1298160000,"a":66,"d":66,"c":1},{"w":1298764800,"a":0,"d":0,"c":0},{"w":1299369600,"a":0,"d":0,"c":0},{"w":1299974400,"a":0,"d":0,"c":0},{"w":1300579200,"a":6529,"d":5282,"c":7},{"w":1301184000,"a":368,"d":1,"c":4},{"w":1301788800,"a":0,"d":0,"c":0},{"w":1302393600,"a":0,"d":0,"c":0},{"w":1302998400,"a":0,"d":0,"c":0},{"w":1303603200,"a":25485,"d":433,"c":5},{"w":1304208000,"a":0,"d":0,"c":0},{"w":1304812800,"a":0,"d":0,"c":0},{"w":1305417600,"a":0,"d":0,"c":0},{"w":1306022400,"a":0,"d":0,"c":0},{"w":1306627200,"a":0,"d":0,"c":0},{"w":1307232000,"a":0,"d":0,"c":0},{"w":1307836800,"a":0,"d":0,"c":0},{"w":1308441600,"a":4,"d":768,"c":1},{"w":1309046400,"a":1,"d":3,"c":2},{"w":1309651200,"a":0,"d":0,"c":0},{"w":1310256000,"a":0,"d":0,"c":0},{"w":1310860800,"a":0,"d":0,"c":0},{"w":1311465600,"a":0,"d":0,"c":0},{"w":1312070400,"a":0,"d":0,"c":0},{"w":1312675200,"a":0,"d":0,"c":0},{"w":1313280000,"a":0,"d":0,"c":0},{"w":1313884800,"a":0,"d":0,"c":0},{"w":1314489600,"a":0,"d":0,"c":0},{"w":1315094400,"a":0,"d":0,"c":0},{"w":1315699200,"a":0,"d":0,"c":0},{"w":1316304000,"a":0,"d":0,"c":0},{"w":1316908800,"a":0,"d":0,"c":0},{"w":1317513600,"a":0,"d":0,"c":0},{"w":1318118400,"a":0,"d":0,"c":0},{"w":1318723200,"a":5,"d":10,"c":1},{"w":1319328000,"a":0,"d":0,"c":0},{"w":1319932800,"a":0,"d":1,"c":1},{"w":1320537600,"a":0,"d":0,"c":0},{"w":1321142400,"a":0,"d":0,"c":0},{"w":1321747200,"a":338,"d":132,"c":5},{"w":1322352000,"a":0,"d":0,"c":0},{"w":1322956800,"a":0,"d":0,"c":0},{"w":1323561600,"a":0,"d":0,"c":0},{"w":1324166400,"a":0,"d":0,"c":0},{"w":1324771200,"a":0,"d":0,"c":0},{"w":1325376000,"a":19,"d":14,"c":5},{"w":1325980800,"a":0,"d":0,"c":0},{"w":1326585600,"a":11,"d":7,"c":1},{"w":1327190400,"a":2,"d":2,"c":1},{"w":1327795200,"a":1670,"d":803,"c":6},{"w":1328400000,"a":307530,"d":304546,"c":17},{"w":1329004800,"a":81421,"d":70183,"c":32},{"w":1329609600,"a":36651,"d":63012,"c":18},{"w":1330214400,"a":5541,"d":5057,"c":7},{"w":1330819200,"a":259,"d":208,"c":3},{"w":1331424000,"a":94,"d":90,"c":2},{"w":1332028800,"a":20,"d":18,"c":2},{"w":1332633600,"a":0,"d":0,"c":0},{"w":1333238400,"a":0,"d":0,"c":0},{"w":1333843200,"a":19504,"d":9297,"c":11},{"w":1334448000,"a":103767,"d":103808,"c":22},{"w":1335052800,"a":1935,"d":1525,"c":17},{"w":1335657600,"a":140,"d":25,"c":15},{"w":1336262400,"a":139,"d":87,"c":5},{"w":1336867200,"a":0,"d":0,"c":0},{"w":1337472000,"a":64,"d":12,"c":3},{"w":1338076800,"a":112,"d":83,"c":6},{"w":1338681600,"a":558,"d":0,"c":1},{"w":1339286400,"a":3,"d":7,"c":3},{"w":1339891200,"a":19,"d":7,"c":5},{"w":1340496000,"a":175,"d":205,"c":8},{"w":1341100800,"a":651,"d":367,"c":9},{"w":1341705600,"a":0,"d":0,"c":0},{"w":1342310400,"a":72,"d":26,"c":7},{"w":1342915200,"a":14,"d":1,"c":2},{"w":1343520000,"a":659,"d":358,"c":21},{"w":1344124800,"a":536,"d":89,"c":21},{"w":1344729600,"a":62,"d":55,"c":6},{"w":1345334400,"a":208,"d":138,"c":16},{"w":1345939200,"a":0,"d":0,"c":0},{"w":1346544000,"a":0,"d":0,"c":0},{"w":1347148800,"a":0,"d":0,"c":0},{"w":1347753600,"a":0,"d":0,"c":0},{"w":1348358400,"a":396,"d":0,"c":3},{"w":1348963200,"a":0,"d":0,"c":0},{"w":1349568000,"a":1,"d":1,"c":1},{"w":1350172800,"a":1797,"d":193,"c":18},{"w":1350777600,"a":1326,"d":176,"c":16},{"w":1351382400,"a":234,"d":77,"c":15},{"w":1351987200,"a":491,"d":275,"c":16},{"w":1352592000,"a":272,"d":83,"c":13},{"w":1353196800,"a":804,"d":124,"c":23},{"w":1353801600,"a":383,"d":582,"c":32},{"w":1354406400,"a":2013,"d":494,"c":48},{"w":1355011200,"a":2630,"d":383,"c":45},{"w":1355616000,"a":40,"d":50,"c":6},{"w":1356220800,"a":0,"d":0,"c":0},{"w":1356825600,"a":0,"d":0,"c":0},{"w":1357430400,"a":0,"d":0,"c":0},{"w":1358035200,"a":538,"d":79,"c":2},{"w":1358640000,"a":263,"d":486,"c":13},{"w":1359244800,"a":128,"d":17,"c":6},{"w":1359849600,"a":68,"d":6,"c":7},{"w":1360454400,"a":142086,"d":108181,"c":2},{"w":1361059200,"a":16804,"d":16808,"c":4},{"w":1361664000,"a":0,"d":0,"c":0},{"w":1362268800,"a":75,"d":50,"c":6},{"w":1362873600,"a":202,"d":4,"c":9},{"w":1363478400,"a":2,"d":0,"c":1},{"w":1364083200,"a":2,"d":6,"c":2},{"w":1364688000,"a":355,"d":228,"c":6},{"w":1365292800,"a":162,"d":48,"c":5},{"w":1365897600,"a":563,"d":465,"c":3},{"w":1366502400,"a":411,"d":362,"c":6},{"w":1367107200,"a":0,"d":0,"c":0},{"w":1367712000,"a":4,"d":0,"c":1},{"w":1368316800,"a":24,"d":33,"c":9},{"w":1368921600,"a":60,"d":25,"c":5},{"w":1369526400,"a":5,"d":4,"c":5},{"w":1370131200,"a":102,"d":59,"c":5},{"w":1370736000,"a":334,"d":181,"c":6},{"w":1371340800,"a":141,"d":49,"c":6},{"w":1371945600,"a":0,"d":0,"c":0},{"w":1372550400,"a":326,"d":98,"c":10},{"w":1373155200,"a":1370,"d":1404,"c":3},{"w":1373760000,"a":31731,"d":18675,"c":35},{"w":1374364800,"a":2568,"d":932,"c":33},{"w":1374969600,"a":127284,"d":76490,"c":26},{"w":1375574400,"a":3972,"d":2139,"c":45},{"w":1376179200,"a":5520,"d":1106,"c":50},{"w":1376784000,"a":62562,"d":39802,"c":36},{"w":1377388800,"a":1481,"d":996,"c":11},{"w":1377993600,"a":13674,"d":13557,"c":11},{"w":1378598400,"a":4,"d":1,"c":2},{"w":1379203200,"a":0,"d":0,"c":0},{"w":1379808000,"a":37,"d":39,"c":1},{"w":1380412800,"a":0,"d":0,"c":0},{"w":1381017600,"a":9,"d":5,"c":3},{"w":1381622400,"a":12202,"d":5909,"c":42},{"w":1382227200,"a":370,"d":82,"c":20},{"w":1382832000,"a":1070,"d":305,"c":27},{"w":1383436800,"a":487,"d":460,"c":12},{"w":1384041600,"a":636818,"d":594910,"c":19},{"w":1384646400,"a":87,"d":71,"c":7},{"w":1385251200,"a":210336,"d":228089,"c":27},{"w":1385856000,"a":0,"d":0,"c":0},{"w":1386460800,"a":0,"d":0,"c":0},{"w":1387065600,"a":0,"d":0,"c":0},{"w":1387670400,"a":0,"d":0,"c":0},{"w":1388275200,"a":0,"d":0,"c":0},{"w":1388880000,"a":8,"d":5,"c":1},{"w":1389484800,"a":99,"d":45,"c":10},{"w":1390089600,"a":0,"d":0,"c":0},{"w":1390694400,"a":685,"d":236,"c":10},{"w":1391299200,"a":564,"d":1426,"c":17},{"w":1391904000,"a":11684,"d":11996,"c":19},{"w":1392508800,"a":211707,"d":222550,"c":17},{"w":1393113600,"a":579,"d":127,"c":18},{"w":1393718400,"a":404,"d":125,"c":19},{"w":1394323200,"a":2656,"d":2219,"c":42},{"w":1394928000,"a":1467,"d":883,"c":56},{"w":1395532800,"a":1058,"d":391,"c":45},{"w":1396137600,"a":521,"d":2391,"c":27},{"w":1396742400,"a":23378,"d":59794,"c":37},{"w":1397347200,"a":14843,"d":15393,"c":30},{"w":1397952000,"a":2564,"d":1433,"c":43},{"w":1398556800,"a":415,"d":322,"c":16},{"w":1399161600,"a":210,"d":21,"c":7},{"w":1399766400,"a":399,"d":142,"c":24},{"w":1400371200,"a":70,"d":573,"c":6},{"w":1400976000,"a":1935,"d":1644,"c":20},{"w":1401580800,"a":628,"d":190,"c":26},{"w":1402185600,"a":4544,"d":4152,"c":43},{"w":1402790400,"a":2955,"d":666,"c":32},{"w":1403395200,"a":2253,"d":1001,"c":9},{"w":1404000000,"a":207,"d":33,"c":9},{"w":1404604800,"a":3331,"d":76,"c":25},{"w":1405209600,"a":13005,"d":16850,"c":46},{"w":1405814400,"a":1066,"d":342,"c":50},{"w":1406419200,"a":426165,"d":564875,"c":22},{"w":1407024000,"a":816,"d":159,"c":25},{"w":1407628800,"a":3221,"d":1678,"c":23},{"w":1408233600,"a":725,"d":516,"c":6},{"w":1408838400,"a":1440,"d":744,"c":37},{"w":1409443200,"a":20046,"d":20565,"c":43},{"w":1410048000,"a":168,"d":135,"c":6},{"w":1410652800,"a":13814,"d":15779,"c":24},{"w":1411257600,"a":7971,"d":13053,"c":41},{"w":1411862400,"a":3018,"d":2603,"c":21},{"w":1412467200,"a":1045,"d":450,"c":37},{"w":1413072000,"a":1453,"d":298,"c":20},{"w":1413676800,"a":16282,"d":10579,"c":13},{"w":1414281600,"a":299636,"d":259415,"c":29},{"w":1414886400,"a":1932,"d":1247,"c":44},{"w":1415491200,"a":412,"d":573,"c":22},{"w":1416096000,"a":597,"d":142,"c":25},{"w":1416700800,"a":947,"d":342,"c":32},{"w":1417305600,"a":1554,"d":1081,"c":63},{"w":1417910400,"a":1537,"d":915,"c":31},{"w":1418515200,"a":8921,"d":7008,"c":58},{"w":1419120000,"a":183,"d":144,"c":11},{"w":1419724800,"a":150,"d":59,"c":17},{"w":1420329600,"a":265,"d":103,"c":21},{"w":1420934400,"a":103,"d":113,"c":5},{"w":1421539200,"a":10,"d":2,"c":4},{"w":1422144000,"a":42,"d":38,"c":7},{"w":1422748800,"a":502669,"d":520115,"c":26},{"w":1423353600,"a":218,"d":37,"c":9},{"w":1423958400,"a":196,"d":12,"c":9},{"w":1424563200,"a":15583,"d":16430,"c":42},{"w":1425168000,"a":137,"d":45,"c":18},{"w":1425772800,"a":586,"d":64,"c":19},{"w":1426377600,"a":867,"d":186,"c":25},{"w":1426982400,"a":489,"d":370,"c":21},{"w":1427587200,"a":14860,"d":13188,"c":61},{"w":1428192000,"a":4404,"d":3768,"c":48},{"w":1428796800,"a":24642,"d":20874,"c":63},{"w":1429401600,"a":17766,"d":15372,"c":23},{"w":1430006400,"a":0,"d":0,"c":0},{"w":1430611200,"a":25883,"d":24362,"c":23},{"w":1431216000,"a":527,"d":10,"c":7},{"w":1431820800,"a":264,"d":141,"c":17},{"w":1432425600,"a":844,"d":604,"c":37},{"w":1433030400,"a":533,"d":66,"c":26},{"w":1433635200,"a":538954,"d":347378,"c":43},{"w":1434240000,"a":547,"d":121,"c":30},{"w":1434844800,"a":282,"d":7,"c":4},{"w":1435449600,"a":3538,"d":3334,"c":5},{"w":1436054400,"a":189,"d":50,"c":15},{"w":1436659200,"a":239,"d":190,"c":25},{"w":1437264000,"a":1009,"d":119,"c":32},{"w":1437868800,"a":0,"d":0,"c":0},{"w":1438473600,"a":3771,"d":1030,"c":35},{"w":1439078400,"a":2,"d":21,"c":2},{"w":1439683200,"a":1178,"d":755,"c":31},{"w":1440288000,"a":22701,"d":20082,"c":71},{"w":1440892800,"a":45,"d":1,"c":2},{"w":1441497600,"a":593,"d":314,"c":20},{"w":1442102400,"a":301,"d":171,"c":36},{"w":1442707200,"a":2868,"d":76,"c":29},{"w":1443312000,"a":1,"d":1,"c":1},{"w":1443916800,"a":9246,"d":8983,"c":41},{"w":1444521600,"a":612,"d":205,"c":16},{"w":1445126400,"a":912,"d":318,"c":51},{"w":1445731200,"a":63,"d":36,"c":10},{"w":1446336000,"a":245,"d":39,"c":12},{"w":1446940800,"a":367,"d":48,"c":20},{"w":1447545600,"a":122,"d":173,"c":3},{"w":1448150400,"a":242,"d":427,"c":17},{"w":1448755200,"a":538,"d":95,"c":23},{"w":1449360000,"a":97,"d":58,"c":4},{"w":1449964800,"a":5251,"d":4794,"c":19},{"w":1450569600,"a":0,"d":0,"c":0},{"w":1451174400,"a":0,"d":0,"c":0},{"w":1451779200,"a":0,"d":0,"c":0},{"w":1452384000,"a":0,"d":0,"c":0},{"w":1452988800,"a":90,"d":0,"c":2},{"w":1453593600,"a":781285,"d":711178,"c":5},{"w":1454198400,"a":491,"d":55,"c":8},{"w":1454803200,"a":14,"d":32,"c":5},{"w":1455408000,"a":62,"d":18,"c":9},{"w":1456012800,"a":182,"d":27,"c":7},{"w":1456617600,"a":135,"d":75,"c":10},{"w":1457222400,"a":95,"d":26,"c":7},{"w":1457827200,"a":0,"d":0,"c":0},{"w":1458432000,"a":2018,"d":1188,"c":19},{"w":1459036800,"a":0,"d":0,"c":0},{"w":1459641600,"a":253,"d":40,"c":8},{"w":1460246400,"a":314,"d":237,"c":1},{"w":1460851200,"a":1541,"d":123,"c":20},{"w":1461456000,"a":224,"d":181,"c":11},{"w":1462060800,"a":1249,"d":367,"c":29},{"w":1462665600,"a":332,"d":44,"c":14},{"w":1463270400,"a":669,"d":282,"c":27},{"w":1463875200,"a":571,"d":256,"c":19},{"w":1464480000,"a":393,"d":129,"c":27},{"w":1465084800,"a":657,"d":460,"c":24},{"w":1465689600,"a":450,"d":242,"c":11},{"w":1466294400,"a":1038,"d":88,"c":26},{"w":1466899200,"a":0,"d":0,"c":0},{"w":1467504000,"a":125,"d":0,"c":2},{"w":1468108800,"a":16,"d":18,"c":2},{"w":1468713600,"a":0,"d":0,"c":0},{"w":1469318400,"a":0,"d":0,"c":0},{"w":1469923200,"a":0,"d":0,"c":0},{"w":1470528000,"a":542,"d":78,"c":16},{"w":1471132800,"a":406,"d":2,"c":7},{"w":1471737600,"a":80,"d":25,"c":7},{"w":1472342400,"a":0,"d":0,"c":0},{"w":1472947200,"a":0,"d":0,"c":0},{"w":1473552000,"a":0,"d":0,"c":0},{"w":1474156800,"a":0,"d":0,"c":0},{"w":1474761600,"a":0,"d":0,"c":0},{"w":1475366400,"a":0,"d":0,"c":0},{"w":1475971200,"a":0,"d":0,"c":0},{"w":1476576000,"a":0,"d":0,"c":0},{"w":1477180800,"a":0,"d":0,"c":0},{"w":1477785600,"a":0,"d":0,"c":0},{"w":1478390400,"a":0,"d":0,"c":0},{"w":1478995200,"a":0,"d":0,"c":0},{"w":1479600000,"a":0,"d":0,"c":0},{"w":1480204800,"a":0,"d":0,"c":0},{"w":1480809600,"a":0,"d":0,"c":0},{"w":1481414400,"a":0,"d":0,"c":0},{"w":1482019200,"a":0,"d":0,"c":0},{"w":1482624000,"a":0,"d":0,"c":0},{"w":1483228800,"a":0,"d":0,"c":0},{"w":1483833600,"a":0,"d":0,"c":0},{"w":1484438400,"a":0,"d":0,"c":0},{"w":1485043200,"a":0,"d":0,"c":0},{"w":1485648000,"a":99,"d":65,"c":7},{"w":1486252800,"a":2287,"d":2320,"c":13},{"w":1486857600,"a":11,"d":5,"c":2},{"w":1487462400,"a":0,"d":0,"c":0},{"w":1488067200,"a":232,"d":7,"c":9},{"w":1488672000,"a":9356,"d":8815,"c":6},{"w":1489276800,"a":0,"d":0,"c":0},{"w":1489881600,"a":1,"d":0,"c":1},{"w":1490486400,"a":0,"d":0,"c":0},{"w":1491091200,"a":0,"d":0,"c":0},{"w":1491696000,"a":0,"d":0,"c":0},{"w":1492300800,"a":352,"d":6,"c":5},{"w":1492905600,"a":480,"d":104,"c":17},{"w":1493510400,"a":2,"d":2,"c":1},{"w":1494115200,"a":363,"d":10,"c":6},{"w":1494720000,"a":0,"d":0,"c":0},{"w":1495324800,"a":0,"d":0,"c":0},{"w":1495929600,"a":0,"d":0,"c":0},{"w":1496534400,"a":120,"d":3,"c":6},{"w":1497139200,"a":268,"d":28,"c":10},{"w":1497744000,"a":103,"d":33,"c":10},{"w":1498348800,"a":73,"d":21,"c":10},{"w":1498953600,"a":0,"d":0,"c":0},{"w":1499558400,"a":0,"d":0,"c":0},{"w":1500163200,"a":0,"d":0,"c":0},{"w":1500768000,"a":0,"d":0,"c":0},{"w":1501372800,"a":13,"d":10,"c":3},{"w":1501977600,"a":0,"d":0,"c":0},{"w":1502582400,"a":0,"d":0,"c":0},{"w":1503187200,"a":0,"d":0,"c":0},{"w":1503792000,"a":1,"d":1,"c":1},{"w":1504396800,"a":0,"d":0,"c":0},{"w":1505001600,"a":0,"d":0,"c":0},{"w":1505606400,"a":0,"d":0,"c":0},{"w":1506211200,"a":0,"d":0,"c":0},{"w":1506816000,"a":0,"d":0,"c":0},{"w":1507420800,"a":0,"d":0,"c":0},{"w":1508025600,"a":0,"d":0,"c":0},{"w":1508630400,"a":63,"d":4,"c":5},{"w":1509235200,"a":0,"d":0,"c":0},{"w":1509840000,"a":0,"d":0,"c":0},{"w":1510444800,"a":0,"d":0,"c":0},{"w":1511049600,"a":260,"d":70,"c":11},{"w":1511654400,"a":1349,"d":1176,"c":8},{"w":1512259200,"a":100,"d":0,"c":2},{"w":1512864000,"a":0,"d":0,"c":0},{"w":1513468800,"a":26,"d":0,"c":1},{"w":1514073600,"a":0,"d":0,"c":0},{"w":1514678400,"a":0,"d":0,"c":0},{"w":1515283200,"a":0,"d":399,"c":1},{"w":1515888000,"a":0,"d":0,"c":0},{"w":1516492800,"a":0,"d":0,"c":0},{"w":1517097600,"a":0,"d":0,"c":0},{"w":1517702400,"a":0,"d":0,"c":0},{"w":1518307200,"a":0,"d":0,"c":0},{"w":1518912000,"a":0,"d":0,"c":0},{"w":1519516800,"a":195,"d":61,"c":8},{"w":1520121600,"a":0,"d":0,"c":0},{"w":1520726400,"a":0,"d":0,"c":0},{"w":1521331200,"a":0,"d":0,"c":0},{"w":1521936000,"a":0,"d":0,"c":0},{"w":1522540800,"a":30,"d":0,"c":1},{"w":1523145600,"a":0,"d":0,"c":0},{"w":1523750400,"a":0,"d":0,"c":0},{"w":1524355200,"a":0,"d":0,"c":0},{"w":1524960000,"a":1251,"d":1091,"c":7},{"w":1525564800,"a":51,"d":12,"c":7},{"w":1526169600,"a":0,"d":0,"c":0},{"w":1526774400,"a":3,"d":1,"c":1},{"w":1527379200,"a":228,"d":159,"c":10},{"w":1527984000,"a":2,"d":1,"c":2},{"w":1528588800,"a":0,"d":0,"c":0},{"w":1529193600,"a":0,"d":0,"c":0},{"w":1529798400,"a":0,"d":0,"c":0},{"w":1530403200,"a":0,"d":0,"c":0},{"w":1531008000,"a":0,"d":0,"c":0},{"w":1531612800,"a":0,"d":0,"c":0},{"w":1532217600,"a":0,"d":0,"c":0},{"w":1532822400,"a":0,"d":0,"c":0},{"w":1533427200,"a":0,"d":0,"c":0},{"w":1534032000,"a":4,"d":4,"c":1},{"w":1534636800,"a":0,"d":0,"c":0},{"w":1535241600,"a":0,"d":0,"c":0},{"w":1535846400,"a":0,"d":0,"c":0},{"w":1536451200,"a":0,"d":0,"c":0},{"w":1537056000,"a":0,"d":0,"c":0},{"w":1537660800,"a":0,"d":0,"c":0},{"w":1538265600,"a":0,"d":0,"c":0},{"w":1538870400,"a":0,"d":0,"c":0},{"w":1539475200,"a":0,"d":0,"c":0},{"w":1540080000,"a":0,"d":0,"c":0},{"w":1540684800,"a":0,"d":0,"c":0},{"w":1541289600,"a":0,"d":0,"c":0},{"w":1541894400,"a":0,"d":0,"c":0},{"w":1542499200,"a":0,"d":0,"c":0},{"w":1543104000,"a":0,"d":0,"c":0},{"w":1543708800,"a":0,"d":0,"c":0},{"w":1544313600,"a":0,"d":0,"c":0},{"w":1544918400,"a":0,"d":0,"c":0},{"w":1545523200,"a":0,"d":0,"c":0},{"w":1546128000,"a":0,"d":0,"c":0},{"w":1546732800,"a":0,"d":0,"c":0},{"w":1547337600,"a":0,"d":0,"c":0},{"w":1547942400,"a":0,"d":0,"c":0},{"w":1548547200,"a":0,"d":0,"c":0},{"w":1549152000,"a":0,"d":0,"c":0},{"w":1549756800,"a":0,"d":0,"c":0},{"w":1550361600,"a":682,"d":157,"c":29},{"w":1550966400,"a":55,"d":16,"c":5},{"w":1551571200,"a":0,"d":0,"c":0},{"w":1552176000,"a":0,"d":0,"c":0},{"w":1552780800,"a":0,"d":0,"c":0},{"w":1553385600,"a":0,"d":0,"c":0},{"w":1553990400,"a":0,"d":0,"c":0},{"w":1554595200,"a":0,"d":0,"c":0},{"w":1555200000,"a":0,"d":0,"c":0},{"w":1555804800,"a":0,"d":0,"c":0},{"w":1556409600,"a":0,"d":0,"c":0},{"w":1557014400,"a":0,"d":0,"c":0},{"w":1557619200,"a":0,"d":0,"c":0},{"w":1558224000,"a":0,"d":0,"c":0},{"w":1558828800,"a":360,"d":25,"c":3},{"w":1559433600,"a":0,"d":0,"c":0},{"w":1560038400,"a":0,"d":0,"c":0},{"w":1560643200,"a":1,"d":0,"c":1},{"w":1561248000,"a":0,"d":0,"c":0},{"w":1561852800,"a":0,"d":0,"c":0},{"w":1562457600,"a":0,"d":0,"c":0}],"author":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false}}]
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/pulls/1000","id":25873438,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU4NzM0Mzg=","html_url":"https://github.com/nitlang/nit/pull/1000","diff_url":"https://github.com/nitlang/nit/pull/1000.diff","patch_url":"https://github.com/nitlang/nit/pull/1000.patch","issue_url":"https://api.github.com/repos/nitlang/nit/issues/1000","number":1000,"state":"closed","locked":false,"title":"Raise nitc from the dead","user":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"body":"Raise dead on `nitc`.\nIt's super effective...\n","created_at":"2014-12-11T02:55:09Z","updated_at":"2014-12-18T14:14:33Z","closed_at":"2014-12-13T15:38:09Z","merged_at":"2014-12-13T15:38:09Z","merge_commit_sha":"49af656d278987d3a09f8500bcbe019e3c0f6367","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":81916206,"node_id":"MDU6TGFiZWw4MTkxNjIwNg==","url":"https://api.github.com/repos/nitlang/nit/labels/ok_will_merge","name":"ok_will_merge","color":"009800","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/nitlang/nit/pulls/1000/commits","review_comments_url":"https://api.github.com/repos/nitlang/nit/pulls/1000/comments","review_comment_url":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/1000/comments","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/273b078ecc1a395f260992ec9fb08a31e8c338d9","head":{"label":"nitlang:raise-nitc","ref":"raise-nitc","sha":"273b078ecc1a395f260992ec9fb08a31e8c338d9","user":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"repo":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-17T13:13:03Z","pushed_at":"2019-06-19T00:02:11Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123083,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":56,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":171,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":56,"open_issues":171,"watchers":187,"default_branch":"master"}},"base":{"label":"nitlang:master","ref":"master","sha":"8bd95517ec64090da1356ee1a88af82a9ccf2847","user":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"repo":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-17T13:13:03Z","pushed_at":"2019-06-19T00:02:11Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123083,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":56,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":171,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":56,"open_issues":171,"watchers":187,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/1000"},"html":{"href":"https://github.com/nitlang/nit/pull/1000"},"issue":{"href":"https://api.github.com/repos/nitlang/nit/issues/1000"},"comments":{"href":"https://api.github.com/repos/nitlang/nit/issues/1000/comments"},"review_comments":{"href":"https://api.github.com/repos/nitlang/nit/pulls/1000/comments"},"review_comment":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nitlang/nit/pulls/1000/commits"},"statuses":{"href":"https://api.github.com/repos/nitlang/nit/statuses/273b078ecc1a395f260992ec9fb08a31e8c338d9"}},"author_association":"MEMBER","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"comments":7,"review_comments":0,"maintainer_can_modify":false,"commits":11,"additions":282,"deletions":268,"changed_files":67}
\ No newline at end of file
--- /dev/null
+[{"url":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010363","pull_request_review_id":null,"id":21010363,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDEwMzYz","diff_hunk":"@@ -981,11 +983,11 @@ redef class AAttrPropdef\n \n \t\t\t\tif mtype == null then return\n \t\t\tend\n-\t\telse if ntype != null then\n+\t\telse if ntype != null and inherited_type == mtype then\n \t\t\tif nexpr isa ANewExpr then\n \t\t\t\tvar xmtype = modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type)\n \t\t\t\tif xmtype == mtype then\n-\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition\")\n+\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition {inherited_type or else \"?\"}\")","path":"src/modelize/modelize_property.nit","position":null,"original_position":26,"commit_id":"ce5e187a87ed5c41144ea5637188a0677d840fdc","original_commit_id":"5f0ab1c7f3c560a67867d5eb08f5c3082f251c20","user":{"login":"jcbrinfo","id":6044484,"node_id":"MDQ6VXNlcjYwNDQ0ODQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6044484?v=4","gravatar_id":"","url":"https://api.github.com/users/jcbrinfo","html_url":"https://github.com/jcbrinfo","followers_url":"https://api.github.com/users/jcbrinfo/followers","following_url":"https://api.github.com/users/jcbrinfo/following{/other_user}","gists_url":"https://api.github.com/users/jcbrinfo/gists{/gist_id}","starred_url":"https://api.github.com/users/jcbrinfo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcbrinfo/subscriptions","organizations_url":"https://api.github.com/users/jcbrinfo/orgs","repos_url":"https://api.github.com/users/jcbrinfo/repos","events_url":"https://api.github.com/users/jcbrinfo/events{/privacy}","received_events_url":"https://api.github.com/users/jcbrinfo/received_events","type":"User","site_admin":false},"body":"Warning: `inherited_type` is always non null here.\n","created_at":"2014-11-27T20:39:29Z","updated_at":"2014-11-28T01:05:12Z","html_url":"https://github.com/nitlang/nit/pull/945#discussion_r21010363","pull_request_url":"https://api.github.com/repos/nitlang/nit/pulls/945","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010363"},"html":{"href":"https://github.com/nitlang/nit/pull/945#discussion_r21010363"},"pull_request":{"href":"https://api.github.com/repos/nitlang/nit/pulls/945"}}},{"url":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010554","pull_request_review_id":null,"id":21010554,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDEwNTU0","diff_hunk":"@@ -981,11 +983,11 @@ redef class AAttrPropdef\n \n \t\t\t\tif mtype == null then return\n \t\t\tend\n-\t\telse if ntype != null then\n+\t\telse if ntype != null and inherited_type == mtype then\n \t\t\tif nexpr isa ANewExpr then\n \t\t\t\tvar xmtype = modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type)\n \t\t\t\tif xmtype == mtype then\n-\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition\")\n+\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition {inherited_type or else \"?\"}\")","path":"src/modelize/modelize_property.nit","position":null,"original_position":26,"commit_id":"ce5e187a87ed5c41144ea5637188a0677d840fdc","original_commit_id":"5f0ab1c7f3c560a67867d5eb08f5c3082f251c20","user":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"body":"Oups. C'est du debug qui traine :/\n","created_at":"2014-11-27T20:50:42Z","updated_at":"2014-11-28T01:05:12Z","html_url":"https://github.com/nitlang/nit/pull/945#discussion_r21010554","pull_request_url":"https://api.github.com/repos/nitlang/nit/pulls/945","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010554"},"html":{"href":"https://github.com/nitlang/nit/pull/945#discussion_r21010554"},"pull_request":{"href":"https://api.github.com/repos/nitlang/nit/pulls/945"}}}]
\ No newline at end of file
--- /dev/null
+{"url":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010363","pull_request_review_id":null,"id":21010363,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDEwMzYz","diff_hunk":"@@ -981,11 +983,11 @@ redef class AAttrPropdef\n \n \t\t\t\tif mtype == null then return\n \t\t\tend\n-\t\telse if ntype != null then\n+\t\telse if ntype != null and inherited_type == mtype then\n \t\t\tif nexpr isa ANewExpr then\n \t\t\t\tvar xmtype = modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type)\n \t\t\t\tif xmtype == mtype then\n-\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition\")\n+\t\t\t\t\tmodelbuilder.advice(ntype, \"useless-type\", \"Warning: useless type definition {inherited_type or else \"?\"}\")","path":"src/modelize/modelize_property.nit","position":null,"original_position":26,"commit_id":"ce5e187a87ed5c41144ea5637188a0677d840fdc","original_commit_id":"5f0ab1c7f3c560a67867d5eb08f5c3082f251c20","user":{"login":"jcbrinfo","id":6044484,"node_id":"MDQ6VXNlcjYwNDQ0ODQ=","avatar_url":"https://avatars0.githubusercontent.com/u/6044484?v=4","gravatar_id":"","url":"https://api.github.com/users/jcbrinfo","html_url":"https://github.com/jcbrinfo","followers_url":"https://api.github.com/users/jcbrinfo/followers","following_url":"https://api.github.com/users/jcbrinfo/following{/other_user}","gists_url":"https://api.github.com/users/jcbrinfo/gists{/gist_id}","starred_url":"https://api.github.com/users/jcbrinfo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcbrinfo/subscriptions","organizations_url":"https://api.github.com/users/jcbrinfo/orgs","repos_url":"https://api.github.com/users/jcbrinfo/repos","events_url":"https://api.github.com/users/jcbrinfo/events{/privacy}","received_events_url":"https://api.github.com/users/jcbrinfo/received_events","type":"User","site_admin":false},"body":"Warning: `inherited_type` is always non null here.\n","created_at":"2014-11-27T20:39:29Z","updated_at":"2014-11-28T01:05:12Z","html_url":"https://github.com/nitlang/nit/pull/945#discussion_r21010363","pull_request_url":"https://api.github.com/repos/nitlang/nit/pulls/945","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments/21010363"},"html":{"href":"https://github.com/nitlang/nit/pull/945#discussion_r21010363"},"pull_request":{"href":"https://api.github.com/repos/nitlang/nit/pulls/945"}}}
\ No newline at end of file
--- /dev/null
+[{"url":"https://api.github.com/repos/nitlang/nit/pulls/2755","id":290413900,"node_id":"MDExOlB1bGxSZXF1ZXN0MjkwNDEzOTAw","html_url":"https://github.com/nitlang/nit/pull/2755","diff_url":"https://github.com/nitlang/nit/pull/2755.diff","patch_url":"https://github.com/nitlang/nit/pull/2755.patch","issue_url":"https://api.github.com/repos/nitlang/nit/issues/2755","number":2755,"state":"open","locked":false,"title":"nitrpg: Move `nitrpg` to its own repository","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"body":"`nitrpg` is broken since a long time. I think https:/api.github.com actually changed twice since it broke. I don't plan on killing it yet but I moved it to its own repository until I worked again on it (or never).\r\n\r\nSee https://github.com/Morriar/nitrpg.\r\n\r\nSigned-off-by: Alexandre Terrasa <alexandre@moz-code.org>","created_at":"2019-06-20T23:34:44Z","updated_at":"2019-06-21T00:45:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1acf6cf46daaebea63410ee86a365ecf4eb291f3","assignee":null,"assignees":[],"requested_reviewers":[{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/nitlang/nit/pulls/2755/commits","review_comments_url":"https://api.github.com/repos/nitlang/nit/pulls/2755/comments","review_comment_url":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2755/comments","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/5dbab8fac6905d57abf78076c58916b0b34b35ce","head":{"label":"Morriar:at-move-nitrpg","ref":"at-move-nitrpg","sha":"5dbab8fac6905d57abf78076c58916b0b34b35ce","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"repo":{"id":1456691,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU2Njkx","name":"nit","full_name":"Morriar/nit","private":false,"owner":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Morriar/nit","description":"Nit language","fork":true,"url":"https://api.github.com/repos/Morriar/nit","forks_url":"https://api.github.com/repos/Morriar/nit/forks","keys_url":"https://api.github.com/repos/Morriar/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Morriar/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Morriar/nit/teams","hooks_url":"https://api.github.com/repos/Morriar/nit/hooks","issue_events_url":"https://api.github.com/repos/Morriar/nit/issues/events{/number}","events_url":"https://api.github.com/repos/Morriar/nit/events","assignees_url":"https://api.github.com/repos/Morriar/nit/assignees{/user}","branches_url":"https://api.github.com/repos/Morriar/nit/branches{/branch}","tags_url":"https://api.github.com/repos/Morriar/nit/tags","blobs_url":"https://api.github.com/repos/Morriar/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Morriar/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Morriar/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/Morriar/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Morriar/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/Morriar/nit/languages","stargazers_url":"https://api.github.com/repos/Morriar/nit/stargazers","contributors_url":"https://api.github.com/repos/Morriar/nit/contributors","subscribers_url":"https://api.github.com/repos/Morriar/nit/subscribers","subscription_url":"https://api.github.com/repos/Morriar/nit/subscription","commits_url":"https://api.github.com/repos/Morriar/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/Morriar/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/Morriar/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/Morriar/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/Morriar/nit/contents/{+path}","compare_url":"https://api.github.com/repos/Morriar/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Morriar/nit/merges","archive_url":"https://api.github.com/repos/Morriar/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Morriar/nit/downloads","issues_url":"https://api.github.com/repos/Morriar/nit/issues{/number}","pulls_url":"https://api.github.com/repos/Morriar/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/Morriar/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/Morriar/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Morriar/nit/labels{/name}","releases_url":"https://api.github.com/repos/Morriar/nit/releases{/id}","deployments_url":"https://api.github.com/repos/Morriar/nit/deployments","created_at":"2011-03-08T22:16:33Z","updated_at":"2018-08-23T01:37:28Z","pushed_at":"2019-06-20T23:32:07Z","git_url":"git://github.com/Morriar/nit.git","ssh_url":"git@github.com:Morriar/nit.git","clone_url":"https://github.com/Morriar/nit.git","svn_url":"https://github.com/Morriar/nit","homepage":"http://nitlanguage.org","size":208064,"stargazers_count":2,"watchers_count":2,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":16,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":2,"open_issues":16,"watchers":2,"default_branch":"master"}},"base":{"label":"nitlang:master","ref":"master","sha":"8fd264ae263d5418c56671414b9788c5d67621b4","user":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"repo":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-20T18:53:54Z","pushed_at":"2019-06-20T23:34:45Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123163,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":58,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":174,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":58,"open_issues":174,"watchers":187,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2755"},"html":{"href":"https://github.com/nitlang/nit/pull/2755"},"issue":{"href":"https://api.github.com/repos/nitlang/nit/issues/2755"},"comments":{"href":"https://api.github.com/repos/nitlang/nit/issues/2755/comments"},"review_comments":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2755/comments"},"review_comment":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2755/commits"},"statuses":{"href":"https://api.github.com/repos/nitlang/nit/statuses/5dbab8fac6905d57abf78076c58916b0b34b35ce"}},"author_association":"MEMBER"},{"url":"https://api.github.com/repos/nitlang/nit/pulls/2754","id":290326110,"node_id":"MDExOlB1bGxSZXF1ZXN0MjkwMzI2MTEw","html_url":"https://github.com/nitlang/nit/pull/2754","diff_url":"https://github.com/nitlang/nit/pull/2754.diff","patch_url":"https://github.com/nitlang/nit/pull/2754.patch","issue_url":"https://api.github.com/repos/nitlang/nit/issues/2754","number":2754,"state":"open","locked":false,"title":"First (and small) integration of the ICU library in Nit : locale and case modification","user":{"login":"anadaouda","id":36400538,"node_id":"MDQ6VXNlcjM2NDAwNTM4","avatar_url":"https://avatars1.githubusercontent.com/u/36400538?v=4","gravatar_id":"","url":"https://api.github.com/users/anadaouda","html_url":"https://github.com/anadaouda","followers_url":"https://api.github.com/users/anadaouda/followers","following_url":"https://api.github.com/users/anadaouda/following{/other_user}","gists_url":"https://api.github.com/users/anadaouda/gists{/gist_id}","starred_url":"https://api.github.com/users/anadaouda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anadaouda/subscriptions","organizations_url":"https://api.github.com/users/anadaouda/orgs","repos_url":"https://api.github.com/users/anadaouda/repos","events_url":"https://api.github.com/users/anadaouda/events{/privacy}","received_events_url":"https://api.github.com/users/anadaouda/received_events","type":"User","site_admin":false},"body":"## ICU\r\nICU (International Components for Unicode) is an API which implements algorithms provided by the Unicode Consortium in C.\r\n\r\n## locale.nit\r\nLocale object which makes sure that the name of the locale is valid and handled by the ICU library\r\n\r\n## caseModification.nit\r\nAddition of `uppercase`, `lowercase` and `title` in the `String` and `CString` classes using a `CaseModification` object.","created_at":"2019-06-20T18:28:52Z","updated_at":"2019-06-20T18:48:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b4da82a7ab077e2c08741a576c3d920f09d22a84","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/nitlang/nit/pulls/2754/commits","review_comments_url":"https://api.github.com/repos/nitlang/nit/pulls/2754/comments","review_comment_url":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2754/comments","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/fbb5f6c481cd45ef2f20f62138723dd428eb060d","head":{"label":"anadaouda:icu","ref":"icu","sha":"fbb5f6c481cd45ef2f20f62138723dd428eb060d","user":{"login":"anadaouda","id":36400538,"node_id":"MDQ6VXNlcjM2NDAwNTM4","avatar_url":"https://avatars1.githubusercontent.com/u/36400538?v=4","gravatar_id":"","url":"https://api.github.com/users/anadaouda","html_url":"https://github.com/anadaouda","followers_url":"https://api.github.com/users/anadaouda/followers","following_url":"https://api.github.com/users/anadaouda/following{/other_user}","gists_url":"https://api.github.com/users/anadaouda/gists{/gist_id}","starred_url":"https://api.github.com/users/anadaouda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anadaouda/subscriptions","organizations_url":"https://api.github.com/users/anadaouda/orgs","repos_url":"https://api.github.com/users/anadaouda/repos","events_url":"https://api.github.com/users/anadaouda/events{/privacy}","received_events_url":"https://api.github.com/users/anadaouda/received_events","type":"User","site_admin":false},"repo":{"id":192944232,"node_id":"MDEwOlJlcG9zaXRvcnkxOTI5NDQyMzI=","name":"nit","full_name":"anadaouda/nit","private":false,"owner":{"login":"anadaouda","id":36400538,"node_id":"MDQ6VXNlcjM2NDAwNTM4","avatar_url":"https://avatars1.githubusercontent.com/u/36400538?v=4","gravatar_id":"","url":"https://api.github.com/users/anadaouda","html_url":"https://github.com/anadaouda","followers_url":"https://api.github.com/users/anadaouda/followers","following_url":"https://api.github.com/users/anadaouda/following{/other_user}","gists_url":"https://api.github.com/users/anadaouda/gists{/gist_id}","starred_url":"https://api.github.com/users/anadaouda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anadaouda/subscriptions","organizations_url":"https://api.github.com/users/anadaouda/orgs","repos_url":"https://api.github.com/users/anadaouda/repos","events_url":"https://api.github.com/users/anadaouda/events{/privacy}","received_events_url":"https://api.github.com/users/anadaouda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/anadaouda/nit","description":"Nit language","fork":true,"url":"https://api.github.com/repos/anadaouda/nit","forks_url":"https://api.github.com/repos/anadaouda/nit/forks","keys_url":"https://api.github.com/repos/anadaouda/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anadaouda/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anadaouda/nit/teams","hooks_url":"https://api.github.com/repos/anadaouda/nit/hooks","issue_events_url":"https://api.github.com/repos/anadaouda/nit/issues/events{/number}","events_url":"https://api.github.com/repos/anadaouda/nit/events","assignees_url":"https://api.github.com/repos/anadaouda/nit/assignees{/user}","branches_url":"https://api.github.com/repos/anadaouda/nit/branches{/branch}","tags_url":"https://api.github.com/repos/anadaouda/nit/tags","blobs_url":"https://api.github.com/repos/anadaouda/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anadaouda/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anadaouda/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/anadaouda/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anadaouda/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/anadaouda/nit/languages","stargazers_url":"https://api.github.com/repos/anadaouda/nit/stargazers","contributors_url":"https://api.github.com/repos/anadaouda/nit/contributors","subscribers_url":"https://api.github.com/repos/anadaouda/nit/subscribers","subscription_url":"https://api.github.com/repos/anadaouda/nit/subscription","commits_url":"https://api.github.com/repos/anadaouda/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/anadaouda/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/anadaouda/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/anadaouda/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/anadaouda/nit/contents/{+path}","compare_url":"https://api.github.com/repos/anadaouda/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anadaouda/nit/merges","archive_url":"https://api.github.com/repos/anadaouda/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anadaouda/nit/downloads","issues_url":"https://api.github.com/repos/anadaouda/nit/issues{/number}","pulls_url":"https://api.github.com/repos/anadaouda/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/anadaouda/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/anadaouda/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anadaouda/nit/labels{/name}","releases_url":"https://api.github.com/repos/anadaouda/nit/releases{/id}","deployments_url":"https://api.github.com/repos/anadaouda/nit/deployments","created_at":"2019-06-20T15:25:48Z","updated_at":"2019-06-20T18:32:09Z","pushed_at":"2019-06-20T18:03:33Z","git_url":"git://github.com/anadaouda/nit.git","ssh_url":"git@github.com:anadaouda/nit.git","clone_url":"https://github.com/anadaouda/nit.git","svn_url":"https://github.com/anadaouda/nit","homepage":"http://nitlanguage.org","size":123094,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"nitlang:master","ref":"master","sha":"9248f1c81c08b6c0ec7785678dbb1d7440b885d9","user":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"repo":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-20T18:53:54Z","pushed_at":"2019-06-20T23:34:45Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123163,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":58,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":174,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":58,"open_issues":174,"watchers":187,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2754"},"html":{"href":"https://github.com/nitlang/nit/pull/2754"},"issue":{"href":"https://api.github.com/repos/nitlang/nit/issues/2754"},"comments":{"href":"https://api.github.com/repos/nitlang/nit/issues/2754/comments"},"review_comments":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2754/comments"},"review_comment":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2754/commits"},"statuses":{"href":"https://api.github.com/repos/nitlang/nit/statuses/fbb5f6c481cd45ef2f20f62138723dd428eb060d"}},"author_association":"FIRST_TIME_CONTRIBUTOR"},{"url":"https://api.github.com/repos/nitlang/nit/pulls/2753","id":289519734,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjg5NTE5NzM0","html_url":"https://github.com/nitlang/nit/pull/2753","diff_url":"https://github.com/nitlang/nit/pull/2753.diff","patch_url":"https://github.com/nitlang/nit/pull/2753.patch","issue_url":"https://api.github.com/repos/nitlang/nit/issues/2753","number":2753,"state":"open","locked":false,"title":"Mock Github API tests","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"body":"This PR adds a mock to GithubAPI so we can avoid sending requests to the API on CI.\r\n\r\nFor each API call we save the actual Github response body from the API and reuse it during the tests.\r\nThe attribute `update_responses_cache` can be set to `true` so the cache files are updated from the API when `nitunit` is called.","created_at":"2019-06-19T02:53:50Z","updated_at":"2019-06-20T18:27:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e28d2edb92bfefd354d6fd4916cb861661d69dcf","assignee":null,"assignees":[],"requested_reviewers":[{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false},{"id":225254102,"node_id":"MDU6TGFiZWwyMjUyNTQxMDI=","url":"https://api.github.com/repos/nitlang/nit/labels/tests_are_ok","name":"tests_are_ok","color":"00b800","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/nitlang/nit/pulls/2753/commits","review_comments_url":"https://api.github.com/repos/nitlang/nit/pulls/2753/comments","review_comment_url":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2753/comments","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/5c19395e548326c9d78dff9b274e3e7b93c1704f","head":{"label":"Morriar:at-github_mock","ref":"at-github_mock","sha":"5c19395e548326c9d78dff9b274e3e7b93c1704f","user":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"repo":{"id":1456691,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU2Njkx","name":"nit","full_name":"Morriar/nit","private":false,"owner":{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Morriar/nit","description":"Nit language","fork":true,"url":"https://api.github.com/repos/Morriar/nit","forks_url":"https://api.github.com/repos/Morriar/nit/forks","keys_url":"https://api.github.com/repos/Morriar/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Morriar/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Morriar/nit/teams","hooks_url":"https://api.github.com/repos/Morriar/nit/hooks","issue_events_url":"https://api.github.com/repos/Morriar/nit/issues/events{/number}","events_url":"https://api.github.com/repos/Morriar/nit/events","assignees_url":"https://api.github.com/repos/Morriar/nit/assignees{/user}","branches_url":"https://api.github.com/repos/Morriar/nit/branches{/branch}","tags_url":"https://api.github.com/repos/Morriar/nit/tags","blobs_url":"https://api.github.com/repos/Morriar/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Morriar/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Morriar/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/Morriar/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Morriar/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/Morriar/nit/languages","stargazers_url":"https://api.github.com/repos/Morriar/nit/stargazers","contributors_url":"https://api.github.com/repos/Morriar/nit/contributors","subscribers_url":"https://api.github.com/repos/Morriar/nit/subscribers","subscription_url":"https://api.github.com/repos/Morriar/nit/subscription","commits_url":"https://api.github.com/repos/Morriar/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/Morriar/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/Morriar/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/Morriar/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/Morriar/nit/contents/{+path}","compare_url":"https://api.github.com/repos/Morriar/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Morriar/nit/merges","archive_url":"https://api.github.com/repos/Morriar/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Morriar/nit/downloads","issues_url":"https://api.github.com/repos/Morriar/nit/issues{/number}","pulls_url":"https://api.github.com/repos/Morriar/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/Morriar/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/Morriar/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Morriar/nit/labels{/name}","releases_url":"https://api.github.com/repos/Morriar/nit/releases{/id}","deployments_url":"https://api.github.com/repos/Morriar/nit/deployments","created_at":"2011-03-08T22:16:33Z","updated_at":"2018-08-23T01:37:28Z","pushed_at":"2019-06-20T23:32:07Z","git_url":"git://github.com/Morriar/nit.git","ssh_url":"git@github.com:Morriar/nit.git","clone_url":"https://github.com/Morriar/nit.git","svn_url":"https://github.com/Morriar/nit","homepage":"http://nitlanguage.org","size":208064,"stargazers_count":2,"watchers_count":2,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":16,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":2,"open_issues":16,"watchers":2,"default_branch":"master"}},"base":{"label":"nitlang:master","ref":"master","sha":"9248f1c81c08b6c0ec7785678dbb1d7440b885d9","user":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"repo":{"id":328597,"node_id":"MDEwOlJlcG9zaXRvcnkzMjg1OTc=","name":"nit","full_name":"nitlang/nit","private":false,"owner":{"login":"nitlang","id":5420298,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0MjAyOTg=","avatar_url":"https://avatars1.githubusercontent.com/u/5420298?v=4","gravatar_id":"","url":"https://api.github.com/users/nitlang","html_url":"https://github.com/nitlang","followers_url":"https://api.github.com/users/nitlang/followers","following_url":"https://api.github.com/users/nitlang/following{/other_user}","gists_url":"https://api.github.com/users/nitlang/gists{/gist_id}","starred_url":"https://api.github.com/users/nitlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nitlang/subscriptions","organizations_url":"https://api.github.com/users/nitlang/orgs","repos_url":"https://api.github.com/users/nitlang/repos","events_url":"https://api.github.com/users/nitlang/events{/privacy}","received_events_url":"https://api.github.com/users/nitlang/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nitlang/nit","description":"Nit language","fork":false,"url":"https://api.github.com/repos/nitlang/nit","forks_url":"https://api.github.com/repos/nitlang/nit/forks","keys_url":"https://api.github.com/repos/nitlang/nit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nitlang/nit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nitlang/nit/teams","hooks_url":"https://api.github.com/repos/nitlang/nit/hooks","issue_events_url":"https://api.github.com/repos/nitlang/nit/issues/events{/number}","events_url":"https://api.github.com/repos/nitlang/nit/events","assignees_url":"https://api.github.com/repos/nitlang/nit/assignees{/user}","branches_url":"https://api.github.com/repos/nitlang/nit/branches{/branch}","tags_url":"https://api.github.com/repos/nitlang/nit/tags","blobs_url":"https://api.github.com/repos/nitlang/nit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nitlang/nit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nitlang/nit/git/refs{/sha}","trees_url":"https://api.github.com/repos/nitlang/nit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nitlang/nit/statuses/{sha}","languages_url":"https://api.github.com/repos/nitlang/nit/languages","stargazers_url":"https://api.github.com/repos/nitlang/nit/stargazers","contributors_url":"https://api.github.com/repos/nitlang/nit/contributors","subscribers_url":"https://api.github.com/repos/nitlang/nit/subscribers","subscription_url":"https://api.github.com/repos/nitlang/nit/subscription","commits_url":"https://api.github.com/repos/nitlang/nit/commits{/sha}","git_commits_url":"https://api.github.com/repos/nitlang/nit/git/commits{/sha}","comments_url":"https://api.github.com/repos/nitlang/nit/comments{/number}","issue_comment_url":"https://api.github.com/repos/nitlang/nit/issues/comments{/number}","contents_url":"https://api.github.com/repos/nitlang/nit/contents/{+path}","compare_url":"https://api.github.com/repos/nitlang/nit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nitlang/nit/merges","archive_url":"https://api.github.com/repos/nitlang/nit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nitlang/nit/downloads","issues_url":"https://api.github.com/repos/nitlang/nit/issues{/number}","pulls_url":"https://api.github.com/repos/nitlang/nit/pulls{/number}","milestones_url":"https://api.github.com/repos/nitlang/nit/milestones{/number}","notifications_url":"https://api.github.com/repos/nitlang/nit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nitlang/nit/labels{/name}","releases_url":"https://api.github.com/repos/nitlang/nit/releases{/id}","deployments_url":"https://api.github.com/repos/nitlang/nit/deployments","created_at":"2009-10-06T15:03:00Z","updated_at":"2019-06-20T18:53:54Z","pushed_at":"2019-06-20T23:34:45Z","git_url":"git://github.com/nitlang/nit.git","ssh_url":"git@github.com:nitlang/nit.git","clone_url":"https://github.com/nitlang/nit.git","svn_url":"https://github.com/nitlang/nit","homepage":"http://nitlanguage.org","size":123163,"stargazers_count":187,"watchers_count":187,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":58,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":174,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":58,"open_issues":174,"watchers":187,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2753"},"html":{"href":"https://github.com/nitlang/nit/pull/2753"},"issue":{"href":"https://api.github.com/repos/nitlang/nit/issues/2753"},"comments":{"href":"https://api.github.com/repos/nitlang/nit/issues/2753/comments"},"review_comments":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2753/comments"},"review_comment":{"href":"https://api.github.com/repos/nitlang/nit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nitlang/nit/pulls/2753/commits"},"statuses":{"href":"https://api.github.com/repos/nitlang/nit/statuses/5c19395e548326c9d78dff9b274e3e7b93c1704f"}},"author_association":"MEMBER"}]
\ No newline at end of file
--- /dev/null
+{"total_count":151,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/nitlang/nit/issues/2747","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/2747/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/2747/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/2747/events","html_url":"https://github.com/nitlang/nit/pull/2747","id":444577497,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc5MjA5MjEx","number":2747,"title":"Introduction of contracts in Nit","user":{"login":"Delja","id":26239416,"node_id":"MDQ6VXNlcjI2MjM5NDE2","avatar_url":"https://avatars1.githubusercontent.com/u/26239416?v=4","gravatar_id":"","url":"https://api.github.com/users/Delja","html_url":"https://github.com/Delja","followers_url":"https://api.github.com/users/Delja/followers","following_url":"https://api.github.com/users/Delja/following{/other_user}","gists_url":"https://api.github.com/users/Delja/gists{/gist_id}","starred_url":"https://api.github.com/users/Delja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Delja/subscriptions","organizations_url":"https://api.github.com/users/Delja/orgs","repos_url":"https://api.github.com/users/Delja/repos","events_url":"https://api.github.com/users/Delja/events{/privacy}","received_events_url":"https://api.github.com/users/Delja/received_events","type":"User","site_admin":false},"labels":[{"id":1252784180,"node_id":"MDU6TGFiZWwxMjUyNzg0MTgw","url":"https://api.github.com/repos/nitlang/nit/labels/ok_to_test","name":"ok_to_test","color":"1e179e","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-05-15T18:16:56Z","updated_at":"2019-06-17T15:08:13Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/2747","html_url":"https://github.com/nitlang/nit/pull/2747","diff_url":"https://github.com/nitlang/nit/pull/2747.diff","patch_url":"https://github.com/nitlang/nit/pull/2747.patch"},"body":"# Contract\r\n\r\nAdding contract programming (Design by contract) in Nit language. Contracts works with nit annotations.\r\n\r\n## Annotations\r\n\r\nTo define a new contract you need to use the corresponding annotation. For example it is possible to define a contract that x must be strictly greater than 5. To do it would be necessary to define the contract in the following way `expects (x > 5)`. All expressions returning a boolean (comparison...) can be used as a condition.\r\n\r\nTwo annotations were added:\r\n\t\r\n- `expects` to indicate the conditions need to the execution of the methods\r\n- `ensures` to indicate the conditions of guarantee at the end of the execution of the methods\r\n\r\n## Method contract (ensures, expects)\r\n\r\nFor each method it is possible to define preconditions (`expects`) and post-conditions (`ensures`). If the call of the method satisfies the prerequisites of the method, the caller may assume that the return conditions will be satisfied.\r\n\r\nThe method contracts can access all the parameters of the method as well as the set of attributes/methods visible in the context of the method. i.e the set of parameters and the set of methods and attributes of the current class can be used (attributes declare locally in the method can not be used). For post-conditions (ensures) the `result` attribute has been added to perform a check on the return value of the method.\r\n\r\n## Process\r\n\r\nA phase is executed to check all the methods. This check is done to know if:\r\n\r\n- The method is annoted (redefined or not)\r\n\r\n- The method is a redefinition of a method already having a contract (i.e a method that does not add any new conditions to the existing contract).\r\n\r\nWhen a contract is detected the code it's `extended` to add the verification features. A method is created to check the conditions of the contract.\r\n\r\n### Exemple\r\n\r\n#### Expect:\r\n```\r\nclass MyClass\r\n\tfun foo(x: Int)\r\n\tis\r\n\t\texpects(x > 0)\r\n\tdo\r\n\t\t[...]\r\n\tend\r\nend\r\n```\r\nRepresentation of the compiled class\r\n```\r\nclass MyClass\r\n\tfun foo(x: Int)\r\n\tis\r\n\t\texpects(x > 0)\r\n\tdo\r\n\t\tfoo_expects(x)\r\n\t\t[...]\r\n\tend\r\n\t\r\n\tfun foo_expects(x: Int)\r\n\tdo\r\n\t\tassert x > 0\r\n\tend\r\nend\r\n```\r\n#### Ensure:\r\n```\r\nclass MyClass\r\n\tfun foo(x: Int): Bool\r\n\tis\r\n\t\tensures(result == true)\r\n\tdo\r\n\t\t[...]\r\n\t\treturn true\r\n\tend\r\nend\r\n```\r\nRepresentation of the compiled class\r\n\r\n```\r\nclass MyClass\r\n\tfun foo(x: Int): Bool\r\n\tis\r\n\t\tensures(result == true)\r\n\tdo\r\n\t\t[...]\r\n\t\tvar result = true\r\n\t\tfoo_ensures(x, result)\r\n\t\treturn result\r\n\tend\r\n\t\r\n\tfun foo_ensures(x: Int, result: Bool)\r\n\tdo\r\n\t\tassert result == true\r\n\tend\r\nend\r\n```\r\n\r\n## Inheritance\r\n\r\nContracts support redefinition and adding condition. Noted that when a contract is defines in a parent class, it is no longer possible to remove this contract on all the classes that inherit or redefine them. They only need to be increased according to different subtyping rules.\r\n\r\nAll preconditions (expects) can be weakened. i.e it is possible to provide a new alternative to validate the contract. This corresponds to the use of a logical OR between the old and the new conditions.\r\n\r\nAll post-conditions (ensure) can be consolidate. i.e the new condition of the contract will provide a new guarantee to the user of the method. This rule can be translates into a logical AND between the old and the new conditions.\r\n\r\n### Exemple\r\n\r\n#### Expect\r\n\r\n```\r\nclass SubMyClass\r\n\tsuper MyClass\r\n\t\r\n\tredef fun foo(x: Int)\r\n\tis\r\n\t\texpects(x > 0, x == 0)\r\n\tdo\r\n\t\tfoo_expects(x)\r\n\t\t[...]\r\n\tend\r\n\t\r\n\tredef fun foo_expects(x: Int)\r\n\tdo\r\n\t\tif x == 0 then return\r\n\t\tassert super(x)\r\n\tend\r\nend\r\n```\r\n\r\n#### Ensure\r\n```\r\nclass SubMyClass\r\n\tsuper MyClass\r\n\t\r\n\tredef fun foo(x: Int): Bool\r\n\tis\r\n\t\tensures(result == true, x > 0)\r\n\tdo\r\n\t\t[...]\r\n\t\tvar result = true\r\n\t\tfoo_ensure(x, result)\r\n\t\treturn result\r\n\tend\r\n\t\r\n\tredef fun foo_ensures(x: Int, result: Bool)\r\n\tdo\r\n\t\tassert x > 0\r\n\t\tassert super(x, result)\r\n\tend\r\nend\r\n```\r\n\r\nSummary\r\n\r\n| Annotation | Inheritance condition type | \r\n| ------------- | -------------| \r\n| expects | And (&&) |\r\n| ensures | Or (\\|\\|) |\r\n\r\n## Invocation \r\n\r\nThe contracts extend the annotated methods by adding the call to the verification method. This means that once the method extended the execution of contracts will be systematically call (does not matter external or internal call). This part is subject to evolution in the months to come.\r\n","score":25.116352},{"url":"https://api.github.com/repos/nitlang/nit/issues/394","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/394/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/394/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/394/events","html_url":"https://github.com/nitlang/nit/issues/394","id":31243843,"node_id":"MDU6SXNzdWUzMTI0Mzg0Mw==","number":394,"title":"Receveurs nullables","user":{"login":"jpages","id":2535352,"node_id":"MDQ6VXNlcjI1MzUzNTI=","avatar_url":"https://avatars1.githubusercontent.com/u/2535352?v=4","gravatar_id":"","url":"https://api.github.com/users/jpages","html_url":"https://github.com/jpages","followers_url":"https://api.github.com/users/jpages/followers","following_url":"https://api.github.com/users/jpages/following{/other_user}","gists_url":"https://api.github.com/users/jpages/gists{/gist_id}","starred_url":"https://api.github.com/users/jpages/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpages/subscriptions","organizations_url":"https://api.github.com/users/jpages/orgs","repos_url":"https://api.github.com/users/jpages/repos","events_url":"https://api.github.com/users/jpages/events{/privacy}","received_events_url":"https://api.github.com/users/jpages/received_events","type":"User","site_admin":false},"labels":[{"id":55675455,"node_id":"MDU6TGFiZWw1NTY3NTQ1NQ==","url":"https://api.github.com/repos/nitlang/nit/labels/spec","name":"spec","color":"207de5","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/nitlang/nit/milestones/4","html_url":"https://github.com/nitlang/nit/milestone/4","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/4/labels","id":795157,"node_id":"MDk6TWlsZXN0b25lNzk1MTU3","number":4,"title":"v1.0prealpha","description":"The first public version that we are proud off and can be used sanely by non Nit people.","creator":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":22,"state":"open","created_at":"2014-09-19T00:16:45Z","updated_at":"2017-06-02T12:43:15Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2014-04-10T13:47:18Z","updated_at":"2015-05-21T15:19:28Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Dans le code suivant : \n\n``` ruby\n\nmodule test_nullable\n\nclass A\n fun foo\n do\n print \"foo dans A\"\n end\nend\n\nclass B\n var p: nullable A\n\n init\n do\n end\nend\n\nvar test = new B\n\n#Erreur de compilation ?\ntest.p.foo\n```\n\nOn s'attend à avoir une erreur de compilation qui nous dit que p est nullable et que cela empêche d'appeler `foo` sans faire de cast vers not null.\n\nPourtant actuellement, nit et nitg ne disent rien et une erreur est produite au runtime.\n","score":19.246428},{"url":"https://api.github.com/repos/nitlang/nit/issues/808","repository_url":"https://api.github.com/repos/nitlang/nit","labels_url":"https://api.github.com/repos/nitlang/nit/issues/808/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/808/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/808/events","html_url":"https://github.com/nitlang/nit/issues/808","id":44962286,"node_id":"MDU6SXNzdWU0NDk2MjI4Ng==","number":808,"title":"Appel de méthodes abstraites non redéfinies","user":{"login":"colinvidal","id":7349453,"node_id":"MDQ6VXNlcjczNDk0NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/7349453?v=4","gravatar_id":"","url":"https://api.github.com/users/colinvidal","html_url":"https://github.com/colinvidal","followers_url":"https://api.github.com/users/colinvidal/followers","following_url":"https://api.github.com/users/colinvidal/following{/other_user}","gists_url":"https://api.github.com/users/colinvidal/gists{/gist_id}","starred_url":"https://api.github.com/users/colinvidal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colinvidal/subscriptions","organizations_url":"https://api.github.com/users/colinvidal/orgs","repos_url":"https://api.github.com/users/colinvidal/repos","events_url":"https://api.github.com/users/colinvidal/events{/privacy}","received_events_url":"https://api.github.com/users/colinvidal/received_events","type":"User","site_admin":false},"labels":[{"id":55675455,"node_id":"MDU6TGFiZWw1NTY3NTQ1NQ==","url":"https://api.github.com/repos/nitlang/nit/labels/spec","name":"spec","color":"207de5","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/nitlang/nit/milestones/4","html_url":"https://github.com/nitlang/nit/milestone/4","labels_url":"https://api.github.com/repos/nitlang/nit/milestones/4/labels","id":795157,"node_id":"MDk6TWlsZXN0b25lNzk1MTU3","number":4,"title":"v1.0prealpha","description":"The first public version that we are proud off and can be used sanely by non Nit people.","creator":{"login":"privat","id":135828,"node_id":"MDQ6VXNlcjEzNTgyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/135828?v=4","gravatar_id":"","url":"https://api.github.com/users/privat","html_url":"https://github.com/privat","followers_url":"https://api.github.com/users/privat/followers","following_url":"https://api.github.com/users/privat/following{/other_user}","gists_url":"https://api.github.com/users/privat/gists{/gist_id}","starred_url":"https://api.github.com/users/privat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/privat/subscriptions","organizations_url":"https://api.github.com/users/privat/orgs","repos_url":"https://api.github.com/users/privat/repos","events_url":"https://api.github.com/users/privat/events{/privacy}","received_events_url":"https://api.github.com/users/privat/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":22,"state":"open","created_at":"2014-09-19T00:16:45Z","updated_at":"2017-06-02T12:43:15Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2014-10-06T09:09:06Z","updated_at":"2014-10-06T13:21:53Z","closed_at":null,"author_association":"NONE","body":"Avec le code suivant \n\n```\nclass A fun foo is abstract end\nclass B super A fun bar do self.foo end end\nvar b = new B\nb.bar\n```\n\nNitg ne détecte aucune erreur (avec nitg -W il y en a beaucoup, mais rien a voir avec ça), donc ça amène à une exception à l'exécution lors de l'appel à foo sur self (var a = new A a.foo pose le même soucis).\nTesté avec version v0.6.9-12-gd65a790.\n","score":19.246391}]}
\ No newline at end of file
--- /dev/null
+{"login":"Morriar","id":583144,"node_id":"MDQ6VXNlcjU4MzE0NA==","avatar_url":"https://avatars2.githubusercontent.com/u/583144?v=4","gravatar_id":"","url":"https://api.github.com/users/Morriar","html_url":"https://github.com/Morriar","followers_url":"https://api.github.com/users/Morriar/followers","following_url":"https://api.github.com/users/Morriar/following{/other_user}","gists_url":"https://api.github.com/users/Morriar/gists{/gist_id}","starred_url":"https://api.github.com/users/Morriar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Morriar/subscriptions","organizations_url":"https://api.github.com/users/Morriar/orgs","repos_url":"https://api.github.com/users/Morriar/repos","events_url":"https://api.github.com/users/Morriar/events{/privacy}","received_events_url":"https://api.github.com/users/Morriar/received_events","type":"User","site_admin":false,"name":"Alexandre Terrasa","company":null,"blog":"moz-code.org","location":null,"email":"alexandre@moz-code.org","hireable":null,"bio":null,"public_repos":96,"public_gists":1,"followers":42,"following":10,"created_at":"2011-01-25T17:50:36Z","updated_at":"2019-06-15T01:41:56Z"}
\ No newline at end of file
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module test_api is test
+
+intrude import api
+
+# GithubAPI testing
+#
+# To avoid test flakyness we test the GithubAPI against a mock of the real one.
+# For each api request we return a cache file of the real API response body.
+#
+# Cache files can be automatically created and updated by setting
+# `update_responses_cache` to `true` then running `nitunit`.
+class MockGithubAPI
+ super GithubAPI
+
+ # Mock so it returns the response from a file
+ #
+ # See `update_responses_cache`.
+ redef fun send(method, path, headers, body) do
+ print path # for debugging
+
+ assert has_response(path)
+
+ if update_responses_cache then
+ var file = response_file(path)
+ save_actual_response(path, file)
+ end
+
+ var response = response_string(path)
+ if response_is_error(path) then
+ last_error = new GithubAPIError(
+ response.parse_json.as(JsonObject)["message"].as(String),
+ response_code(path).to_i,
+ path
+ )
+ was_error = true
+ return null
+ end
+ return response
+ end
+
+ var test_responses: Map[String, String] do
+ var map = new HashMap[String, String]
+ map["/user"] = "user_Morriar"
+ map["/users/Morriar"] = "user_Morriar"
+ map["/repos/nitlang/nit"] = "repo_nit"
+ map["/repos/nitlang/nit/labels?page=1&per_page=3"] = "repo_labels_nit"
+ map["/repos/nitlang/nit/labels/ok_will_merge"] = "repo_labels_ok_will_merge"
+ map["/repos/nitlang/nit/milestones?page=1&per_page=3"] = "repo_milestones_nit"
+ map["/repos/nitlang/nit/milestones/4"] = "repo_milestones_4"
+ map["/repos/nitlang/nit/branches?page=1&per_page=2"] = "repo_branches_nit"
+ map["/repos/nitlang/nit/branches/master"] = "repo_branches_master"
+ map["/repos/nitlang/nit/issues?page=1&per_page=3"] = "repo_issues_nit"
+ map["/repos/nitlang/nit/issues/1000"] = "repo_issues_1000"
+ map["/repos/nitlang/nit/issues/1000/comments?page=1&per_page=3"] = "repo_issues_comments_nit"
+ map["/repos/nitlang/nit/issues/comments/6020149"] = "repo_issues_comments_6020149"
+ map["/repos/nitlang/nit/issues/1000/events?page=1&per_page=3"] = "repo_issues_events_nit"
+ map["/repos/nitlang/nit/issues/events/199674194"] = "repo_issues_events_199674194"
+ map["/repos/nitlang/nit/pulls?page=1&per_page=3"] = "repo_pulls_nit"
+ map["/repos/nitlang/nit/pulls/1000"] = "repo_pulls_1000"
+ map["/repos/nitlang/nit/pulls/945/comments?page=1&per_page=3"] = "repo_pulls_945_comments"
+ map["/repos/nitlang/nit/pulls/comments/21010363"] = "repo_pulls_comment_21010363"
+ map["/repos/nitlang/nit/commits/64ce1f"] = "repo_commits_64ce1f"
+ map["/repos/nitlang/nit/commits/4e3c688d/status"] = "repo_commits_4e3c68_status"
+ map["/repos/nitlang/nit/comments/8982707"] = "repo_comments_8982707"
+ map["/search/issues?q=foo repo:nitlang/nit&page=1&per_page=3"] = "repo_search_issues_nit"
+ map["/repos/nitlang/nit/stats/contributors"] = "repo_nit_contributors"
+ # errors
+ map["/users/not_found/not_found"] = "errors_404"
+ return map
+ end
+
+ # Does `self` have a mock response for Github `path`?
+ fun has_response(path: String): Bool do
+ return test_responses.has_key(path)
+ end
+
+ # Root responses cache directory
+ var responses_dir: String is lazy do
+ var path = "NIT_TESTING_PATH".environ.dirname / "mock"
+ path.mkdir
+ return path
+ end
+
+ # Returns the response file path for a Github `path`
+ fun response_file(path: String): String do
+ assert has_response(path)
+ return "{responses_dir / test_responses[path]}.res"
+ end
+
+ # Returns the response body string for a Github `path`
+ fun response_string(path: String): String do
+ var file = response_file(path)
+ assert file.file_exists
+ return file.to_path.read_all
+ end
+
+ # Is this response a simulated error?
+ fun response_is_error(path: String): Bool do
+ assert has_response(path)
+ return test_responses[path].has_prefix("errors_")
+ end
+
+ # Status code of a simulated error
+ #
+ # See `response_is_error`.
+ fun response_code(path: String): String do
+ assert response_is_error(path)
+ return test_responses[path].split("_").last
+ end
+
+ # Response caching
+
+ # Activate caching
+ #
+ # Change this value to `true` then run nitunit to cache the responses
+ # from the Github API.
+ #
+ # Default is `false`.
+ var update_responses_cache = false
+
+ # Save the actual Github API response body for `uri` to a `file`
+ private fun save_actual_response(uri, file: String) do
+ assert update_responses_cache
+
+ var request = new CurlHTTPRequest("{api_url}{sanitize_uri(uri)}")
+ request.user_agent = actual_api.user_agent
+ request.headers = actual_api.new_headers
+ var response = request.execute
+
+ if response isa CurlResponseSuccess then
+ response.body_str.write_to_file(file)
+ else if response isa CurlResponseFailed then
+ response.error_msg.write_to_file(file)
+ else abort
+
+ print "Response to `{uri}` saved at `{file}`"
+ end
+
+ # Actual GithubCurl instance used for caching
+ private var actual_api = new GithubAPI(get_github_oauth, "nitunit")
+end
+
+class TestGithubAPI
+ test
+
+ fun api: MockGithubAPI do return new MockGithubAPI("test", "test")
+
+ fun test_deserialize is test do
+ var response = api.response_string("/users/Morriar")
+ var obj = api.deserialize(response)
+ assert obj isa User
+ assert obj.login == "Morriar"
+ end
+
+ fun test_sanitize_url is test do
+ # TODO better tests
+ assert api.sanitize_uri("/repos/Nit with spaces/") == "/repos/Nit%20with%20spaces/"
+ end
+
+ fun test_get is test do
+ var api = self.api
+ var obj = api.get("/users/Morriar")
+ assert not api.was_error
+ assert api.last_error == null
+ assert obj isa User
+ assert obj.login == "Morriar"
+ end
+
+ fun test_get_404 is test do
+ var api = self.api
+ var res = api.get("/users/not_found/not_found")
+ assert res == null
+ assert api.was_error
+ var err = api.last_error
+ assert err isa GithubAPIError
+ assert err.status_code == 404
+ assert err.message == "Not Found"
+ end
+
+ # TODO test more error cases
+
+ fun test_get_auth_user is test do
+ var user = api.get_auth_user
+ assert user isa User
+ assert user.login == "Morriar"
+ assert user.avatar_url == "https://avatars2.githubusercontent.com/u/583144?v=4"
+ assert user.name == "Alexandre Terrasa"
+ assert user.email == "alexandre@moz-code.org"
+ assert user.blog == "moz-code.org"
+ end
+
+ fun test_get_user is test do
+ var user = api.get_user("Morriar")
+ assert user isa User
+ assert user.login == "Morriar"
+ assert user.avatar_url == "https://avatars2.githubusercontent.com/u/583144?v=4"
+ assert user.name == "Alexandre Terrasa"
+ assert user.email == "alexandre@moz-code.org"
+ assert user.blog == "moz-code.org"
+ end
+
+ fun test_get_repo is test do
+ var repo = api.get_repo("nitlang/nit")
+ assert repo isa Repo
+ assert repo.full_name == "nitlang/nit"
+ assert repo.name == "nit"
+ assert repo.owner.login == "nitlang"
+ assert repo.default_branch == "master"
+ end
+
+ fun test_get_branches is test do
+ var branches = api.get_repo_branches("nitlang/nit", 1, 2)
+ assert branches.length == 2
+ assert branches.first.name == "master"
+ assert branches.last.name == "next"
+ end
+
+ fun test_get_issues is test do
+ var issues = api.get_repo_issues("nitlang/nit", 1, 3)
+ assert issues.length == 3
+ assert issues.first.title == "nitrpg: Move `nitrpg` to its own repository"
+ assert issues.last.title == "Mock Github API tests"
+ end
+
+ fun test_search_issues is test do
+ var results = api.search_repo_issues("nitlang/nit", "foo", 1, 3)
+ assert results isa SearchResults
+ assert results.items.length == 3
+ assert results.items.first.as(Issue).title == "Introduction of contracts in Nit"
+ assert results.items.last.as(Issue).title == "Appel de méthodes abstraites non redéfinies"
+ end
+
+ fun test_get_labels is test do
+ var labels = api.get_repo_labels("nitlang/nit", 1, 3)
+ assert labels.length == 3
+ assert labels.first.name == "API"
+ assert labels.last.name == "NEP"
+ end
+
+ fun test_get_milestones is test do
+ var milestones = api.get_repo_milestones("nitlang/nit", 1, 3)
+ assert milestones.length == 3
+ assert milestones.first.title == "v1.0prealpha"
+ assert milestones.last.title == "nitdoc - Abstraction levels"
+ end
+
+ fun test_get_pulls is test do
+ var pulls = api.get_repo_pulls("nitlang/nit", 1, 3)
+ assert pulls.length == 3
+ assert pulls.first.title == "nitrpg: Move `nitrpg` to its own repository"
+ assert pulls.last.title == "Mock Github API tests"
+ end
+
+ fun test_get_branch is test do
+ var branch = api.get_branch("nitlang/nit", "master")
+ assert branch isa Branch
+ assert branch.name == "master"
+ end
+
+ fun test_get_commit is test do
+ var commit = api.get_commit("nitlang/nit", "64ce1f")
+ assert commit isa Commit
+ assert commit.sha == "64ce1f587209024f5de46d06c70526a569ff537f"
+ # TODO other fields
+ end
+
+ fun test_get_commit_status is test do
+ var status = api.get_commit_status("nitlang/nit", "4e3c688d")
+ assert status isa CommitStatus
+ assert status.state == "failure"
+ assert status.sha == "4e3c688d2c4b875c00f206eb4c4b6f2c4f34c096"
+ assert status.total_count == 1
+
+ var sub = status.statuses.first
+ assert sub.state == "failure"
+ assert sub.description == "Merged pipeline on gitlab: failed"
+ assert sub.context == "gitlab-ci"
+
+ var repo = status.repository
+ assert repo isa Repo
+ assert repo.full_name == "nitlang/nit"
+ end
+
+ fun test_get_issue is test do
+ var issue = api.get_issue("nitlang/nit", 1000)
+ assert issue isa Issue
+ assert issue.number == 1000
+ assert issue.title == "Raise nitc from the dead"
+ assert issue.user.as(User).login == "privat"
+ assert issue.comments == 7
+ assert issue.created_at == "2014-12-11T02:55:09Z"
+ assert issue.closed_at == "2014-12-13T15:38:09Z"
+ assert issue.closed_by.as(User).login == "privat"
+ assert issue.body == "Raise dead on `nitc`.\nIt's super effective...\n"
+ assert issue.is_pull_request
+ end
+
+ fun test_get_issue_comments is test do
+ var comments = api.get_issue_comments("nitlang/nit", 1000, 1, 3)
+ assert comments.length == 3
+ assert comments.first.user.login == "R4PaSs"
+ assert comments.last.user.login == "xymus"
+ end
+
+ fun test_get_issue_events is test do
+ var events = api.get_issue_events("nitlang/nit", 1000, 1, 3)
+ assert events.length == 3
+ assert events.first.actor.login == "privat"
+ assert events.last.actor.login == "xymus"
+ end
+
+ fun test_get_pull is test do
+ var pull = api.get_pull("nitlang/nit", 1000)
+ assert pull isa PullRequest
+ assert pull.number == 1000
+ assert pull.title == "Raise nitc from the dead"
+ assert pull.user.as(User).login == "privat"
+ assert pull.comments == 7
+ assert pull.created_at == "2014-12-11T02:55:09Z"
+ assert pull.closed_at == "2014-12-13T15:38:09Z"
+ assert pull.merged_by.as(User).login == "privat"
+ assert pull.body == "Raise dead on `nitc`.\nIt's super effective...\n"
+ end
+
+ fun test_get_pull_comments is test do
+ var comments = api.get_pull_comments("nitlang/nit", 945, 1, 3)
+ assert comments.length == 2
+ assert comments.first.path == "src/modelize/modelize_property.nit"
+ end
+
+ fun test_get_pull_comment is test do
+ var comment = api.get_pull_comment("nitlang/nit", 21010363)
+ assert comment isa PullComment
+ assert comment.path == "src/modelize/modelize_property.nit"
+ assert comment.original_position == 26
+ assert comment.pull_number == 945
+ # TODO other fields
+ end
+
+ fun test_get_label is test do
+ var labl = api.get_label("nitlang/nit", "ok_will_merge")
+ assert labl isa Label
+ assert labl.name == "ok_will_merge"
+ end
+
+ fun test_get_milestone is test do
+ var milestone = api.get_milestone("nitlang/nit", 4)
+ assert milestone isa Milestone
+ assert milestone.title == "v1.0prealpha"
+ # TODO other fields
+ end
+
+ fun test_get_issue_event is test do
+ var event = api.get_issue_event("nitlang/nit", 199674194)
+ assert event isa IssueEvent
+ assert event.actor.login == "privat"
+ assert event.event == "labeled"
+ assert event.labl.as(Label).name == "need_review"
+ end
+
+ fun test_get_issue_comment is test do
+ var comment = api.get_issue_comment("nitlang/nit", 6020149)
+ assert comment isa IssueComment
+ assert comment.user.login == "privat"
+ assert comment.created_at.to_s == "2012-05-30T20:16:54Z"
+ assert comment.issue_number == 10
+ end
+
+ fun test_get_comment is test do
+ var comment = api.get_commit_comment("nitlang/nit", 8982707)
+ assert comment isa CommitComment
+ assert comment.user.login == "Morriar"
+ assert comment.body == "For testing purposes...\n"
+ assert comment.commit_id == "7eacb86d1e24b7e72bc9ac869bf7182c0300ceca"
+ end
+
+ fun test_contributor_stats is test do
+ var stats = api.get_repo_contrib_stats("nitlang/nit")
+ assert stats.last.author.login == "privat"
+ assert stats.last.total == 4536
+ assert stats.last.weeks.length == 575
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module test_wallet is test
+
+import wallet
+
+redef class GithubAPI
+
+ # Tokens mocked as valid
+ #
+ # All other tokens will be considered as bad credentials.
+ var valid_tokens = ["t1", "t2"]
+
+ # Mock so it returns the response from a file
+ #
+ # See `update_responses_cache`.
+ redef fun get_auth_user do
+ if not valid_tokens.has(auth) then
+ was_error = true
+ last_error = new GithubAPIError("""{
+ "message":"Bad credentials",
+ "documentation_url":"https://developer.github.com/v3"
+ }""", 401, "/user")
+ return null
+ end
+
+ was_error = false
+ last_error = null
+ return new User("test")
+ end
+end
+
+class TestGithubWallet
+ test
+
+ fun test_get_next_token is test do
+ var wallet = new GithubWallet(["t1", "t2", "t3"])
+
+ for j in [1..3] do
+ for i in [1..3] do assert wallet.get_next_token == "t{i}"
+ end
+ end
+
+ fun test_get_api_only_bad is test do
+ var wallet = new GithubWallet(["bad1", "bad2"])
+ assert wallet.api.auth == "bad2"
+ assert wallet.api.auth == "bad2"
+ end
+
+ fun test_get_api is test do
+ var wallet = new GithubWallet(["bad1", "t1", "t2", "bad2"])
+ assert wallet.api.auth == "t1"
+ assert wallet.api.auth == "t2"
+ assert wallet.api.auth == "t1"
+ assert wallet.api.auth == "t2"
+ end
+end
# or
#
# ~~~
-# wallet = new GithubWallet.from_tokens(["token 1", "token 2"])
+# wallet = new GithubWallet(["token 1", "token 2"])
# ~~~
#
# The `show_status` method can be used to display a summary of the validity of
# instance with a fresh rate limit.
#
# ~~~
-# wallet = new GithubWallet.from_tokens(["token 1", "token 2"])
+# wallet = new GithubWallet(["token 1", "token 2"])
# var api = wallet.api
# ~~~
#
module wallet
import github
-import console
+import logger
# Github OAuth tokens wallet
class GithubWallet
# Github API tokens
- var tokens = new Array[String]
+ var tokens = new Array[String] is optional
- # Init `self` from a collection of tokens
- init from_tokens(tokens: Collection[String]) do self.tokens.add_all tokens
-
- # Do not use colors in console output
- var no_colors = false is writable
-
- # Display debug information about the token processing
- var verbose = false is writable
+ # Logger used to display info about tokens state
+ var logger = new Logger is optional, writable
# Add a new token in the wallet
fun add(token: String) do tokens.add token
fun api: GithubAPI do
var token
if tokens.is_empty then
- message "No tokens, using `get_github_oauth`"
+ logger.warn "No tokens, using `get_github_oauth`"
token = get_github_oauth
else
token = get_next_token
var tried = 0
while not check_token(token) do
if tried >= tokens.length - 1 then
- message "Exhausted all tokens, using {token}"
+ logger.warn "Exhausted all tokens, using {token}"
break
end
tried += 1
# Check if a token is valid
fun check_token(token: String): Bool do
- message "Try token {token}"
+ logger.debug "Try token {token}"
var api = new GithubAPI(token)
- api.load_repo("nitlang/nit")
+ api.get_auth_user
return not api.was_error
end
- # Print a message depending on `verbose`
- fun message(message: String) do if verbose then print "[Github Wallet] {message}"
-
# Show wallet status in console
- fun show_status do
+ fun show_status(no_color: nullable Bool) do
+ no_color = no_color or else false
+
if tokens.is_empty then
print "Wallet is empty"
return
for token in tokens do
var status
if check_token(token) then
- status = if no_colors then "OK" else "OK".green
+ status = if no_color then "OK" else "OK".green
else
- status = if no_colors then "KO" else "KO".red
+ status = if no_color then "KO" else "KO".red
end
print " * [{status}] {token}"
end
--- /dev/null
+# `ini` - Read and write INI configuration files
+
+[INI files](https://en.wikipedia.org/wiki/INI_file) are simple text files with
+a basic structure composed of sections, properties and values used to store
+configuration parameters.
+
+Here's an example from the `package.ini` of this package:
+
+~~~
+import ini
+
+var package_ini = """
+[package]
+name=ini
+desc=Read and write INI configuration files.
+[upstream]
+git=https://github.com/nitlang/nit.git
+git.directory=lib/ini/
+"""
+~~~
+
+## Basic usage
+
+`IniFile` is used to parse INI strings and access their content:
+
+~~~
+var ini = new IniFile.from_string(package_ini)
+assert ini["package.name"] == "ini"
+assert ini["upstream.git.directory"] == "lib/ini/"
+assert ini["unknown.unknown"] == null
+~~~
+
+`IniFile` can also load INI configuration from a file:
+
+~~~
+package_ini.write_to_file("my_package.ini")
+
+ini = new IniFile.from_file("my_package.ini")
+assert ini["package.name"] == "ini"
+assert ini["upstream.git.directory"] == "lib/ini/"
+
+"my_package.ini".to_path.delete
+~~~
+
+INI content can be added or edited through the `IniFile` API then written to
+a stream or a file.
+
+~~~
+ini["package.name"] = "new name"
+ini["upstream.git.directory"] = "/dev/null"
+ini["section.key"] = "value"
+
+var stream = new StringWriter
+ini.write_to(stream)
+
+assert stream.to_s == """
+[package]
+name=new name
+desc=Read and write INI configuration files.
+[upstream]
+git=https://github.com/nitlang/nit.git
+git.directory=/dev/null
+[section]
+key=value
+"""
+~~~
+
+## INI content
+
+### Properties
+
+Properties are the basic element of the INI format.
+Every property correspond to a *key* associated to a *value* thanks to the equal (`=`) sign.
+
+~~~
+ini = new IniFile.from_string("""
+key1=value1
+key2=value2
+""")
+assert ini["key1"] == "value1"
+assert ini["key2"] == "value2"
+assert ini.length == 2
+~~~
+
+Accessing an unknown property returns `null`:
+
+~~~
+assert ini["unknown"] == null
+~~~
+
+Properties can be iterated over:
+
+~~~
+var i = 1
+for key, value in ini do
+ assert key == "key{i}"
+ assert value == "value{i}"
+ i += 1
+end
+~~~
+
+Property keys cannot contain the character `=`.
+Values can contain any character.
+Spaces are trimmed.
+
+~~~
+ini = new IniFile.from_string("""
+prop=erty1=value1
+ property2 = value2
+property3=value3 ; with semicolon
+""")
+assert ini[";property1"] == null
+assert ini["prop=erty1"] == null
+assert ini["prop"] == "erty1=value1"
+assert ini["property2"] == "value2"
+assert ini[" property2 "] == "value2"
+assert ini["property3"] == "value3 ; with semicolon"
+~~~
+
+Both keys and values are case sensitive.
+
+~~~
+ini = new IniFile.from_string("""
+Property1=value1
+property2=Value2
+""")
+assert ini["property1"] == null
+assert ini["Property1"] == "value1"
+assert ini["property2"] != "value2"
+assert ini["property2"] == "Value2"
+~~~
+
+### Sections
+
+Properties may be grouped into arbitrary sections.
+The section name appears on a line by itself between square brackets (`[` and `]`).
+
+All keys after the section declaration are associated with that section.
+The is no explicit "end of section" delimiter; sections end at the next section
+declaration or the end of the file.
+Sections cannot be nested.
+
+~~~
+var content = """
+key1=value1
+key2=value2
+[section1]
+key1=value3
+key2=value4
+[section2]
+key1=value5
+"""
+
+ini = new IniFile.from_string(content)
+assert ini["key1"] == "value1"
+assert ini["unknown"] == null
+assert ini["section1.key1"] == "value3"
+assert ini["section1.unknown"] == null
+assert ini["section2.key1"] == "value5"
+~~~
+
+Sections can be iterated over:
+
+~~~
+i = 1
+for section in ini.sections do
+ assert section.name == "section{i}"
+ assert section["key1"].has_prefix("value")
+ i += 1
+end
+~~~
+
+When iterating over a file properties, only properties at root are returned.
+`flatten` can be used to iterate over all properties including the one from
+sections.
+
+~~~
+assert ini.join(", ", ": ") == "key1: value1, key2: value2"
+assert ini.flatten.join(", ", ": ") ==
+ "key1: value1, key2: value2, section1.key1: value3, section1.key2: value4, section2.key1: value5"
+
+i = 0
+for key, value in ini do
+ i += 1
+ assert key == "key{i}" and value == "value{i}"
+end
+assert i == 2
+
+~~~
+
+Sections name may contain any character including brackets (`[` and `]`).
+Spaces are trimmed.
+
+~~~
+ini = new IniFile.from_string("""
+[[section1]]
+key=value1
+[ section 2 ]
+key=value2
+[section1.section3]
+key=value3
+""")
+assert ini.sections.length == 3
+assert ini["[section1].key"] == "value1"
+assert ini["section 2.key"] == "value2"
+assert ini["section1.section3.key"] == "value3"
+assert ini.sections.last.name == "section1.section3"
+~~~
+
+The dot `.` notation is used to create new sections with `[]=`.
+Unknown sections will be created on the fly.
+
+~~~
+ini = new IniFile
+ini["key"] = "value1"
+ini["section1.key"] = "value2"
+ini["section2.key"] = "value3"
+
+stream = new StringWriter
+ini.write_to(stream)
+assert stream.to_s == """
+key=value1
+[section1]
+key=value2
+[section2]
+key=value3
+"""
+~~~
+
+Sections can also be created manually:
+
+~~~
+ini = new IniFile
+ini["key"] = "value1"
+
+var section = new IniSection("section1")
+section["key"] = "value2"
+ini.sections.add section
+
+stream = new StringWriter
+ini.write_to(stream)
+assert stream.to_s == """
+key=value1
+[section1]
+key=value2
+"""
+~~~
+
+### Comments
+
+Comments are indicated by semicolon (`;`) or a number sign (`#`) at the begining
+of the line. Commented lines are ignored as well as empty lines.
+
+~~~
+ini = new IniFile.from_string("""
+; This is a comment.
+; property1=value1
+
+# This is another comment.
+# property2=value2
+""")
+assert ini.is_empty
+~~~
+
+### Unicode support
+
+INI files support Unicode:
+
+~~~
+ini = new IniFile.from_string("""
+property❤=héhé
+""")
+assert ini["property❤"] == "héhé"
+~~~
+
+## Error handling
+
+By default `IniFile` does not stop when it cannot parse a line in a string (loaded
+by `from_string` or `load_string`) or a file (loaded by `from_file` or `load_file`).
+
+~~~
+ini = new IniFile.from_string("""
+key1=value1
+key2
+key3=value3
+""")
+
+assert ini.length == 2
+assert ini["key1"] == "value1"
+assert ini["key2"] == null
+assert ini["key3"] == "value3"
+~~~
+
+
+This behaviour can be modified by setting `stop_on_first_error` to `true`.
+
+~~~
+ini = new IniFile.from_string("""
+key1=value1
+key2
+key3=value3
+""", stop_on_first_error = true)
+
+assert ini.length == 1
+assert ini["key1"] == "value1"
+assert ini["key2"] == null
+assert ini["key3"] == null
+~~~
+
+Wathever the value set for `stop_on_first_error`, errors can be checked thanks
+to the `errors` array:
+
+~~~
+assert ini.errors.length == 1
+assert ini.errors.first.message == "Unexpected string `key2` at line 2."
+~~~
# See the License for the specific language governing permissions and
# limitations under the License.
-# Handle ini config files.
+# Read and write INI configuration files
module ini
-# A configuration tree that can read and store data in ini format
+import core
+intrude import core::collection::hash_collection
+
+# Read and write INI configuration files
+#
+# In an INI file, properties (or keys) are associated to values thanks to the
+# equals symbol (`=`).
+# Properties may be grouped into section marked between brackets (`[` and `]`).
+#
+# ~~~
+# var ini_string = """
+# ; Example INI
+# key=value1
+# [section1]
+# key=value2
+# [section2]
+# key=value3
+# """
+# ~~~
+#
+# The main class, `IniFile`, can be created from an INI string and allows easy
+# access to its content.
+#
+# ~~~
+# # Read INI from string
+# var ini = new IniFile.from_string(ini_string)
+#
+# # Check keys presence
+# assert ini.has_key("key")
+# assert ini.has_key("section1.key")
+# assert not ini.has_key("not.found")
+#
+# # Access values
+# assert ini["key"] == "value1"
+# assert ini["section2.key"] == "value3"
+# assert ini["not.found"] == null
+#
+# # Access sections
+# assert ini.sections.length == 2
+# assert ini.section("section1")["key"] == "value2"
+# ~~~
#
-# Write example:
+# `IniFile` can also be used to create new INI files from scratch, or edit
+# existing ones through its API.
#
-# var config = new ConfigTree("config.ini")
-# config["goo"] = "goo"
-# config["foo.bar"] = "foobar"
-# config["foo.baz"] = "foobaz"
-# config.save
-# assert config.to_map.length == 3
+# ~~~
+# # Create a new INI file and write it to disk
+# ini = new IniFile
+# ini["key"] = "value1"
+# ini["section1.key"] = "value2"
+# ini["section2.key"] = "value3"
+# ini.write_to_file("my_config.ini")
#
-# Read example:
+# # Load the INI file from disk
+# ini = new IniFile.from_file("my_config.ini")
+# assert ini["key"] == "value1"
+# assert ini["section1.key"] == "value2"
+# assert ini["section2.key"] == "value3"
#
-# config = new ConfigTree("config.ini")
-# assert config.has_key("foo.bar")
-# assert config["foo.bar"] == "foobar"
-class ConfigTree
+# "my_config.ini".to_path.delete
+# ~~~
+class IniFile
super Writable
+ super HashMap[String, nullable String]
- # The ini file used to read/store data
- var ini_file: String
-
- init do if ini_file.file_exists then load
+ # Create a IniFile from a `string` content
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key1=value1
+ # [section1]
+ # key2=value2
+ # """)
+ # assert ini["key1"] == "value1"
+ # assert ini["section1.key2"] == "value2"
+ # ~~~
+ #
+ # See also `stop_on_first_error` and `errors`.
+ init from_string(string: String, stop_on_first_error: nullable Bool) do
+ init stop_on_first_error or else false
+ load_string(string)
+ end
- # Get the config value for `key`
- #
- # var config = new ConfigTree("config.ini")
- # assert config["goo"] == "goo"
- # assert config["foo.bar"] == "foobar"
- # assert config["foo.baz"] == "foobaz"
- # assert config["fail.fail"] == null
- fun [](key: String): nullable String do
- var node = get_node(key)
- if node == null then return null
- return node.value
+ # Create a IniFile from a `file` content
+ #
+ # ~~~
+ # """
+ # key1=value1
+ # [section1]
+ # key2=value2
+ # """.write_to_file("my_config.ini")
+ #
+ # var ini = new IniFile.from_file("my_config.ini")
+ # assert ini["key1"] == "value1"
+ # assert ini["section1.key2"] == "value2"
+ #
+ # "my_config.ini".to_path.delete
+ # ~~~
+ #
+ # See also `stop_on_first_error` and `errors`.
+ init from_file(file: String, stop_on_first_error: nullable Bool) do
+ init stop_on_first_error or else false
+ load_file(file)
end
- # Get the config values under `key`
+ # Sections composing this IniFile
#
- # var config = new ConfigTree("config.ini")
- # var values = config.at("foo")
- # assert values.has_key("bar")
- # assert values.has_key("baz")
- # assert not values.has_key("goo")
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # [section1]
+ # key1=value1
+ # [ section 2 ]
+ # key2=value2
+ # """)
+ # assert ini.sections.length == 2
+ # assert ini.sections.first.name == "section1"
+ # assert ini.sections.last.name == "section 2"
+ # ~~~
+ var sections = new Array[IniSection]
+
+ # Get a section by its `name`
#
- # Return null if the key does not exists.
+ # Returns `null` if the section is not found.
#
- # assert config.at("fail.fail") == null
- fun at(key: String): nullable Map[String, String] do
- var node = get_node(key)
- if node == null then return null
- var map = new HashMap[String, String]
- for k, child in node.children do
- var value = child.value
- if value == null then continue
- map[k] = value
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # [section1]
+ # key1=value1
+ # [section2]
+ # key2=value2
+ # """)
+ # assert ini.section("section1") isa IniSection
+ # assert ini.section("section2").name == "section2"
+ # assert ini.section("not.found") == null
+ # ~~~
+ fun section(name: String): nullable IniSection do
+ for section in sections do
+ if section.name == name then return section
end
- return map
+ return null
end
- # Set `value` at `key`
- #
- # var config = new ConfigTree("config.ini")
- # assert config["foo.bar"] == "foobar"
- # config["foo.bar"] = "baz"
- # assert config["foo.bar"] == "baz"
- fun []=(key: String, value: nullable String) do
- set_node(key, value)
+ # Does this file contains no properties and no sections?
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("")
+ # assert ini.is_empty
+ #
+ # ini = new IniFile.from_string("""
+ # key=value
+ # """)
+ # assert not ini.is_empty
+ #
+ # ini = new IniFile.from_string("""
+ # [section]
+ # """)
+ # assert not ini.is_empty
+ # ~~~
+ redef fun is_empty do return super and sections.is_empty
+
+ # Is there a property located at `key`?
+ #
+ # Returns `true` if the `key` is not found of if its associated value is `null`.
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key=value1
+ # [section1]
+ # key=value2
+ # [section2]
+ # key=value3
+ # """)
+ # assert ini.has_key("key")
+ # assert ini.has_key("section1.key")
+ # assert ini.has_key("section2.key")
+ # assert not ini.has_key("section1")
+ # assert not ini.has_key("not.found")
+ # ~~~
+ redef fun has_key(key) do return self[key] != null
+
+ # Get the value associated with a property (`key`)
+ #
+ # Returns `null` if the key is not found.
+ # Section properties can be accessed with the `.` notation.
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key=value1
+ # [section1]
+ # key=value2
+ # [section2]
+ # key=value3
+ # """)
+ # assert ini["key"] == "value1"
+ # assert ini["section1.key"] == "value2"
+ # assert ini["section2.key"] == "value3"
+ # assert ini["section1"] == null
+ # assert ini["not.found"] == null
+ # ~~~
+ redef fun [](key) do
+ if key == null then return null
+ key = key.to_s.trim
+
+ # Look in root
+ var node = node_at(key)
+ if node != null then return node.value
+
+ # Look in sections
+ for section in sections do
+ # Matched if the section name is a prefix of the key
+ if not key.has_prefix(section.name) then continue
+ var skey = key.substring(section.name.length + 1, key.length)
+ if section.has_key(skey) then return section[skey]
+ end
+ return null
end
- # Is `key` in the config?
- #
- # var config = new ConfigTree("config.ini")
- # assert config.has_key("goo")
- # assert config.has_key("foo.bar")
- # assert not config.has_key("zoo")
- fun has_key(key: String): Bool do
- var parts = key.split(".").reversed
- var node = get_root(parts.pop)
- if node == null then return false
- while not parts.is_empty do
- node = node.get_child(parts.pop)
- if node == null then return false
+ # Set the `value` for the property locaated at `key`
+ #
+ # ~~~
+ # var ini = new IniFile
+ # ini["key"] = "value1"
+ # ini["section1.key"] = "value2"
+ # ini["section2.key"] = "value3"
+ #
+ # assert ini["key"] == "value1"
+ # assert ini["section1.key"] == "value2"
+ # assert ini["section2.key"] == "value3"
+ # assert ini.section("section1").name == "section1"
+ # assert ini.section("section2")["key"] == "value3"
+ # ~~~
+ redef fun []=(key, value) do
+ if value == null then return
+ var parts = key.split_once_on(".")
+
+ # No dot notation, store value in root
+ if parts.length == 1 then
+ super(key.trim, value.trim)
+ return
+ end
+
+ # First part matches a section, store value in it
+ var section = self.section(parts.first.trim)
+ if section != null then
+ section[parts.last.trim] = value.trim
+ return
end
- return true
+
+ # No section matched, create a new one and store value in it
+ section = new IniSection(parts.first.trim)
+ section[parts.last.trim] = value.trim
+ sections.add section
end
- # Get `self` as a Map of `key`, `value`
- #
- # var config = new ConfigTree("config.ini")
- # var map = config.to_map
- # assert map.has_key("goo")
- # assert map.has_key("foo.bar")
- # assert map.has_key("foo.baz")
- # assert map.length == 3
- fun to_map: Map[String, String] do
+ # Flatten `self` and its subsection in a `Map` of keys => values
+ #
+ # Properties from section are prefixed with their section names with the
+ # dot (`.`) notation.
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key=value1
+ # [section]
+ # key=value2
+ # """)
+ # assert ini.flatten.join(", ", ": ") == "key: value1, section.key: value2"
+ # ~~~
+ fun flatten: Map[String, String] do
var map = new HashMap[String, String]
- for node in leaves do
- var value = node.value
+ for key, value in self do
if value == null then continue
- map[node.key] = value
+ map[key] = value
+ end
+ for section in sections do
+ for key, value in section do
+ if value == null then continue
+ map["{section.name}.{key}"] = value
+ end
end
return map
end
- redef fun to_s do return to_map.join(", ", ":")
-
- # Write `self` in `stream`
- #
- # var config = new ConfigTree("config.ini")
- # var out = new StringWriter
- # config.write_to(out)
- # assert out.to_s == """
- # goo=goo
- # [foo]
- # bar=foobar
- # baz=foobaz
- # """
+ # Write `self` to a `stream`
+ #
+ # Key with `null` values are ignored.
+ # The empty string can be used to represent an empty value.
+ #
+ # ~~~
+ # var ini = new IniFile
+ # ini["key"] = "value1"
+ # ini["key2"] = null
+ # ini["key3"] = ""
+ # ini["section1.key"] = "value2"
+ # ini["section1.key2"] = null
+ # ini["section2.key"] = "value3"
+ #
+ # var stream = new StringWriter
+ # ini.write_to(stream)
+ #
+ # assert stream.to_s == """
+ # key=value1
+ # key3=
+ # [section1]
+ # key=value2
+ # [section2]
+ # key=value3
+ # """
+ # ~~~
redef fun write_to(stream) do
- var todo = new Array[ConfigNode].from(roots.reversed)
- while not todo.is_empty do
- var node = todo.pop
- if node.children.not_empty then
- todo.add_all node.children.values.to_a.reversed
- end
- if node.children.not_empty and node.parent == null then
- stream.write("[{node.name}]\n")
- end
- var value = node.value
+ for key, value in self do
if value == null then continue
- var path = node.path
- if path.length > 1 then path.shift
- stream.write("{path.join(".")}={value}\n")
+ stream.write "{key}={value}\n"
+ end
+ for section in sections do
+ stream.write "[{section.name}]\n"
+ for key, value in section do
+ if value == null then continue
+ stream.write "{key}={value}\n"
+ end
end
end
- # Reload config from file
- # Done automatically at init
- #
- # Example with hierarchical ini file:
- #
- # # init file
- # var str = """
- # foo.bar=foobar
- # foo.baz=foobaz
- # goo=goo"""
- # str.write_to_file("config1.ini")
- # # load file
- # var config = new ConfigTree("config1.ini")
- # assert config["foo.bar"] == "foobar"
- #
- # Example with sections:
- #
- # # init file
- # str = """
- # goo=goo
- # [foo]
- # bar=foobar
- # baz=foobaz
- # [boo]
- # bar=boobar"""
- # str.write_to_file("config2.ini")
- # # load file
- # config = new ConfigTree("config2.ini")
- # assert config["foo.bar"] == "foobar"
- # assert config["boo.bar"] == "boobar"
- #
- # Example with both hierarchy and section:
- #
- # # init file
- # str = """
- # goo=goo
- # [foo]
- # bar.baz=foobarbaz
- # [goo.boo]
- # bar=gooboobar
- # baz.bar=gooboobazbar"""
- # str.write_to_file("config3.ini")
- # # load file
- # config = new ConfigTree("config3.ini")
- # assert config["goo"] == "goo"
- # assert config["foo.bar.baz"] == "foobarbaz"
- # assert config["goo.boo.bar"] == "gooboobar"
- # assert config["goo.boo.baz.bar"] == "gooboobazbar"
- #
- # Using the array notation
- #
- # str = """
- # foo[]=a
- # foo[]=b
- # foo[]=c"""
- # str.write_to_file("config4.ini")
- # # load file
- # config = new ConfigTree("config4.ini")
- # print config.to_map.join(":", ",")
- # assert config["foo.0"] == "a"
- # assert config["foo.1"] == "b"
- # assert config["foo.2"] == "c"
- # assert config.at("foo").values.join(",") == "a,b,c"
- fun load do
- roots.clear
- var stream = new FileReader.open(ini_file)
- var path: nullable String = null
- var line_number = 0
+ # Read INI content from `string`
+ #
+ # ~~~
+ # var ini = new IniFile
+ # ini.load_string("""
+ # section1.key1=value1
+ # section1.key2=value2
+ # [section2]
+ # key=value3
+ # """)
+ # assert ini["section1.key1"] == "value1"
+ # assert ini["section1.key2"] == "value2"
+ # assert ini["section2.key"] == "value3"
+ # ~~~
+ #
+ # Returns `true` if the parsing finished correctly.
+ #
+ # See also `stop_on_first_error` and `errors`.
+ fun load_string(string: String): Bool do
+ var stream = new StringReader(string)
+ var last_section = null
+ var was_error = false
+ var i = 0
while not stream.eof do
- var line = stream.read_line
- line_number += 1
+ i += 1
+ var line = stream.read_line.trim
if line.is_empty then
continue
else if line.has_prefix(";") then
continue
+ else if line.has_prefix("#") then
+ continue
else if line.has_prefix("[") then
- line = line.trim
- var key = line.substring(1, line.length - 2)
- path = key
- set_node(path, null)
+ var section = new IniSection(line.substring(1, line.length - 2).trim)
+ sections.add section
+ last_section = section
+ continue
else
var parts = line.split_once_on("=")
- if parts.length == 1 then
+ if parts.length != 2 then
+ # FIXME silent skip?
+ # we definitely need exceptions...
+ was_error = true
+ errors.add new IniError("Unexpected string `{line}` at line {i}.")
+ if stop_on_first_error then return was_error
continue
end
var key = parts[0].trim
- var val = parts[1].trim
- if path != null then key = "{path}.{key}"
- if key.has_suffix("[]") then
- set_array(key, val)
+ var value = parts[1].trim
+
+ if last_section != null then
+ last_section[key] = value
else
- set_node(key,val)
+ self[key] = value
end
end
end
stream.close
+ return was_error
end
- # Save config to file
- fun save do write_to_file(ini_file)
-
- private var roots = new Array[ConfigNode]
-
- # Append `value` to array at `key`
- private fun set_array(key: String, value: nullable String) do
- key = key.substring(0, key.length - 2)
- var len = 0
- var node = get_node(key)
- if node != null then len = node.children.length
- set_node("{key}.{len.to_s}", value)
- end
-
- private fun set_node(key: String, value: nullable String) do
- var parts = key.split(".").reversed
- var k = parts.pop
- var root = get_root(k)
- if root == null then
- root = new ConfigNode(k)
- if parts.is_empty then
- root.value = value
- end
- roots.add root
- end
- while not parts.is_empty do
- k = parts.pop
- var node = root.get_child(k)
- if node == null then
- node = new ConfigNode(k)
- node.parent = root
- root.children[node.name] = node
- end
- if parts.is_empty then
- node.value = value
- end
- root = node
- end
- end
-
- private fun get_node(key: String): nullable ConfigNode do
- var parts = key.split(".").reversed
- var node = get_root(parts.pop)
- while node != null and not parts.is_empty do
- node = node.get_child(parts.pop)
- end
- return node
- end
+ # Load a `file` content as INI
+ #
+ # New properties will be appended to the `self`, existing properties will be
+ # overwrote by the values contained in `file`.
+ #
+ # ~~~
+ # var ini = new IniFile
+ # ini["key1"] = "value1"
+ # ini["key2"] = "value2"
+ #
+ # """
+ # key2=changed
+ # key3=added
+ # """.write_to_file("load_config.ini")
+ #
+ # ini.load_file("load_config.ini")
+ # assert ini["key1"] == "value1"
+ # assert ini["key2"] == "changed"
+ # assert ini["key3"] == "added"
+ #
+ # "load_config.ini".to_path.delete
+ # ~~~
+ #
+ # The process fails silently if the file does not exist.
+ #
+ # ~~~
+ # ini = new IniFile
+ # ini.load_file("ini_not_found.ini")
+ # assert ini.is_empty
+ # ~~~
+ #
+ # Returns `true` if the parsing finished correctly.
+ #
+ # See also `stop_on_first_error` and `errors`.
+ fun load_file(file: String): Bool do return load_string(file.to_path.read_all)
- private fun get_root(name: String): nullable ConfigNode do
- for root in roots do
- if root.name == name then return root
- end
- return null
- end
+ # Stop parsing on the first error
+ #
+ # By default, `load_string` will skip unparsable properties so the string can
+ # be loaded.
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key1=value1
+ # key2
+ # key3=value3
+ # """)
+ #
+ # assert ini.length == 2
+ # assert ini["key1"] == "value1"
+ # assert ini["key2"] == null
+ # assert ini["key3"] == "value3"
+ # ~~~
+ #
+ # Set `stop_on_first_error` to `true` to force the parsing to stop.
+ #
+ # ~~~
+ # ini = new IniFile
+ # ini.stop_on_first_error = true
+ # ini.load_string("""
+ # key1=value1
+ # key2
+ # key3=value3
+ # """)
+ #
+ # assert ini.length == 1
+ # assert ini["key1"] == "value1"
+ # assert ini["key2"] == null
+ # assert ini["key3"] == null
+ # ~~~
+ #
+ # See also `errors`.
+ var stop_on_first_error = false is optional, writable
- private fun leaves: Array[ConfigNode] do
- var res = new Array[ConfigNode]
- var todo = new Array[ConfigNode]
- todo.add_all roots
- while not todo.is_empty do
- var node = todo.pop
- if node.children.is_empty then
- res.add node
- else
- todo.add_all node.children.values
- end
- end
- return res
- end
+ # Errors found during parsing
+ #
+ # Wathever the value of `stop_on_first_error`, errors from parsing a string
+ # or a file are logged into `errors`.
+ #
+ # ~~~
+ # var ini = new IniFile.from_string("""
+ # key1=value1
+ # key2
+ # key3=value3
+ # """)
+ #
+ # assert ini.errors.length == 1
+ # assert ini.errors.first.message == "Unexpected string `key2` at line 2."
+ # ~~~
+ #
+ # `errors` is not cleared between two parsing:
+ #
+ # ~~~
+ # ini.load_string("""
+ # key4
+ # key5=value5
+ # """)
+ #
+ # assert ini.errors.length == 2
+ # assert ini.errors.last.message == "Unexpected string `key4` at line 1."
+ # ~~~
+ #
+ # See also `stop_on_first_error`.
+ var errors = new Array[IniError]
end
-private class ConfigNode
-
- var parent: nullable ConfigNode = null
- var children = new HashMap[String, ConfigNode]
- var name: String is writable
- var value: nullable String = null
+# A section in a IniFile
+#
+# Section properties values are strings associated keys.
+# Sections cannot be nested.
+#
+# ~~~
+# var section = new IniSection("section")
+# section["key1"] = "value1"
+# section["key2"] = "value2"
+#
+# assert section.length == 2
+# assert section["key1"] == "value1"
+# assert section["not.found"] == null
+# assert section.join(", ", ": ") == "key1: value1, key2: value2"
+#
+# var i = 0
+# for key, value in section do
+# assert key.has_prefix("key")
+# assert value.has_prefix("value")
+# i += 1
+# end
+# assert i == 2
+# ~~~
+class IniSection
+ super HashMap[String, nullable String]
- fun key: String do
- var parent = self.parent
- if parent == null then
- return name
- end
- return "{parent.key}.{name}"
- end
+ # Section name
+ var name: String
- fun path: Array[String] do
- var parent = self.parent
- if parent == null then
- return [name]
- end
- var res = new Array[String].from(parent.path)
- res.add name
- return res
+ # Get the value associated with `key`
+ #
+ # Returns `null` if the `key` is not found.
+ #
+ # ~~~
+ # var section = new IniSection("section")
+ # section["key"] = "value1"
+ # section["sub.key"] = "value2"
+ #
+ # assert section["key"] == "value1"
+ # assert section["sub.key"] == "value2"
+ # assert section["not.found"] == null
+ # ~~~
+ redef fun [](key) do
+ if not has_key(key) then return null
+ return super
end
+end
- fun get_child(name: String): nullable ConfigNode do
- if children.has_key(name) then
- return children[name]
- end
- return null
- end
+# Error for `IniFile` parsing
+class IniError
+ super Error
end
tags=format,lib
maintainer=Alexandre Terrasa <alexandre@moz-code.org>
license=Apache-2.0
-desc=Handle ini config files
+desc=Read and write INI configuration files
[upstream]
browse=https://github.com/nitlang/nit/tree/master/lib/ini/
git=https://github.com/nitlang/nit.git
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A simple logger for Nit
+#
+# ## Basic Usage
+#
+# Create a new `Logger` with a severity level threshold set to `warn_level`:
+#
+# ~~~
+# var logger = new Logger(warn_level)
+# ~~~
+#
+# Messages with a severity equal or higher than `warn_level` will be displayed:
+#
+# ~~~
+# logger.error "Displays an error."
+# logger.warn "Displays a warning."
+# ~~~
+#
+# Messages with a lower severity are silenced:
+#
+# ~~~
+# logger.info "Displays nothing."
+# ~~~
+#
+# `FileLogger` can be used to output the messages into a file:
+#
+# ~~~
+# var log_file = "my.log"
+#
+# logger = new FileLogger(warn_level, log_file, append = false)
+# logger.error("An error")
+# logger.info("Some info")
+# logger.close
+#
+# assert log_file.to_path.read_all == "An error\n"
+# log_file.to_path.delete
+# ~~~
+#
+# ## Severity levels
+#
+# Each message is associated with a level that indicate its severity.
+# Only messages with a severity equal to or higher than the logger `level`
+# threshold will be displayed.
+#
+# Severity levels from the most severe to the least severe:
+#
+# * `unknown_level`: An unknown message that should always be outputted.
+# * `fatal_level`: An unhandleable error that results in a program crash.
+# * `error_level`: A handleable error condition.
+# * `warn_level`: A warning.
+# * `info_level`: Generic (useful) information about system operation.
+# * `debug_level`: Low-level information for developpers.
+#
+# ## Formatting messages
+#
+# You can create custom formatters by implementing the `Formatter` interface.
+#
+# ~~~
+# class MyFormatter
+# super Formatter
+#
+# redef fun format(level, message) do
+# if level < warn_level then return super
+# return "!!!{message}!!!"
+# end
+# end
+# ~~~
+#
+# See `DefaultFormatter` for a more advanced implementation example.
+#
+# Each Logger can be given a default formatter used to format the every messages
+# before outputting them:
+#
+# ~~~
+# var formatter = new MyFormatter
+# var stderr = new StringWriter
+# var logger = new Logger(warn_level, stderr, formatter)
+#
+# logger.warn("This is a warning.")
+# assert stderr.to_s.trim.split("\n").last == "!!!This is a warning.!!!"
+# ~~~
+#
+# Optionally, a `Formatter` can be given to replace the `default_formatter`
+# used by default:
+#
+# ~~~
+# # Create a formatter with no default decorator
+# logger = new Logger(warn_level, stderr, null)
+#
+# # Display a message without any formatter
+# logger.warn("This is a warning.")
+# assert stderr.to_s.trim.split("\n").last == "This is a warning."
+#
+# # Display a message with a custom formatter
+# logger.warn("This is a warning.", formatter)
+# assert stderr.to_s.trim.split("\n").last == "!!!This is a warning.!!!"
+# ~~~
+module logger
+
+import console
+
+# A simple logging utility
+#
+# `Logger` provides a simple way to output messages from applications.
+#
+# Each message is associated with a level that indicate its severity.
+# Only messages with a severity equal to or higher than the logger `level`
+# threshold will be displayed.
+#
+# ~~~
+# var logger = new Logger(warn_level)
+# assert logger.unknown("unkown")
+# assert logger.fatal("fatal")
+# assert logger.error("error")
+# assert logger.warn("warn")
+# assert not logger.info("info")
+# assert not logger.debug("debug")
+# ~~~
+class Logger
+
+ # Severity threshold
+ #
+ # Messages with a severity level greater than or equal to `level` will be displayed.
+ # Default is `warn_level`.
+ #
+ # See `unknown_level`, `fatal_level`, error_level``, `warn_level`,
+ # `info_level` and `debug_level`.
+ var level: Int = warn_level is optional, writable
+
+ # Kind of `Writer` used to output messages
+ type OUT: Writer
+
+ # Writer used to output messages
+ #
+ # Default is `stderr`.
+ var out: OUT = stderr is optional
+
+ # Formatter used to format messages before outputting them
+ #
+ # By default no formatter is used.
+ #
+ # See `DefaultFormatter`.
+ var default_formatter: nullable Formatter = null is optional, writable
+
+ # Output a message with `level` severity
+ #
+ # Only output messages with `level` severity greater than of equal to `self.level`.
+ #
+ # ~~~
+ # var stderr = new StringWriter
+ # var logger = new Logger(warn_level, stderr, null)
+ #
+ # # This message will be displayed:
+ # assert logger.warn("This is a warning.")
+ # assert stderr.to_s.trim.split("\n").last == "This is a warning."
+ #
+ # # This message will not:
+ # assert not logger.info("This is some info.")
+ # assert stderr.to_s.trim.split("\n").last == "This is a warning."
+ # ~~~
+ #
+ # Each logger can be given a default formatter used to format the messages
+ # before outputting them:
+ #
+ # ~~~
+ # var formatter = new DefaultFormatter(no_color = true)
+ # logger = new Logger(warn_level, stderr, formatter)
+ # logger.warn("This is a warning.")
+ # assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
+ # ~~~
+ #
+ # Optionally, a `Formatter` can be given to replace the `default_formatter`
+ # used by default.
+ #
+ # ~~~
+ # # Create a formatter with no default decorator
+ # logger = new Logger(warn_level, stderr, null)
+ #
+ # # Display a message without any formatter
+ # logger.warn("This is a warning.")
+ # assert stderr.to_s.trim.split("\n").last == "This is a warning."
+ #
+ # # Display a message with a custom formatter
+ # logger.warn("This is a warning.", formatter)
+ # assert stderr.to_s.trim.split("\n").last == "Warning: This is a warning."
+ # ~~~
+ fun add(level: Int, message: Writable, formatter: nullable Formatter): Bool do
+ var format = formatter or else default_formatter
+ if format == null then
+ return add_raw(level, message)
+ end
+ return add_raw(level, format.format(level, message))
+ end
+
+ # Output a message with `level` severity without formatting it
+ #
+ # Only output messages with `level` severity greater than of equal to `self.level`.
+ #
+ # ~~~
+ # var stderr = new StringWriter
+ # var logger = new Logger(warn_level, stderr, null)
+ #
+ # # This message will be displayed:
+ # assert logger.add_raw(warn_level, "This is a warning.")
+ # assert stderr.to_s.trim.split("\n").last == "This is a warning."
+ #
+ # # This message will not:
+ # assert not logger.add_raw(info_level, "This is some info.")
+ # assert stderr.to_s.trim.split("\n").last == "This is a warning."
+ # ~~~
+ fun add_raw(level: Int, message: Writable): Bool do
+ if level < self.level then return false
+ out.write(message.write_to_string)
+ out.write("\n")
+ return true
+ end
+
+ # Output a message with `unknown_level` severity
+ #
+ # Unkown severity messages are always outputted.
+ fun unknown(message: String, formatter: nullable Formatter): Bool do
+ return add(unknown_level, message, formatter)
+ end
+
+ # Output a message with `fatal_level` severity
+ fun fatal(message: String, formatter: nullable Formatter): Bool do
+ return add(fatal_level, message, formatter)
+ end
+
+ # Output a message with `error_level` severity
+ fun error(message: String, formatter: nullable Formatter): Bool do
+ return add(error_level, message, formatter)
+ end
+
+ # Output a message with `warn_level` severity
+ fun warn(message: String, formatter: nullable Formatter): Bool do
+ return add(warn_level, message, formatter)
+ end
+
+ # Output a message with `info_level` severity
+ fun info(message: String, formatter: nullable Formatter): Bool do
+ return add(info_level, message, formatter)
+ end
+
+ # Output a message with `debug` severity
+ fun debug(message: String, formatter: nullable Formatter): Bool do
+ return add(debug_level, message, formatter)
+ end
+end
+
+# Log messages to a file
+#
+# ~~~
+# var log_file = "my_file.log"
+# var logger = new FileLogger(warn_level, log_file, append = false)
+# logger.error("An error")
+# logger.info("Some info")
+# logger.close
+# assert log_file.to_path.read_all == "An error\n"
+#
+# logger = new FileLogger(warn_level, log_file, append = true)
+# logger.error("Another error")
+# logger.close
+# assert log_file.to_path.read_all == "An error\nAnother error\n"
+#
+# log_file.to_path.delete
+# ~~~
+class FileLogger
+ super Logger
+ autoinit level, file, append, default_formatter
+
+ redef type OUT: FileWriter
+
+ # File where messages will be written
+ var file: String
+
+ # Append messages to `file`
+ #
+ # If `append` is `false`, the `file` will be overwritten.
+ var append: Bool = true is optional
+
+ init do
+ var old = null
+ if append then
+ old = file.to_path.read_all
+ end
+ out = new FileWriter.open(file)
+ out.set_buffering_mode(0, buffer_mode_line)
+ if old != null then
+ out.write(old)
+ end
+ end
+
+ # Close the logger and its `file`
+ fun close do out.close
+end
+
+# Format messages before outputing them
+#
+# A `Logger` can use a `Formatter` to format the messages before outputting them.
+#
+# See `DefaultFormatter`.
+interface Formatter
+
+ # Format `message` depending of its severity `level`
+ fun format(level: Int, message: Writable): Writable do return message
+end
+
+# Default `Logger` formatter
+#
+# The default formatter decorates the messages with severity labels and colors.
+class DefaultFormatter
+ super Formatter
+
+ # Do not decorate messages with colors
+ #
+ # ~~~
+ # var formatter = new DefaultFormatter(no_color = true)
+ # assert formatter.format(error_level, "My message.") == "Error: My message."
+ # ~~~
+ var no_color = false is optional, writable
+
+ redef fun format(level, message) do
+ var string = message.write_to_string
+
+ if level == fatal_level then
+ string = "Fatal: {string}"
+ else if level == error_level then
+ string = "Error: {string}"
+ else if level == warn_level then
+ string = "Warning: {string}"
+ else if level == info_level then
+ string = "Info: {string}"
+ else if level == debug_level then
+ string = "Debug: {string}"
+ end
+
+ if no_color then return string
+
+ if level == fatal_level then
+ return string.red
+ else if level == error_level then
+ return string.red
+ else if level == warn_level then
+ return string.yellow
+ else if level == info_level then
+ return string.purple
+ else if level == debug_level then
+ return string.blue
+ end
+
+ return string
+ end
+end
+
+redef class Sys
+
+ # Unknown severity level
+ #
+ # These messages are always displayed.
+ #
+ # See `Logger`.
+ var unknown_level = 5
+
+ # Fatal severity level
+ #
+ # See `Logger`.
+ var fatal_level = 4
+
+ # Error severity level
+ #
+ # See `Logger`.
+ var error_level = 3
+
+ # Warning severity level
+ #
+ # See `Logger`.
+ var warn_level = 2
+
+ # Info severity level
+ #
+ # See `Logger`.
+ var info_level = 1
+
+ # Debug severity level
+ #
+ # See `Logger`.
+ var debug_level = 0
+end
[package]
-name=wiringPi
-tags=embedded,wrapper
+name=logger
+tags=logging,lib
maintainer=Alexandre Terrasa <alexandre@moz-code.org>
license=Apache-2.0
-desc=wiringPi nit wrapper
+desc=A simple logger for Nit
[upstream]
-browse=https://github.com/nitlang/nit/tree/master/contrib/wiringPi/
+browse=https://github.com/nitlang/nit/tree/master/lib/logger/
git=https://github.com/nitlang/nit.git
-git.directory=contrib/wiringPi/
+git.directory=lib/logger/
homepage=http://nitlanguage.org
issues=https://github.com/nitlang/nit/issues
#
# var res = col.aggregate("""[
# { "$match": { "status": "A" } },
- # { "$group": { "_id": "$cust_id", "total": { "$sum": "$amount" } } }
+ # { "$group": { "_id": "$cust_id", "total": { "$sum": "$amount" } } },
+ # { "$sort" : { "_id": 1 } }
# ]""".parse_json.as(JsonArray))
#
- # assert res[0].to_json == """{"_id":"B212","total":200}"""
- # assert res[1].to_json == """{"_id":"A123","total":750}"""
+ # assert res[0].to_json == """{"_id":"A123","total":750}"""
+ # assert res[1].to_json == """{"_id":"B212","total":200}"""
# ~~~
fun aggregate(pipeline: JsonArray): Array[JsonObject] do
var q = new JsonObject
Next, we’ll create a middleware handler called “LogHandler” that prints the requested
uri, the response status and the time it took to Popcorn to process the request.
-This example gives a simplified version of the `RequestClock` and `ConsoleLog` middlewares.
+This example gives a simplified version of the `RequestClock` and `PopLogger` middlewares.
~~~
import popcorn
be used to develop your app faster.
* `RequestClock`: initializes requests clock.
-* `ConsoleLog`: displays resquest and response status in console (can be used with `RequestClock`).
+* `PopLogger`: displays resquest and response status in console (can be used with `RequestClock`).
* `SessionInit`: initializes requests session (see the `Sessions` section).
* `StaticServer`: serves static files (see the `Serving static files with Popcorn` section).
* `Router`: a mountable mini-app (see the `Mountable routers` section).
# Load github user
var gh_api = new GithubAPI(access_token)
- var user = gh_api.load_auth_user
+ var user = gh_api.get_auth_user
if user == null then
res.error 401
return
module pop_logging
import pop_handlers
-import console
+import logger
import realtime
# Initialize a clock for the resquest.
end
# Display log info about request processing.
-class ConsoleLog
+class PopLogger
+ super Logger
super Handler
- # Logger level
- #
- # * `0`: silent
- # * `1`: errors
- # * `2`: warnings
- # * `3`: info
- # * `4`: debug
- #
- # Request status are always logged, whatever the logger level is.
- var level = 4 is writable
-
# Do we want colors in the console output?
- var no_colors = false
+ var no_color = false is optional
+
+ redef var default_formatter = new PopFormatter(no_color) is optional
redef fun all(req, res) do
var clock = req.clock
if clock != null then
- log "{req.method} {req.url} {status(res)} ({clock.total}s)"
+ add_raw(info_level, "{req.method} {req.url} {status(res)} ({clock.total}s)")
else
- log "{req.method} {req.url} {status(res)}"
+ add_raw(info_level, "{req.method} {req.url} {status(res)}")
end
end
# Colorize the request status.
private fun status(res: HttpResponse): String do
- if no_colors then return res.status_code.to_s
+ if no_color then return res.status_code.to_s
return res.color_status
end
+end
- # Display a `message` with `level`.
- #
- # Message will only be displayed if `level <= self.level`.
- # Colors will be used depending on `colors`.
- #
- # Use `0` for no coloration.
- private fun display(level: Int, message: String) do
- if level > self.level then return
- if no_colors then
- print message
- return
+class PopFormatter
+ super Formatter
+
+ # Do not decorate messages with colors
+ var no_color = false is optional, writable
+
+ redef fun format(level, message) do
+ var string = message.write_to_string
+
+ if level == fatal_level then
+ string = "[FATAL] {string}"
+ else if level == error_level then
+ string = "[ERROR] {string}"
+ else if level == warn_level then
+ string = "[WARN] {string}"
+ else if level == info_level then
+ string = "[INFO] {string}"
+ else if level == debug_level then
+ string = "[DEBUG] {string}"
end
- if level == 0 then print message
- if level == 1 then print message.red
- if level == 2 then print message.yellow
- if level == 3 then print message.blue
- if level == 4 then print message.gray
- end
-
- # Display a message wathever the `level`
- fun log(message: String) do display(0, message)
- # Display a red error `message`.
- fun error(message: String) do display(1, "[ERROR] {message}")
-
- # Display a yellow warning `message`.
- fun warning(message: String) do display(2, "[WARN] {message}")
-
- # Display a blue info `message`.
- fun info(message: String) do display(3, "[INFO] {message}")
+ if no_color then return string
+
+ if level == fatal_level then
+ return string.red
+ else if level == error_level then
+ return string.red
+ else if level == warn_level then
+ return string.yellow
+ else if level == info_level then
+ return string.blue
+ else if level == debug_level then
+ return string.gray
+ end
- # Display a gray debug `message`.
- fun debug(message: String) do display(4, "[DEBUG] {message}")
+ return string
+ end
end
+
redef class HttpRequest
# Time that request was received by the Popcorn app.
var clock: nullable Clock = null
import popcorn
import popcorn::pop_config
-import popcorn::pop_logging
import popcorn::pop_json
import popcorn::pop_repos
# Saves logs into a MongoDB collection
class PopTracker
- super ConsoleLog
super TrackerHandler
redef fun all(req, res) do
graphviz \
libunwind-dev \
pkg-config \
+ libicu-dev \
# Get the code!
git \
ca-certificates \
color: #333;
}
-.nitdoc .synopsys {
+.nitdoc .synopsis {
margin-top: 0;
}
color: #333;
}
-.nitdoc .synopsys {
+.nitdoc .synopsis {
margin-top: 0;
}
/* doc */
-.nitdoc .synopsys {
+.nitdoc .synopsis {
margin-top: 0;
}
NITCOPT=--semi-global
OLDNITCOPT=--semi-global
-OBJS=nitc nitpick nit nitls nitunit nitpm nitx nitlight nitserial nitrestful nitpackage
+OBJS=nitc nitpick nit nitls nitunit nitx nitlight nitserial nitrestful nitpackage
SRCS=$(patsubst %,%.nit,$(OBJS))
BINS=$(patsubst %,../bin/%,$(OBJS))
-MOREOBJS=nitdoc nitweb nitcatalog nitmetrics nitpretty nitweb
+MOREOBJS=nitdoc nitweb nitcatalog nitmetrics nitpretty nitweb nitpm
MORESRCS=$(patsubst %,%.nit,$(MOREOBJS))
MOREBINS=$(patsubst %,../bin/%,$(MOREOBJS))
DEPS=$(wildcard *.nit */*.nit) parser/parser.nit
var time1 = get_time
self.toolcontext.info("*** END WRITING C: {time1-time0} ***", 2)
- if not toolcontext.check_errors then return
+ toolcontext.check_errors
# Execute the Makefile
# Generate a float value
#
# FIXME pass a Float, not a string
- fun float_instance(value: String): RuntimeVariable
+ fun float_instance(value: Float): RuntimeVariable
do
var t = mmodule.float_type
- var res = new RuntimeVariable("{value}", t, t)
+ var res = new RuntimeVariable("{value.to_hexa_exponential_notation}", t, t)
return res
end
end
# A C function associated to a Nit method
-# Because of customization, a given Nit method can be compiler more that once
+# This is the base class for all runtime representation of a nit method.
+# It implements the Template Design Pattern whose steps are :
+# 1. create the receiver `RuntimeVariable` (selfvar)
+# 2. create a `StaticFrame`
+# 3. resolve the return type.
+# 4. write the function signature
+# 5. Declare the function signature (for C header files)
+# 6. writer the function body
+# 7. post-compiler hook (optional)
+# Each step is called in `AbstractRuntimeFunction::compile_to_c`. A default
+# body is provided foreach step except for compilation hooks. Subclasses may
+# redefine any of the above mentioned steps. However, it's not recommanded
+# to override `compile_to_c` since there's an ordering of the compilation steps.
+# Any information between steps must be saved in the visitor. Currently most
+# of the future runtime info are stored in the `StaticFrame` of the visitor,
+# e.g. the receiver (selfvar), the arguments, etc.
+#
+# Moreover, any subclass may redefine : the receiver type, the return type and
+# the signature. This allow for a better customization for the final implementation.
+# Because of customization, a given Nit method can be compile more that once.
abstract class AbstractRuntimeFunction
type COMPILER: AbstractCompiler
# The associated Nit method
var mmethoddef: MMethodDef
+ protected var return_mtype: nullable MType = null
+
# The mangled c name of the runtime_function
# Subclasses should redefine `build_c_name` instead
fun c_name: String
return res
end
+ fun c_ref: String do return "&{c_name}"
+
# Non cached version of `c_name`
protected fun build_c_name: String is abstract
# May inline the body or generate a C function call
fun call(v: VISITOR, arguments: Array[RuntimeVariable]): nullable RuntimeVariable is abstract
- # Generate the code for the `AbstractRuntimeFunction`
- # Warning: compile more than once compilation makes CC unhappy
- fun compile_to_c(compiler: COMPILER) is abstract
+ # Returns `true` if the associated `mmethoddef`'s return type isn't null,
+ # otherwise `false`.
+ fun has_return: Bool
+ do
+ return mmethoddef.msignature.return_mtype != null
+ end
+
+ # The current msignature to use when compiling : `signature_to_c` and `body_to_c`.
+ # This method is useful since most concrete implementation doesn't use the
+ # mmethoddef's signature. By providing a definition in the abstract class,
+ # subclasses can use any msignature.
+ fun msignature: MSignature
+ do
+ return mmethoddef.msignature.as(not null)
+ end
+
+ # The current receiver type to compile : `signature_to_c` and `body_to_c`.
+ # See `msignature` method for more information.
+ protected fun recv_mtype: MType
+ do
+ return mmethoddef.mclassdef.bound_mtype
+ end
+
+ # Prepare the `self` runtime variable to be used by the rest of
+ # compilation steps.
+ # Step 1
+ protected fun resolve_receiver(v: VISITOR): RuntimeVariable
+ do
+ var casttype = mmethoddef.mclassdef.bound_mtype
+ return new RuntimeVariable("self", recv_mtype, casttype)
+ end
+
+ # Builds the static frame for current runtime method
+ # Step 2
+ protected fun build_frame(v: VISITOR, arguments: Array[RuntimeVariable]): StaticFrame
+ do
+ return new StaticFrame(v, mmethoddef, recv_mtype.as(MClassType), arguments)
+ end
+
+ # Step 3 : Returns the return type used by the runtime function.
+ protected fun resolve_return_mtype(v: VISITOR)
+ do
+ return_mtype = msignature.return_mtype
+ end
+
+ # Fills the argument array inside v.frame.arguments, calling `resolve_ith_parameter`
+ # for each parameter.
+ private fun fill_parameters(v: VISITOR)
+ do
+ assert v.frame != null
+ for i in [0..msignature.arity[ do
+ var arg = resolve_ith_parameter(v, i)
+ v.frame.arguments.add(arg)
+ end
+ end
+
+ # Step 4 : Creates `RuntimeVariable` for each method argument.
+ protected fun resolve_ith_parameter(v: VISITOR, i: Int): RuntimeVariable
+ do
+ var mp = msignature.mparameters[i]
+ var mtype = mp.mtype
+ if mp.is_vararg then
+ mtype = v.mmodule.array_type(mtype)
+ end
+ return new RuntimeVariable("p{i}", mtype, mtype)
+ end
+
+ # Generate the code for the signature with an open curly brace
+ #
+ # Returns the generated signature without a semicolon and curly brace,
+ # e.g `RES f(T0 p0, T1 p1, ..., TN pN)`
+ # Step 5
+ protected fun signature_to_c(v: VISITOR): String
+ do
+ assert v.frame != null
+ var arguments = v.frame.arguments
+ var comment = new FlatBuffer
+ var selfvar = v.frame.selfvar
+ var c_ret = "void"
+ if has_return then
+ c_ret = "{return_mtype.ctype}"
+ end
+ var sig = new FlatBuffer
+ sig.append("{c_ret} {c_name}({recv_mtype.ctype} self")
+ comment.append("({selfvar}: {selfvar.mtype}")
+
+ for i in [0..arguments.length-1[ do
+ # Skip the receiver
+ var arg = arguments[i+1]
+ comment.append(", {arg.mtype}")
+ sig.append(", {arg.mtype.ctype} p{i}")
+ end
+ sig.append(")")
+ comment.append(")")
+ if has_return then
+ comment.append(": {return_mtype.as(not null)}")
+ end
+ v.add_decl("/* method {self} for {comment} */")
+ v.add_decl("{sig} \{")
+ return sig.to_s
+ end
+
+ # How the concrete compiler will declare the method, e.g inside a global header file,
+ # extern signature, etc.
+ # Step 6
+ protected fun declare_signature(v: VISITOR, signature: String) is abstract
+
+
+ # Generate the code for the body without return statement at the end and
+ # no curly brace.
+ # Step 7
+ protected fun body_to_c(v: VISITOR)
+ do
+ mmethoddef.compile_inside_to_c(v, v.frame.arguments)
+ end
+
+ # Hook called at the end of `compile_to_c` function. This function
+ # is useful if you need to register any function compiled to c.
+ # Step 8 (optional).
+ protected fun end_compile_to_c(v: VISITOR)
+ do
+ # Nothing to do by default
+ end
+
+ # Generate the code
+ fun compile_to_c(compiler: COMPILER)
+ do
+ var v = compiler.new_visitor
+ var selfvar = resolve_receiver(v)
+ var arguments = [selfvar]
+ var frame = build_frame(v, arguments)
+ v.frame = frame
+
+ resolve_return_mtype(v)
+ fill_parameters(v)
+
+ # WARNING: the signature must be declared before creating
+ # any returnlabel and returnvar (`StaticFrame`). Otherwise,
+ # you could end up with variable outside the function.
+ var sig = signature_to_c(v)
+ declare_signature(v, sig)
+
+ frame.returnlabel = v.get_name("RET_LABEL")
+ if has_return then
+ var ret_mtype = return_mtype
+ assert ret_mtype != null
+ frame.returnvar = v.new_var(ret_mtype)
+ end
+
+ body_to_c(v)
+ v.add("{frame.returnlabel.as(not null)}:;")
+ if has_return then
+ v.add("return {frame.returnvar.as(not null)};")
+ end
+ v.add "\}"
+ end_compile_to_c(v)
+ end
end
+# Base class for all thunk-like function. A thunk is a function whose purpose
+# is to call another function. Like a class wrapper or decorator, a thunk is used
+# to computer things (conversions, log, etc) before or after a function call. It's
+# an intermediary between the caller and the callee.
+#
+# The most basic use of a thunk is to unbox its argument before invoking the real callee.
+# Virtual functions are a use case of thunk function:
+#
+# ~~~~nitish
+# redef class Object
+# fun toto(x: Int): Int do return 1 + x
+# end
+# redef class Int
+# redef fun toto(x) do return x + self
+# end
+#
+# ```generated C code
+# long Object__toto(val* self, long x) { return 1 + x }
+# long Int__toto(long self, long x) { return x + self }
+# long THUNK_Int__toto(val* self, long x) {
+# long self2 = (long)(self)>>2 // Unboxing from Object to Int
+# return Int_toto(self2, x)
+# }
+#
+# ```
+# ~~~~
+#
+# A thunk has its OWN SIGNATURE and is considered like any other `AbstractRuntimeFunction`.
+# Thus, one might need to be careful when overriding parent's method. Since most usage of
+# thunks in Nit is to unbox and box things between a caller and a callee, the default
+# implementation is doing just that. In other words, a thunk takes a signature and a method
+# and tries to cast its signature to the underlying method's signature.
+#
+# A virtual function has the same signature as its `mmethoddef` field, except for
+# its receiver is of type `Object`.
+# In the same vibe, a call reference has all of its argument boxed as `Object`.
+abstract class ThunkFunction
+ super AbstractRuntimeFunction
+
+ # Determines if the callsite should be polymorphic or static.
+ var polymorph_call_flag = false is writable
+
+ # The type expected by the callee. Used to resolve `mmethoddef`'s formal
+ # parameters and virtual type. This type must NOT need anchor.
+ fun target_recv: MType is abstract
+
+ redef fun body_to_c(v)
+ do
+ assert not target_recv.need_anchor
+ var frame = v.frame
+ assert frame != null
+ var selfvar = frame.selfvar
+ var arguments = frame.arguments
+ var arguments2 = new Array[RuntimeVariable]
+ arguments2.push(v.autobox(selfvar, target_recv))
+ var resolved_sig = msignature.resolve_for(target_recv, target_recv.as(MClassType), v.mmodule, true)
+ for i in [0..resolved_sig.arity[ do
+ var param = resolved_sig.mparameters[i]
+ var mtype = param.mtype
+ if param.is_vararg then
+ mtype = v.mmodule.array_type(mtype)
+ end
+ var temp = v.autobox(arguments[i+1], mtype)
+ arguments2.push(temp)
+ end
+ v.add("/* {mmethoddef}, {recv_mtype.ctype} */")
+ var subret: nullable RuntimeVariable = null
+ if polymorph_call_flag then
+ subret = v.send(mmethoddef.mproperty, arguments2)
+ else
+ subret = v.call(mmethoddef, arguments2[0].mcasttype.as(MClassType), arguments2)
+ end
+ if has_return then
+ assert subret != null
+ var subret2 = v.autobox(subret, return_mtype.as(not null))
+ v.assign(frame.returnvar.as(not null), subret2)
+ end
+
+ end
+
+end
+
+
# A runtime variable hold a runtime value in C.
# Runtime variables are associated to Nit local variables and intermediate results in Nit expressions.
#
# The array comprehension currently filled, if any
private var comprehension: nullable RuntimeVariable = null
+
+ # Returns the first argument (the receiver) of a frame.
+ # REQUIRE: arguments.length >= 1
+ fun selfvar: RuntimeVariable
+ do
+ assert arguments.length >= 1
+ return arguments.first
+ end
end
redef class MType
end
redef class AFloatExpr
- redef fun expr(v) do return v.float_instance("{self.n_float.text}") # FIXME use value, not n_float
+ redef fun expr(v) do return v.float_instance(self.value.as(Float))
end
redef class ACharExpr
redef fun expr(v)
do
var recv = v.expr(self.n_expr, null)
+ if is_safe then
+ v.add "if ({recv}!=NULL) \{"
+ end
var callsite = self.callsite.as(not null)
if callsite.is_broken then return null
var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
- return v.compile_callsite(callsite, args)
+ var res = v.compile_callsite(callsite, args)
+ if is_safe then
+ if res != null then
+ var orig_res = res
+ res = v.new_var(self.mtype.as(not null))
+ v.add("{res} = {orig_res};")
+ v.add("\} else \{")
+ v.add("{res} = NULL;")
+ end
+ v.add("\}")
+ end
+ return res
end
end
end
end
+redef class ASafeExpr
+ redef fun expr(v)
+ do
+ return v.expr(self.n_expr, null)
+ end
+end
+
redef class ANamedargExpr
redef fun expr(v)
do
end
end
-# A runtime function customized on a specific monomrph receiver type
+# A runtime function customized on a specific monomorph receiver type
private class CustomizedRuntimeFunction
super AbstractRuntimeFunction
end
end
- # compile the code customized for the reciever
- redef fun compile_to_c(compiler)
- do
- var recv = self.recv
- var mmethoddef = self.mmethoddef
- if not recv.is_subtype(compiler.mainmodule, null, mmethoddef.mclassdef.bound_mtype) then
- print("problem: why do we compile {self} for {recv}?")
- abort
- end
-
- var v = compiler.new_visitor
- var selfvar = new RuntimeVariable("self", recv, recv)
- if compiler.runtime_type_analysis.live_types.has(recv) then
- selfvar.is_exact = true
- end
- var arguments = new Array[RuntimeVariable]
- var frame = new StaticFrame(v, mmethoddef, recv, arguments)
- v.frame = frame
-
- var sig = new FlatBuffer
- var comment = new FlatBuffer
- var ret = mmethoddef.msignature.return_mtype
- if ret != null then
- ret = v.resolve_for(ret, selfvar)
- sig.append("{ret.ctype} ")
- else
- sig.append("void ")
- end
- sig.append(self.c_name)
- sig.append("({recv.ctype} {selfvar}")
- comment.append("(self: {recv}")
- arguments.add(selfvar)
- for i in [0..mmethoddef.msignature.arity[ do
- var mp = mmethoddef.msignature.mparameters[i]
- var mtype = mp.mtype
- if mp.is_vararg then
- mtype = v.mmodule.array_type(mtype)
- end
- mtype = v.resolve_for(mtype, selfvar)
- comment.append(", {mtype}")
- sig.append(", {mtype.ctype} p{i}")
- var argvar = new RuntimeVariable("p{i}", mtype, mtype)
- arguments.add(argvar)
- end
- sig.append(")")
- comment.append(")")
- if ret != null then
- comment.append(": {ret}")
- end
- compiler.header.add_decl("{sig};")
+ redef fun recv_mtype
+ do
+ return recv
+ end
- v.add_decl("/* method {self} for {comment} */")
- v.add_decl("{sig} \{")
- #v.add("printf(\"method {self} for {comment}\\n\");")
- if ret != null then
- frame.returnvar = v.new_var(ret)
- end
- frame.returnlabel = v.get_name("RET_LABEL")
+ redef var return_mtype
- mmethoddef.compile_inside_to_c(v, arguments)
-
- v.add("{frame.returnlabel.as(not null)}:;")
- if ret != null then
- v.add("return {frame.returnvar.as(not null)};")
+ redef fun resolve_receiver(v)
+ do
+ var selfvar = new RuntimeVariable("self", recv, recv)
+ if v.compiler.runtime_type_analysis.live_types.has(recv) then
+ selfvar.is_exact = true
end
- v.add("\}")
- if not self.c_name.has_substring("VIRTUAL", 0) then compiler.names[self.c_name] = "{mmethoddef.mclassdef.mmodule.name}::{mmethoddef.mclassdef.mclass.name}::{mmethoddef.mproperty.name} ({mmethoddef.location.file.filename}:{mmethoddef.location.line_start})"
- end
+ return selfvar
+ end
+
+ redef fun resolve_return_mtype(v)
+ do
+ var selfvar = v.frame.selfvar
+ if has_return then
+ var ret = msignature.return_mtype.as(not null)
+ return_mtype = v.resolve_for(ret, selfvar)
+ end
+ end
+ redef fun resolve_ith_parameter(v, i)
+ do
+ var selfvar = v.frame.selfvar
+ var mp = msignature.mparameters[i]
+ var mtype = mp.mtype
+ if mp.is_vararg then
+ mtype = v.mmodule.array_type(mtype)
+ end
+ mtype = v.resolve_for(mtype, selfvar)
+ return new RuntimeVariable("p{i}", mtype, mtype)
+ end
+
+ redef fun declare_signature(v, sig)
+ do
+ v.compiler.header.add_decl("{sig};")
+ end
+
+ redef fun end_compile_to_c(v)
+ do
+ if not self.c_name.has_substring("VIRTUAL", 0) then v.compiler.names[self.c_name] = "{mmethoddef.mclassdef.mmodule.name}::{mmethoddef.mclassdef.mclass.name}::{mmethoddef.mproperty.name} ({mmethoddef.location.file.filename}:{mmethoddef.location.line_start})"
+ end
redef fun call(v: VISITOR, arguments: Array[RuntimeVariable]): nullable RuntimeVariable
do
self.virtual_runtime_function_cache = res
return res
end
-
- res = new SeparateRuntimeFunction(self, recv, msignature, "VIRTUAL_{c_name}")
- self.virtual_runtime_function_cache = res
- res.is_thunk = true
+ res = new SeparateThunkFunction(self, recv, msignature, "VIRTUAL_{c_name}", mclassdef.bound_mtype)
end
return res
end
# The name on the compiled method
redef var build_c_name: String
- # Statically call the original body instead
- var is_thunk = false
-
redef fun to_s do return self.mmethoddef.to_s
+ redef fun msignature
+ do
+ return called_signature
+ end
+
+ redef fun recv_mtype
+ do
+ return called_recv
+ end
+
+ redef fun return_mtype
+ do
+ return called_signature.return_mtype
+ end
+
# The C return type (something or `void`)
var c_ret: String is lazy do
var ret = called_signature.return_mtype
# The C type for the function pointer.
var c_funptrtype: String is lazy do return "{c_ret}(*){c_sig}"
- redef fun compile_to_c(compiler)
- do
- var mmethoddef = self.mmethoddef
-
- var sig = "{c_ret} {c_name}{c_sig}"
- compiler.provide_declaration(self.c_name, "{sig};")
-
- var rta = compiler.as(SeparateCompiler).runtime_type_analysis
-
- var recv = self.mmethoddef.mclassdef.bound_mtype
- var v = compiler.new_visitor
- var selfvar = new RuntimeVariable("self", called_recv, recv)
- var arguments = new Array[RuntimeVariable]
- var frame = new StaticFrame(v, mmethoddef, recv, arguments)
- v.frame = frame
+ redef fun declare_signature(v, sig)
+ do
+ v.compiler.provide_declaration(c_name, "{sig};")
+ end
- var msignature = called_signature
- var ret = called_signature.return_mtype
-
- var comment = new FlatBuffer
- comment.append("({selfvar}: {selfvar.mtype}")
- arguments.add(selfvar)
- for i in [0..msignature.arity[ do
- var mp = msignature.mparameters[i]
- var mtype = mp.mtype
- if mp.is_vararg then
- mtype = v.mmodule.array_type(mtype)
- end
- comment.append(", {mtype}")
- var argvar = new RuntimeVariable("p{i}", mtype, mtype)
- arguments.add(argvar)
- end
- comment.append(")")
- if ret != null then
- comment.append(": {ret}")
- end
+ redef fun body_to_c(v)
+ do
+ var rta = v.compiler.as(SeparateCompiler).runtime_type_analysis
+ if rta != null and not rta.live_mmodules.has(mmethoddef.mclassdef.mmodule) then
+ v.add_abort("FATAL: Dead method executed.")
+ else
+ super
+ end
+ end
- v.add_decl("/* method {self} for {comment} */")
- v.add_decl("{sig} \{")
- if ret != null then
- frame.returnvar = v.new_var(ret)
- end
- frame.returnlabel = v.get_name("RET_LABEL")
- if is_thunk then
- var subret = v.call(mmethoddef, recv, arguments)
- if ret != null then
- assert subret != null
- v.assign(frame.returnvar.as(not null), subret)
- end
- else if rta != null and not rta.live_mmodules.has(mmethoddef.mclassdef.mmodule) then
- v.add_abort("FATAL: Dead method executed.")
- else
- mmethoddef.compile_inside_to_c(v, arguments)
- end
+ redef fun end_compile_to_c(v)
+ do
+ var compiler = v.compiler
+ compiler.names[self.c_name] = "{mmethoddef.full_name} ({mmethoddef.location.file.filename}:{mmethoddef.location.line_start})"
+ end
- v.add("{frame.returnlabel.as(not null)}:;")
- if ret != null then
- v.add("return {frame.returnvar.as(not null)};")
- end
- v.add("\}")
- compiler.names[self.c_name] = "{mmethoddef.full_name} ({mmethoddef.location.file.filename}:{mmethoddef.location.line_start})"
- end
+ redef fun build_frame(v, arguments)
+ do
+ var recv = mmethoddef.mclassdef.bound_mtype
+ return new StaticFrame(v, mmethoddef, recv, arguments)
+ end
# Compile the trampolines used to implement late-binding.
#
end
end
+class SeparateThunkFunction
+ super ThunkFunction
+ super SeparateRuntimeFunction
+ redef var target_recv
+end
+
redef class MType
# Are values of `self` tagged?
# If false, it means that the type is not primitive, or is boxed.
super CmdEntity
# Ini file
- var ini: nullable ConfigTree = null
+ var ini: nullable IniFile = null
redef fun init_command do
var res = super
module test_commands
import commands_base
-import frontend
-import frontend::parse_examples
+import test_frontend
# Nitunit test suite specific to commands
class TestCommands
-
- # The path to the testunit being executed
- #
- # Used to retrieve the path to sources to compile.
- var test_path: String = "NIT_TESTING_PATH".environ.dirname is lazy
-
- # Test program to compile
- #
- # Default is `$NIT_DIR/tests/test_prog`.
- var test_src: String = test_path / "../../../../tests/test_prog" is lazy
-
- # Model used for tests
- var test_model: Model is noinit
-
- # ModelBuilder used for tests
- var test_builder: ModelBuilder is noinit
-
- # Mainmodule used for tests
- var test_main: MModule is noinit
-
- # Initialize test variables
- #
- # Must be called before test execution.
- # FIXME should be before_all
- fun build_test_env is before do
- var toolcontext = new ToolContext
-
- # build model
- var model = new Model
- var modelbuilder = new ModelBuilder(model, toolcontext)
- var mmodules = modelbuilder.parse_full([test_src])
-
- # process
- modelbuilder.run_phases
- toolcontext.run_global_phases(mmodules)
- var mainmodule = toolcontext.make_main_module(mmodules)
-
- test_main = mainmodule
- test_model = model
- test_builder = modelbuilder
- end
+ super TestModel
end
var html_synopsis: Writable is lazy do
var res = new Template
var syn = inline_proc.process(content.first)
- res.add "<span class=\"synopsys nitdoc\">{syn}</span>"
+ res.add "<span class=\"synopsis nitdoc\">{syn}</span>"
return res
end
var decorator = markdown_proc.decorator.as(NitdocDecorator)
decorator.current_mdoc = self
res.add "<div class=\"nitdoc\">"
- # do not use DocUnit as synopsys
+ # do not use DocUnit as synopsis
if not lines.is_empty then
if not lines.first.has_prefix(" ") and
not lines.first.has_prefix("\t") then
- # parse synopsys
+ # parse synopsis
var syn = inline_proc.process(lines.shift)
- res.add "<h1 class=\"synopsys\">{syn}</h1>"
+ res.add "<h1 class=\"synopsis\">{syn}</h1>"
end
end
# check for annotations
# Get a markdown inline processor for Nitdoc comments.
#
- # This processor is specificaly designed to inlinable doc elements like synopsys.
+ # This processor is specificaly designed to inlinable doc elements like synopsis.
var nitdoc_inline_processor: MarkdownProcessor is lazy, writable do
var proc = new MarkdownProcessor
proc.decorator = new InlineDecorator
return res.write_to_string
end
- # Returns the synopsys formatted for the console
+ # Returns the synopsis formatted for the console
fun cs_short_comment(no_color: nullable Bool): String do
if no_color == null or not no_color then
return content.first.green
-<ul><li><a href="test_prog_58d_58dObject" title="Root of everything.">Object</a> - <span class="synopsys nitdoc">Root of everything.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dObject" title="Root of everything.">Object</a> - <span class="synopsis nitdoc">Root of everything.</span></li></ul>
-<ul><li><a href="test_prog_36dCharacter_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCharacter_36dtotal_strengh" title="The actual strength of the character.">total_strengh</a> - <span class="synopsys nitdoc">The actual strength of the character.</span></li></ul>
+<ul><li><a href="test_prog_36dCharacter_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCharacter_36dtotal_strengh" title="The actual strength of the character.">total_strengh</a> - <span class="synopsis nitdoc">The actual strength of the character.</span></li></ul>
-<ul><li><a href="test_prog_58d_58dAlcoholic" title="Alcoholics are good to nothing escept taking punches.">Alcoholic</a> - <span class="synopsys nitdoc">Alcoholics are good to nothing escept taking punches.</span></li><li><a href="test_prog_58d_58dMagician" title="Magicians know magic and how to use it.">Magician</a> - <span class="synopsys nitdoc">Magicians know magic and how to use it.</span></li><li><a href="test_prog_58d_58dWarrior" title="Warriors are good for fighting.">Warrior</a> - <span class="synopsys nitdoc">Warriors are good for fighting.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dAlcoholic" title="Alcoholics are good to nothing escept taking punches.">Alcoholic</a> - <span class="synopsis nitdoc">Alcoholics are good to nothing escept taking punches.</span></li><li><a href="test_prog_58d_58dMagician" title="Magicians know magic and how to use it.">Magician</a> - <span class="synopsis nitdoc">Magicians know magic and how to use it.</span></li><li><a href="test_prog_58d_58dWarrior" title="Warriors are good for fighting.">Warrior</a> - <span class="synopsis nitdoc">Warriors are good for fighting.</span></li></ul>
-<h3><a href="test_prog_58d_58dCharacter" title="Characters can be played by both the human or the machine.">Character</a> - <span class="synopsys nitdoc">Characters can be played by both the human or the machine.</span></h3><div class="nitdoc"></div>
+<h3><a href="test_prog_58d_58dCharacter" title="Characters can be played by both the human or the machine.">Character</a> - <span class="synopsis nitdoc">Characters can be played by both the human or the machine.</span></h3><div class="nitdoc"></div>
-<ul><li><a href="test_prog_58d_58dAlcoholic" title="Alcoholics are good to nothing escept taking punches.">Alcoholic</a> - <span class="synopsys nitdoc">Alcoholics are good to nothing escept taking punches.</span></li><li><a href="test_prog_58d_58dMagician" title="Magicians know magic and how to use it.">Magician</a> - <span class="synopsys nitdoc">Magicians know magic and how to use it.</span></li><li><a href="test_prog_58d_58dWarrior" title="Warriors are good for fighting.">Warrior</a> - <span class="synopsys nitdoc">Warriors are good for fighting.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dAlcoholic" title="Alcoholics are good to nothing escept taking punches.">Alcoholic</a> - <span class="synopsis nitdoc">Alcoholics are good to nothing escept taking punches.</span></li><li><a href="test_prog_58d_58dMagician" title="Magicians know magic and how to use it.">Magician</a> - <span class="synopsis nitdoc">Magicians know magic and how to use it.</span></li><li><a href="test_prog_58d_58dWarrior" title="Warriors are good for fighting.">Warrior</a> - <span class="synopsis nitdoc">Warriors are good for fighting.</span></li></ul>
-<ul><li><a href="test_prog_58d_58dtest_prog" title="A test program with a fake model to check model tools.">test_prog</a> - <span class="synopsys nitdoc">A test program with a fake model to check model tools.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dtest_prog" title="A test program with a fake model to check model tools.">test_prog</a> - <span class="synopsis nitdoc">A test program with a fake model to check model tools.</span></li></ul>
-<ul><li><a href="test_prog_58d_58dcareers" title="Careers of the game.">careers</a> - <span class="synopsys nitdoc">Careers of the game.</span></li><li><a href="test_prog_58d_58dcharacter" title="Characters are playable entity in the world.">character</a> - <span class="synopsys nitdoc">Characters are playable entity in the world.</span></li><li><a href="test_prog_58d_58dcombat" title="COmbat interactions between characters.">combat</a> - <span class="synopsys nitdoc">COmbat interactions between characters.</span></li><li><a href="excluded_58d_58dexcluded">excluded</a></li><li><a href="test_prog_58d_58dgame" title="A game abstraction for RPG.">game</a> - <span class="synopsys nitdoc">A game abstraction for RPG.</span></li><li><a href="test_prog_58d_58dgame_examples">game_examples</a></li><li><a href="test_prog_58d_58dplatform" title="Declares base types allowed on the platform.">platform</a> - <span class="synopsys nitdoc">Declares base types allowed on the platform.</span></li><li><a href="test_prog_58d_58draces" title="Races of the game.">races</a> - <span class="synopsys nitdoc">Races of the game.</span></li><li><a href="test_prog_58d_58drpg" title="A worlg RPG abstraction.">rpg</a> - <span class="synopsys nitdoc">A worlg RPG abstraction.</span></li><li><a href="test_prog_58d_58dtest_game">test_game</a></li><li><a href="test_prog_58d_58dtest_prog" title="A test program with a fake model to check model tools.">test_prog</a> - <span class="synopsys nitdoc">A test program with a fake model to check model tools.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dcareers" title="Careers of the game.">careers</a> - <span class="synopsis nitdoc">Careers of the game.</span></li><li><a href="test_prog_58d_58dcharacter" title="Characters are playable entity in the world.">character</a> - <span class="synopsis nitdoc">Characters are playable entity in the world.</span></li><li><a href="test_prog_58d_58dcombat" title="COmbat interactions between characters.">combat</a> - <span class="synopsis nitdoc">COmbat interactions between characters.</span></li><li><a href="excluded_58d_58dexcluded">excluded</a></li><li><a href="test_prog_58d_58dgame" title="A game abstraction for RPG.">game</a> - <span class="synopsis nitdoc">A game abstraction for RPG.</span></li><li><a href="test_prog_58d_58dgame_examples">game_examples</a></li><li><a href="test_prog_58d_58dplatform" title="Declares base types allowed on the platform.">platform</a> - <span class="synopsis nitdoc">Declares base types allowed on the platform.</span></li><li><a href="test_prog_58d_58draces" title="Races of the game.">races</a> - <span class="synopsis nitdoc">Races of the game.</span></li><li><a href="test_prog_58d_58drpg" title="A worlg RPG abstraction.">rpg</a> - <span class="synopsis nitdoc">A worlg RPG abstraction.</span></li><li><a href="test_prog_58d_58dtest_game">test_game</a></li><li><a href="test_prog_58d_58dtest_prog" title="A test program with a fake model to check model tools.">test_prog</a> - <span class="synopsis nitdoc">A test program with a fake model to check model tools.</span></li></ul>
-<ul><li><a href="test_prog_58d_58dCareer" title="A `Career` gives a characteristic bonus or malus to the character.">Career</a> - <span class="synopsys nitdoc">A <code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_t">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dCareer" title="A `Career` gives a characteristic bonus or malus to the character.">Career</a> - <span class="synopsis nitdoc">A <code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_t">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span></li></ul>
-<ul><li><a href="test_prog_58d_58dCareer" title="A `Career` gives a characteristic bonus or malus to the character.">Career</a> - <span class="synopsys nitdoc">A <code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_t">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span></li></ul>
+<ul><li><a href="test_prog_58d_58dCareer" title="A `Career` gives a characteristic bonus or malus to the character.">Career</a> - <span class="synopsis nitdoc">A <code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_t">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span></li></ul>
"class_name": "MClass",
"full_name": "test_prog::Object",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>",
"modifiers": ["interface"]
}],
"page": null,
"class_name": "MMethodDef",
"full_name": "test_prog$Character$total_strengh",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The actual strength of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The actual strength of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}],
"class_name": "MClass",
"full_name": "test_prog::Alcoholic",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
"modifiers": ["class"]
}, {
"name": "Magician",
"class_name": "MClass",
"full_name": "test_prog::Magician",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Magicians know magic and how to use it.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Magicians know magic and how to use it.</span>",
"modifiers": ["class"]
}, {
"name": "Warrior",
"class_name": "MClass",
"full_name": "test_prog::Warrior",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Warriors are good for fighting.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Warriors are good for fighting.</span>",
"modifiers": ["class"]
}],
"page": null,
"class_name": "MClass",
"full_name": "test_prog::Alcoholic",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
"modifiers": ["class"]
}, {
"name": "Magician",
"class_name": "MClass",
"full_name": "test_prog::Magician",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Magicians know magic and how to use it.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Magicians know magic and how to use it.</span>",
"modifiers": ["class"]
}, {
"name": "Warrior",
"class_name": "MClass",
"full_name": "test_prog::Warrior",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Warriors are good for fighting.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Warriors are good for fighting.</span>",
"modifiers": ["class"]
}],
"page": null,
"class_name": "MClass",
"full_name": "test_prog::Character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters can be played by both the human or the machine.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters can be played by both the human or the machine.</span>",
"modifiers": ["class"]
}
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}, {
"name": "_intelligence_bonus",
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}, {
"name": "_strength_bonus",
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}, {
"name": "endurance_bonus",
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}, {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}, {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}, {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MModule",
"full_name": "test_prog::test_prog",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A test program with a fake model to check model tools.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A test program with a fake model to check model tools.</span>",
"modifiers": ["module"]
}]
}
"class_name": "MModule",
"full_name": "test_prog::careers",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Careers of the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Careers of the game.</span>",
"modifiers": ["module"]
}, {
"name": "character",
"class_name": "MModule",
"full_name": "test_prog::character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters are playable entity in the world.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters are playable entity in the world.</span>",
"modifiers": ["module"]
}, {
"name": "combat",
"class_name": "MModule",
"full_name": "test_prog::combat",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">COmbat interactions between characters.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">COmbat interactions between characters.</span>",
"modifiers": ["module"]
}, {
"name": "excluded",
"class_name": "MModule",
"full_name": "test_prog::game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A game abstraction for RPG.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A game abstraction for RPG.</span>",
"modifiers": ["module"]
}, {
"name": "game_examples",
"class_name": "MModule",
"full_name": "test_prog::platform",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Declares base types allowed on the platform.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Declares base types allowed on the platform.</span>",
"modifiers": ["module"]
}, {
"name": "races",
"class_name": "MModule",
"full_name": "test_prog::races",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Races of the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Races of the game.</span>",
"modifiers": ["module"]
}, {
"name": "rpg",
"class_name": "MModule",
"full_name": "test_prog::rpg",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A worlg RPG abstraction.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A worlg RPG abstraction.</span>",
"modifiers": ["module"]
}, {
"name": "test_game",
"class_name": "MModule",
"full_name": "test_prog::test_prog",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A test program with a fake model to check model tools.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A test program with a fake model to check model tools.</span>",
"modifiers": ["module"]
}],
"page": null,
"class_name": "MClass",
"full_name": "test_prog::Career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
"modifiers": ["abstract class"]
}],
"page": null,
"class_name": "MClass",
"full_name": "test_prog::Career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
"modifiers": ["abstract class"]
}],
"page": 1,
module test_json_model is test
import json_model
-import frontend
+import test_frontend
class TestModelSerialization
+ super TestModel
test
- var suite_path: String = "NIT_TESTING_PATH".environ
- var lib_path: String = "{suite_path.dirname}/../../../../tests/test_prog"
-
- var mainmodule: MModule is noinit
-
- private var model: Model do
- var toolcontext = new ToolContext
- var model = new Model
- var mbuilder = new ModelBuilder(model, toolcontext)
- var mmodules = mbuilder.parse_full([lib_path])
- if mmodules.is_empty then return model
- mbuilder.run_phases
- toolcontext.run_global_phases(mmodules)
- mainmodule = mmodules.first
- return model
- end
-
fun test_refs_to_full_json is test do
var mentities = new Array[MEntity]
- mentities.add model.mpackages.first
- mentities.add model.mmodules.first
- mentities.add model.mclasses.first
+ mentities.add test_model.mpackages.first
+ mentities.add test_model.mmodules.first
+ mentities.add test_model.mclasses.first
for mentity in mentities do
print ((new MEntityRef(mentity)).serialize_to_json(pretty = true, plain = true))
end
end
fun test_packages_to_full_json is test do
- for mentity in model.mpackages do
+ for mentity in test_model.mpackages do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_groups_to_full_json is test do
- for mpackage in model.mpackages do
+ for mpackage in test_model.mpackages do
for mentity in mpackage.mgroups do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_modules_to_full_json is test do
- for mentity in model.mmodules do
+ for mentity in test_model.mmodules do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_classes_to_full_json is test do
- for mentity in model.mclasses do
+ for mentity in test_model.mclasses do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_classdefs_to_full_json is test do
- for mclass in model.mclasses do
+ for mclass in test_model.mclasses do
for mentity in mclass.mclassdefs do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_props_to_full_json is test do
- for mentity in model.mproperties do
+ for mentity in test_model.mproperties do
print mentity.serialize_to_json(pretty = true, plain = true)
end
end
fun test_propdefs_to_full_json is test do
- for mprop in model.mproperties do
+ for mprop in test_model.mproperties do
for mentity in mprop.mpropdefs do
print mentity.serialize_to_json(pretty = true, plain = true)
end
"class_name": "MClassDef",
"full_name": "test_prog$Object",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>",
"modifiers": ["interface"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Int",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Float",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Bool",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$String",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$List",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>",
"modifiers": ["class"],
"is_intro": true,
"mparameters": [{
"mtype": {
"name": "nullable Object",
"synopsis": "Root of everything.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>"
}
}]
}
"class_name": "MClassDef",
"full_name": "test_prog$Sys",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Sys</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Sys</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog::test_prog$Sys",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Sys</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Sys</span>",
"modifiers": ["redef", "class"]
}
{
"class_name": "MClassDef",
"full_name": "test_prog$Career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
"modifiers": ["abstract class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Warrior",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Warriors are good for fighting.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Warriors are good for fighting.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Magician",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Magicians know magic and how to use it.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Magicians know magic and how to use it.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Alcoholic",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Race",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>",
"modifiers": ["abstract class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Human",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Humans are able to do everithing.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Humans are able to do everithing.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Dwarf",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Dwarves make strong warriors.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Dwarves make strong warriors.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog::combat$Dwarf",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Dwarves can be used as weapons.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Dwarves can be used as weapons.</span>",
"modifiers": ["redef", "class"]
}
{
"class_name": "MClassDef",
"full_name": "test_prog$Elf",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Elves make good magicians.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Elves make good magicians.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters can be played by both the human or the machine.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters can be played by both the human or the machine.</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog::combat$Character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters are now <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Comabatable</span></span></span></code></span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters are now <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Comabatable</span></span></span></code></span>",
"modifiers": ["redef", "class"]
}
{
"class_name": "MClassDef",
"full_name": "test_prog$Weapon",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>",
"modifiers": ["interface"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Combatable",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>",
"modifiers": ["interface"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$Game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">This is the interface you have to implement to use ure gaming platform.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">This is the interface you have to implement to use ure gaming platform.</span>",
"modifiers": ["interface"],
"is_intro": true
}
"class_name": "MClassDef",
"full_name": "test_prog$MyGame",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">This is an example of how to implement the Game interface</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">This is an example of how to implement the Game interface</span>",
"modifiers": ["class"],
"is_intro": true
}
"class_name": "MClass",
"full_name": "test_prog::Object",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>",
"modifiers": ["interface"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Int",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Float",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Bool",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::String",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::List",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>",
"modifiers": ["class"],
"mparameters": [{
"name": "E",
"mtype": {
"name": "nullable Object",
"synopsis": "Root of everything.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>"
}
}]
}
"class_name": "MClass",
"full_name": "test_prog::Sys",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Sys</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Sys</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>",
"modifiers": ["abstract class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Warrior",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Warriors are good for fighting.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Warriors are good for fighting.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Magician",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Magicians know magic and how to use it.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Magicians know magic and how to use it.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Alcoholic",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Alcoholics are good to nothing escept taking punches.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Race",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>",
"modifiers": ["abstract class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Human",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Humans are able to do everithing.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Humans are able to do everithing.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Dwarf",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Dwarves make strong warriors.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Dwarves make strong warriors.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Elf",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Elves make good magicians.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Elves make good magicians.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters can be played by both the human or the machine.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters can be played by both the human or the machine.</span>",
"modifiers": ["class"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Weapon",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>",
"modifiers": ["interface"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Combatable",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>",
"modifiers": ["interface"]
}
{
"class_name": "MClass",
"full_name": "test_prog::Game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">This is the interface you have to implement to use ure gaming platform.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">This is the interface you have to implement to use ure gaming platform.</span>",
"modifiers": ["interface"]
}
{
"class_name": "MClass",
"full_name": "test_prog::MyGame",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">This is an example of how to implement the Game interface</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">This is an example of how to implement the Game interface</span>",
"modifiers": ["class"]
}
{
"class_name": "MGroup",
"full_name": "test_prog>",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Test program for model tools.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Test program for model tools.</span>",
"modifiers": ["group"]
}
{
"class_name": "MGroup",
"full_name": "test_prog>game>",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Gaming group</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Gaming group</span>",
"modifiers": ["group"]
}
{
"class_name": "MGroup",
"full_name": "test_prog>platform>",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Fictive Crappy Platform.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Fictive Crappy Platform.</span>",
"modifiers": ["group"]
}
{
"class_name": "MGroup",
"full_name": "test_prog>rpg>",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Role Playing Game group</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Role Playing Game group</span>",
"modifiers": ["group"]
}
{
"class_name": "MModule",
"full_name": "test_prog::game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A game abstraction for RPG.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A game abstraction for RPG.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::platform",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Declares base types allowed on the platform.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Declares base types allowed on the platform.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::careers",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Careers of the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Careers of the game.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::character",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters are playable entity in the world.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters are playable entity in the world.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::combat",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">COmbat interactions between characters.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">COmbat interactions between characters.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::races",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Races of the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Races of the game.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::rpg",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A worlg RPG abstraction.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A worlg RPG abstraction.</span>",
"modifiers": ["module"]
}
{
"class_name": "MModule",
"full_name": "test_prog::test_prog",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A test program with a fake model to check model tools.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A test program with a fake model to check model tools.</span>",
"modifiers": ["module"]
}
{
"visibility": "public",
"modifiers": ["module"]
}
+{
+ "name": "test_prog-m",
+ "namespace": [{
+ "name": "test_prog-m"
+ }],
+ "class_name": "MModule",
+ "full_name": "test_prog-m",
+ "visibility": "public",
+ "modifiers": ["module"]
+}
"class_name": "MPackage",
"full_name": "test_prog",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Test program for model tools.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Test program for model tools.</span>",
"modifiers": ["package"],
"license": "Apache-2.0",
"tags": ["test", "game"]
"class_name": "MVirtualTypeDef",
"full_name": "test_prog$Object$OTHER",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>",
"modifiers": ["type"],
"is_intro": true,
"bound": {
"name": "nullable Object",
"synopsis": "Root of everything.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Object$==",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> equqls to <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> equqls to <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
"modifiers": ["intern", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "OTHER",
"synopsis": "Used for comparisons.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Object$!=",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> different from <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> different from <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "OTHER",
"synopsis": "Used for comparisons.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttributeDef",
"full_name": "test_prog$Race$_base_strength",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_strength",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_strength=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["protected", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttributeDef",
"full_name": "test_prog$Race$_base_endurance",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_endurance",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_endurance=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["protected", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttributeDef",
"full_name": "test_prog$Race$_base_intelligence",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_intelligence",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Race$base_intelligence=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["protected", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttributeDef",
"full_name": "test_prog$Character$_race",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Character$race",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$race=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["protected", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}],
"return_mtype": null
"class_name": "MAttributeDef",
"full_name": "test_prog$Character$_career",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Character$career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$career=",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}
{
"return_mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}
}
"mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
{
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}],
"return_mtype": null
"class_name": "MMethodDef",
"full_name": "test_prog$Character$total_strengh",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The actual strength of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The actual strength of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$total_endurance",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The actual endurance of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The actual endurance of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$total_intelligence",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The acutal intelligence of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The acutal intelligence of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$max_health",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Maximum health of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Maximum health of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MAttributeDef",
"full_name": "test_prog$Character$_health",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"is_intro": true,
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethodDef",
"full_name": "test_prog$Character$health",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Character$health=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["protected", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MMethodDef",
"full_name": "test_prog$Weapon$dps",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Damage per second inflicted by this weapon.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Damage per second inflicted by this weapon.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog::combat$Dwarf$Weapon::dps",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Dwarf <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">dps</span></span></span></code> are based on the dwarf <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">base_endurance</span></span></span></code> (represents weight here)</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Dwarf <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">dps</span></span></span></code> are based on the dwarf <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">base_endurance</span></span></span></code> (represents weight here)</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog::combat$Character$Combatable::hit_points",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Use character <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> to determines hit_points.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Use character <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> to determines hit_points.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Combatable$attack",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can attack a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">target</span></span></span></code> that is also a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can attack a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">target</span></span></span></code> that is also a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code>.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Combatable",
"synopsis": "Something that can be combatted, it can `attack` and `defend`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
}
}, {
"is_vararg": false,
"mtype": {
"name": "Weapon",
"synopsis": "Something that can be used to attack someone and inflict damage.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Combatable$direct_attack",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Like <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> but cannot be defended.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Like <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> but cannot be defended.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Combatable",
"synopsis": "Something that can be combatted, it can `attack` and `defend`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
}
}, {
"is_vararg": false,
"mtype": {
"name": "Weapon",
"synopsis": "Something that can be used to attack someone and inflict damage.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Combatable$defend",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\"><code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can defend against attacks.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\"><code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can defend against attacks.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Combatable$is_dead",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is the character still have hit_points?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is the character still have hit_points?</span>",
"modifiers": ["fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Game$player_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters played by human players.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters played by human players.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$MyGame$Game::player_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters played by human players.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters played by human players.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$TestGame$Game::player_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters played by human players.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters played by human players.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Game$computer_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters players by computer.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters players by computer.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$MyGame$Game::computer_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters players by computer.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters players by computer.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethodDef",
"full_name": "test_prog$Game$start_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Start the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Start the game.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"class_name": "MMethodDef",
"full_name": "test_prog$MyGame$Game::start_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Start the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Start the game.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"class_name": "MMethodDef",
"full_name": "test_prog$Game$pause_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Pause the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Pause the game.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"class_name": "MMethodDef",
"full_name": "test_prog$MyGame$Game::pause_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Pause the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Pause the game.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"class_name": "MMethodDef",
"full_name": "test_prog$Game$stop_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Stop the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Stop the game.</span>",
"modifiers": ["abstract", "fun"],
"is_intro": true,
"msignature": {
"class_name": "MMethodDef",
"full_name": "test_prog$MyGame$Game::stop_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Stop the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Stop the game.</span>",
"modifiers": ["redef", "fun"],
"msignature": {
"arity": 0,
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
"class_name": "MVirtualTypeProp",
"full_name": "test_prog::Object::OTHER",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>",
"modifiers": ["type"],
"bound": {
"name": "nullable Object",
"synopsis": "Root of everything.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Root of everything.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Root of everything.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Object::==",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> equqls to <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> equqls to <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
"modifiers": ["intern", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "OTHER",
"synopsis": "Used for comparisons.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Object::!=",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> different from <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">other</span></span></span></code> different from <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">self</span></span></span></code>?</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "OTHER",
"synopsis": "Used for comparisons.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used for comparisons.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used for comparisons.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}],
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttribute",
"full_name": "test_prog::races::Race::_base_strength",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Race::base_strength",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Race::base_strength=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how strong the race is.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how strong the race is.</span>",
"modifiers": ["protected", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttribute",
"full_name": "test_prog::races::Race::_base_endurance",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Race::base_endurance",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Race::base_endurance=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Used to represents how the race can absorb damage.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Used to represents how the race can absorb damage.</span>",
"modifiers": ["protected", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttribute",
"full_name": "test_prog::races::Race::_base_intelligence",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Race::base_intelligence",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Race::base_intelligence=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is this race smart?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
"modifiers": ["protected", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MAttribute",
"full_name": "test_prog::character::Character::_race",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Character::race",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::race=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Race</span></span></span></code> of the character.</span>",
"modifiers": ["protected", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Race",
"synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
}
}],
"return_mtype": null
"class_name": "MAttribute",
"full_name": "test_prog::character::Character::_career",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Character::career",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::career=",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "nullable Career",
"synopsis": "A `Career` gives a characteristic bonus or malus to the character.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Career</span></span></span></code> gives a characteristic bonus or malus to the character.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}
{
"return_mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}
}
"mtype": {
"name": "String",
"synopsis": "Strings (there is no chars...).",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Strings (there is no chars...).</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
{
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}],
"return_mtype": null
"class_name": "MMethod",
"full_name": "test_prog::Character::total_strengh",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The actual strength of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The actual strength of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::total_endurance",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The actual endurance of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The actual endurance of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::total_intelligence",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The acutal intelligence of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The acutal intelligence of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::max_health",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Maximum health of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Maximum health of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MAttribute",
"full_name": "test_prog::character::Character::_health",
"visibility": "private",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["private", "var"],
"static_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
{
"class_name": "MMethod",
"full_name": "test_prog::Character::health",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Character::health=",
"visibility": "protected",
- "html_synopsis": "<span class=\"synopsys nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">The current <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">health</span></span></span></code> of the character.</span>",
"modifiers": ["protected", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": null
"class_name": "MMethod",
"full_name": "test_prog::Weapon::dps",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Damage per second inflicted by this weapon.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Damage per second inflicted by this weapon.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Float",
"synopsis": "Some services about Floats.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Floats.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Floats.</span>"
}
}
}
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Combatable::attack",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can attack a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">target</span></span></span></code> that is also a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code>.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">A <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can attack a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">target</span></span></span></code> that is also a <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code>.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 2,
"mtype": {
"name": "Combatable",
"synopsis": "Something that can be combatted, it can `attack` and `defend`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
}
}, {
"is_vararg": false,
"mtype": {
"name": "Weapon",
"synopsis": "Something that can be used to attack someone and inflict damage.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Combatable::direct_attack",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Like <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> but cannot be defended.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Like <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> but cannot be defended.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 2,
"mtype": {
"name": "Combatable",
"synopsis": "Something that can be combatted, it can `attack` and `defend`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be combatted, it can <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">attack</span></span></span></code> and <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_i\">defend</span></span></span></code>.</span>"
}
}, {
"is_vararg": false,
"mtype": {
"name": "Weapon",
"synopsis": "Something that can be used to attack someone and inflict damage.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Something that can be used to attack someone and inflict damage.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Combatable::defend",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\"><code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can defend against attacks.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\"><code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_t\">Combatable</span></span></span></code> can defend against attacks.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 1,
"mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}],
"return_mtype": {
"name": "Int",
"synopsis": "Some services about Integers.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Some services about Integers.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Combatable::is_dead",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Is the character still have hit_points?</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Is the character still have hit_points?</span>",
"modifiers": ["fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "Bool",
"synopsis": "Booleans, `true` or `false`.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Game::player_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters played by human players.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters played by human players.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Game::computer_characters",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Characters players by computer.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Characters players by computer.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"return_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
}
"class_name": "MMethod",
"full_name": "test_prog::Game::start_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Start the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Start the game.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"class_name": "MMethod",
"full_name": "test_prog::Game::pause_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Pause the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Pause the game.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"class_name": "MMethod",
"full_name": "test_prog::Game::stop_game",
"visibility": "public",
- "html_synopsis": "<span class=\"synopsys nitdoc\">Stop the game.</span>",
+ "html_synopsis": "<span class=\"synopsis nitdoc\">Stop the game.</span>",
"modifiers": ["abstract", "fun"],
"msignature": {
"arity": 0,
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
"static_mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}
{
"mtype": {
"name": "List[Character]",
"synopsis": "List of things.",
- "html_synopsis": "<span class=\"synopsys nitdoc\">List of things.</span>"
+ "html_synopsis": "<span class=\"synopsis nitdoc\">List of things.</span>"
}
}],
"return_mtype": null
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Testing Model with `nitunit`
+#
+# This module introduce useful tools if you want to test Model with nitunit.
+# It provides an abstract test suite `TestModel` that can load a `Model` from
+# Nit files.
+#
+# See `TestModel::test_src`.
+module test_frontend is test
+
+import frontend
+import frontend::parse_examples
+
+# An abstract NitUnit that loads a `Model` from Nit files.
+#
+# To define a custom test using `TestModel`:
+#
+# ~~~
+# class MyTest
+# super TestModel
+# test
+#
+# redef var test_src = "path/to/files"
+#
+# fun my_test is test do
+# assert test_model.mmodules.length == 10
+# end
+# end
+# ~~~
+abstract class TestModel
+
+ # Path this unit test is executed in
+ var test_path: String = "NIT_TESTING_PATH".environ.dirname is lazy
+
+ # Test program to compile
+ #
+ # Change this source in your test suite.
+ # Default is `$NIT_DIR/tests/test_prog`.
+ #
+ # You can use either a file or a directory.
+ var test_src: String = "NIT_DIR".environ / "tests/test_prog" is lazy
+
+ # ToolContext used for the ModelBuilder
+ var test_context = new ToolContext
+
+ # Model used for tests
+ var test_model = new Model
+
+ # ModelBuilder used for tests
+ var test_builder = new ModelBuilder(test_model, test_context)
+
+ # Mainmodule used for tests
+ var test_main: MModule is noinit
+
+ # Build the test environment
+ fun build_test_env is before do
+ var mmodules = test_builder.parse_full([test_src])
+ test_builder.run_phases
+ test_context.run_global_phases(mmodules)
+ var mainmodule = test_context.make_main_module(mmodules)
+ test_main = mainmodule
+ end
+end
module test_code_index is test
import code_index
-import frontend
+import test_frontend
class TestCodeIndex
+ super TestModel
test
# CodeIndex used in tests
- var test_index: CodeIndex is noinit
+ var test_index = new CodeIndex(test_context)
- # Initialize test variables
- #
- # Must be called before test execution.
- # FIXME should be before_all
- fun build_test_env is before do
- var test_path = "NIT_TESTING_PATH".environ.dirname
- var test_src = test_path / "../../../tests/test_prog"
-
- # build model
- var toolcontext = new ToolContext
- var model = new Model
- var modelbuilder = new ModelBuilder(model, toolcontext)
- var mmodules = modelbuilder.parse_full([test_src])
- modelbuilder.run_phases
- toolcontext.run_global_phases(mmodules)
-
- # create index
- var index = new CodeIndex(toolcontext)
- for mmodule in mmodules do
- index.index_mentity(mmodule)
+ redef fun build_test_env do
+ super
+ for mmodule in test_model.mmodules do
+ test_index.index_mentity(mmodule)
end
- test_index = index
- modelbuilder.paths.add test_src
+ test_builder.paths.add test_src
end
fun test_find1 is test do
# Abort if the instance is not a boolean value.
fun is_true: Bool do abort
+ # Return `true` if the instance is null.
+ # Return `false` otherwise.
+ fun is_null: Bool do return mtype isa MNullType
+
# Return true if `self` IS `o` (using the Nit semantic of is)
fun eq_is(o: Instance): Bool do return self.is_same_instance(o)
else if mpropdef == mwritepropdef then
assert args.length == 2
var arg = args[1]
- if is_optional and arg.mtype isa MNullType then
+ if is_optional and arg.is_null then
var f = v.new_frame(self, mpropdef, args)
arg = evaluate_expr(v, recv, f)
end
for g in n_groups do
var col = v.expr(g.n_expr)
if col == null then return
- if col.mtype isa MNullType then fatal(v, "Receiver is null")
+ if col.is_null then fatal(v, "Receiver is null")
var iter = v.callsite(g.method_iterator, [col]).as(not null)
iters.add iter
do
var i = v.expr(self.n_expr)
if i == null then return null
- if i.mtype isa MNullType then
+ if i.is_null then
fatal(v, "Cast failed")
end
return i
do
var recv = v.expr(self.n_expr)
if recv == null then return null
+
+ # Safe call shortcut if recv is null
+ if is_safe and recv.is_null then
+ return recv
+ end
+
var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
if args == null then return null
do
var recv = v.expr(self.n_expr)
if recv == null then return null
- if recv.mtype isa MNullType then fatal(v, "Receiver is null")
+ if recv.is_null then fatal(v, "Receiver is null")
var mproperty = self.mproperty.as(not null)
return v.read_attribute(mproperty, recv)
end
do
var recv = v.expr(self.n_expr)
if recv == null then return
- if recv.mtype isa MNullType then fatal(v, "Receiver is null")
+ if recv.is_null then fatal(v, "Receiver is null")
var i = v.expr(self.n_value)
if i == null then return
var mproperty = self.mproperty.as(not null)
do
var recv = v.expr(self.n_expr)
if recv == null then return
- if recv.mtype isa MNullType then fatal(v, "Receiver is null")
+ if recv.is_null then fatal(v, "Receiver is null")
var value = v.expr(self.n_value)
if value == null then return
var mproperty = self.mproperty.as(not null)
do
var recv = v.expr(self.n_expr)
if recv == null then return null
- if recv.mtype isa MNullType then fatal(v, "Receiver is null")
+ if recv.is_null then fatal(v, "Receiver is null")
var mproperty = self.mproperty.as(not null)
return v.bool_instance(v.isset_attribute(mproperty, recv))
end
end
end
+redef class ASafeExpr
+ redef fun expr(v)
+ do
+ return v.expr(self.n_expr)
+ end
+end
+
redef class ANamedargExpr
redef fun expr(v)
do
# Attach homonymous `ini` file to the package
var inipath = path.dirname / "{pn}.ini"
if inipath.file_exists then
- var ini = new ConfigTree(inipath)
+ var ini = new IniFile.from_file(inipath)
mpackage.ini = ini
end
end
var parent = null
var inipath = dirpath / "package.ini"
if inipath.file_exists then
- ini = new ConfigTree(inipath)
+ ini = new IniFile.from_file(inipath)
end
if ini == null then
# The `ini` file is given as is and might contain invalid or missing information.
#
# Some packages, like stand-alone packages or virtual packages have no `ini` file associated.
- var ini: nullable ConfigTree = null
+ var ini: nullable IniFile = null
# Array of relative source paths excluded according to the `source.exclude` key of the `ini`
var excludes: nullable Array[String] is lazy do
import metrics_base
import model::model_collect
-import markdown
+import markdown2
redef class ToolContext
end
# A Markdown decorator that collects metrics about a Readme content
-class MetricsDecorator
- super HTMLDecorator
+class MarkdownMetrics
+ super MdVisitor
- # Count blocks
- var block_counter = new Counter[String]
+ # Count nodes
+ var nodes_counter = new Counter[String]
- # Count sections
- var headline_counter = new Counter[Int]
+ # Count heading levels
+ var headings_counter = new Counter[Int]
- redef fun add_ruler(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_headline(v, block) do
- block_counter.inc block.class_name
- headline_counter.inc block.depth
- super
- end
-
- redef fun add_paragraph(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_code(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_blockquote(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_unorderedlist(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_orderedlist(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_listitem(v, block) do
- block_counter.inc block.class_name
- super
- end
-
- redef fun add_image(v, link, name, comment) do
- block_counter.inc "Image"
- super
- end
-
- redef fun add_link(v, link, name, comment) do
- block_counter.inc "Link"
- super
- end
-
- redef fun add_span_code(v, text, from, to) do
- block_counter.inc "SpanCode"
- super
+ redef fun visit(node) do
+ nodes_counter.inc node.class_name
+ if node isa MdHeading then
+ headings_counter.inc node.level
+ end
+ node.visit_all self
end
end
self["has_readme"] = 1
self["md_lines"] = md_lines.length
- collect_sections_metrics
- collect_blocs_metrics
+ var parser = new MdParser
+ var node = parser.parse(md_lines.join("\n"))
+ var v = new MarkdownMetrics
+ v.enter_visit(node)
+ for md_node, value in v.nodes_counter do
+ self[md_node] = value
+ end
+ for level, value in v.headings_counter do
+ self["HL {level}"] = value
+ end
end
# Path to the package
if path == null then return new Array[String]
return path.to_path.read_lines
end
-
- # Markdown decorator used to visit Markdown content
- var md_decorator: MetricsDecorator is lazy do
- var md_decorator = new MetricsDecorator
- var md_proc = new MarkdownProcessor
- md_proc.decorator = md_decorator
- md_proc.process(md_lines.join("\n"))
- return md_decorator
- end
-
- # Collect metrics related to section headings
- fun collect_sections_metrics do
- self["nb_section"] = md_decorator.headline_counter.sum
- for lvl, count in md_decorator.headline_counter do
- self["HL {lvl}"] = count
- end
- end
-
- # Collect metrics related to Markdown blocks
- fun collect_blocs_metrics do
- self["md_blocks"] = md_decorator.block_counter.sum
- for block, count in md_decorator.block_counter do
- self[block] = count
- end
- end
end
do
var res = self.flatten_mclass_hierarchy_cache
if res != null then return res
- res = new POSet[MClass]
+ self.flatten_mclass_hierarchy_cache = new POSet[MClass]
for m in self.in_importation.greaters do
for cd in m.mclassdefs do
- var c = cd.mclass
- res.add_node(c)
- for s in cd.supertypes do
- res.add_edge(c, s.mclass)
- end
+ unsafe_update_hierarchy_cache(cd)
end
end
- self.flatten_mclass_hierarchy_cache = res
- return res
- end
+ return self.flatten_mclass_hierarchy_cache.as(not null)
+ end
+
+ # Adds another class definition in the modue.
+ # Updates the class hierarchy cache.
+ fun add_mclassdef(mclassdef: MClassDef)
+ do
+ self.mclassdefs.add(mclassdef)
+ if self.flatten_mclass_hierarchy_cache != null then
+ unsafe_update_hierarchy_cache(mclassdef)
+ end
+ end
+
+ # Adds a class definition inside `flatten_mclass_hierarchy_cache` without
+ # null check. The caller must have initialized the cache.
+ protected fun unsafe_update_hierarchy_cache(mclassdef: MClassDef)
+ do
+ var hierarchy = self.flatten_mclass_hierarchy_cache.as(not null)
+ # Update the cache
+ var c = mclassdef.mclass
+ hierarchy.add_node(c)
+ for s in mclassdef.supertypes do
+ hierarchy.add_edge(c, s.mclass)
+ end
+ end
# Sort a given array of classes using the linearization order of the module
# The most general is first, the most specific is last
init
do
self.mclass = bound_mtype.mclass
- mmodule.mclassdefs.add(self)
+ mmodule.add_mclassdef(self)
mclass.mclassdefs.add(self)
if mclass.intro_mmodule == mmodule then
assert not isset mclass._intro
var ini_path = ini_path
if ini_path == null then return
- var ini = new ConfigTree(ini_path)
+ var ini = new IniFile.from_file(ini_path)
- ini.check_key(toolcontext, self, "package.name", name)
- ini.check_key(toolcontext, self, "package.desc")
- ini.check_key(toolcontext, self, "package.tags")
+ ini.check_key(ini_path, toolcontext, self, "package.name", name)
+ ini.check_key(ini_path, toolcontext, self, "package.desc")
+ ini.check_key(ini_path, toolcontext, self, "package.tags")
# FIXME since `git reflog --follow` seems bugged
- ini.check_key(toolcontext, self, "package.maintainer")
+ ini.check_key(ini_path, toolcontext, self, "package.maintainer")
# var maint = mpackage.maintainer
# if maint != null then
# ini.check_key(toolcontext, self, "package.maintainer", maint)
# ini.check_key(toolcontext, self, "package.more_contributors", contribs.join(", "))
# end
- ini.check_key(toolcontext, self, "package.license", license)
- ini.check_key(toolcontext, self, "upstream.browse", browse_url)
- ini.check_key(toolcontext, self, "upstream.git", git_url)
- ini.check_key(toolcontext, self, "upstream.git.directory", git_dir)
- ini.check_key(toolcontext, self, "upstream.homepage", homepage_url)
- ini.check_key(toolcontext, self, "upstream.issues", issues_url)
+ ini.check_key(ini_path, toolcontext, self, "package.license", license)
+ ini.check_key(ini_path, toolcontext, self, "upstream.browse", browse_url)
+ ini.check_key(ini_path, toolcontext, self, "upstream.git", git_url)
+ ini.check_key(ini_path, toolcontext, self, "upstream.git.directory", git_dir)
+ ini.check_key(ini_path, toolcontext, self, "upstream.homepage", homepage_url)
+ ini.check_key(ini_path, toolcontext, self, "upstream.issues", issues_url)
- for key in ini.to_map.keys do
+ for key in ini.flatten.keys do
if not allowed_ini_keys.has(key) then
toolcontext.warning(location, "unknown-ini-key",
- "Warning: ignoring unknown `{key}` key in `{ini.ini_file}`")
+ "Warning: ignoring unknown `{key}` key in `{ini_path}`")
end
end
end
private fun gen_ini: String do
var ini_path = self.ini_path.as(not null)
- var ini = new ConfigTree(ini_path)
+ var ini = new IniFile.from_file(ini_path)
ini.update_value("package.name", name)
ini.update_value("package.desc", "")
ini.update_value("upstream.homepage", homepage_url)
ini.update_value("upstream.issues", issues_url)
- ini.save
+ ini.write_to_file(ini_path)
return ini_path
end
end
end
-redef class ConfigTree
- private fun check_key(toolcontext: ToolContext, mpackage: MPackage, key: String, value: nullable String) do
+redef class IniFile
+ private fun check_key(ini_file: String, toolcontext: ToolContext, mpackage: MPackage, key: String, value: nullable String) do
if not has_key(key) then
toolcontext.warning(mpackage.location, "missing-ini-key",
"Warning: missing `{key}` key in `{ini_file}`")
exit 1
end
- var ini = new ConfigTree(ini_path)
+ var ini = new IniFile.from_file(ini_path)
var import_line = ini["package.import"]
if import_line == null then
print_error "The local `package.ini` declares no external dependencies."
print ini_path.to_path.read_all
end
- var ini = new ConfigTree(ini_path)
+ var ini = new IniFile.from_file(ini_path)
var git_repo = ini["upstream.git"]
if git_repo == null then
print_error "Package description invalid, or it does not declare a Git repository"
end
# Recursive install
- var ini = new ConfigTree(target_dir/"package.ini")
+ var ini = new IniFile.from_file(target_dir/"package.ini")
var import_line = ini["package.import"]
if import_line != null then
install_packages import_line
for file in files do
var ini_path = nitpm_lib_dir / file / "package.ini"
if verbose then print "- Reading ini file at {ini_path}"
- var ini = new ConfigTree(ini_path)
+ var ini = new IniFile.from_file(ini_path)
var tags = ini["package.tags"]
name_to_desc[file] = tags
app.use("/oauth", new GithubOAuthCallBack(config.github_client_id, config.github_client_secret))
app.use("/logout", new GithubLogout)
app.use("/*", new StaticHandler(toolcontext.share_dir / "nitweb", "index.html"))
- app.use_after("/*", new ConsoleLog)
+ app.use_after("/*", new PopLogger(info_level))
app.listen(config.app_host, config.app_port)
end
end
end
-redef class TAt
+redef class TQuest
redef fun parser_index: Int
do
return 97
end
end
-redef class TSemi
+redef class TAt
redef fun parser_index: Int
do
return 98
end
end
-redef class TClassid
+redef class TSemi
redef fun parser_index: Int
do
return 99
end
end
-redef class TId
+redef class TClassid
redef fun parser_index: Int
do
return 100
end
end
-redef class TAttrid
+redef class TId
redef fun parser_index: Int
do
return 101
end
end
-redef class TInteger
+redef class TAttrid
redef fun parser_index: Int
do
return 102
end
end
-redef class TFloat
+redef class TInteger
redef fun parser_index: Int
do
return 103
end
end
-redef class TString
+redef class TFloat
redef fun parser_index: Int
do
return 104
end
end
-redef class TStartString
+redef class TString
redef fun parser_index: Int
do
return 105
end
end
-redef class TMidString
+redef class TStartString
redef fun parser_index: Int
do
return 106
end
end
-redef class TEndString
+redef class TMidString
redef fun parser_index: Int
do
return 107
end
end
-redef class TChar
+redef class TEndString
redef fun parser_index: Int
do
return 108
end
end
-redef class TBadString
+redef class TChar
redef fun parser_index: Int
do
return 109
end
end
-redef class TBadTString
+redef class TBadString
redef fun parser_index: Int
do
return 110
end
end
-redef class TBadChar
+redef class TBadTString
redef fun parser_index: Int
do
return 111
end
end
-redef class TExternCodeSegment
+redef class TBadChar
redef fun parser_index: Int
do
return 112
end
end
-redef class TBadExtern
+redef class TExternCodeSegment
redef fun parser_index: Int
do
return 113
end
end
+redef class TBadExtern
+ redef fun parser_index: Int
+ do
+ return 114
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
redef class EOF
redef fun parser_index: Int
do
- return 114
+ return 115
end
end
return new TBang.init_tk(location)
end
if accept_token == 98 then
- return new TAt.init_tk(location)
+ return new TQuest.init_tk(location)
end
if accept_token == 99 then
- return new TSemi.init_tk(location)
+ return new TAt.init_tk(location)
end
if accept_token == 100 then
- return new TClassid.init_tk(location)
+ return new TSemi.init_tk(location)
end
if accept_token == 101 then
- return new TId.init_tk(location)
+ return new TClassid.init_tk(location)
end
if accept_token == 102 then
- return new TAttrid.init_tk(location)
+ return new TId.init_tk(location)
end
if accept_token == 103 then
- return new TInteger.init_tk(location)
+ return new TAttrid.init_tk(location)
end
if accept_token == 104 then
- return new TFloat.init_tk(location)
+ return new TInteger.init_tk(location)
end
if accept_token == 105 then
- return new TString.init_tk(location)
+ return new TFloat.init_tk(location)
end
if accept_token == 106 then
- return new TStartString.init_tk(location)
+ return new TString.init_tk(location)
end
if accept_token == 107 then
- return new TMidString.init_tk(location)
+ return new TStartString.init_tk(location)
end
if accept_token == 108 then
- return new TEndString.init_tk(location)
+ return new TMidString.init_tk(location)
end
if accept_token == 109 then
- return new TChar.init_tk(location)
+ return new TEndString.init_tk(location)
end
if accept_token == 110 then
- return new TBadString.init_tk(location)
+ return new TChar.init_tk(location)
end
if accept_token == 111 then
- return new TBadTString.init_tk(location)
+ return new TBadString.init_tk(location)
end
if accept_token == 112 then
- return new TBadChar.init_tk(location)
+ return new TBadTString.init_tk(location)
end
if accept_token == 113 then
- return new TExternCodeSegment.init_tk(location)
+ return new TBadChar.init_tk(location)
end
if accept_token == 114 then
+ return new TExternCodeSegment.init_tk(location)
+ end
+ if accept_token == 115 then
return new TBadExtern.init_tk(location)
end
abort # unknown token index `accept_token`
gg = '>>';
starship = '<=>';
bang='!';
+quest='?';
at='@';
semi=';';
= expr_atom~nopar~nobra {-> expr_atom~nopar~nobra.expr}
| {new} kwnew no type_atom~nobra_nopar args {-> New expr.new(kwnew, type_atom~nobra_nopar.type, Null, args.exprs)}
| {isset_attr} kwisset recv~nopar~nobra qualified_o attrid {-> New expr.isset_attr(kwisset, recv~nopar~nobra.expr, attrid)}
+ | {callref} amp recv~nopar~nobra qid args {-> New expr.callref(amp, recv~nopar~nobra.expr, qid, args.exprs)}
;
expr_atom~nopar~nobra {-> expr}
recv~nopar~nobra {-> expr}
= expr_atom~nopar~nobra dot no {-> expr_atom~nopar~nobra.expr}
+ | {safe} expr_atom~nopar~nobra quest dot no {-> New expr.safe(expr_atom~nopar~nobra.expr, quest)}
| {implicit} {-> New expr.implicit_self()}
;
| {attr_assign} expr [id]:attrid assign [value]:expr
| {attr_reassign} expr [id]:attrid assign_op [value]:expr
| {call} expr qid [args]:exprs
+ | {callref} amp expr qid [args]:exprs
| {call_assign} expr qid [args]:exprs assign [value]:expr
| {call_reassign} expr qid [args]:exprs assign_op [value]:expr
| {super} qualified? kwsuper [args]:exprs
| {debug_type} kwdebug kwtype expr type
| {vararg} expr dotdotdot
| {namedarg} id assign expr
+ | {safe} expr quest
| {type} type
| {methid} expr [id]:methid
| {at} annotations
redef class Parser
redef fun build_reduce_table
do
- var reduce_table = new Array[ReduceAction].with_capacity(1116)
+ var reduce_table = new Array[ReduceAction].with_capacity(1303)
reduce_table.add new ReduceAction0(0)
reduce_table.add new ReduceAction1(0)
reduce_table.add new ReduceAction2(0)
reduce_table.add new ReduceAction200(45)
reduce_table.add new ReduceAction201(45)
reduce_table.add new ReduceAction202(45)
- reduce_table.add new ReduceAction201(45)
+ reduce_table.add new ReduceAction203(45)
reduce_table.add new ReduceAction204(45)
reduce_table.add new ReduceAction205(45)
- reduce_table.add new ReduceAction204(45)
+ reduce_table.add new ReduceAction206(45)
reduce_table.add new ReduceAction207(45)
- reduce_table.add new ReduceAction208(46)
- reduce_table.add new ReduceAction209(46)
- reduce_table.add new ReduceAction210(47)
- reduce_table.add new ReduceAction211(47)
- reduce_table.add new ReduceAction212(47)
- reduce_table.add new ReduceAction213(47)
- reduce_table.add new ReduceAction214(48)
- reduce_table.add new ReduceAction215(48)
- reduce_table.add new ReduceAction216(48)
- reduce_table.add new ReduceAction217(48)
- reduce_table.add new ReduceAction218(48)
- reduce_table.add new ReduceAction219(48)
- reduce_table.add new ReduceAction220(48)
- reduce_table.add new ReduceAction221(48)
+ reduce_table.add new ReduceAction206(45)
+ reduce_table.add new ReduceAction209(45)
+ reduce_table.add new ReduceAction210(45)
+ reduce_table.add new ReduceAction209(45)
+ reduce_table.add new ReduceAction212(45)
+ reduce_table.add new ReduceAction213(45)
+ reduce_table.add new ReduceAction212(45)
+ reduce_table.add new ReduceAction215(45)
+ reduce_table.add new ReduceAction216(46)
+ reduce_table.add new ReduceAction217(46)
+ reduce_table.add new ReduceAction218(47)
+ reduce_table.add new ReduceAction219(47)
+ reduce_table.add new ReduceAction220(47)
+ reduce_table.add new ReduceAction221(47)
reduce_table.add new ReduceAction222(48)
reduce_table.add new ReduceAction223(48)
reduce_table.add new ReduceAction224(48)
reduce_table.add new ReduceAction249(48)
reduce_table.add new ReduceAction250(48)
reduce_table.add new ReduceAction251(48)
- reduce_table.add new ReduceAction252(49)
- reduce_table.add new ReduceAction253(49)
- reduce_table.add new ReduceAction254(49)
- reduce_table.add new ReduceAction255(49)
- reduce_table.add new ReduceAction256(49)
- reduce_table.add new ReduceAction257(49)
- reduce_table.add new ReduceAction258(49)
- reduce_table.add new ReduceAction259(49)
- reduce_table.add new ReduceAction260(49)
- reduce_table.add new ReduceAction261(49)
- reduce_table.add new ReduceAction262(49)
- reduce_table.add new ReduceAction263(50)
- reduce_table.add new ReduceAction264(50)
- reduce_table.add new ReduceAction265(50)
- reduce_table.add new ReduceAction266(51)
- reduce_table.add new ReduceAction267(51)
- reduce_table.add new ReduceAction268(51)
- reduce_table.add new ReduceAction269(51)
- reduce_table.add new ReduceAction270(51)
- reduce_table.add new ReduceAction271(51)
- reduce_table.add new ReduceAction272(51)
- reduce_table.add new ReduceAction273(51)
+ reduce_table.add new ReduceAction252(48)
+ reduce_table.add new ReduceAction253(48)
+ reduce_table.add new ReduceAction254(48)
+ reduce_table.add new ReduceAction255(48)
+ reduce_table.add new ReduceAction256(48)
+ reduce_table.add new ReduceAction257(48)
+ reduce_table.add new ReduceAction258(48)
+ reduce_table.add new ReduceAction259(48)
+ reduce_table.add new ReduceAction260(48)
+ reduce_table.add new ReduceAction261(48)
+ reduce_table.add new ReduceAction262(48)
+ reduce_table.add new ReduceAction263(48)
+ reduce_table.add new ReduceAction264(48)
+ reduce_table.add new ReduceAction265(48)
+ reduce_table.add new ReduceAction266(48)
+ reduce_table.add new ReduceAction267(48)
+ reduce_table.add new ReduceAction268(48)
+ reduce_table.add new ReduceAction269(48)
+ reduce_table.add new ReduceAction270(48)
+ reduce_table.add new ReduceAction271(48)
+ reduce_table.add new ReduceAction272(48)
+ reduce_table.add new ReduceAction273(48)
+ reduce_table.add new ReduceAction274(48)
+ reduce_table.add new ReduceAction275(48)
+ reduce_table.add new ReduceAction276(48)
+ reduce_table.add new ReduceAction277(48)
+ reduce_table.add new ReduceAction278(49)
+ reduce_table.add new ReduceAction279(49)
+ reduce_table.add new ReduceAction280(49)
+ reduce_table.add new ReduceAction281(49)
+ reduce_table.add new ReduceAction282(49)
+ reduce_table.add new ReduceAction283(49)
+ reduce_table.add new ReduceAction284(49)
+ reduce_table.add new ReduceAction285(49)
+ reduce_table.add new ReduceAction286(49)
+ reduce_table.add new ReduceAction287(49)
+ reduce_table.add new ReduceAction288(49)
+ reduce_table.add new ReduceAction289(50)
+ reduce_table.add new ReduceAction290(50)
+ reduce_table.add new ReduceAction291(50)
+ reduce_table.add new ReduceAction292(51)
+ reduce_table.add new ReduceAction293(51)
+ reduce_table.add new ReduceAction294(51)
+ reduce_table.add new ReduceAction295(51)
+ reduce_table.add new ReduceAction296(51)
+ reduce_table.add new ReduceAction297(51)
+ reduce_table.add new ReduceAction298(51)
+ reduce_table.add new ReduceAction299(51)
reduce_table.add new ReduceAction164(52)
- reduce_table.add new ReduceAction275(53)
- reduce_table.add new ReduceAction276(53)
- reduce_table.add new ReduceAction277(54)
- reduce_table.add new ReduceAction278(54)
- reduce_table.add new ReduceAction279(55)
- reduce_table.add new ReduceAction280(55)
- reduce_table.add new ReduceAction281(56)
- reduce_table.add new ReduceAction282(56)
- reduce_table.add new ReduceAction283(57)
- reduce_table.add new ReduceAction284(58)
- reduce_table.add new ReduceAction285(58)
- reduce_table.add new ReduceAction286(59)
- reduce_table.add new ReduceAction287(59)
+ reduce_table.add new ReduceAction301(53)
+ reduce_table.add new ReduceAction302(53)
+ reduce_table.add new ReduceAction303(54)
+ reduce_table.add new ReduceAction304(54)
+ reduce_table.add new ReduceAction305(55)
+ reduce_table.add new ReduceAction306(55)
+ reduce_table.add new ReduceAction307(56)
+ reduce_table.add new ReduceAction308(56)
+ reduce_table.add new ReduceAction309(57)
+ reduce_table.add new ReduceAction310(58)
+ reduce_table.add new ReduceAction311(58)
+ reduce_table.add new ReduceAction312(59)
+ reduce_table.add new ReduceAction313(59)
reduce_table.add new ReduceAction165(59)
- reduce_table.add new ReduceAction289(60)
- reduce_table.add new ReduceAction290(60)
- reduce_table.add new ReduceAction291(60)
- reduce_table.add new ReduceAction292(60)
- reduce_table.add new ReduceAction293(61)
+ reduce_table.add new ReduceAction315(60)
+ reduce_table.add new ReduceAction316(60)
+ reduce_table.add new ReduceAction317(60)
+ reduce_table.add new ReduceAction318(60)
+ reduce_table.add new ReduceAction319(61)
reduce_table.add new ReduceAction165(62)
- reduce_table.add new ReduceAction295(62)
+ reduce_table.add new ReduceAction321(62)
reduce_table.add new ReduceAction165(63)
- reduce_table.add new ReduceAction297(63)
- reduce_table.add new ReduceAction298(63)
- reduce_table.add new ReduceAction299(63)
- reduce_table.add new ReduceAction300(63)
+ reduce_table.add new ReduceAction323(63)
+ reduce_table.add new ReduceAction324(63)
+ reduce_table.add new ReduceAction325(63)
+ reduce_table.add new ReduceAction326(63)
reduce_table.add new ReduceAction165(64)
- reduce_table.add new ReduceAction302(64)
+ reduce_table.add new ReduceAction328(64)
reduce_table.add new ReduceAction165(65)
- reduce_table.add new ReduceAction304(65)
- reduce_table.add new ReduceAction305(65)
- reduce_table.add new ReduceAction306(65)
- reduce_table.add new ReduceAction307(65)
- reduce_table.add new ReduceAction308(65)
- reduce_table.add new ReduceAction309(65)
- reduce_table.add new ReduceAction310(65)
- reduce_table.add new ReduceAction311(65)
+ reduce_table.add new ReduceAction330(65)
+ reduce_table.add new ReduceAction331(65)
+ reduce_table.add new ReduceAction332(65)
+ reduce_table.add new ReduceAction333(65)
+ reduce_table.add new ReduceAction334(65)
+ reduce_table.add new ReduceAction335(65)
+ reduce_table.add new ReduceAction336(65)
+ reduce_table.add new ReduceAction337(65)
reduce_table.add new ReduceAction165(66)
- reduce_table.add new ReduceAction313(66)
+ reduce_table.add new ReduceAction339(66)
reduce_table.add new ReduceAction165(67)
- reduce_table.add new ReduceAction315(67)
+ reduce_table.add new ReduceAction341(67)
reduce_table.add new ReduceAction165(68)
- reduce_table.add new ReduceAction317(68)
+ reduce_table.add new ReduceAction343(68)
reduce_table.add new ReduceAction165(69)
- reduce_table.add new ReduceAction319(69)
- reduce_table.add new ReduceAction320(69)
+ reduce_table.add new ReduceAction345(69)
+ reduce_table.add new ReduceAction346(69)
reduce_table.add new ReduceAction165(70)
- reduce_table.add new ReduceAction322(70)
- reduce_table.add new ReduceAction323(70)
+ reduce_table.add new ReduceAction348(70)
+ reduce_table.add new ReduceAction349(70)
reduce_table.add new ReduceAction165(71)
- reduce_table.add new ReduceAction325(71)
- reduce_table.add new ReduceAction326(71)
- reduce_table.add new ReduceAction327(71)
+ reduce_table.add new ReduceAction351(71)
+ reduce_table.add new ReduceAction352(71)
+ reduce_table.add new ReduceAction353(71)
reduce_table.add new ReduceAction165(72)
- reduce_table.add new ReduceAction329(72)
+ reduce_table.add new ReduceAction355(72)
reduce_table.add new ReduceAction165(73)
- reduce_table.add new ReduceAction331(73)
- reduce_table.add new ReduceAction332(73)
- reduce_table.add new ReduceAction333(73)
- reduce_table.add new ReduceAction334(73)
+ reduce_table.add new ReduceAction357(73)
+ reduce_table.add new ReduceAction358(73)
+ reduce_table.add new ReduceAction359(73)
+ reduce_table.add new ReduceAction360(73)
reduce_table.add new ReduceAction165(74)
- reduce_table.add new ReduceAction336(74)
- reduce_table.add new ReduceAction337(74)
- reduce_table.add new ReduceAction338(74)
- reduce_table.add new ReduceAction339(74)
+ reduce_table.add new ReduceAction362(74)
+ reduce_table.add new ReduceAction363(74)
+ reduce_table.add new ReduceAction364(74)
+ reduce_table.add new ReduceAction365(74)
+ reduce_table.add new ReduceAction366(74)
+ reduce_table.add new ReduceAction367(74)
+ reduce_table.add new ReduceAction368(74)
+ reduce_table.add new ReduceAction369(74)
+ reduce_table.add new ReduceAction370(74)
+ reduce_table.add new ReduceAction371(74)
+ reduce_table.add new ReduceAction372(74)
+ reduce_table.add new ReduceAction373(74)
+ reduce_table.add new ReduceAction374(74)
+ reduce_table.add new ReduceAction375(74)
+ reduce_table.add new ReduceAction376(74)
+ reduce_table.add new ReduceAction377(74)
+ reduce_table.add new ReduceAction378(74)
+ reduce_table.add new ReduceAction379(74)
+ reduce_table.add new ReduceAction380(74)
+ reduce_table.add new ReduceAction381(74)
+ reduce_table.add new ReduceAction382(74)
+ reduce_table.add new ReduceAction383(74)
+ reduce_table.add new ReduceAction384(74)
+ reduce_table.add new ReduceAction385(74)
+ reduce_table.add new ReduceAction386(74)
+ reduce_table.add new ReduceAction387(74)
+ reduce_table.add new ReduceAction388(74)
+ reduce_table.add new ReduceAction389(74)
+ reduce_table.add new ReduceAction390(74)
reduce_table.add new ReduceAction165(75)
- reduce_table.add new ReduceAction341(75)
- reduce_table.add new ReduceAction342(75)
+ reduce_table.add new ReduceAction392(75)
+ reduce_table.add new ReduceAction393(75)
+ reduce_table.add new ReduceAction394(75)
reduce_table.add new ReduceAction190(75)
- reduce_table.add new ReduceAction344(75)
+ reduce_table.add new ReduceAction396(75)
reduce_table.add new ReduceAction191(75)
- reduce_table.add new ReduceAction346(75)
+ reduce_table.add new ReduceAction398(75)
reduce_table.add new ReduceAction192(75)
- reduce_table.add new ReduceAction348(75)
+ reduce_table.add new ReduceAction400(75)
reduce_table.add new ReduceAction193(75)
- reduce_table.add new ReduceAction350(75)
+ reduce_table.add new ReduceAction402(75)
reduce_table.add new ReduceAction194(75)
- reduce_table.add new ReduceAction352(75)
+ reduce_table.add new ReduceAction404(75)
reduce_table.add new ReduceAction195(75)
- reduce_table.add new ReduceAction354(75)
+ reduce_table.add new ReduceAction406(75)
reduce_table.add new ReduceAction196(75)
- reduce_table.add new ReduceAction356(75)
+ reduce_table.add new ReduceAction408(75)
reduce_table.add new ReduceAction197(75)
- reduce_table.add new ReduceAction358(75)
+ reduce_table.add new ReduceAction410(75)
reduce_table.add new ReduceAction198(75)
- reduce_table.add new ReduceAction360(75)
+ reduce_table.add new ReduceAction412(75)
reduce_table.add new ReduceAction199(75)
- reduce_table.add new ReduceAction362(75)
+ reduce_table.add new ReduceAction414(75)
reduce_table.add new ReduceAction200(75)
- reduce_table.add new ReduceAction364(75)
- reduce_table.add new ReduceAction365(75)
- reduce_table.add new ReduceAction366(75)
- reduce_table.add new ReduceAction367(75)
- reduce_table.add new ReduceAction368(75)
- reduce_table.add new ReduceAction369(75)
- reduce_table.add new ReduceAction370(75)
- reduce_table.add new ReduceAction371(75)
- reduce_table.add new ReduceAction372(75)
- reduce_table.add new ReduceAction373(75)
- reduce_table.add new ReduceAction374(75)
- reduce_table.add new ReduceAction375(75)
- reduce_table.add new ReduceAction376(75)
+ reduce_table.add new ReduceAction416(75)
+ reduce_table.add new ReduceAction201(75)
+ reduce_table.add new ReduceAction418(75)
+ reduce_table.add new ReduceAction202(75)
+ reduce_table.add new ReduceAction420(75)
+ reduce_table.add new ReduceAction203(75)
+ reduce_table.add new ReduceAction422(75)
+ reduce_table.add new ReduceAction204(75)
+ reduce_table.add new ReduceAction424(75)
+ reduce_table.add new ReduceAction205(75)
+ reduce_table.add new ReduceAction426(75)
+ reduce_table.add new ReduceAction427(75)
+ reduce_table.add new ReduceAction428(75)
+ reduce_table.add new ReduceAction429(75)
+ reduce_table.add new ReduceAction430(75)
+ reduce_table.add new ReduceAction431(75)
+ reduce_table.add new ReduceAction432(75)
+ reduce_table.add new ReduceAction433(75)
+ reduce_table.add new ReduceAction434(75)
+ reduce_table.add new ReduceAction435(75)
+ reduce_table.add new ReduceAction436(75)
+ reduce_table.add new ReduceAction437(75)
+ reduce_table.add new ReduceAction438(75)
reduce_table.add new ReduceAction165(76)
- reduce_table.add new ReduceAction378(76)
- reduce_table.add new ReduceAction379(76)
- reduce_table.add new ReduceAction380(77)
- reduce_table.add new ReduceAction381(77)
- reduce_table.add new ReduceAction382(77)
- reduce_table.add new ReduceAction383(77)
- reduce_table.add new ReduceAction384(77)
- reduce_table.add new ReduceAction385(77)
- reduce_table.add new ReduceAction386(77)
- reduce_table.add new ReduceAction387(77)
+ reduce_table.add new ReduceAction440(76)
+ reduce_table.add new ReduceAction441(76)
+ reduce_table.add new ReduceAction442(77)
+ reduce_table.add new ReduceAction443(77)
+ reduce_table.add new ReduceAction444(77)
+ reduce_table.add new ReduceAction445(77)
+ reduce_table.add new ReduceAction446(77)
+ reduce_table.add new ReduceAction447(77)
+ reduce_table.add new ReduceAction448(77)
+ reduce_table.add new ReduceAction449(77)
reduce_table.add new ReduceAction165(77)
reduce_table.add new ReduceAction165(77)
- reduce_table.add new ReduceAction390(77)
- reduce_table.add new ReduceAction391(77)
- reduce_table.add new ReduceAction392(77)
- reduce_table.add new ReduceAction393(78)
- reduce_table.add new ReduceAction393(78)
- reduce_table.add new ReduceAction395(79)
- reduce_table.add new ReduceAction396(80)
- reduce_table.add new ReduceAction397(81)
- reduce_table.add new ReduceAction398(81)
- reduce_table.add new ReduceAction396(82)
- reduce_table.add new ReduceAction400(83)
- reduce_table.add new ReduceAction280(83)
- reduce_table.add new ReduceAction402(83)
- reduce_table.add new ReduceAction403(84)
- reduce_table.add new ReduceAction404(84)
- reduce_table.add new ReduceAction405(85)
- reduce_table.add new ReduceAction406(85)
- reduce_table.add new ReduceAction407(86)
- reduce_table.add new ReduceAction405(87)
- reduce_table.add new ReduceAction406(87)
- reduce_table.add new ReduceAction410(88)
- reduce_table.add new ReduceAction411(89)
- reduce_table.add new ReduceAction412(90)
- reduce_table.add new ReduceAction413(90)
- reduce_table.add new ReduceAction414(91)
+ reduce_table.add new ReduceAction452(77)
+ reduce_table.add new ReduceAction453(77)
+ reduce_table.add new ReduceAction454(77)
+ reduce_table.add new ReduceAction455(78)
+ reduce_table.add new ReduceAction455(78)
+ reduce_table.add new ReduceAction457(79)
+ reduce_table.add new ReduceAction458(80)
+ reduce_table.add new ReduceAction459(81)
+ reduce_table.add new ReduceAction460(81)
+ reduce_table.add new ReduceAction458(82)
+ reduce_table.add new ReduceAction462(83)
+ reduce_table.add new ReduceAction306(83)
+ reduce_table.add new ReduceAction464(83)
+ reduce_table.add new ReduceAction465(84)
+ reduce_table.add new ReduceAction466(84)
+ reduce_table.add new ReduceAction467(85)
+ reduce_table.add new ReduceAction468(85)
+ reduce_table.add new ReduceAction469(86)
+ reduce_table.add new ReduceAction467(87)
+ reduce_table.add new ReduceAction468(87)
+ reduce_table.add new ReduceAction472(88)
+ reduce_table.add new ReduceAction473(89)
+ reduce_table.add new ReduceAction474(90)
+ reduce_table.add new ReduceAction475(90)
+ reduce_table.add new ReduceAction476(91)
reduce_table.add new ReduceAction22(91)
- reduce_table.add new ReduceAction416(92)
- reduce_table.add new ReduceAction417(92)
- reduce_table.add new ReduceAction418(93)
- reduce_table.add new ReduceAction419(93)
- reduce_table.add new ReduceAction416(94)
- reduce_table.add new ReduceAction417(94)
- reduce_table.add new ReduceAction422(94)
+ reduce_table.add new ReduceAction478(92)
+ reduce_table.add new ReduceAction479(92)
+ reduce_table.add new ReduceAction480(93)
+ reduce_table.add new ReduceAction481(93)
+ reduce_table.add new ReduceAction478(94)
+ reduce_table.add new ReduceAction479(94)
+ reduce_table.add new ReduceAction484(94)
reduce_table.add new ReduceAction165(95)
- reduce_table.add new ReduceAction424(96)
- reduce_table.add new ReduceAction425(97)
- reduce_table.add new ReduceAction426(97)
- reduce_table.add new ReduceAction427(97)
- reduce_table.add new ReduceAction428(97)
- reduce_table.add new ReduceAction429(97)
- reduce_table.add new ReduceAction430(98)
- reduce_table.add new ReduceAction431(98)
- reduce_table.add new ReduceAction432(98)
- reduce_table.add new ReduceAction433(98)
- reduce_table.add new ReduceAction434(98)
- reduce_table.add new ReduceAction397(99)
- reduce_table.add new ReduceAction398(99)
- reduce_table.add new ReduceAction396(100)
- reduce_table.add new ReduceAction438(101)
+ reduce_table.add new ReduceAction486(96)
+ reduce_table.add new ReduceAction487(97)
+ reduce_table.add new ReduceAction488(97)
+ reduce_table.add new ReduceAction489(97)
+ reduce_table.add new ReduceAction490(97)
+ reduce_table.add new ReduceAction491(97)
+ reduce_table.add new ReduceAction492(98)
+ reduce_table.add new ReduceAction493(98)
+ reduce_table.add new ReduceAction494(98)
+ reduce_table.add new ReduceAction495(98)
+ reduce_table.add new ReduceAction496(98)
+ reduce_table.add new ReduceAction459(99)
+ reduce_table.add new ReduceAction460(99)
+ reduce_table.add new ReduceAction458(100)
+ reduce_table.add new ReduceAction500(101)
reduce_table.add new ReduceAction165(101)
reduce_table.add new ReduceAction165(101)
- reduce_table.add new ReduceAction441(101)
- reduce_table.add new ReduceAction442(101)
- reduce_table.add new ReduceAction443(101)
- reduce_table.add new ReduceAction444(102)
- reduce_table.add new ReduceAction445(102)
- reduce_table.add new ReduceAction446(102)
- reduce_table.add new ReduceAction447(103)
- reduce_table.add new ReduceAction448(103)
- reduce_table.add new ReduceAction447(104)
- reduce_table.add new ReduceAction450(104)
- reduce_table.add new ReduceAction448(104)
- reduce_table.add new ReduceAction452(104)
- reduce_table.add new ReduceAction453(105)
- reduce_table.add new ReduceAction406(106)
- reduce_table.add new ReduceAction455(106)
- reduce_table.add new ReduceAction456(107)
- reduce_table.add new ReduceAction457(108)
- reduce_table.add new ReduceAction458(108)
- reduce_table.add new ReduceAction459(109)
- reduce_table.add new ReduceAction460(109)
- reduce_table.add new ReduceAction461(110)
- reduce_table.add new ReduceAction462(110)
- reduce_table.add new ReduceAction463(110)
- reduce_table.add new ReduceAction464(110)
- reduce_table.add new ReduceAction465(111)
- reduce_table.add new ReduceAction466(111)
- reduce_table.add new ReduceAction467(111)
+ reduce_table.add new ReduceAction503(101)
+ reduce_table.add new ReduceAction504(101)
+ reduce_table.add new ReduceAction505(101)
+ reduce_table.add new ReduceAction506(101)
+ reduce_table.add new ReduceAction507(102)
+ reduce_table.add new ReduceAction508(102)
+ reduce_table.add new ReduceAction509(102)
+ reduce_table.add new ReduceAction510(103)
+ reduce_table.add new ReduceAction511(103)
+ reduce_table.add new ReduceAction510(104)
+ reduce_table.add new ReduceAction513(104)
+ reduce_table.add new ReduceAction511(104)
+ reduce_table.add new ReduceAction515(104)
+ reduce_table.add new ReduceAction516(105)
+ reduce_table.add new ReduceAction468(106)
+ reduce_table.add new ReduceAction518(106)
+ reduce_table.add new ReduceAction519(107)
+ reduce_table.add new ReduceAction520(108)
+ reduce_table.add new ReduceAction521(108)
+ reduce_table.add new ReduceAction522(109)
+ reduce_table.add new ReduceAction523(109)
+ reduce_table.add new ReduceAction524(110)
+ reduce_table.add new ReduceAction525(110)
+ reduce_table.add new ReduceAction526(110)
+ reduce_table.add new ReduceAction527(110)
+ reduce_table.add new ReduceAction528(111)
+ reduce_table.add new ReduceAction529(111)
+ reduce_table.add new ReduceAction530(111)
reduce_table.add new ReduceAction22(111)
- reduce_table.add new ReduceAction469(112)
- reduce_table.add new ReduceAction470(112)
- reduce_table.add new ReduceAction471(112)
- reduce_table.add new ReduceAction472(112)
- reduce_table.add new ReduceAction473(113)
- reduce_table.add new ReduceAction474(113)
- reduce_table.add new ReduceAction475(113)
- reduce_table.add new ReduceAction474(113)
- reduce_table.add new ReduceAction477(114)
- reduce_table.add new ReduceAction478(115)
+ reduce_table.add new ReduceAction532(112)
+ reduce_table.add new ReduceAction533(112)
+ reduce_table.add new ReduceAction534(112)
+ reduce_table.add new ReduceAction535(112)
+ reduce_table.add new ReduceAction536(113)
+ reduce_table.add new ReduceAction537(113)
+ reduce_table.add new ReduceAction538(113)
+ reduce_table.add new ReduceAction537(113)
+ reduce_table.add new ReduceAction540(114)
+ reduce_table.add new ReduceAction541(115)
reduce_table.add new ReduceAction22(116)
- reduce_table.add new ReduceAction480(116)
- reduce_table.add new ReduceAction481(117)
- reduce_table.add new ReduceAction481(117)
- reduce_table.add new ReduceAction481(117)
- reduce_table.add new ReduceAction484(118)
- reduce_table.add new ReduceAction485(118)
+ reduce_table.add new ReduceAction543(116)
+ reduce_table.add new ReduceAction544(117)
+ reduce_table.add new ReduceAction544(117)
+ reduce_table.add new ReduceAction544(117)
+ reduce_table.add new ReduceAction547(118)
+ reduce_table.add new ReduceAction548(118)
reduce_table.add new ReduceAction23(118)
reduce_table.add new ReduceAction23(118)
- reduce_table.add new ReduceAction488(118)
- reduce_table.add new ReduceAction488(118)
- reduce_table.add new ReduceAction490(118)
- reduce_table.add new ReduceAction491(118)
- reduce_table.add new ReduceAction492(118)
- reduce_table.add new ReduceAction492(118)
- reduce_table.add new ReduceAction494(118)
+ reduce_table.add new ReduceAction551(118)
+ reduce_table.add new ReduceAction551(118)
+ reduce_table.add new ReduceAction553(118)
+ reduce_table.add new ReduceAction554(118)
+ reduce_table.add new ReduceAction555(118)
+ reduce_table.add new ReduceAction555(118)
+ reduce_table.add new ReduceAction557(118)
reduce_table.add new ReduceAction22(119)
- reduce_table.add new ReduceAction496(119)
- reduce_table.add new ReduceAction497(120)
- reduce_table.add new ReduceAction481(120)
- reduce_table.add new ReduceAction481(121)
- reduce_table.add new ReduceAction500(121)
+ reduce_table.add new ReduceAction559(119)
+ reduce_table.add new ReduceAction560(120)
+ reduce_table.add new ReduceAction544(120)
+ reduce_table.add new ReduceAction544(121)
+ reduce_table.add new ReduceAction563(121)
reduce_table.add new ReduceAction49(122)
reduce_table.add new ReduceAction50(122)
reduce_table.add new ReduceAction51(122)
reduce_table.add new ReduceAction108(124)
reduce_table.add new ReduceAction109(124)
reduce_table.add new ReduceAction110(124)
- reduce_table.add new ReduceAction473(125)
- reduce_table.add new ReduceAction474(125)
- reduce_table.add new ReduceAction475(125)
- reduce_table.add new ReduceAction474(125)
+ reduce_table.add new ReduceAction536(125)
+ reduce_table.add new ReduceAction537(125)
+ reduce_table.add new ReduceAction538(125)
+ reduce_table.add new ReduceAction537(125)
reduce_table.add new ReduceAction149(126)
reduce_table.add new ReduceAction150(126)
reduce_table.add new ReduceAction150(126)
reduce_table.add new ReduceAction152(127)
reduce_table.add new ReduceAction153(127)
reduce_table.add new ReduceAction165(128)
- reduce_table.add new ReduceAction295(128)
+ reduce_table.add new ReduceAction321(128)
reduce_table.add new ReduceAction165(129)
- reduce_table.add new ReduceAction297(129)
- reduce_table.add new ReduceAction298(129)
- reduce_table.add new ReduceAction299(129)
- reduce_table.add new ReduceAction300(129)
+ reduce_table.add new ReduceAction323(129)
+ reduce_table.add new ReduceAction324(129)
+ reduce_table.add new ReduceAction325(129)
+ reduce_table.add new ReduceAction326(129)
reduce_table.add new ReduceAction165(130)
- reduce_table.add new ReduceAction302(130)
+ reduce_table.add new ReduceAction328(130)
reduce_table.add new ReduceAction165(131)
- reduce_table.add new ReduceAction304(131)
- reduce_table.add new ReduceAction305(131)
- reduce_table.add new ReduceAction306(131)
- reduce_table.add new ReduceAction307(131)
- reduce_table.add new ReduceAction308(131)
- reduce_table.add new ReduceAction309(131)
- reduce_table.add new ReduceAction310(131)
- reduce_table.add new ReduceAction311(131)
+ reduce_table.add new ReduceAction330(131)
+ reduce_table.add new ReduceAction331(131)
+ reduce_table.add new ReduceAction332(131)
+ reduce_table.add new ReduceAction333(131)
+ reduce_table.add new ReduceAction334(131)
+ reduce_table.add new ReduceAction335(131)
+ reduce_table.add new ReduceAction336(131)
+ reduce_table.add new ReduceAction337(131)
reduce_table.add new ReduceAction165(132)
- reduce_table.add new ReduceAction313(132)
+ reduce_table.add new ReduceAction339(132)
reduce_table.add new ReduceAction165(133)
- reduce_table.add new ReduceAction315(133)
+ reduce_table.add new ReduceAction341(133)
reduce_table.add new ReduceAction165(134)
- reduce_table.add new ReduceAction317(134)
+ reduce_table.add new ReduceAction343(134)
reduce_table.add new ReduceAction165(135)
- reduce_table.add new ReduceAction319(135)
- reduce_table.add new ReduceAction320(135)
+ reduce_table.add new ReduceAction345(135)
+ reduce_table.add new ReduceAction346(135)
reduce_table.add new ReduceAction165(136)
- reduce_table.add new ReduceAction322(136)
- reduce_table.add new ReduceAction323(136)
+ reduce_table.add new ReduceAction348(136)
+ reduce_table.add new ReduceAction349(136)
reduce_table.add new ReduceAction165(137)
- reduce_table.add new ReduceAction325(137)
- reduce_table.add new ReduceAction326(137)
- reduce_table.add new ReduceAction327(137)
+ reduce_table.add new ReduceAction351(137)
+ reduce_table.add new ReduceAction352(137)
+ reduce_table.add new ReduceAction353(137)
reduce_table.add new ReduceAction165(138)
- reduce_table.add new ReduceAction329(138)
+ reduce_table.add new ReduceAction355(138)
reduce_table.add new ReduceAction165(139)
- reduce_table.add new ReduceAction331(139)
- reduce_table.add new ReduceAction332(139)
- reduce_table.add new ReduceAction333(139)
- reduce_table.add new ReduceAction334(139)
+ reduce_table.add new ReduceAction357(139)
+ reduce_table.add new ReduceAction358(139)
+ reduce_table.add new ReduceAction359(139)
+ reduce_table.add new ReduceAction360(139)
reduce_table.add new ReduceAction165(140)
- reduce_table.add new ReduceAction336(140)
- reduce_table.add new ReduceAction337(140)
- reduce_table.add new ReduceAction338(140)
- reduce_table.add new ReduceAction339(140)
+ reduce_table.add new ReduceAction362(140)
+ reduce_table.add new ReduceAction363(140)
+ reduce_table.add new ReduceAction364(140)
+ reduce_table.add new ReduceAction365(140)
+ reduce_table.add new ReduceAction366(140)
+ reduce_table.add new ReduceAction367(140)
+ reduce_table.add new ReduceAction375(140)
+ reduce_table.add new ReduceAction383(140)
+ reduce_table.add new ReduceAction368(140)
+ reduce_table.add new ReduceAction376(140)
+ reduce_table.add new ReduceAction384(140)
+ reduce_table.add new ReduceAction369(140)
+ reduce_table.add new ReduceAction377(140)
+ reduce_table.add new ReduceAction385(140)
+ reduce_table.add new ReduceAction370(140)
+ reduce_table.add new ReduceAction378(140)
+ reduce_table.add new ReduceAction386(140)
+ reduce_table.add new ReduceAction371(140)
+ reduce_table.add new ReduceAction379(140)
+ reduce_table.add new ReduceAction387(140)
+ reduce_table.add new ReduceAction372(140)
+ reduce_table.add new ReduceAction380(140)
+ reduce_table.add new ReduceAction388(140)
+ reduce_table.add new ReduceAction373(140)
+ reduce_table.add new ReduceAction381(140)
+ reduce_table.add new ReduceAction389(140)
+ reduce_table.add new ReduceAction374(140)
+ reduce_table.add new ReduceAction382(140)
+ reduce_table.add new ReduceAction390(140)
reduce_table.add new ReduceAction165(141)
- reduce_table.add new ReduceAction341(141)
- reduce_table.add new ReduceAction342(141)
+ reduce_table.add new ReduceAction392(141)
+ reduce_table.add new ReduceAction393(141)
+ reduce_table.add new ReduceAction394(141)
reduce_table.add new ReduceAction190(141)
reduce_table.add new ReduceAction194(141)
- reduce_table.add new ReduceAction344(141)
- reduce_table.add new ReduceAction352(141)
+ reduce_table.add new ReduceAction198(141)
+ reduce_table.add new ReduceAction396(141)
+ reduce_table.add new ReduceAction404(141)
+ reduce_table.add new ReduceAction412(141)
reduce_table.add new ReduceAction191(141)
reduce_table.add new ReduceAction195(141)
- reduce_table.add new ReduceAction346(141)
- reduce_table.add new ReduceAction354(141)
+ reduce_table.add new ReduceAction199(141)
+ reduce_table.add new ReduceAction398(141)
+ reduce_table.add new ReduceAction406(141)
+ reduce_table.add new ReduceAction414(141)
reduce_table.add new ReduceAction192(141)
reduce_table.add new ReduceAction196(141)
- reduce_table.add new ReduceAction348(141)
- reduce_table.add new ReduceAction356(141)
+ reduce_table.add new ReduceAction200(141)
+ reduce_table.add new ReduceAction400(141)
+ reduce_table.add new ReduceAction408(141)
+ reduce_table.add new ReduceAction416(141)
reduce_table.add new ReduceAction193(141)
reduce_table.add new ReduceAction197(141)
- reduce_table.add new ReduceAction350(141)
- reduce_table.add new ReduceAction358(141)
- reduce_table.add new ReduceAction198(141)
- reduce_table.add new ReduceAction360(141)
- reduce_table.add new ReduceAction199(141)
- reduce_table.add new ReduceAction200(141)
- reduce_table.add new ReduceAction362(141)
- reduce_table.add new ReduceAction364(141)
- reduce_table.add new ReduceAction366(141)
- reduce_table.add new ReduceAction367(141)
- reduce_table.add new ReduceAction368(141)
- reduce_table.add new ReduceAction369(141)
- reduce_table.add new ReduceAction370(141)
- reduce_table.add new ReduceAction371(141)
- reduce_table.add new ReduceAction372(141)
- reduce_table.add new ReduceAction373(141)
- reduce_table.add new ReduceAction374(141)
- reduce_table.add new ReduceAction375(141)
- reduce_table.add new ReduceAction376(141)
+ reduce_table.add new ReduceAction201(141)
+ reduce_table.add new ReduceAction402(141)
+ reduce_table.add new ReduceAction410(141)
+ reduce_table.add new ReduceAction418(141)
+ reduce_table.add new ReduceAction202(141)
+ reduce_table.add new ReduceAction420(141)
+ reduce_table.add new ReduceAction203(141)
+ reduce_table.add new ReduceAction204(141)
+ reduce_table.add new ReduceAction205(141)
+ reduce_table.add new ReduceAction422(141)
+ reduce_table.add new ReduceAction424(141)
+ reduce_table.add new ReduceAction426(141)
+ reduce_table.add new ReduceAction428(141)
+ reduce_table.add new ReduceAction429(141)
+ reduce_table.add new ReduceAction430(141)
+ reduce_table.add new ReduceAction431(141)
+ reduce_table.add new ReduceAction432(141)
+ reduce_table.add new ReduceAction433(141)
+ reduce_table.add new ReduceAction434(141)
+ reduce_table.add new ReduceAction435(141)
+ reduce_table.add new ReduceAction436(141)
+ reduce_table.add new ReduceAction437(141)
+ reduce_table.add new ReduceAction438(141)
reduce_table.add new ReduceAction165(142)
- reduce_table.add new ReduceAction378(142)
- reduce_table.add new ReduceAction379(142)
- reduce_table.add new ReduceAction380(143)
- reduce_table.add new ReduceAction381(143)
- reduce_table.add new ReduceAction382(143)
- reduce_table.add new ReduceAction383(143)
- reduce_table.add new ReduceAction384(143)
- reduce_table.add new ReduceAction385(143)
- reduce_table.add new ReduceAction386(143)
- reduce_table.add new ReduceAction387(143)
+ reduce_table.add new ReduceAction440(142)
+ reduce_table.add new ReduceAction441(142)
+ reduce_table.add new ReduceAction442(143)
+ reduce_table.add new ReduceAction443(143)
+ reduce_table.add new ReduceAction444(143)
+ reduce_table.add new ReduceAction445(143)
+ reduce_table.add new ReduceAction446(143)
+ reduce_table.add new ReduceAction447(143)
+ reduce_table.add new ReduceAction448(143)
+ reduce_table.add new ReduceAction449(143)
reduce_table.add new ReduceAction165(143)
reduce_table.add new ReduceAction165(143)
reduce_table.add new ReduceAction149(144)
reduce_table.add new ReduceAction200(146)
reduce_table.add new ReduceAction201(146)
reduce_table.add new ReduceAction202(146)
- reduce_table.add new ReduceAction201(146)
+ reduce_table.add new ReduceAction203(146)
reduce_table.add new ReduceAction204(146)
reduce_table.add new ReduceAction205(146)
- reduce_table.add new ReduceAction204(146)
+ reduce_table.add new ReduceAction206(146)
reduce_table.add new ReduceAction207(146)
- reduce_table.add new ReduceAction214(147)
- reduce_table.add new ReduceAction215(147)
- reduce_table.add new ReduceAction216(147)
- reduce_table.add new ReduceAction217(147)
- reduce_table.add new ReduceAction218(147)
- reduce_table.add new ReduceAction219(147)
- reduce_table.add new ReduceAction220(147)
- reduce_table.add new ReduceAction221(147)
+ reduce_table.add new ReduceAction206(146)
+ reduce_table.add new ReduceAction209(146)
+ reduce_table.add new ReduceAction210(146)
+ reduce_table.add new ReduceAction209(146)
+ reduce_table.add new ReduceAction212(146)
+ reduce_table.add new ReduceAction213(146)
+ reduce_table.add new ReduceAction212(146)
+ reduce_table.add new ReduceAction215(146)
reduce_table.add new ReduceAction222(147)
reduce_table.add new ReduceAction223(147)
reduce_table.add new ReduceAction224(147)
reduce_table.add new ReduceAction249(147)
reduce_table.add new ReduceAction250(147)
reduce_table.add new ReduceAction251(147)
+ reduce_table.add new ReduceAction252(147)
+ reduce_table.add new ReduceAction253(147)
+ reduce_table.add new ReduceAction254(147)
+ reduce_table.add new ReduceAction255(147)
+ reduce_table.add new ReduceAction256(147)
+ reduce_table.add new ReduceAction257(147)
+ reduce_table.add new ReduceAction258(147)
+ reduce_table.add new ReduceAction259(147)
+ reduce_table.add new ReduceAction260(147)
+ reduce_table.add new ReduceAction261(147)
+ reduce_table.add new ReduceAction262(147)
+ reduce_table.add new ReduceAction263(147)
+ reduce_table.add new ReduceAction264(147)
+ reduce_table.add new ReduceAction265(147)
+ reduce_table.add new ReduceAction266(147)
+ reduce_table.add new ReduceAction267(147)
+ reduce_table.add new ReduceAction268(147)
+ reduce_table.add new ReduceAction269(147)
+ reduce_table.add new ReduceAction270(147)
+ reduce_table.add new ReduceAction271(147)
+ reduce_table.add new ReduceAction272(147)
+ reduce_table.add new ReduceAction273(147)
+ reduce_table.add new ReduceAction274(147)
+ reduce_table.add new ReduceAction275(147)
+ reduce_table.add new ReduceAction276(147)
+ reduce_table.add new ReduceAction277(147)
reduce_table.add new ReduceAction165(148)
- reduce_table.add new ReduceAction295(148)
+ reduce_table.add new ReduceAction321(148)
reduce_table.add new ReduceAction165(149)
- reduce_table.add new ReduceAction297(149)
- reduce_table.add new ReduceAction298(149)
- reduce_table.add new ReduceAction299(149)
- reduce_table.add new ReduceAction300(149)
+ reduce_table.add new ReduceAction323(149)
+ reduce_table.add new ReduceAction324(149)
+ reduce_table.add new ReduceAction325(149)
+ reduce_table.add new ReduceAction326(149)
reduce_table.add new ReduceAction165(150)
- reduce_table.add new ReduceAction302(150)
+ reduce_table.add new ReduceAction328(150)
reduce_table.add new ReduceAction165(151)
- reduce_table.add new ReduceAction304(151)
- reduce_table.add new ReduceAction305(151)
- reduce_table.add new ReduceAction306(151)
- reduce_table.add new ReduceAction307(151)
- reduce_table.add new ReduceAction308(151)
- reduce_table.add new ReduceAction309(151)
- reduce_table.add new ReduceAction310(151)
- reduce_table.add new ReduceAction311(151)
+ reduce_table.add new ReduceAction330(151)
+ reduce_table.add new ReduceAction331(151)
+ reduce_table.add new ReduceAction332(151)
+ reduce_table.add new ReduceAction333(151)
+ reduce_table.add new ReduceAction334(151)
+ reduce_table.add new ReduceAction335(151)
+ reduce_table.add new ReduceAction336(151)
+ reduce_table.add new ReduceAction337(151)
reduce_table.add new ReduceAction165(152)
- reduce_table.add new ReduceAction313(152)
+ reduce_table.add new ReduceAction339(152)
reduce_table.add new ReduceAction165(153)
- reduce_table.add new ReduceAction315(153)
+ reduce_table.add new ReduceAction341(153)
reduce_table.add new ReduceAction165(154)
- reduce_table.add new ReduceAction317(154)
+ reduce_table.add new ReduceAction343(154)
reduce_table.add new ReduceAction165(155)
- reduce_table.add new ReduceAction319(155)
- reduce_table.add new ReduceAction320(155)
+ reduce_table.add new ReduceAction345(155)
+ reduce_table.add new ReduceAction346(155)
reduce_table.add new ReduceAction165(156)
- reduce_table.add new ReduceAction322(156)
- reduce_table.add new ReduceAction323(156)
+ reduce_table.add new ReduceAction348(156)
+ reduce_table.add new ReduceAction349(156)
reduce_table.add new ReduceAction165(157)
- reduce_table.add new ReduceAction325(157)
- reduce_table.add new ReduceAction326(157)
- reduce_table.add new ReduceAction327(157)
+ reduce_table.add new ReduceAction351(157)
+ reduce_table.add new ReduceAction352(157)
+ reduce_table.add new ReduceAction353(157)
reduce_table.add new ReduceAction165(158)
- reduce_table.add new ReduceAction329(158)
+ reduce_table.add new ReduceAction355(158)
reduce_table.add new ReduceAction165(159)
- reduce_table.add new ReduceAction331(159)
- reduce_table.add new ReduceAction332(159)
- reduce_table.add new ReduceAction333(159)
- reduce_table.add new ReduceAction334(159)
+ reduce_table.add new ReduceAction357(159)
+ reduce_table.add new ReduceAction358(159)
+ reduce_table.add new ReduceAction359(159)
+ reduce_table.add new ReduceAction360(159)
reduce_table.add new ReduceAction165(160)
- reduce_table.add new ReduceAction336(160)
- reduce_table.add new ReduceAction337(160)
- reduce_table.add new ReduceAction338(160)
- reduce_table.add new ReduceAction339(160)
+ reduce_table.add new ReduceAction362(160)
+ reduce_table.add new ReduceAction363(160)
+ reduce_table.add new ReduceAction364(160)
+ reduce_table.add new ReduceAction365(160)
+ reduce_table.add new ReduceAction366(160)
+ reduce_table.add new ReduceAction367(160)
+ reduce_table.add new ReduceAction368(160)
+ reduce_table.add new ReduceAction369(160)
+ reduce_table.add new ReduceAction370(160)
+ reduce_table.add new ReduceAction371(160)
+ reduce_table.add new ReduceAction372(160)
+ reduce_table.add new ReduceAction373(160)
+ reduce_table.add new ReduceAction374(160)
+ reduce_table.add new ReduceAction375(160)
+ reduce_table.add new ReduceAction376(160)
+ reduce_table.add new ReduceAction377(160)
+ reduce_table.add new ReduceAction378(160)
+ reduce_table.add new ReduceAction379(160)
+ reduce_table.add new ReduceAction380(160)
+ reduce_table.add new ReduceAction381(160)
+ reduce_table.add new ReduceAction382(160)
+ reduce_table.add new ReduceAction383(160)
+ reduce_table.add new ReduceAction384(160)
+ reduce_table.add new ReduceAction385(160)
+ reduce_table.add new ReduceAction386(160)
+ reduce_table.add new ReduceAction387(160)
+ reduce_table.add new ReduceAction388(160)
+ reduce_table.add new ReduceAction389(160)
+ reduce_table.add new ReduceAction390(160)
reduce_table.add new ReduceAction165(161)
- reduce_table.add new ReduceAction341(161)
- reduce_table.add new ReduceAction342(161)
+ reduce_table.add new ReduceAction392(161)
+ reduce_table.add new ReduceAction393(161)
+ reduce_table.add new ReduceAction394(161)
reduce_table.add new ReduceAction190(161)
- reduce_table.add new ReduceAction344(161)
+ reduce_table.add new ReduceAction396(161)
reduce_table.add new ReduceAction191(161)
- reduce_table.add new ReduceAction346(161)
+ reduce_table.add new ReduceAction398(161)
reduce_table.add new ReduceAction192(161)
- reduce_table.add new ReduceAction348(161)
+ reduce_table.add new ReduceAction400(161)
reduce_table.add new ReduceAction193(161)
- reduce_table.add new ReduceAction350(161)
+ reduce_table.add new ReduceAction402(161)
reduce_table.add new ReduceAction194(161)
- reduce_table.add new ReduceAction352(161)
+ reduce_table.add new ReduceAction404(161)
reduce_table.add new ReduceAction195(161)
- reduce_table.add new ReduceAction354(161)
+ reduce_table.add new ReduceAction406(161)
reduce_table.add new ReduceAction196(161)
- reduce_table.add new ReduceAction356(161)
+ reduce_table.add new ReduceAction408(161)
reduce_table.add new ReduceAction197(161)
- reduce_table.add new ReduceAction358(161)
+ reduce_table.add new ReduceAction410(161)
reduce_table.add new ReduceAction198(161)
- reduce_table.add new ReduceAction360(161)
+ reduce_table.add new ReduceAction412(161)
reduce_table.add new ReduceAction199(161)
- reduce_table.add new ReduceAction362(161)
+ reduce_table.add new ReduceAction414(161)
reduce_table.add new ReduceAction200(161)
- reduce_table.add new ReduceAction364(161)
- reduce_table.add new ReduceAction365(161)
- reduce_table.add new ReduceAction366(161)
- reduce_table.add new ReduceAction367(161)
- reduce_table.add new ReduceAction368(161)
- reduce_table.add new ReduceAction369(161)
- reduce_table.add new ReduceAction370(161)
- reduce_table.add new ReduceAction371(161)
- reduce_table.add new ReduceAction372(161)
- reduce_table.add new ReduceAction373(161)
- reduce_table.add new ReduceAction374(161)
- reduce_table.add new ReduceAction375(161)
- reduce_table.add new ReduceAction376(161)
+ reduce_table.add new ReduceAction416(161)
+ reduce_table.add new ReduceAction201(161)
+ reduce_table.add new ReduceAction418(161)
+ reduce_table.add new ReduceAction202(161)
+ reduce_table.add new ReduceAction420(161)
+ reduce_table.add new ReduceAction203(161)
+ reduce_table.add new ReduceAction422(161)
+ reduce_table.add new ReduceAction204(161)
+ reduce_table.add new ReduceAction424(161)
+ reduce_table.add new ReduceAction205(161)
+ reduce_table.add new ReduceAction426(161)
+ reduce_table.add new ReduceAction427(161)
+ reduce_table.add new ReduceAction428(161)
+ reduce_table.add new ReduceAction429(161)
+ reduce_table.add new ReduceAction430(161)
+ reduce_table.add new ReduceAction431(161)
+ reduce_table.add new ReduceAction432(161)
+ reduce_table.add new ReduceAction433(161)
+ reduce_table.add new ReduceAction434(161)
+ reduce_table.add new ReduceAction435(161)
+ reduce_table.add new ReduceAction436(161)
+ reduce_table.add new ReduceAction437(161)
+ reduce_table.add new ReduceAction438(161)
reduce_table.add new ReduceAction165(162)
- reduce_table.add new ReduceAction378(162)
- reduce_table.add new ReduceAction379(162)
- reduce_table.add new ReduceAction380(163)
- reduce_table.add new ReduceAction381(163)
- reduce_table.add new ReduceAction382(163)
- reduce_table.add new ReduceAction383(163)
- reduce_table.add new ReduceAction384(163)
- reduce_table.add new ReduceAction385(163)
- reduce_table.add new ReduceAction386(163)
- reduce_table.add new ReduceAction387(163)
+ reduce_table.add new ReduceAction440(162)
+ reduce_table.add new ReduceAction441(162)
+ reduce_table.add new ReduceAction442(163)
+ reduce_table.add new ReduceAction443(163)
+ reduce_table.add new ReduceAction444(163)
+ reduce_table.add new ReduceAction445(163)
+ reduce_table.add new ReduceAction446(163)
+ reduce_table.add new ReduceAction447(163)
+ reduce_table.add new ReduceAction448(163)
+ reduce_table.add new ReduceAction449(163)
reduce_table.add new ReduceAction165(163)
- reduce_table.add new ReduceAction412(164)
- reduce_table.add new ReduceAction413(164)
- reduce_table.add new ReduceAction414(165)
+ reduce_table.add new ReduceAction474(164)
+ reduce_table.add new ReduceAction475(164)
+ reduce_table.add new ReduceAction476(165)
reduce_table.add new ReduceAction22(165)
- reduce_table.add new ReduceAction416(166)
- reduce_table.add new ReduceAction416(167)
- reduce_table.add new ReduceAction397(168)
- reduce_table.add new ReduceAction398(168)
- reduce_table.add new ReduceAction438(169)
+ reduce_table.add new ReduceAction478(166)
+ reduce_table.add new ReduceAction478(167)
+ reduce_table.add new ReduceAction459(168)
+ reduce_table.add new ReduceAction460(168)
+ reduce_table.add new ReduceAction500(169)
reduce_table.add new ReduceAction165(169)
reduce_table.add new ReduceAction165(169)
- reduce_table.add new ReduceAction441(169)
- reduce_table.add new ReduceAction442(169)
+ reduce_table.add new ReduceAction503(169)
+ reduce_table.add new ReduceAction504(169)
+ reduce_table.add new ReduceAction505(169)
reduce_table.add new ReduceAction149(170)
reduce_table.add new ReduceAction150(170)
reduce_table.add new ReduceAction150(170)
reduce_table.add new ReduceAction152(171)
reduce_table.add new ReduceAction153(171)
reduce_table.add new ReduceAction165(172)
- reduce_table.add new ReduceAction295(172)
+ reduce_table.add new ReduceAction321(172)
reduce_table.add new ReduceAction165(173)
- reduce_table.add new ReduceAction297(173)
- reduce_table.add new ReduceAction298(173)
- reduce_table.add new ReduceAction299(173)
- reduce_table.add new ReduceAction300(173)
+ reduce_table.add new ReduceAction323(173)
+ reduce_table.add new ReduceAction324(173)
+ reduce_table.add new ReduceAction325(173)
+ reduce_table.add new ReduceAction326(173)
reduce_table.add new ReduceAction165(174)
- reduce_table.add new ReduceAction302(174)
+ reduce_table.add new ReduceAction328(174)
reduce_table.add new ReduceAction165(175)
- reduce_table.add new ReduceAction304(175)
- reduce_table.add new ReduceAction305(175)
- reduce_table.add new ReduceAction306(175)
- reduce_table.add new ReduceAction307(175)
- reduce_table.add new ReduceAction308(175)
- reduce_table.add new ReduceAction309(175)
- reduce_table.add new ReduceAction310(175)
- reduce_table.add new ReduceAction311(175)
+ reduce_table.add new ReduceAction330(175)
+ reduce_table.add new ReduceAction331(175)
+ reduce_table.add new ReduceAction332(175)
+ reduce_table.add new ReduceAction333(175)
+ reduce_table.add new ReduceAction334(175)
+ reduce_table.add new ReduceAction335(175)
+ reduce_table.add new ReduceAction336(175)
+ reduce_table.add new ReduceAction337(175)
reduce_table.add new ReduceAction165(176)
- reduce_table.add new ReduceAction313(176)
+ reduce_table.add new ReduceAction339(176)
reduce_table.add new ReduceAction165(177)
- reduce_table.add new ReduceAction315(177)
+ reduce_table.add new ReduceAction341(177)
reduce_table.add new ReduceAction165(178)
- reduce_table.add new ReduceAction317(178)
+ reduce_table.add new ReduceAction343(178)
reduce_table.add new ReduceAction165(179)
- reduce_table.add new ReduceAction319(179)
- reduce_table.add new ReduceAction320(179)
+ reduce_table.add new ReduceAction345(179)
+ reduce_table.add new ReduceAction346(179)
reduce_table.add new ReduceAction165(180)
- reduce_table.add new ReduceAction322(180)
- reduce_table.add new ReduceAction323(180)
+ reduce_table.add new ReduceAction348(180)
+ reduce_table.add new ReduceAction349(180)
reduce_table.add new ReduceAction165(181)
- reduce_table.add new ReduceAction325(181)
- reduce_table.add new ReduceAction326(181)
- reduce_table.add new ReduceAction327(181)
+ reduce_table.add new ReduceAction351(181)
+ reduce_table.add new ReduceAction352(181)
+ reduce_table.add new ReduceAction353(181)
reduce_table.add new ReduceAction165(182)
- reduce_table.add new ReduceAction329(182)
+ reduce_table.add new ReduceAction355(182)
reduce_table.add new ReduceAction165(183)
- reduce_table.add new ReduceAction331(183)
- reduce_table.add new ReduceAction332(183)
- reduce_table.add new ReduceAction333(183)
- reduce_table.add new ReduceAction334(183)
+ reduce_table.add new ReduceAction357(183)
+ reduce_table.add new ReduceAction358(183)
+ reduce_table.add new ReduceAction359(183)
+ reduce_table.add new ReduceAction360(183)
reduce_table.add new ReduceAction165(184)
- reduce_table.add new ReduceAction336(184)
- reduce_table.add new ReduceAction337(184)
- reduce_table.add new ReduceAction871(184)
+ reduce_table.add new ReduceAction362(184)
+ reduce_table.add new ReduceAction363(184)
+ reduce_table.add new ReduceAction1033(184)
+ reduce_table.add new ReduceAction1034(184)
+ reduce_table.add new ReduceAction1035(184)
+ reduce_table.add new ReduceAction1036(184)
+ reduce_table.add new ReduceAction1037(184)
+ reduce_table.add new ReduceAction1038(184)
+ reduce_table.add new ReduceAction1039(184)
+ reduce_table.add new ReduceAction1040(184)
+ reduce_table.add new ReduceAction1041(184)
reduce_table.add new ReduceAction165(185)
- reduce_table.add new ReduceAction873(185)
- reduce_table.add new ReduceAction874(185)
- reduce_table.add new ReduceAction875(185)
- reduce_table.add new ReduceAction876(185)
- reduce_table.add new ReduceAction877(185)
- reduce_table.add new ReduceAction878(185)
- reduce_table.add new ReduceAction879(185)
- reduce_table.add new ReduceAction880(185)
- reduce_table.add new ReduceAction881(185)
- reduce_table.add new ReduceAction198(185)
- reduce_table.add new ReduceAction360(185)
- reduce_table.add new ReduceAction884(185)
- reduce_table.add new ReduceAction885(185)
- reduce_table.add new ReduceAction366(185)
- reduce_table.add new ReduceAction367(185)
- reduce_table.add new ReduceAction368(185)
- reduce_table.add new ReduceAction369(185)
- reduce_table.add new ReduceAction370(185)
- reduce_table.add new ReduceAction371(185)
- reduce_table.add new ReduceAction372(185)
- reduce_table.add new ReduceAction373(185)
- reduce_table.add new ReduceAction374(185)
- reduce_table.add new ReduceAction375(185)
- reduce_table.add new ReduceAction376(185)
+ reduce_table.add new ReduceAction1043(185)
+ reduce_table.add new ReduceAction1044(185)
+ reduce_table.add new ReduceAction1045(185)
+ reduce_table.add new ReduceAction1046(185)
+ reduce_table.add new ReduceAction1047(185)
+ reduce_table.add new ReduceAction1048(185)
+ reduce_table.add new ReduceAction1049(185)
+ reduce_table.add new ReduceAction1050(185)
+ reduce_table.add new ReduceAction1051(185)
+ reduce_table.add new ReduceAction202(185)
+ reduce_table.add new ReduceAction420(185)
+ reduce_table.add new ReduceAction1054(185)
+ reduce_table.add new ReduceAction1055(185)
+ reduce_table.add new ReduceAction428(185)
+ reduce_table.add new ReduceAction429(185)
+ reduce_table.add new ReduceAction430(185)
+ reduce_table.add new ReduceAction431(185)
+ reduce_table.add new ReduceAction432(185)
+ reduce_table.add new ReduceAction433(185)
+ reduce_table.add new ReduceAction434(185)
+ reduce_table.add new ReduceAction435(185)
+ reduce_table.add new ReduceAction436(185)
+ reduce_table.add new ReduceAction437(185)
+ reduce_table.add new ReduceAction438(185)
reduce_table.add new ReduceAction165(186)
- reduce_table.add new ReduceAction378(186)
- reduce_table.add new ReduceAction379(186)
- reduce_table.add new ReduceAction380(187)
- reduce_table.add new ReduceAction381(187)
- reduce_table.add new ReduceAction382(187)
- reduce_table.add new ReduceAction383(187)
- reduce_table.add new ReduceAction384(187)
- reduce_table.add new ReduceAction385(187)
- reduce_table.add new ReduceAction386(187)
- reduce_table.add new ReduceAction387(187)
+ reduce_table.add new ReduceAction440(186)
+ reduce_table.add new ReduceAction441(186)
+ reduce_table.add new ReduceAction442(187)
+ reduce_table.add new ReduceAction443(187)
+ reduce_table.add new ReduceAction444(187)
+ reduce_table.add new ReduceAction445(187)
+ reduce_table.add new ReduceAction446(187)
+ reduce_table.add new ReduceAction447(187)
+ reduce_table.add new ReduceAction448(187)
+ reduce_table.add new ReduceAction449(187)
reduce_table.add new ReduceAction165(187)
- reduce_table.add new ReduceAction909(188)
- reduce_table.add new ReduceAction910(188)
+ reduce_table.add new ReduceAction1079(188)
+ reduce_table.add new ReduceAction1080(188)
+ reduce_table.add new ReduceAction1081(188)
reduce_table.add new ReduceAction162(189)
reduce_table.add new ReduceAction163(189)
reduce_table.add new ReduceAction164(189)
reduce_table.add new ReduceAction200(190)
reduce_table.add new ReduceAction201(190)
reduce_table.add new ReduceAction202(190)
- reduce_table.add new ReduceAction201(190)
+ reduce_table.add new ReduceAction203(190)
reduce_table.add new ReduceAction204(190)
reduce_table.add new ReduceAction205(190)
- reduce_table.add new ReduceAction204(190)
+ reduce_table.add new ReduceAction206(190)
reduce_table.add new ReduceAction207(190)
- reduce_table.add new ReduceAction263(191)
- reduce_table.add new ReduceAction264(191)
- reduce_table.add new ReduceAction265(191)
- reduce_table.add new ReduceAction266(192)
- reduce_table.add new ReduceAction275(193)
- reduce_table.add new ReduceAction276(193)
- reduce_table.add new ReduceAction277(194)
- reduce_table.add new ReduceAction278(194)
- reduce_table.add new ReduceAction279(195)
- reduce_table.add new ReduceAction280(195)
- reduce_table.add new ReduceAction284(196)
- reduce_table.add new ReduceAction285(196)
- reduce_table.add new ReduceAction289(197)
- reduce_table.add new ReduceAction290(197)
+ reduce_table.add new ReduceAction206(190)
+ reduce_table.add new ReduceAction209(190)
+ reduce_table.add new ReduceAction210(190)
+ reduce_table.add new ReduceAction209(190)
+ reduce_table.add new ReduceAction212(190)
+ reduce_table.add new ReduceAction213(190)
+ reduce_table.add new ReduceAction212(190)
+ reduce_table.add new ReduceAction215(190)
+ reduce_table.add new ReduceAction289(191)
+ reduce_table.add new ReduceAction290(191)
+ reduce_table.add new ReduceAction291(191)
+ reduce_table.add new ReduceAction292(192)
+ reduce_table.add new ReduceAction301(193)
+ reduce_table.add new ReduceAction302(193)
+ reduce_table.add new ReduceAction303(194)
+ reduce_table.add new ReduceAction304(194)
+ reduce_table.add new ReduceAction305(195)
+ reduce_table.add new ReduceAction306(195)
+ reduce_table.add new ReduceAction310(196)
+ reduce_table.add new ReduceAction311(196)
+ reduce_table.add new ReduceAction315(197)
+ reduce_table.add new ReduceAction316(197)
reduce_table.add new ReduceAction165(198)
reduce_table.add new ReduceAction165(198)
reduce_table.add new ReduceAction175(198)
reduce_table.add new ReduceAction200(198)
reduce_table.add new ReduceAction201(198)
reduce_table.add new ReduceAction202(198)
- reduce_table.add new ReduceAction201(198)
+ reduce_table.add new ReduceAction203(198)
reduce_table.add new ReduceAction204(198)
reduce_table.add new ReduceAction205(198)
- reduce_table.add new ReduceAction204(198)
+ reduce_table.add new ReduceAction206(198)
reduce_table.add new ReduceAction207(198)
+ reduce_table.add new ReduceAction206(198)
+ reduce_table.add new ReduceAction209(198)
+ reduce_table.add new ReduceAction210(198)
+ reduce_table.add new ReduceAction209(198)
+ reduce_table.add new ReduceAction212(198)
+ reduce_table.add new ReduceAction213(198)
+ reduce_table.add new ReduceAction212(198)
+ reduce_table.add new ReduceAction215(198)
reduce_table.add new ReduceAction162(199)
reduce_table.add new ReduceAction163(199)
reduce_table.add new ReduceAction164(199)
reduce_table.add new ReduceAction165(201)
reduce_table.add new ReduceAction165(201)
reduce_table.add new ReduceAction165(201)
- reduce_table.add new ReduceAction207(201)
+ reduce_table.add new ReduceAction215(201)
reduce_table.add new ReduceAction165(202)
reduce_table.add new ReduceAction165(202)
reduce_table.add new ReduceAction175(202)
reduce_table.add new ReduceAction165(202)
reduce_table.add new ReduceAction165(202)
reduce_table.add new ReduceAction165(202)
- reduce_table.add new ReduceAction207(202)
+ reduce_table.add new ReduceAction215(202)
reduce_table.add new ReduceAction165(203)
reduce_table.add new ReduceAction165(203)
reduce_table.add new ReduceAction175(203)
reduce_table.add new ReduceAction165(203)
reduce_table.add new ReduceAction165(203)
reduce_table.add new ReduceAction165(203)
- reduce_table.add new ReduceAction207(203)
+ reduce_table.add new ReduceAction215(203)
reduce_table.add new ReduceAction165(204)
reduce_table.add new ReduceAction165(204)
reduce_table.add new ReduceAction175(204)
reduce_table.add new ReduceAction165(204)
reduce_table.add new ReduceAction165(204)
reduce_table.add new ReduceAction165(204)
- reduce_table.add new ReduceAction207(204)
- reduce_table.add new ReduceAction444(205)
- reduce_table.add new ReduceAction446(205)
- reduce_table.add new ReduceAction484(206)
- reduce_table.add new ReduceAction485(206)
+ reduce_table.add new ReduceAction215(204)
+ reduce_table.add new ReduceAction507(205)
+ reduce_table.add new ReduceAction509(205)
+ reduce_table.add new ReduceAction547(206)
+ reduce_table.add new ReduceAction548(206)
reduce_table.add new ReduceAction23(206)
- reduce_table.add new ReduceAction1078(207)
- reduce_table.add new ReduceAction1079(207)
- reduce_table.add new ReduceAction1080(208)
- reduce_table.add new ReduceAction1081(208)
- reduce_table.add new ReduceAction1082(209)
- reduce_table.add new ReduceAction1083(209)
+ reduce_table.add new ReduceAction1265(207)
+ reduce_table.add new ReduceAction1266(207)
+ reduce_table.add new ReduceAction1267(208)
+ reduce_table.add new ReduceAction1268(208)
+ reduce_table.add new ReduceAction1269(209)
+ reduce_table.add new ReduceAction1270(209)
reduce_table.add new ReduceAction38(210)
- reduce_table.add new ReduceAction1085(210)
+ reduce_table.add new ReduceAction1272(210)
reduce_table.add new ReduceAction46(211)
- reduce_table.add new ReduceAction1087(211)
- reduce_table.add new ReduceAction418(212)
- reduce_table.add new ReduceAction1089(212)
- reduce_table.add new ReduceAction1090(213)
- reduce_table.add new ReduceAction1091(213)
- reduce_table.add new ReduceAction1092(214)
- reduce_table.add new ReduceAction1093(214)
+ reduce_table.add new ReduceAction1274(211)
+ reduce_table.add new ReduceAction480(212)
+ reduce_table.add new ReduceAction1276(212)
+ reduce_table.add new ReduceAction1277(213)
+ reduce_table.add new ReduceAction1278(213)
+ reduce_table.add new ReduceAction1279(214)
+ reduce_table.add new ReduceAction1280(214)
reduce_table.add new ReduceAction156(215)
- reduce_table.add new ReduceAction1095(215)
- reduce_table.add new ReduceAction397(216)
- reduce_table.add new ReduceAction1097(216)
- reduce_table.add new ReduceAction397(217)
- reduce_table.add new ReduceAction1097(217)
- reduce_table.add new ReduceAction397(218)
- reduce_table.add new ReduceAction1097(218)
- reduce_table.add new ReduceAction458(219)
- reduce_table.add new ReduceAction1103(219)
- reduce_table.add new ReduceAction418(220)
- reduce_table.add new ReduceAction1089(220)
- reduce_table.add new ReduceAction397(221)
- reduce_table.add new ReduceAction1097(221)
- reduce_table.add new ReduceAction397(222)
- reduce_table.add new ReduceAction1097(222)
- reduce_table.add new ReduceAction459(223)
- reduce_table.add new ReduceAction1111(223)
- reduce_table.add new ReduceAction1112(224)
- reduce_table.add new ReduceAction1113(224)
- reduce_table.add new ReduceAction481(225)
- reduce_table.add new ReduceAction500(225)
+ reduce_table.add new ReduceAction1282(215)
+ reduce_table.add new ReduceAction459(216)
+ reduce_table.add new ReduceAction1284(216)
+ reduce_table.add new ReduceAction459(217)
+ reduce_table.add new ReduceAction1284(217)
+ reduce_table.add new ReduceAction459(218)
+ reduce_table.add new ReduceAction1284(218)
+ reduce_table.add new ReduceAction521(219)
+ reduce_table.add new ReduceAction1290(219)
+ reduce_table.add new ReduceAction480(220)
+ reduce_table.add new ReduceAction1276(220)
+ reduce_table.add new ReduceAction459(221)
+ reduce_table.add new ReduceAction1284(221)
+ reduce_table.add new ReduceAction459(222)
+ reduce_table.add new ReduceAction1284(222)
+ reduce_table.add new ReduceAction522(223)
+ reduce_table.add new ReduceAction1298(223)
+ reduce_table.add new ReduceAction1299(224)
+ reduce_table.add new ReduceAction1300(224)
+ reduce_table.add new ReduceAction544(225)
+ reduce_table.add new ReduceAction563(225)
return reduce_table
end
end
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tidnode7 = nodearraylist5
+ assert tidnode7 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode7
+ )
+ var pexprsnode8 = nodearraylist6
+ assert pexprsnode8 isa nullable AExprs
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode8
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction195
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist7
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode10
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction196
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist8
+ assert pexprsnode11 isa nullable AExprs
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction197
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist7
+ assert pexprsnode11 isa nullable AExprs
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction198
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction195
+private class ReduceAction199
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction196
+private class ReduceAction200
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction197
+private class ReduceAction201
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction198
+private class ReduceAction202
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction199
+private class ReduceAction203
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction200
+private class ReduceAction204
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tkwinitnode5 = nodearraylist5
+ assert tkwinitnode5 isa nullable TKwinit
+ var pexprsnode6 = nodearraylist6
+ assert pexprsnode6 isa nullable AExprs
+ var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+ pexprnode2,
+ tkwinitnode5,
+ pexprsnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction205
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction201
+private class ReduceAction206
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction202
+private class ReduceAction207
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction204
+private class ReduceAction209
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tkwinitnode5 = nodearraylist6
+ assert tkwinitnode5 isa nullable TKwinit
+ var pexprsnode6 = nodearraylist7
+ assert pexprsnode6 isa nullable AExprs
+ var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+ pexprnode2,
+ tkwinitnode5,
+ pexprsnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction210
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tkwinitnode5 = nodearraylist7
+ assert tkwinitnode5 isa nullable TKwinit
+ var pexprsnode6 = nodearraylist8
+ assert pexprsnode6 isa nullable AExprs
+ var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+ pexprnode2,
+ tkwinitnode5,
+ pexprsnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction212
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction205
+private class ReduceAction213
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction207
+private class ReduceAction215
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction208
+private class ReduceAction216
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction209
+private class ReduceAction217
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction210
+private class ReduceAction218
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction211
+private class ReduceAction219
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction212
+private class ReduceAction220
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction213
+private class ReduceAction221
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction214
+private class ReduceAction222
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction215
+private class ReduceAction223
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tattridnode3 = nodearraylist2
- assert tattridnode3 isa nullable TAttrid
- var tassignnode4 = nodearraylist3
- assert tassignnode4 isa nullable TAssign
- var pexprnode5 = nodearraylist4
- assert pexprnode5 isa nullable AExpr
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tattridnode5 = nodearraylist6
+ assert tattridnode5 isa nullable TAttrid
+ var tassignnode6 = nodearraylist7
+ assert tassignnode6 isa nullable TAssign
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+ pexprnode2,
+ tattridnode5,
+ tassignnode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction224
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tattridnode3 = nodearraylist2
+ assert tattridnode3 isa nullable TAttrid
+ var tassignnode4 = nodearraylist3
+ assert tassignnode4 isa nullable TAssign
+ var pexprnode5 = nodearraylist4
+ assert pexprnode5 isa nullable AExpr
var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
pexprnode2,
tattridnode3,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction216
+private class ReduceAction225
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction217
+private class ReduceAction226
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction218
+private class ReduceAction227
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction219
+private class ReduceAction228
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction220
+private class ReduceAction229
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction221
+private class ReduceAction230
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction222
+private class ReduceAction231
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction223
+private class ReduceAction232
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction224
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tidnode5 = nodearraylist1
- assert tidnode5 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- null,
- tidnode5
- )
- var pexprsnode6 = nodearraylist2
- assert pexprsnode6 isa nullable AExprs
- var tassignnode7 = nodearraylist3
- assert tassignnode7 isa nullable TAssign
- var pexprnode8 = nodearraylist4
- assert pexprnode8 isa nullable AExpr
- var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
- pexprnode2,
- pqidnode3,
- pexprsnode6,
- tassignnode7,
- pexprnode8
- )
- node_list = pexprnode1
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction225
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tidnode5 = nodearraylist1
- assert tidnode5 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- null,
- tidnode5
- )
- var listnode7 = new Array[Object]
- var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
- listnode7
- )
- var tassignnode8 = nodearraylist2
- assert tassignnode8 isa nullable TAssign
- var pexprnode9 = nodearraylist3
- assert pexprnode9 isa nullable AExpr
- var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
- pexprnode2,
- pqidnode3,
- pexprsnode6,
- tassignnode8,
- pexprnode9
- )
- node_list = pexprnode1
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction226
+private class ReduceAction233
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist1
- assert tclassidnode6 isa nullable TClassid
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode5,
- tclassidnode6
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var tidnode7 = nodearraylist2
+ var tidnode7 = nodearraylist5
assert tidnode7 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
tidnode7
)
- var pexprsnode8 = nodearraylist3
+ var pexprsnode8 = nodearraylist6
assert pexprsnode8 isa nullable AExprs
- var tassignnode9 = nodearraylist4
+ var tassignnode9 = nodearraylist7
assert tassignnode9 isa nullable TAssign
- var pexprnode10 = nodearraylist5
+ var pexprnode10 = nodearraylist8
assert pexprnode10 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
+ pqidnode5,
pexprsnode8,
tassignnode9,
pexprnode10
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction227
+private class ReduceAction234
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist1
- assert tclassidnode6 isa nullable TClassid
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode5,
- tclassidnode6
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var tidnode7 = nodearraylist2
+ var tidnode7 = nodearraylist5
assert tidnode7 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
tidnode7
)
var listnode9 = new Array[Object]
var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
listnode9
)
- var tassignnode10 = nodearraylist3
+ var tassignnode10 = nodearraylist6
assert tassignnode10 isa nullable TAssign
- var pexprnode11 = nodearraylist4
+ var pexprnode11 = nodearraylist7
assert pexprnode11 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
+ pqidnode5,
pexprsnode8,
tassignnode10,
pexprnode11
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction228
+private class ReduceAction235
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
- assert listnode5 isa Array[Object]
- listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist2
- assert tclassidnode7 isa nullable TClassid
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode6,
- tclassidnode7
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var tidnode8 = nodearraylist3
- assert tidnode8 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
- tidnode8
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
)
- var pexprsnode9 = nodearraylist4
- assert pexprsnode9 isa nullable AExprs
- var tassignnode10 = nodearraylist5
- assert tassignnode10 isa nullable TAssign
- var pexprnode11 = nodearraylist6
- assert pexprnode11 isa nullable AExpr
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist7
+ assert pexprsnode10 isa nullable AExprs
+ var tassignnode11 = nodearraylist8
+ assert tassignnode11 isa nullable TAssign
+ var pexprnode12 = nodearraylist9
+ assert pexprnode12 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
- pexprsnode9,
- tassignnode10,
- pexprnode11
+ pqidnode5,
+ pexprsnode10,
+ tassignnode11,
+ pexprnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction229
+private class ReduceAction236
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
- assert listnode5 isa Array[Object]
- listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist2
- assert tclassidnode7 isa nullable TClassid
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode6,
- tclassidnode7
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var tidnode8 = nodearraylist3
- assert tidnode8 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
- tidnode8
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
)
- var listnode10 = new Array[Object]
- var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
- listnode10
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
)
- var tassignnode11 = nodearraylist4
- assert tassignnode11 isa nullable TAssign
- var pexprnode12 = nodearraylist5
- assert pexprnode12 isa nullable AExpr
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var tassignnode12 = nodearraylist7
+ assert tassignnode12 isa nullable TAssign
+ var pexprnode13 = nodearraylist8
+ assert pexprnode13 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
- pexprsnode9,
- tassignnode11,
- pexprnode12
+ pqidnode5,
+ pexprsnode10,
+ tassignnode12,
+ pexprnode13
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction230
+private class ReduceAction237
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist10 = p.pop
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
- assert listnode5 isa Array[Object]
- listnode6 = concat(listnode6, listnode5)
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode6,
- null
- )
- var tidnode8 = nodearraylist2
- assert tidnode8 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
- tidnode8
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var pexprsnode9 = nodearraylist3
- assert pexprsnode9 isa nullable AExprs
- var tassignnode10 = nodearraylist4
- assert tassignnode10 isa nullable TAssign
- var pexprnode11 = nodearraylist5
- assert pexprnode11 isa nullable AExpr
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist8
+ assert pexprsnode11 isa nullable AExprs
+ var tassignnode12 = nodearraylist9
+ assert tassignnode12 isa nullable TAssign
+ var pexprnode13 = nodearraylist10
+ assert pexprnode13 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
- pexprsnode9,
- tassignnode10,
- pexprnode11
+ pqidnode5,
+ pexprsnode11,
+ tassignnode12,
+ pexprnode13
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction231
+private class ReduceAction238
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
- assert listnode5 isa Array[Object]
- listnode6 = concat(listnode6, listnode5)
- var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
- listnode6,
- null
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- var tidnode8 = nodearraylist2
- assert tidnode8 isa nullable TId
- var pqidnode3: nullable AQid = new AQid.init_aqid(
- pqualifiednode4,
- tidnode8
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
)
- var listnode10 = new Array[Object]
- var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
- listnode10
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
)
- var tassignnode11 = nodearraylist3
- assert tassignnode11 isa nullable TAssign
- var pexprnode12 = nodearraylist4
- assert pexprnode12 isa nullable AExpr
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var tassignnode13 = nodearraylist8
+ assert tassignnode13 isa nullable TAssign
+ var pexprnode14 = nodearraylist9
+ assert pexprnode14 isa nullable AExpr
var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pqidnode3,
- pexprsnode9,
- tassignnode11,
- pexprnode12
+ pqidnode5,
+ pexprsnode11,
+ tassignnode13,
+ pexprnode14
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction232
+private class ReduceAction239
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var pexprsnode3 = nodearraylist2
- assert pexprsnode3 isa nullable AExprs
- var tassignnode4 = nodearraylist3
- assert tassignnode4 isa nullable TAssign
- var pexprnode5 = nodearraylist4
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist7
+ assert pexprsnode11 isa nullable AExprs
+ var tassignnode12 = nodearraylist8
+ assert tassignnode12 isa nullable TAssign
+ var pexprnode13 = nodearraylist9
+ assert pexprnode13 isa nullable AExpr
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- pexprsnode3,
- tassignnode4,
- pexprnode5
+ pqidnode5,
+ pexprsnode11,
+ tassignnode12,
+ pexprnode13
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction233
+private class ReduceAction240
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tattridnode3 = nodearraylist5
- assert tattridnode3 isa nullable TAttrid
- var passignopnode4 = nodearraylist6
- assert passignopnode4 isa nullable AAssignOp
- var pexprnode5 = nodearraylist7
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
- pexprnode2,
- tattridnode3,
- passignopnode4,
- pexprnode5
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- node_list = pexprnode1
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction234
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tattridnode3 = nodearraylist2
- assert tattridnode3 isa nullable TAttrid
- var passignopnode4 = nodearraylist3
- assert passignopnode4 isa nullable AAssignOp
- var pexprnode5 = nodearraylist4
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var tassignnode13 = nodearraylist7
+ assert tassignnode13 isa nullable TAssign
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
- tattridnode3,
- passignopnode4,
- pexprnode5
+ pqidnode5,
+ pexprsnode11,
+ tassignnode13,
+ pexprnode14
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction235
+private class ReduceAction241
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tidnode5 = nodearraylist4
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode5 = nodearraylist1
assert tidnode5 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
null,
tidnode5
)
- var pexprsnode6 = nodearraylist5
+ var pexprsnode6 = nodearraylist2
assert pexprsnode6 isa nullable AExprs
- var passignopnode7 = nodearraylist6
- assert passignopnode7 isa nullable AAssignOp
- var pexprnode8 = nodearraylist7
+ var tassignnode7 = nodearraylist3
+ assert tassignnode7 isa nullable TAssign
+ var pexprnode8 = nodearraylist4
assert pexprnode8 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode6,
- passignopnode7,
+ tassignnode7,
pexprnode8
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction236
+private class ReduceAction242
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tidnode5 = nodearraylist4
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode5 = nodearraylist1
assert tidnode5 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
null,
var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
listnode7
)
- var passignopnode8 = nodearraylist5
- assert passignopnode8 isa nullable AAssignOp
- var pexprnode9 = nodearraylist6
+ var tassignnode8 = nodearraylist2
+ assert tassignnode8 isa nullable TAssign
+ var pexprnode9 = nodearraylist3
assert pexprnode9 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode6,
- passignopnode8,
+ tassignnode8,
pexprnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction237
+private class ReduceAction243
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist4
+ var tclassidnode6 = nodearraylist1
assert tclassidnode6 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode5,
tclassidnode6
)
- var tidnode7 = nodearraylist5
+ var tidnode7 = nodearraylist2
assert tidnode7 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode7
)
- var pexprsnode8 = nodearraylist6
+ var pexprsnode8 = nodearraylist3
assert pexprsnode8 isa nullable AExprs
- var passignopnode9 = nodearraylist7
- assert passignopnode9 isa nullable AAssignOp
- var pexprnode10 = nodearraylist8
+ var tassignnode9 = nodearraylist4
+ assert tassignnode9 isa nullable TAssign
+ var pexprnode10 = nodearraylist5
assert pexprnode10 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode8,
- passignopnode9,
+ tassignnode9,
pexprnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction238
+private class ReduceAction244
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist4
+ var tclassidnode6 = nodearraylist1
assert tclassidnode6 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode5,
tclassidnode6
)
- var tidnode7 = nodearraylist5
+ var tidnode7 = nodearraylist2
assert tidnode7 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
listnode9
)
- var passignopnode10 = nodearraylist6
- assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist7
+ var tassignnode10 = nodearraylist3
+ assert tassignnode10 isa nullable TAssign
+ var pexprnode11 = nodearraylist4
assert pexprnode11 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode8,
- passignopnode10,
+ tassignnode10,
pexprnode11
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction239
+private class ReduceAction245
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist9 = p.pop
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist4
+ var listnode5 = nodearraylist1
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist5
+ var tclassidnode7 = nodearraylist2
assert tclassidnode7 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
tclassidnode7
)
- var tidnode8 = nodearraylist6
+ var tidnode8 = nodearraylist3
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode8
)
- var pexprsnode9 = nodearraylist7
+ var pexprsnode9 = nodearraylist4
assert pexprsnode9 isa nullable AExprs
- var passignopnode10 = nodearraylist8
- assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist9
+ var tassignnode10 = nodearraylist5
+ assert tassignnode10 isa nullable TAssign
+ var pexprnode11 = nodearraylist6
assert pexprnode11 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode9,
- passignopnode10,
+ tassignnode10,
pexprnode11
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction240
+private class ReduceAction246
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist4
+ var listnode5 = nodearraylist1
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist5
+ var tclassidnode7 = nodearraylist2
assert tclassidnode7 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
tclassidnode7
)
- var tidnode8 = nodearraylist6
+ var tidnode8 = nodearraylist3
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
listnode10
)
- var passignopnode11 = nodearraylist7
- assert passignopnode11 isa nullable AAssignOp
- var pexprnode12 = nodearraylist8
+ var tassignnode11 = nodearraylist4
+ assert tassignnode11 isa nullable TAssign
+ var pexprnode12 = nodearraylist5
assert pexprnode12 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode9,
- passignopnode11,
+ tassignnode11,
pexprnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction241
+private class ReduceAction247
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist4
+ var listnode5 = nodearraylist1
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
null
)
- var tidnode8 = nodearraylist5
+ var tidnode8 = nodearraylist2
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode8
)
- var pexprsnode9 = nodearraylist6
+ var pexprsnode9 = nodearraylist3
assert pexprsnode9 isa nullable AExprs
- var passignopnode10 = nodearraylist7
- assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist8
+ var tassignnode10 = nodearraylist4
+ assert tassignnode10 isa nullable TAssign
+ var pexprnode11 = nodearraylist5
assert pexprnode11 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode9,
- passignopnode10,
+ tassignnode10,
pexprnode11
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction242
+private class ReduceAction248
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist4
+ var listnode5 = nodearraylist1
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
null
)
- var tidnode8 = nodearraylist5
+ var tidnode8 = nodearraylist2
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
listnode10
)
- var passignopnode11 = nodearraylist6
- assert passignopnode11 isa nullable AAssignOp
- var pexprnode12 = nodearraylist7
+ var tassignnode11 = nodearraylist3
+ assert tassignnode11 isa nullable TAssign
+ var pexprnode12 = nodearraylist4
assert pexprnode12 isa nullable AExpr
- var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
pexprnode2,
pqidnode3,
pexprsnode9,
- passignopnode11,
+ tassignnode11,
pexprnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction243
+private class ReduceAction249
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var pexprsnode3 = nodearraylist2
+ assert pexprsnode3 isa nullable AExprs
+ var tassignnode4 = nodearraylist3
+ assert tassignnode4 isa nullable TAssign
+ var pexprnode5 = nodearraylist4
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+ pexprnode2,
+ pexprsnode3,
+ tassignnode4,
+ pexprnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction250
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tattridnode3 = nodearraylist5
+ assert tattridnode3 isa nullable TAttrid
+ var passignopnode4 = nodearraylist6
+ assert passignopnode4 isa nullable AAssignOp
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+ pexprnode2,
+ tattridnode3,
+ passignopnode4,
+ pexprnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction251
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tattridnode5 = nodearraylist6
+ assert tattridnode5 isa nullable TAttrid
+ var passignopnode6 = nodearraylist7
+ assert passignopnode6 isa nullable AAssignOp
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+ pexprnode2,
+ tattridnode5,
+ passignopnode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction252
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tidnode5 = nodearraylist1
+ var tattridnode3 = nodearraylist2
+ assert tattridnode3 isa nullable TAttrid
+ var passignopnode4 = nodearraylist3
+ assert passignopnode4 isa nullable AAssignOp
+ var pexprnode5 = nodearraylist4
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+ pexprnode2,
+ tattridnode3,
+ passignopnode4,
+ pexprnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction253
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tidnode5 = nodearraylist4
assert tidnode5 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
null,
tidnode5
)
- var pexprsnode6 = nodearraylist2
+ var pexprsnode6 = nodearraylist5
assert pexprsnode6 isa nullable AExprs
- var passignopnode7 = nodearraylist3
+ var passignopnode7 = nodearraylist6
assert passignopnode7 isa nullable AAssignOp
- var pexprnode8 = nodearraylist4
+ var pexprnode8 = nodearraylist7
assert pexprnode8 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction244
+private class ReduceAction254
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tidnode5 = nodearraylist1
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tidnode5 = nodearraylist4
assert tidnode5 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
null,
var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
listnode7
)
- var passignopnode8 = nodearraylist2
+ var passignopnode8 = nodearraylist5
assert passignopnode8 isa nullable AAssignOp
- var pexprnode9 = nodearraylist3
+ var pexprnode9 = nodearraylist6
assert pexprnode9 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction245
+private class ReduceAction255
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist1
+ var tclassidnode6 = nodearraylist4
assert tclassidnode6 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode5,
tclassidnode6
)
- var tidnode7 = nodearraylist2
+ var tidnode7 = nodearraylist5
assert tidnode7 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode7
)
- var pexprsnode8 = nodearraylist3
+ var pexprsnode8 = nodearraylist6
assert pexprsnode8 isa nullable AExprs
- var passignopnode9 = nodearraylist4
+ var passignopnode9 = nodearraylist7
assert passignopnode9 isa nullable AAssignOp
- var pexprnode10 = nodearraylist5
+ var pexprnode10 = nodearraylist8
assert pexprnode10 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction246
+private class ReduceAction256
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
var listnode5 = new Array[Object]
- var tclassidnode6 = nodearraylist1
+ var tclassidnode6 = nodearraylist4
assert tclassidnode6 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode5,
tclassidnode6
)
- var tidnode7 = nodearraylist2
+ var tidnode7 = nodearraylist5
assert tidnode7 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
listnode9
)
- var passignopnode10 = nodearraylist3
+ var passignopnode10 = nodearraylist6
assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist4
+ var pexprnode11 = nodearraylist7
assert pexprnode11 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction247
+private class ReduceAction257
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var listnode6 = new Array[Object]
+ var listnode5 = nodearraylist4
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist2
+ var tclassidnode7 = nodearraylist5
assert tclassidnode7 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
tclassidnode7
)
- var tidnode8 = nodearraylist3
+ var tidnode8 = nodearraylist6
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode8
)
- var pexprsnode9 = nodearraylist4
+ var pexprsnode9 = nodearraylist7
assert pexprsnode9 isa nullable AExprs
- var passignopnode10 = nodearraylist5
+ var passignopnode10 = nodearraylist8
assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist6
+ var pexprnode11 = nodearraylist9
assert pexprnode11 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction248
+private class ReduceAction258
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
+ var listnode5 = nodearraylist4
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
- var tclassidnode7 = nodearraylist2
+ var tclassidnode7 = nodearraylist5
assert tclassidnode7 isa nullable TClassid
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
tclassidnode7
)
- var tidnode8 = nodearraylist3
+ var tidnode8 = nodearraylist6
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
listnode10
)
- var passignopnode11 = nodearraylist4
+ var passignopnode11 = nodearraylist7
assert passignopnode11 isa nullable AAssignOp
- var pexprnode12 = nodearraylist5
+ var pexprnode12 = nodearraylist8
assert pexprnode12 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction249
+private class ReduceAction259
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
+ var listnode5 = nodearraylist4
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
null
)
- var tidnode8 = nodearraylist2
+ var tidnode8 = nodearraylist5
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
tidnode8
)
- var pexprsnode9 = nodearraylist3
+ var pexprsnode9 = nodearraylist6
assert pexprsnode9 isa nullable AExprs
- var passignopnode10 = nodearraylist4
+ var passignopnode10 = nodearraylist7
assert passignopnode10 isa nullable AAssignOp
- var pexprnode11 = nodearraylist5
+ var pexprnode11 = nodearraylist8
assert pexprnode11 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction250
+private class ReduceAction260
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
var listnode6 = new Array[Object]
- var listnode5 = nodearraylist1
+ var listnode5 = nodearraylist4
assert listnode5 isa Array[Object]
listnode6 = concat(listnode6, listnode5)
var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
listnode6,
null
)
- var tidnode8 = nodearraylist2
+ var tidnode8 = nodearraylist5
assert tidnode8 isa nullable TId
var pqidnode3: nullable AQid = new AQid.init_aqid(
pqualifiednode4,
var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
listnode10
)
- var passignopnode11 = nodearraylist3
+ var passignopnode11 = nodearraylist6
assert passignopnode11 isa nullable AAssignOp
- var pexprnode12 = nodearraylist4
+ var pexprnode12 = nodearraylist7
assert pexprnode12 isa nullable AExpr
var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction251
+private class ReduceAction261
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var pexprsnode3 = nodearraylist2
- assert pexprsnode3 isa nullable AExprs
- var passignopnode4 = nodearraylist3
- assert passignopnode4 isa nullable AAssignOp
- var pexprnode5 = nodearraylist4
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tidnode7 = nodearraylist5
+ assert tidnode7 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode7
+ )
+ var pexprsnode8 = nodearraylist6
+ assert pexprsnode8 isa nullable AExprs
+ var passignopnode9 = nodearraylist7
+ assert passignopnode9 isa nullable AAssignOp
+ var pexprnode10 = nodearraylist8
+ assert pexprnode10 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
pexprnode2,
- pexprsnode3,
- passignopnode4,
- pexprnode5
+ pqidnode5,
+ pexprsnode8,
+ passignopnode9,
+ pexprnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction252
+private class ReduceAction262
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tpluseqnode2 = nodearraylist1
- assert tpluseqnode2 isa nullable TPluseq
- var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
- tpluseqnode2
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- node_list = passignopnode1
- p.push(p.go_to(_goto), node_list)
- end
-end
-private class ReduceAction253
- super ReduceAction
- redef fun action(p: Parser)
- do
- var node_list: nullable Object = null
- var nodearraylist1 = p.pop
- var tminuseqnode2 = nodearraylist1
- assert tminuseqnode2 isa nullable TMinuseq
- var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
- tminuseqnode2
+ var tidnode7 = nodearraylist5
+ assert tidnode7 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode7
)
- node_list = passignopnode1
+ var listnode9 = new Array[Object]
+ var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode9
+ )
+ var passignopnode10 = nodearraylist6
+ assert passignopnode10 isa nullable AAssignOp
+ var pexprnode11 = nodearraylist7
+ assert pexprnode11 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode8,
+ passignopnode10,
+ pexprnode11
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction254
+private class ReduceAction263
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tstareqnode2 = nodearraylist1
- assert tstareqnode2 isa nullable TStareq
- var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
- tstareqnode2
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- node_list = passignopnode1
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist7
+ assert pexprsnode10 isa nullable AExprs
+ var passignopnode11 = nodearraylist8
+ assert passignopnode11 isa nullable AAssignOp
+ var pexprnode12 = nodearraylist9
+ assert pexprnode12 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode10,
+ passignopnode11,
+ pexprnode12
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction255
+private class ReduceAction264
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tslasheqnode2 = nodearraylist1
- assert tslasheqnode2 isa nullable TSlasheq
- var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
- tslasheqnode2
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- node_list = passignopnode1
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var passignopnode12 = nodearraylist7
+ assert passignopnode12 isa nullable AAssignOp
+ var pexprnode13 = nodearraylist8
+ assert pexprnode13 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode10,
+ passignopnode12,
+ pexprnode13
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction256
+private class ReduceAction265
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist10 = p.pop
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tpercenteqnode2 = nodearraylist1
- assert tpercenteqnode2 isa nullable TPercenteq
- var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
- tpercenteqnode2
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
)
- node_list = passignopnode1
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist8
+ assert pexprsnode11 isa nullable AExprs
+ var passignopnode12 = nodearraylist9
+ assert passignopnode12 isa nullable AAssignOp
+ var pexprnode13 = nodearraylist10
+ assert pexprnode13 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11,
+ passignopnode12,
+ pexprnode13
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction257
+private class ReduceAction266
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tstarstareqnode2 = nodearraylist1
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var passignopnode13 = nodearraylist8
+ assert passignopnode13 isa nullable AAssignOp
+ var pexprnode14 = nodearraylist9
+ assert pexprnode14 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11,
+ passignopnode13,
+ pexprnode14
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction267
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist7
+ assert pexprsnode11 isa nullable AExprs
+ var passignopnode12 = nodearraylist8
+ assert passignopnode12 isa nullable AAssignOp
+ var pexprnode13 = nodearraylist9
+ assert pexprnode13 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11,
+ passignopnode12,
+ pexprnode13
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction268
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var passignopnode13 = nodearraylist7
+ assert passignopnode13 isa nullable AAssignOp
+ var pexprnode14 = nodearraylist8
+ assert pexprnode14 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11,
+ passignopnode13,
+ pexprnode14
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction269
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode5 = nodearraylist1
+ assert tidnode5 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode5
+ )
+ var pexprsnode6 = nodearraylist2
+ assert pexprsnode6 isa nullable AExprs
+ var passignopnode7 = nodearraylist3
+ assert passignopnode7 isa nullable AAssignOp
+ var pexprnode8 = nodearraylist4
+ assert pexprnode8 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode6,
+ passignopnode7,
+ pexprnode8
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction270
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode5 = nodearraylist1
+ assert tidnode5 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode5
+ )
+ var listnode7 = new Array[Object]
+ var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode7
+ )
+ var passignopnode8 = nodearraylist2
+ assert passignopnode8 isa nullable AAssignOp
+ var pexprnode9 = nodearraylist3
+ assert pexprnode9 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode6,
+ passignopnode8,
+ pexprnode9
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction271
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode5 = new Array[Object]
+ var tclassidnode6 = nodearraylist1
+ assert tclassidnode6 isa nullable TClassid
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode5,
+ tclassidnode6
+ )
+ var tidnode7 = nodearraylist2
+ assert tidnode7 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode7
+ )
+ var pexprsnode8 = nodearraylist3
+ assert pexprsnode8 isa nullable AExprs
+ var passignopnode9 = nodearraylist4
+ assert passignopnode9 isa nullable AAssignOp
+ var pexprnode10 = nodearraylist5
+ assert pexprnode10 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode8,
+ passignopnode9,
+ pexprnode10
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction272
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode5 = new Array[Object]
+ var tclassidnode6 = nodearraylist1
+ assert tclassidnode6 isa nullable TClassid
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode5,
+ tclassidnode6
+ )
+ var tidnode7 = nodearraylist2
+ assert tidnode7 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode7
+ )
+ var listnode9 = new Array[Object]
+ var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode9
+ )
+ var passignopnode10 = nodearraylist3
+ assert passignopnode10 isa nullable AAssignOp
+ var pexprnode11 = nodearraylist4
+ assert pexprnode11 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode8,
+ passignopnode10,
+ pexprnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction273
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var listnode5 = nodearraylist1
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tclassidnode7 = nodearraylist2
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist3
+ assert tidnode8 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist4
+ assert pexprsnode9 isa nullable AExprs
+ var passignopnode10 = nodearraylist5
+ assert passignopnode10 isa nullable AAssignOp
+ var pexprnode11 = nodearraylist6
+ assert pexprnode11 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode9,
+ passignopnode10,
+ pexprnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction274
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var listnode5 = nodearraylist1
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var tclassidnode7 = nodearraylist2
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist3
+ assert tidnode8 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var passignopnode11 = nodearraylist4
+ assert passignopnode11 isa nullable AAssignOp
+ var pexprnode12 = nodearraylist5
+ assert pexprnode12 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode9,
+ passignopnode11,
+ pexprnode12
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction275
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var listnode5 = nodearraylist1
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ null
+ )
+ var tidnode8 = nodearraylist2
+ assert tidnode8 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist3
+ assert pexprsnode9 isa nullable AExprs
+ var passignopnode10 = nodearraylist4
+ assert passignopnode10 isa nullable AAssignOp
+ var pexprnode11 = nodearraylist5
+ assert pexprnode11 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode9,
+ passignopnode10,
+ pexprnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction276
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var listnode5 = nodearraylist1
+ assert listnode5 isa Array[Object]
+ listnode6 = concat(listnode6, listnode5)
+ var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ null
+ )
+ var tidnode8 = nodearraylist2
+ assert tidnode8 isa nullable TId
+ var pqidnode3: nullable AQid = new AQid.init_aqid(
+ pqualifiednode4,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var passignopnode11 = nodearraylist3
+ assert passignopnode11 isa nullable AAssignOp
+ var pexprnode12 = nodearraylist4
+ assert pexprnode12 isa nullable AExpr
+ var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+ pexprnode2,
+ pqidnode3,
+ pexprsnode9,
+ passignopnode11,
+ pexprnode12
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction277
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var pexprsnode3 = nodearraylist2
+ assert pexprsnode3 isa nullable AExprs
+ var passignopnode4 = nodearraylist3
+ assert passignopnode4 isa nullable AAssignOp
+ var pexprnode5 = nodearraylist4
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+ pexprnode2,
+ pexprsnode3,
+ passignopnode4,
+ pexprnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction278
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tpluseqnode2 = nodearraylist1
+ assert tpluseqnode2 isa nullable TPluseq
+ var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+ tpluseqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction279
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tminuseqnode2 = nodearraylist1
+ assert tminuseqnode2 isa nullable TMinuseq
+ var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+ tminuseqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction280
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tstareqnode2 = nodearraylist1
+ assert tstareqnode2 isa nullable TStareq
+ var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+ tstareqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction281
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tslasheqnode2 = nodearraylist1
+ assert tslasheqnode2 isa nullable TSlasheq
+ var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+ tslasheqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction282
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tpercenteqnode2 = nodearraylist1
+ assert tpercenteqnode2 isa nullable TPercenteq
+ var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+ tpercenteqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction283
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tstarstareqnode2 = nodearraylist1
assert tstarstareqnode2 isa nullable TStarstareq
var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
tstarstareqnode2
)
- node_list = passignopnode1
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction284
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tpipeeqnode2 = nodearraylist1
+ assert tpipeeqnode2 isa nullable TPipeeq
+ var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+ tpipeeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction285
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tcareteqnode2 = nodearraylist1
+ assert tcareteqnode2 isa nullable TCareteq
+ var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+ tcareteqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction286
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tampeqnode2 = nodearraylist1
+ assert tampeqnode2 isa nullable TAmpeq
+ var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+ tampeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction287
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tlleqnode2 = nodearraylist1
+ assert tlleqnode2 isa nullable TLleq
+ var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+ tlleqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction288
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tggeqnode2 = nodearraylist1
+ assert tggeqnode2 isa nullable TGgeq
+ var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+ tggeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction289
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwdonode2 = nodearraylist1
+ assert tkwdonode2 isa nullable TKwdo
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var plabelnode6 = nodearraylist3
+ assert plabelnode6 isa nullable ALabel
+ var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+ tkwdonode2,
+ pexprnode3,
+ null,
+ null,
+ plabelnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction290
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwdonode2 = nodearraylist1
+ assert tkwdonode2 isa nullable TKwdo
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+ tkwdonode2,
+ pexprnode3,
+ null,
+ null,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction291
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwdonode2 = nodearraylist1
+ assert tkwdonode2 isa nullable TKwdo
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwcatchnode4 = nodearraylist4
+ assert tkwcatchnode4 isa nullable TKwcatch
+ var pexprnode5 = nodearraylist5
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+ tkwdonode2,
+ pexprnode3,
+ tkwcatchnode4,
+ pexprnode5,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction292
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var tkwelsenode6 = nodearraylist7
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ pexprnode5,
+ tkwelsenode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction293
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ pexprnode5,
+ null,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction294
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
+ var tkwelsenode6 = nodearraylist8
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist9
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ pexprnode5,
+ tkwelsenode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction295
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var tkwelsenode6 = nodearraylist6
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist7
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ tkwelsenode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction296
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var tkwelsenode6 = nodearraylist7
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ tkwelsenode6,
+ pexprnode7
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction258
+private class ReduceAction297
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tpipeeqnode2 = nodearraylist1
- assert tpipeeqnode2 isa nullable TPipeeq
- var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
- tpipeeqnode2
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode5 = nodearraylist7
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode7 = nodearraylist8
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ pexprnode5,
+ null,
+ pexprnode7
)
- node_list = passignopnode1
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction259
+private class ReduceAction298
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tcareteqnode2 = nodearraylist1
- assert tcareteqnode2 isa nullable TCareteq
- var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
- tcareteqnode2
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode7 = nodearraylist6
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ null,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction299
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwifnode2 = nodearraylist1
+ assert tkwifnode2 isa nullable TKwif
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwthennode4 = nodearraylist5
+ assert tkwthennode4 isa nullable TKwthen
+ var pexprnode7 = nodearraylist7
+ assert pexprnode7 isa nullable AExpr
+ var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ tkwifnode2,
+ pexprnode3,
+ tkwthennode4,
+ null,
+ null,
+ pexprnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction301
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwloopnode2 = nodearraylist1
+ assert tkwloopnode2 isa nullable TKwloop
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var plabelnode4 = nodearraylist3
+ assert plabelnode4 isa nullable ALabel
+ var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+ tkwloopnode2,
+ pexprnode3,
+ plabelnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction302
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwloopnode2 = nodearraylist1
+ assert tkwloopnode2 isa nullable TKwloop
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+ tkwloopnode2,
+ pexprnode3,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction303
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwwhilenode2 = nodearraylist1
+ assert tkwwhilenode2 isa nullable TKwwhile
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var plabelnode6 = nodearraylist7
+ assert plabelnode6 isa nullable ALabel
+ var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+ tkwwhilenode2,
+ pexprnode3,
+ tkwdonode4,
+ pexprnode5,
+ plabelnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction304
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwwhilenode2 = nodearraylist1
+ assert tkwwhilenode2 isa nullable TKwwhile
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+ tkwwhilenode2,
+ pexprnode3,
+ tkwdonode4,
+ pexprnode5,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction305
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var listnode4 = new Array[Object]
+ var tkwfornode2 = nodearraylist1
+ assert tkwfornode2 isa nullable TKwfor
+ var listnode3 = nodearraylist3
+ assert listnode3 isa Array[Object]
+ listnode4 = concat(listnode4, listnode3)
+ var tkwdonode5 = nodearraylist5
+ assert tkwdonode5 isa nullable TKwdo
+ var pexprnode6 = nodearraylist6
+ assert pexprnode6 isa nullable AExpr
+ var plabelnode7 = nodearraylist7
+ assert plabelnode7 isa nullable ALabel
+ var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+ tkwfornode2,
+ listnode4,
+ tkwdonode5,
+ pexprnode6,
+ plabelnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction306
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var listnode4 = new Array[Object]
+ var tkwfornode2 = nodearraylist1
+ assert tkwfornode2 isa nullable TKwfor
+ var listnode3 = nodearraylist3
+ assert listnode3 isa Array[Object]
+ listnode4 = concat(listnode4, listnode3)
+ var tkwdonode5 = nodearraylist5
+ assert tkwdonode5 isa nullable TKwdo
+ var pexprnode6 = nodearraylist6
+ assert pexprnode6 isa nullable AExpr
+ var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+ tkwfornode2,
+ listnode4,
+ tkwdonode5,
+ pexprnode6,
+ null
)
- node_list = passignopnode1
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction260
+private class ReduceAction307
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist1 = p.pop
- var tampeqnode2 = nodearraylist1
- assert tampeqnode2 isa nullable TAmpeq
- var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
- tampeqnode2
- )
- node_list = passignopnode1
+ var listnode2 = new Array[Object]
+ var pforgroupnode1 = nodearraylist1
+ if pforgroupnode1 != null then
+ listnode2.add(pforgroupnode1)
+ end
+ node_list = listnode2
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction261
+private class ReduceAction308
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tlleqnode2 = nodearraylist1
- assert tlleqnode2 isa nullable TLleq
- var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
- tlleqnode2
- )
- node_list = passignopnode1
+ var listnode3 = new Array[Object]
+ var listnode1 = nodearraylist1
+ assert listnode1 isa Array[Object]
+ var pforgroupnode2 = nodearraylist5
+ listnode3 = concat(listnode3, listnode1)
+ if pforgroupnode2 != null then
+ listnode3.add(pforgroupnode2)
+ end
+ node_list = listnode3
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction262
+private class ReduceAction309
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tggeqnode2 = nodearraylist1
- assert tggeqnode2 isa nullable TGgeq
- var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
- tggeqnode2
+ var listnode3 = new Array[Object]
+ var listnode2 = nodearraylist1
+ assert listnode2 isa Array[Object]
+ listnode3 = concat(listnode3, listnode2)
+ var tkwinnode4 = nodearraylist3
+ assert tkwinnode4 isa nullable TKwin
+ var pexprnode5 = nodearraylist5
+ assert pexprnode5 isa nullable AExpr
+ var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
+ listnode3,
+ tkwinnode4,
+ pexprnode5
)
- node_list = passignopnode1
+ node_list = pforgroupnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction263
+private class ReduceAction310
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwdonode2 = nodearraylist1
- assert tkwdonode2 isa nullable TKwdo
- var pexprnode3 = nodearraylist2
+ var tkwwithnode2 = nodearraylist1
+ assert tkwwithnode2 isa nullable TKwwith
+ var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var plabelnode6 = nodearraylist3
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var plabelnode6 = nodearraylist7
assert plabelnode6 isa nullable ALabel
- var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
- tkwdonode2,
+ var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+ tkwwithnode2,
pexprnode3,
- null,
- null,
+ tkwdonode4,
+ pexprnode5,
plabelnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction264
+private class ReduceAction311
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwdonode2 = nodearraylist1
- assert tkwdonode2 isa nullable TKwdo
- var pexprnode3 = nodearraylist2
+ var tkwwithnode2 = nodearraylist1
+ assert tkwwithnode2 isa nullable TKwwith
+ var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
- tkwdonode2,
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+ tkwwithnode2,
pexprnode3,
- null,
- null,
+ tkwdonode4,
+ pexprnode5,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction265
+private class ReduceAction312
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwdonode2 = nodearraylist1
- assert tkwdonode2 isa nullable TKwdo
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwcatchnode4 = nodearraylist4
- assert tkwcatchnode4 isa nullable TKwcatch
- var pexprnode5 = nodearraylist5
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
- tkwdonode2,
- pexprnode3,
- tkwcatchnode4,
- pexprnode5,
+ var tidnode3 = nodearraylist1
+ assert tidnode3 isa nullable TId
+ var ptypenode4 = nodearraylist2
+ assert ptypenode4 isa nullable AType
+ var tassignnode5 = nodearraylist3
+ assert tassignnode5 isa nullable TAssign
+ var pexprnode6 = nodearraylist5
+ assert pexprnode6 isa nullable AExpr
+ var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+ null,
+ tidnode3,
+ ptypenode4,
+ tassignnode5,
+ pexprnode6,
null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction266
+private class ReduceAction313
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var tkwelsenode6 = nodearraylist7
- assert tkwelsenode6 isa nullable TKwelse
- var pexprnode7 = nodearraylist8
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- pexprnode5,
- tkwelsenode6,
- pexprnode7
+ var tidnode3 = nodearraylist1
+ assert tidnode3 isa nullable TId
+ var ptypenode4 = nodearraylist3
+ assert ptypenode4 isa nullable AType
+ var tassignnode5 = nodearraylist4
+ assert tassignnode5 isa nullable TAssign
+ var pexprnode6 = nodearraylist6
+ assert pexprnode6 isa nullable AExpr
+ var pannotationsnode7 = nodearraylist2
+ assert pannotationsnode7 isa nullable AAnnotations
+ var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+ null,
+ tidnode3,
+ ptypenode4,
+ tassignnode5,
+ pexprnode6,
+ pannotationsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction267
+private class ReduceAction315
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- pexprnode5,
+ var tkwassertnode2 = nodearraylist1
+ assert tkwassertnode2 isa nullable TKwassert
+ var pexprnode4 = nodearraylist2
+ assert pexprnode4 isa nullable AExpr
+ var tkwelsenode5 = nodearraylist3
+ assert tkwelsenode5 isa nullable TKwelse
+ var pexprnode6 = nodearraylist4
+ assert pexprnode6 isa nullable AExpr
+ var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+ tkwassertnode2,
null,
- null
+ pexprnode4,
+ tkwelsenode5,
+ pexprnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction268
+private class ReduceAction316
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist9 = p.pop
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode5 = nodearraylist7
- assert pexprnode5 isa nullable AExpr
- var tkwelsenode6 = nodearraylist8
- assert tkwelsenode6 isa nullable TKwelse
- var pexprnode7 = nodearraylist9
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- pexprnode5,
- tkwelsenode6,
- pexprnode7
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwassertnode2 = nodearraylist1
+ assert tkwassertnode2 isa nullable TKwassert
+ var tidnode3 = nodearraylist2
+ assert tidnode3 isa nullable TId
+ var pexprnode4 = nodearraylist3
+ assert pexprnode4 isa nullable AExpr
+ var tkwelsenode5 = nodearraylist4
+ assert tkwelsenode5 isa nullable TKwelse
+ var pexprnode6 = nodearraylist5
+ assert pexprnode6 isa nullable AExpr
+ var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+ tkwassertnode2,
+ tidnode3,
+ pexprnode4,
+ tkwelsenode5,
+ pexprnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction269
+private class ReduceAction317
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var tkwelsenode6 = nodearraylist6
- assert tkwelsenode6 isa nullable TKwelse
- var pexprnode7 = nodearraylist7
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
+ var tkwassertnode2 = nodearraylist1
+ assert tkwassertnode2 isa nullable TKwassert
+ var pexprnode4 = nodearraylist2
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+ tkwassertnode2,
null,
- tkwelsenode6,
- pexprnode7
+ pexprnode4,
+ null,
+ null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction270
+private class ReduceAction318
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var tkwelsenode6 = nodearraylist7
- assert tkwelsenode6 isa nullable TKwelse
- var pexprnode7 = nodearraylist8
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
+ var tkwassertnode2 = nodearraylist1
+ assert tkwassertnode2 isa nullable TKwassert
+ var tidnode3 = nodearraylist2
+ assert tidnode3 isa nullable TId
+ var pexprnode4 = nodearraylist3
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+ tkwassertnode2,
+ tidnode3,
+ pexprnode4,
null,
- tkwelsenode6,
- pexprnode7
+ null
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction271
+private class ReduceAction319
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tidnode1 = nodearraylist1
+ node_list = tidnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction321
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist11 = p.pop
+ var nodearraylist10 = p.pop
+ var nodearraylist9 = p.pop
var nodearraylist8 = p.pop
var nodearraylist7 = p.pop
var nodearraylist6 = p.pop
assert tkwthennode4 isa nullable TKwthen
var pexprnode5 = nodearraylist7
assert pexprnode5 isa nullable AExpr
- var pexprnode7 = nodearraylist8
+ var tkwelsenode6 = nodearraylist9
+ assert tkwelsenode6 isa nullable TKwelse
+ var pexprnode7 = nodearraylist11
assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+ var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
tkwifnode2,
pexprnode3,
tkwthennode4,
pexprnode5,
- null,
+ tkwelsenode6,
pexprnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction272
+private class ReduceAction323
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode7 = nodearraylist6
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- null,
- null,
- pexprnode7
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tkwornode3 = nodearraylist2
+ assert tkwornode3 isa nullable TKwor
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+ pexprnode2,
+ tkwornode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction273
+private class ReduceAction324
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode7 = nodearraylist7
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- null,
- null,
- pexprnode7
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tkwandnode3 = nodearraylist2
+ assert tkwandnode3 isa nullable TKwand
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+ pexprnode2,
+ tkwandnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction275
+private class ReduceAction325
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwloopnode2 = nodearraylist1
- assert tkwloopnode2 isa nullable TKwloop
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var plabelnode4 = nodearraylist3
- assert plabelnode4 isa nullable ALabel
- var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
- tkwloopnode2,
- pexprnode3,
- plabelnode4
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tkwornode3 = nodearraylist2
+ assert tkwornode3 isa nullable TKwor
+ var tkwelsenode4 = nodearraylist3
+ assert tkwelsenode4 isa nullable TKwelse
+ var pexprnode5 = nodearraylist5
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+ pexprnode2,
+ tkwornode3,
+ tkwelsenode4,
+ pexprnode5
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction276
+private class ReduceAction326
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwloopnode2 = nodearraylist1
- assert tkwloopnode2 isa nullable TKwloop
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
- tkwloopnode2,
- pexprnode3,
- null
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tkwimpliesnode3 = nodearraylist2
+ assert tkwimpliesnode3 isa nullable TKwimplies
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
+ pexprnode2,
+ tkwimpliesnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction277
+private class ReduceAction328
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
- var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwwhilenode2 = nodearraylist1
- assert tkwwhilenode2 isa nullable TKwwhile
+ var tkwnotnode2 = nodearraylist1
+ assert tkwnotnode2 isa nullable TKwnot
var pexprnode3 = nodearraylist3
assert pexprnode3 isa nullable AExpr
- var tkwdonode4 = nodearraylist5
- assert tkwdonode4 isa nullable TKwdo
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var plabelnode6 = nodearraylist7
- assert plabelnode6 isa nullable ALabel
- var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
- tkwwhilenode2,
- pexprnode3,
- tkwdonode4,
- pexprnode5,
- plabelnode6
+ var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+ tkwnotnode2,
+ pexprnode3
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction278
+private class ReduceAction330
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwwhilenode2 = nodearraylist1
- assert tkwwhilenode2 isa nullable TKwwhile
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwdonode4 = nodearraylist5
- assert tkwdonode4 isa nullable TKwdo
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
- tkwwhilenode2,
- pexprnode3,
- tkwdonode4,
- pexprnode5,
- null
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var teqnode3 = nodearraylist2
+ assert teqnode3 isa nullable TEq
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+ pexprnode2,
+ teqnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction279
+private class ReduceAction331
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode4 = new Array[Object]
- var tkwfornode2 = nodearraylist1
- assert tkwfornode2 isa nullable TKwfor
- var listnode3 = nodearraylist3
- assert listnode3 isa Array[Object]
- listnode4 = concat(listnode4, listnode3)
- var tkwdonode5 = nodearraylist5
- assert tkwdonode5 isa nullable TKwdo
- var pexprnode6 = nodearraylist6
- assert pexprnode6 isa nullable AExpr
- var plabelnode7 = nodearraylist7
- assert plabelnode7 isa nullable ALabel
- var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
- tkwfornode2,
- listnode4,
- tkwdonode5,
- pexprnode6,
- plabelnode7
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tnenode3 = nodearraylist2
+ assert tnenode3 isa nullable TNe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+ pexprnode2,
+ tnenode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction280
+private class ReduceAction332
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode4 = new Array[Object]
- var tkwfornode2 = nodearraylist1
- assert tkwfornode2 isa nullable TKwfor
- var listnode3 = nodearraylist3
- assert listnode3 isa Array[Object]
- listnode4 = concat(listnode4, listnode3)
- var tkwdonode5 = nodearraylist5
- assert tkwdonode5 isa nullable TKwdo
- var pexprnode6 = nodearraylist6
- assert pexprnode6 isa nullable AExpr
- var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
- tkwfornode2,
- listnode4,
- tkwdonode5,
- pexprnode6,
- null
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tltnode3 = nodearraylist2
+ assert tltnode3 isa nullable TLt
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+ pexprnode2,
+ tltnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction281
+private class ReduceAction333
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode2 = new Array[Object]
- var pforgroupnode1 = nodearraylist1
- if pforgroupnode1 != null then
- listnode2.add(pforgroupnode1)
- end
- node_list = listnode2
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tlenode3 = nodearraylist2
+ assert tlenode3 isa nullable TLe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+ pexprnode2,
+ tlenode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction282
+private class ReduceAction334
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode3 = new Array[Object]
- var listnode1 = nodearraylist1
- assert listnode1 isa Array[Object]
- var pforgroupnode2 = nodearraylist5
- listnode3 = concat(listnode3, listnode1)
- if pforgroupnode2 != null then
- listnode3.add(pforgroupnode2)
- end
- node_list = listnode3
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tgtnode3 = nodearraylist2
+ assert tgtnode3 isa nullable TGt
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+ pexprnode2,
+ tgtnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction283
+private class ReduceAction335
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var listnode3 = new Array[Object]
- var listnode2 = nodearraylist1
- assert listnode2 isa Array[Object]
- listnode3 = concat(listnode3, listnode2)
- var tkwinnode4 = nodearraylist3
- assert tkwinnode4 isa nullable TKwin
- var pexprnode5 = nodearraylist5
- assert pexprnode5 isa nullable AExpr
- var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
- listnode3,
- tkwinnode4,
- pexprnode5
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tgenode3 = nodearraylist2
+ assert tgenode3 isa nullable TGe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+ pexprnode2,
+ tgenode3,
+ pexprnode4
)
- node_list = pforgroupnode1
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction284
+private class ReduceAction336
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwwithnode2 = nodearraylist1
- assert tkwwithnode2 isa nullable TKwwith
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwdonode4 = nodearraylist5
- assert tkwdonode4 isa nullable TKwdo
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var plabelnode6 = nodearraylist7
- assert plabelnode6 isa nullable ALabel
- var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
- tkwwithnode2,
- pexprnode3,
- tkwdonode4,
- pexprnode5,
- plabelnode6
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tstarshipnode3 = nodearraylist2
+ assert tstarshipnode3 isa nullable TStarship
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+ pexprnode2,
+ tstarshipnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction285
+private class ReduceAction337
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwwithnode2 = nodearraylist1
- assert tkwwithnode2 isa nullable TKwwith
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwdonode4 = nodearraylist5
- assert tkwdonode4 isa nullable TKwdo
- var pexprnode5 = nodearraylist6
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
- tkwwithnode2,
- pexprnode3,
- tkwdonode4,
- pexprnode5,
- null
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tkwisanode3 = nodearraylist2
+ assert tkwisanode3 isa nullable TKwisa
+ var ptypenode4 = nodearraylist4
+ assert ptypenode4 isa nullable AType
+ var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+ pexprnode2,
+ tkwisanode3,
+ ptypenode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction286
+private class ReduceAction339
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tidnode3 = nodearraylist1
- assert tidnode3 isa nullable TId
- var ptypenode4 = nodearraylist2
- assert ptypenode4 isa nullable AType
- var tassignnode5 = nodearraylist3
- assert tassignnode5 isa nullable TAssign
- var pexprnode6 = nodearraylist5
- assert pexprnode6 isa nullable AExpr
- var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
- null,
- tidnode3,
- ptypenode4,
- tassignnode5,
- pexprnode6,
- null
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tpipenode3 = nodearraylist2
+ assert tpipenode3 isa nullable TPipe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
+ pexprnode2,
+ tpipenode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction287
+private class ReduceAction341
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
- var nodearraylist1 = p.pop
- var tidnode3 = nodearraylist1
- assert tidnode3 isa nullable TId
- var ptypenode4 = nodearraylist3
- assert ptypenode4 isa nullable AType
- var tassignnode5 = nodearraylist4
- assert tassignnode5 isa nullable TAssign
- var pexprnode6 = nodearraylist6
- assert pexprnode6 isa nullable AExpr
- var pannotationsnode7 = nodearraylist2
- assert pannotationsnode7 isa nullable AAnnotations
- var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
- null,
- tidnode3,
- ptypenode4,
- tassignnode5,
- pexprnode6,
- pannotationsnode7
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tcaretnode3 = nodearraylist2
+ assert tcaretnode3 isa nullable TCaret
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
+ pexprnode2,
+ tcaretnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction289
+private class ReduceAction343
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwassertnode2 = nodearraylist1
- assert tkwassertnode2 isa nullable TKwassert
- var pexprnode4 = nodearraylist2
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tampnode3 = nodearraylist2
+ assert tampnode3 isa nullable TAmp
+ var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var tkwelsenode5 = nodearraylist3
- assert tkwelsenode5 isa nullable TKwelse
- var pexprnode6 = nodearraylist4
- assert pexprnode6 isa nullable AExpr
- var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
- tkwassertnode2,
- null,
- pexprnode4,
- tkwelsenode5,
- pexprnode6
+ var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
+ pexprnode2,
+ tampnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction290
+private class ReduceAction345
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwassertnode2 = nodearraylist1
- assert tkwassertnode2 isa nullable TKwassert
- var tidnode3 = nodearraylist2
- assert tidnode3 isa nullable TId
- var pexprnode4 = nodearraylist3
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tllnode3 = nodearraylist2
+ assert tllnode3 isa nullable TLl
+ var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var tkwelsenode5 = nodearraylist4
- assert tkwelsenode5 isa nullable TKwelse
- var pexprnode6 = nodearraylist5
- assert pexprnode6 isa nullable AExpr
- var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
- tkwassertnode2,
- tidnode3,
- pexprnode4,
- tkwelsenode5,
- pexprnode6
+ var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+ pexprnode2,
+ tllnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction291
+private class ReduceAction346
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwassertnode2 = nodearraylist1
- assert tkwassertnode2 isa nullable TKwassert
- var pexprnode4 = nodearraylist2
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tggnode3 = nodearraylist2
+ assert tggnode3 isa nullable TGg
+ var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
- tkwassertnode2,
- null,
- pexprnode4,
- null,
- null
+ var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+ pexprnode2,
+ tggnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction292
+private class ReduceAction348
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwassertnode2 = nodearraylist1
- assert tkwassertnode2 isa nullable TKwassert
- var tidnode3 = nodearraylist2
- assert tidnode3 isa nullable TId
- var pexprnode4 = nodearraylist3
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tplusnode3 = nodearraylist2
+ assert tplusnode3 isa nullable TPlus
+ var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
- tkwassertnode2,
- tidnode3,
- pexprnode4,
- null,
- null
+ var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+ pexprnode2,
+ tplusnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction293
+private class ReduceAction349
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tidnode1 = nodearraylist1
- node_list = tidnode1
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tminusnode3 = nodearraylist2
+ assert tminusnode3 isa nullable TMinus
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+ pexprnode2,
+ tminusnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction295
+private class ReduceAction351
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist11 = p.pop
- var nodearraylist10 = p.pop
- var nodearraylist9 = p.pop
- var nodearraylist8 = p.pop
- var nodearraylist7 = p.pop
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwifnode2 = nodearraylist1
- assert tkwifnode2 isa nullable TKwif
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var tkwthennode4 = nodearraylist5
- assert tkwthennode4 isa nullable TKwthen
- var pexprnode5 = nodearraylist7
- assert pexprnode5 isa nullable AExpr
- var tkwelsenode6 = nodearraylist9
- assert tkwelsenode6 isa nullable TKwelse
- var pexprnode7 = nodearraylist11
- assert pexprnode7 isa nullable AExpr
- var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
- tkwifnode2,
- pexprnode3,
- tkwthennode4,
- pexprnode5,
- tkwelsenode6,
- pexprnode7
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tstarnode3 = nodearraylist2
+ assert tstarnode3 isa nullable TStar
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+ pexprnode2,
+ tstarnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction297
+private class ReduceAction352
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var tkwornode3 = nodearraylist2
- assert tkwornode3 isa nullable TKwor
+ var tslashnode3 = nodearraylist2
+ assert tslashnode3 isa nullable TSlash
var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+ var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
pexprnode2,
- tkwornode3,
+ tslashnode3,
pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction298
+private class ReduceAction353
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var tkwandnode3 = nodearraylist2
- assert tkwandnode3 isa nullable TKwand
+ var tpercentnode3 = nodearraylist2
+ assert tpercentnode3 isa nullable TPercent
var pexprnode4 = nodearraylist4
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+ var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
pexprnode2,
- tkwandnode3,
+ tpercentnode3,
pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction299
+private class ReduceAction355
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var tkwornode3 = nodearraylist2
- assert tkwornode3 isa nullable TKwor
- var tkwelsenode4 = nodearraylist3
- assert tkwelsenode4 isa nullable TKwelse
- var pexprnode5 = nodearraylist5
- assert pexprnode5 isa nullable AExpr
- var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+ var tstarstarnode3 = nodearraylist2
+ assert tstarstarnode3 isa nullable TStarstar
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
pexprnode2,
- tkwornode3,
- tkwelsenode4,
- pexprnode5
+ tstarstarnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction357
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tminusnode2 = nodearraylist1
+ assert tminusnode2 isa nullable TMinus
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+ tminusnode2,
+ pexprnode3
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction358
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tplusnode2 = nodearraylist1
+ assert tplusnode2 isa nullable TPlus
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+ tplusnode2,
+ pexprnode3
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction359
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var ttildenode2 = nodearraylist1
+ assert ttildenode2 isa nullable TTilde
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+ ttildenode2,
+ pexprnode3
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction360
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwoncenode2 = nodearraylist1
+ assert tkwoncenode2 isa nullable TKwonce
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+ tkwoncenode2,
+ pexprnode3
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction300
+private class ReduceAction362
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tkwimpliesnode3 = nodearraylist2
- assert tkwimpliesnode3 isa nullable TKwimplies
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
- pexprnode2,
- tkwimpliesnode3,
- pexprnode4
+ var tkwnewnode2 = nodearraylist1
+ assert tkwnewnode2 isa nullable TKwnew
+ var ptypenode3 = nodearraylist3
+ assert ptypenode3 isa nullable AType
+ var pexprsnode5 = nodearraylist4
+ assert pexprsnode5 isa nullable AExprs
+ var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+ tkwnewnode2,
+ ptypenode3,
+ null,
+ pexprsnode5
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction302
+private class ReduceAction363
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwnotnode2 = nodearraylist1
- assert tkwnotnode2 isa nullable TKwnot
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
- tkwnotnode2,
- pexprnode3
+ var tkwnewnode2 = nodearraylist1
+ assert tkwnewnode2 isa nullable TKwnew
+ var ptypenode3 = nodearraylist3
+ assert ptypenode3 isa nullable AType
+ var listnode6 = new Array[Object]
+ var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode6
+ )
+ var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+ tkwnewnode2,
+ ptypenode3,
+ null,
+ pexprsnode5
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction304
+private class ReduceAction364
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var teqnode3 = nodearraylist2
- assert teqnode3 isa nullable TEq
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
- pexprnode2,
- teqnode3,
- pexprnode4
+ var tkwissetnode2 = nodearraylist1
+ assert tkwissetnode2 isa nullable TKwisset
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tattridnode4 = nodearraylist6
+ assert tattridnode4 isa nullable TAttrid
+ var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+ tkwissetnode2,
+ pexprnode3,
+ tattridnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction305
+private class ReduceAction365
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tnenode3 = nodearraylist2
- assert tnenode3 isa nullable TNe
- var pexprnode4 = nodearraylist4
+ var tkwissetnode2 = nodearraylist1
+ assert tkwissetnode2 isa nullable TKwisset
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
- pexprnode2,
- tnenode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var tattridnode6 = nodearraylist7
+ assert tattridnode6 isa nullable TAttrid
+ var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+ tkwissetnode2,
+ pexprnode3,
+ tattridnode6
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction306
+private class ReduceAction366
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tltnode3 = nodearraylist2
- assert tltnode3 isa nullable TLt
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
- pexprnode2,
- tltnode3,
- pexprnode4
+ var tkwissetnode2 = nodearraylist1
+ assert tkwissetnode2 isa nullable TKwisset
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tattridnode4 = nodearraylist3
+ assert tattridnode4 isa nullable TAttrid
+ var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+ tkwissetnode2,
+ pexprnode3,
+ tattridnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction307
+private class ReduceAction367
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tlenode3 = nodearraylist2
- assert tlenode3 isa nullable TLe
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
- pexprnode2,
- tlenode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tidnode6 = nodearraylist5
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var pexprsnode7 = nodearraylist6
+ assert pexprsnode7 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction308
+private class ReduceAction368
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tgtnode3 = nodearraylist2
- assert tgtnode3 isa nullable TGt
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
- pexprnode2,
- tgtnode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tidnode6 = nodearraylist5
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var listnode8 = new Array[Object]
+ var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode8
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction309
+private class ReduceAction369
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tgenode3 = nodearraylist2
- assert tgenode3 isa nullable TGe
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
- pexprnode2,
- tgenode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist5
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist6
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist7
+ assert pexprsnode9 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction310
+private class ReduceAction370
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tstarshipnode3 = nodearraylist2
- assert tstarshipnode3 isa nullable TStarship
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
- pexprnode2,
- tstarshipnode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist5
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist6
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction311
+private class ReduceAction371
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tkwisanode3 = nodearraylist2
- assert tkwisanode3 isa nullable TKwisa
- var ptypenode4 = nodearraylist4
- assert ptypenode4 isa nullable AType
- var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
- pexprnode2,
- tkwisanode3,
- ptypenode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist5
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist6
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist7
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist8
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction313
+private class ReduceAction372
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tpipenode3 = nodearraylist2
- assert tpipenode3 isa nullable TPipe
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
- pexprnode2,
- tpipenode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist5
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist6
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist7
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction315
+private class ReduceAction373
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tcaretnode3 = nodearraylist2
- assert tcaretnode3 isa nullable TCaret
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
- pexprnode2,
- tcaretnode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist5
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist7
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction317
+private class ReduceAction374
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tampnode3 = nodearraylist2
- assert tampnode3 isa nullable TAmp
- var pexprnode4 = nodearraylist4
- assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
- pexprnode2,
- tampnode3,
- pexprnode4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist5
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction319
+private class ReduceAction375
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tllnode3 = nodearraylist2
- assert tllnode3 isa nullable TLl
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
- pexprnode2,
- tllnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var tidnode8 = nodearraylist6
+ assert tidnode8 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist7
+ assert pexprsnode9 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction320
+private class ReduceAction376
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tggnode3 = nodearraylist2
- assert tggnode3 isa nullable TGg
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
- pexprnode2,
- tggnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var tidnode8 = nodearraylist6
+ assert tidnode8 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction322
+private class ReduceAction377
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tplusnode3 = nodearraylist2
- assert tplusnode3 isa nullable TPlus
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
- pexprnode2,
- tplusnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode8 = new Array[Object]
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode10
+ )
+ var pexprsnode11 = nodearraylist8
+ assert pexprsnode11 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode11
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction323
+private class ReduceAction378
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tminusnode3 = nodearraylist2
- assert tminusnode3 isa nullable TMinus
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
- pexprnode2,
- tminusnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode8 = new Array[Object]
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode11
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction325
+private class ReduceAction379
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist9 = p.pop
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tstarnode3 = nodearraylist2
- assert tstarnode3 isa nullable TStar
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
- pexprnode2,
- tstarnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode9 = new Array[Object]
+ var listnode8 = nodearraylist6
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var tclassidnode10 = nodearraylist7
+ assert tclassidnode10 isa nullable TClassid
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode9,
+ tclassidnode10
+ )
+ var tidnode11 = nodearraylist8
+ assert tidnode11 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode11
+ )
+ var pexprsnode12 = nodearraylist9
+ assert pexprsnode12 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction326
+private class ReduceAction380
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tslashnode3 = nodearraylist2
- assert tslashnode3 isa nullable TSlash
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
- pexprnode2,
- tslashnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode9 = new Array[Object]
+ var listnode8 = nodearraylist6
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var tclassidnode10 = nodearraylist7
+ assert tclassidnode10 isa nullable TClassid
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode9,
+ tclassidnode10
+ )
+ var tidnode11 = nodearraylist8
+ assert tidnode11 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode11
+ )
+ var listnode13 = new Array[Object]
+ var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode13
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction327
+private class ReduceAction381
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist8 = p.pop
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tpercentnode3 = nodearraylist2
- assert tpercentnode3 isa nullable TPercent
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
- pexprnode2,
- tpercentnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode9 = new Array[Object]
+ var listnode8 = nodearraylist6
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode9,
+ null
+ )
+ var tidnode11 = nodearraylist7
+ assert tidnode11 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode11
+ )
+ var pexprsnode12 = nodearraylist8
+ assert pexprsnode12 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction329
+private class ReduceAction382
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var tstarstarnode3 = nodearraylist2
- assert tstarstarnode3 isa nullable TStarstar
- var pexprnode4 = nodearraylist4
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode4 = nodearraylist2
assert pexprnode4 isa nullable AExpr
- var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
- pexprnode2,
- tstarstarnode3,
- pexprnode4
+ var tquestnode5 = nodearraylist3
+ assert tquestnode5 isa nullable TQuest
+ var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode4,
+ tquestnode5
+ )
+ var listnode9 = new Array[Object]
+ var listnode8 = nodearraylist6
+ assert listnode8 isa Array[Object]
+ listnode9 = concat(listnode9, listnode8)
+ var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+ listnode9,
+ null
+ )
+ var tidnode11 = nodearraylist7
+ assert tidnode11 isa nullable TId
+ var pqidnode6: nullable AQid = new AQid.init_aqid(
+ pqualifiednode7,
+ tidnode11
+ )
+ var listnode13 = new Array[Object]
+ var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode13
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode6,
+ pexprsnode12
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction331
+private class ReduceAction383
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tminusnode2 = nodearraylist1
- assert tminusnode2 isa nullable TMinus
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
- tminusnode2,
- pexprnode3
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode6 = nodearraylist2
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var pexprsnode7 = nodearraylist3
+ assert pexprsnode7 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction332
+private class ReduceAction384
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tplusnode2 = nodearraylist1
- assert tplusnode2 isa nullable TPlus
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
- tplusnode2,
- pexprnode3
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var tidnode6 = nodearraylist2
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var listnode8 = new Array[Object]
+ var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode8
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction333
+private class ReduceAction385
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var ttildenode2 = nodearraylist1
- assert ttildenode2 isa nullable TTilde
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
- ttildenode2,
- pexprnode3
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist2
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist3
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist4
+ assert pexprsnode9 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction334
+private class ReduceAction386
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwoncenode2 = nodearraylist1
- assert tkwoncenode2 isa nullable TKwonce
- var pexprnode3 = nodearraylist3
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
- tkwoncenode2,
- pexprnode3
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist2
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist3
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction336
+private class ReduceAction387
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwnewnode2 = nodearraylist1
- assert tkwnewnode2 isa nullable TKwnew
- var ptypenode3 = nodearraylist3
- assert ptypenode3 isa nullable AType
- var pexprsnode5 = nodearraylist4
- assert pexprsnode5 isa nullable AExprs
- var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
- tkwnewnode2,
- ptypenode3,
- null,
- pexprsnode5
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist2
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist3
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist4
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist5
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction337
+private class ReduceAction388
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwnewnode2 = nodearraylist1
- assert tkwnewnode2 isa nullable TKwnew
- var ptypenode3 = nodearraylist3
- assert ptypenode3 isa nullable AType
- var listnode6 = new Array[Object]
- var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
- listnode6
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist2
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist3
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
)
- var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
- tkwnewnode2,
- ptypenode3,
- null,
- pexprsnode5
+ var tidnode9 = nodearraylist4
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction338
+private class ReduceAction389
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist6 = p.pop
- var nodearraylist5 = p.pop
var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwissetnode2 = nodearraylist1
- assert tkwissetnode2 isa nullable TKwisset
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var tattridnode4 = nodearraylist6
- assert tattridnode4 isa nullable TAttrid
- var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
- tkwissetnode2,
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist2
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist3
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist4
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
pexprnode3,
- tattridnode4
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction339
+private class ReduceAction390
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwissetnode2 = nodearraylist1
- assert tkwissetnode2 isa nullable TKwisset
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
- var tattridnode4 = nodearraylist3
- assert tattridnode4 isa nullable TAttrid
- var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
- tkwissetnode2,
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist2
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist3
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
pexprnode3,
- tattridnode4
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction341
+private class ReduceAction392
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction342
+private class ReduceAction393
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tattridnode5 = nodearraylist6
+ assert tattridnode5 isa nullable TAttrid
+ var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+ pexprnode2,
+ tattridnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction394
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction344
+private class ReduceAction396
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction346
+private class ReduceAction398
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction348
+private class ReduceAction400
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction350
+private class ReduceAction402
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction352
+private class ReduceAction404
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tidnode7 = nodearraylist5
+ assert tidnode7 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode7
+ )
+ var listnode9 = new Array[Object]
+ var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode9
+ )
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode8
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction406
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode7 = new Array[Object]
+ var tclassidnode8 = nodearraylist5
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist6
+ assert tidnode9 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode10
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction408
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var tclassidnode9 = nodearraylist6
+ assert tclassidnode9 isa nullable TClassid
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ tclassidnode9
+ )
+ var tidnode10 = nodearraylist7
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction410
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var listnode8 = new Array[Object]
+ var listnode7 = nodearraylist5
+ assert listnode7 isa Array[Object]
+ listnode8 = concat(listnode8, listnode7)
+ var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+ listnode8,
+ null
+ )
+ var tidnode10 = nodearraylist6
+ assert tidnode10 isa nullable TId
+ var pqidnode5: nullable AQid = new AQid.init_aqid(
+ pqualifiednode6,
+ tidnode10
+ )
+ var listnode12 = new Array[Object]
+ var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode12
+ )
+ var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+ pexprnode2,
+ pqidnode5,
+ pexprsnode11
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction412
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction354
+private class ReduceAction414
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction356
+private class ReduceAction416
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction358
+private class ReduceAction418
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction360
+private class ReduceAction420
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction362
+private class ReduceAction422
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction364
+private class ReduceAction424
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var tkwinitnode5 = nodearraylist5
+ assert tkwinitnode5 isa nullable TKwinit
+ var listnode7 = new Array[Object]
+ var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode7
+ )
+ var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+ pexprnode2,
+ tkwinitnode5,
+ pexprsnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction426
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction365
+private class ReduceAction427
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction366
+private class ReduceAction428
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction367
+private class ReduceAction429
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction368
+private class ReduceAction430
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction369
+private class ReduceAction431
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction370
+private class ReduceAction432
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction371
+private class ReduceAction433
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction372
+private class ReduceAction434
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction373
+private class ReduceAction435
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction374
+private class ReduceAction436
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction375
+private class ReduceAction437
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction376
+private class ReduceAction438
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction378
+private class ReduceAction440
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction379
+private class ReduceAction441
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction380
+private class ReduceAction442
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction381
+private class ReduceAction443
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction382
+private class ReduceAction444
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction383
+private class ReduceAction445
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction384
+private class ReduceAction446
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction385
+private class ReduceAction447
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction386
+private class ReduceAction448
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction387
+private class ReduceAction449
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction390
+private class ReduceAction452
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction391
+private class ReduceAction453
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction392
+private class ReduceAction454
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction393
+private class ReduceAction455
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction395
+private class ReduceAction457
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction396
+private class ReduceAction458
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction397
+private class ReduceAction459
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction398
+private class ReduceAction460
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction400
+private class ReduceAction462
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction402
+private class ReduceAction464
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction403
+private class ReduceAction465
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction404
+private class ReduceAction466
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction405
+private class ReduceAction467
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction406
+private class ReduceAction468
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction407
+private class ReduceAction469
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction410
+private class ReduceAction472
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction411
+private class ReduceAction473
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction412
+private class ReduceAction474
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction413
+private class ReduceAction475
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction414
+private class ReduceAction476
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction416
+private class ReduceAction478
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction417
+private class ReduceAction479
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction418
+private class ReduceAction480
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction419
+private class ReduceAction481
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction422
+private class ReduceAction484
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction424
+private class ReduceAction486
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction425
+private class ReduceAction487
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction426
+private class ReduceAction488
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction427
+private class ReduceAction489
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction428
+private class ReduceAction490
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction429
+private class ReduceAction491
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction430
+private class ReduceAction492
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction431
+private class ReduceAction493
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction432
+private class ReduceAction494
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction433
+private class ReduceAction495
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction434
+private class ReduceAction496
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction438
+private class ReduceAction500
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction441
+private class ReduceAction503
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction442
+private class ReduceAction504
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode3 = nodearraylist1
+ assert pexprnode3 isa nullable AExpr
+ var tquestnode4 = nodearraylist2
+ assert tquestnode4 isa nullable TQuest
+ var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode3,
+ tquestnode4
+ )
+ var pmethidnode5 = nodearraylist5
+ assert pmethidnode5 isa nullable AMethid
+ var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+ pexprnode2,
+ pmethidnode5
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction505
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction443
+private class ReduceAction506
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction444
+private class ReduceAction507
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction445
+private class ReduceAction508
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction446
+private class ReduceAction509
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction447
+private class ReduceAction510
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction448
+private class ReduceAction511
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction450
+private class ReduceAction513
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction452
+private class ReduceAction515
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction453
+private class ReduceAction516
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction455
+private class ReduceAction518
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction456
+private class ReduceAction519
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction457
+private class ReduceAction520
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction458
+private class ReduceAction521
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction459
+private class ReduceAction522
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction460
+private class ReduceAction523
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction461
+private class ReduceAction524
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction462
+private class ReduceAction525
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction463
+private class ReduceAction526
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction464
+private class ReduceAction527
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction465
+private class ReduceAction528
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction466
+private class ReduceAction529
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction467
+private class ReduceAction530
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction469
+private class ReduceAction532
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction470
+private class ReduceAction533
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction471
+private class ReduceAction534
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction472
+private class ReduceAction535
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction473
+private class ReduceAction536
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction474
+private class ReduceAction537
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction475
+private class ReduceAction538
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction477
+private class ReduceAction540
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction478
+private class ReduceAction541
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction480
+private class ReduceAction543
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction481
+private class ReduceAction544
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction484
+private class ReduceAction547
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction485
+private class ReduceAction548
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction488
+private class ReduceAction551
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ node_list = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction553
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ node_list = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction554
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist2
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction555
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist3
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction557
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist4
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction559
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var pdocnode1 = nodearraylist1
+ node_list = pdocnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction560
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction563
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction1033
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- node_list = null
+ var tkwissetnode2 = nodearraylist1
+ assert tkwissetnode2 isa nullable TKwisset
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tattridnode4 = nodearraylist4
+ assert tattridnode4 isa nullable TAttrid
+ var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+ tkwissetnode2,
+ pexprnode3,
+ tattridnode4
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction490
+private class ReduceAction1034
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- node_list = null
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tidnode6 = nodearraylist3
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var pexprsnode7 = nodearraylist4
+ assert pexprsnode7 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction491
+private class ReduceAction1035
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pdocnode1 = nodearraylist2
- node_list = pdocnode1
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var tidnode6 = nodearraylist3
+ assert tidnode6 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ null,
+ tidnode6
+ )
+ var listnode8 = new Array[Object]
+ var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode8
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode7
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction492
+private class ReduceAction1036
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pdocnode1 = nodearraylist3
- node_list = pdocnode1
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist3
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist4
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var pexprsnode9 = nodearraylist5
+ assert pexprsnode9 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction494
+private class ReduceAction1037
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pdocnode1 = nodearraylist4
- node_list = pdocnode1
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode6 = new Array[Object]
+ var tclassidnode7 = nodearraylist3
+ assert tclassidnode7 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode6,
+ tclassidnode7
+ )
+ var tidnode8 = nodearraylist4
+ assert tidnode8 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode8
+ )
+ var listnode10 = new Array[Object]
+ var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode10
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode9
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction496
+private class ReduceAction1038
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pdocnode1 = nodearraylist1
- node_list = pdocnode1
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist3
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist4
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist5
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist6
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction497
+private class ReduceAction1039
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist3
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var tclassidnode8 = nodearraylist4
+ assert tclassidnode8 isa nullable TClassid
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ tclassidnode8
+ )
+ var tidnode9 = nodearraylist5
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction500
+private class ReduceAction1040
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist3
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist4
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var pexprsnode10 = nodearraylist5
+ assert pexprsnode10 isa nullable AExprs
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
+ pexprnode3,
+ pqidnode4,
+ pexprsnode10
+ )
+ node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction871
+private class ReduceAction1041
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwissetnode2 = nodearraylist1
- assert tkwissetnode2 isa nullable TKwisset
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
var pexprnode3 = nodearraylist2
assert pexprnode3 isa nullable AExpr
- var tattridnode4 = nodearraylist4
- assert tattridnode4 isa nullable TAttrid
- var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
- tkwissetnode2,
+ var listnode7 = new Array[Object]
+ var listnode6 = nodearraylist3
+ assert listnode6 isa Array[Object]
+ listnode7 = concat(listnode7, listnode6)
+ var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+ listnode7,
+ null
+ )
+ var tidnode9 = nodearraylist4
+ assert tidnode9 isa nullable TId
+ var pqidnode4: nullable AQid = new AQid.init_aqid(
+ pqualifiednode5,
+ tidnode9
+ )
+ var listnode11 = new Array[Object]
+ var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+ listnode11
+ )
+ var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+ tampnode2,
pexprnode3,
- tattridnode4
+ pqidnode4,
+ pexprsnode10
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction873
+private class ReduceAction1043
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction874
+private class ReduceAction1044
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction875
+private class ReduceAction1045
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction876
+private class ReduceAction1046
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction877
+private class ReduceAction1047
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction878
+private class ReduceAction1048
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction879
+private class ReduceAction1049
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction880
+private class ReduceAction1050
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction881
+private class ReduceAction1051
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction884
+private class ReduceAction1054
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction885
+private class ReduceAction1055
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction909
+private class ReduceAction1079
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction910
+private class ReduceAction1080
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tquestnode3 = nodearraylist2
+ assert tquestnode3 isa nullable TQuest
+ var pexprnode1: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+ pexprnode2,
+ tquestnode3
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction1081
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1078
+private class ReduceAction1265
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1079
+private class ReduceAction1266
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1080
+private class ReduceAction1267
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1081
+private class ReduceAction1268
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1082
+private class ReduceAction1269
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1083
+private class ReduceAction1270
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1085
+private class ReduceAction1272
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1087
+private class ReduceAction1274
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1089
+private class ReduceAction1276
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1090
+private class ReduceAction1277
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1091
+private class ReduceAction1278
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1092
+private class ReduceAction1279
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1093
+private class ReduceAction1280
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1095
+private class ReduceAction1282
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1097
+private class ReduceAction1284
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1103
+private class ReduceAction1290
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1111
+private class ReduceAction1298
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1112
+private class ReduceAction1299
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1113
+private class ReduceAction1300
super ReduceAction
redef fun action(p: Parser)
do
class TBang
super Token
end
+class TQuest
+ super Token
+end
class TAt
super Token
end
var n_qid: AQid is writable, noinit
var n_args: AExprs is writable, noinit
end
+class ACallrefExpr
+ super AExpr
+ var n_amp: TAmp is writable, noinit
+ var n_expr: AExpr is writable, noinit
+ var n_qid: AQid is writable, noinit
+ var n_args: AExprs is writable, noinit
+end
class ACallAssignExpr
super AExpr
var n_expr: AExpr is writable, noinit
var n_assign: TAssign is writable, noinit
var n_expr: AExpr is writable, noinit
end
+class ASafeExpr
+ super AExpr
+ var n_expr: AExpr is writable, noinit
+ var n_quest: TQuest is writable, noinit
+end
class ATypeExpr
super AExpr
var n_type: AType is writable, noinit
super TokenOperator
end
+# The operator `?`
+class TQuest
+ super TokenOperator
+end
+
# The operator `!`
class TBang
super TokenOperator
super ASendReassignFormExpr
end
+# A reference to a method with a captured receiver. eg. `&x.foo` or just `&foo` is self is captured.
+#
+# Currently, the syntax is analogous to a simple call (`recv.foo`) with a prefix `&`.
+# On chains, only the last call is captured (`.` has a higher precedence than `&`).
+#
+# The syntax is analogous to a call (except the &), there is always a receiver (including the implicit self or sys) and arguments are accepted by the parser.
+#
+# TODO There is no clear syntax proposal
+#
+# * to avoid the capture of a receiver since a receiver is statically expected to resolve the method name
+# * for special method names (setters, brackets and operators)
+#
+# Note: The class specializes `ASendExpr` (trough `ACallFormExpr`) so some behavior of a genuine send expression must be redefined.
+class ACallrefExpr
+ super ACallFormExpr
+
+ # The `&` operator
+ var n_amp: TAmp is writable, noinit
+end
+
+
# A call to `super`. OR a call of a super-constructor
class ASuperExpr
super AExpr
var n_dotdotdot: TDotdotdot is writable, noinit
end
+# A receiver with a `?` suffix used in safe call operator.
+class ASafeExpr
+ super AExpr
+
+ # The expression made safe
+ var n_expr: AExpr is writable, noinit
+
+ # The `?` symbol
+ var n_quest: TQuest is writable, noinit
+end
+
# An named notation used to pass an expression by name in a parameter
class ANamedargExpr
super AExpr
v.enter_visit(_n_args)
end
end
+redef class ACallrefExpr
+ init init_acallrefexpr (
+ n_amp: nullable TAmp,
+ n_expr: nullable AExpr,
+ n_qid: nullable AQid,
+ n_args: nullable AExprs
+ )
+ do
+ _n_amp = n_amp.as(not null)
+ n_amp.parent = self
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_qid = n_qid.as(not null)
+ n_qid.parent = self
+ _n_args = n_args.as(not null)
+ n_args.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_amp == old_child then
+ n_amp = new_child.as(TAmp)
+ return
+ end
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQid)
+ return
+ end
+ if _n_args == old_child then
+ n_args = new_child.as(AExprs)
+ return
+ end
+ end
+
+ redef fun n_amp=(node)
+ do
+ _n_amp = node
+ node.parent = self
+ end
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_qid=(node)
+ do
+ _n_qid = node
+ node.parent = self
+ end
+ redef fun n_args=(node)
+ do
+ _n_args = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_amp)
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_qid)
+ v.enter_visit(_n_args)
+ end
+end
redef class ACallAssignExpr
init init_acallassignexpr (
n_expr: nullable AExpr,
v.enter_visit(_n_expr)
end
end
+redef class ASafeExpr
+ init init_asafeexpr (
+ n_expr: nullable AExpr,
+ n_quest: nullable TQuest
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_quest = n_quest.as(not null)
+ n_quest.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_quest == old_child then
+ n_quest = new_child.as(TQuest)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_quest=(node)
+ do
+ _n_quest = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_quest)
+ end
+end
redef class ATypeExpr
init init_atypeexpr (
n_type: nullable AType
#include "tables_nit.h"
static const int lexer_goto_row1[] = {
- 59,
+ 60,
9, 9, 1,
10, 10, 2,
13, 13, 3,
60, 60, 23,
61, 61, 24,
62, 62, 25,
- 64, 64, 26,
- 65, 90, 27,
- 91, 91, 28,
- 93, 93, 29,
- 94, 94, 30,
- 95, 95, 31,
- 96, 96, 32,
- 97, 97, 33,
- 98, 98, 34,
- 99, 99, 35,
- 100, 100, 36,
- 101, 101, 37,
- 102, 102, 38,
- 103, 104, 39,
- 105, 105, 40,
- 106, 107, 39,
- 108, 108, 41,
- 109, 109, 42,
- 110, 110, 43,
- 111, 111, 44,
- 112, 112, 45,
- 113, 113, 39,
- 114, 114, 46,
- 115, 115, 47,
- 116, 116, 48,
- 117, 117, 49,
- 118, 118, 50,
- 119, 119, 51,
- 120, 120, 39,
- 121, 121, 52,
- 122, 122, 39,
- 124, 124, 53,
- 125, 125, 54,
- 126, 126, 55
+ 63, 63, 26,
+ 64, 64, 27,
+ 65, 90, 28,
+ 91, 91, 29,
+ 93, 93, 30,
+ 94, 94, 31,
+ 95, 95, 32,
+ 96, 96, 33,
+ 97, 97, 34,
+ 98, 98, 35,
+ 99, 99, 36,
+ 100, 100, 37,
+ 101, 101, 38,
+ 102, 102, 39,
+ 103, 104, 40,
+ 105, 105, 41,
+ 106, 107, 40,
+ 108, 108, 42,
+ 109, 109, 43,
+ 110, 110, 44,
+ 111, 111, 45,
+ 112, 112, 46,
+ 113, 113, 40,
+ 114, 114, 47,
+ 115, 115, 48,
+ 116, 116, 49,
+ 117, 117, 50,
+ 118, 118, 51,
+ 119, 119, 52,
+ 120, 120, 40,
+ 121, 121, 53,
+ 122, 122, 40,
+ 124, 124, 54,
+ 125, 125, 55,
+ 126, 126, 56
};
static const int lexer_goto_row2[] = {
2,
};
static const int lexer_goto_row4[] = {
1,
- 10, 10, 56
+ 10, 10, 57
};
static const int lexer_goto_row5[] = {
1,
};
static const int lexer_goto_row6[] = {
1,
- 61, 61, 57
+ 61, 61, 58
};
static const int lexer_goto_row7[] = {
9,
- 0, 9, 58,
- 11, 12, 58,
- 14, 33, 58,
- 34, 34, 59,
- 35, 91, 58,
- 92, 92, 60,
- 93, 122, 58,
- 123, 123, 61,
- 124, 255, 58
+ 0, 9, 59,
+ 11, 12, 59,
+ 14, 33, 59,
+ 34, 34, 60,
+ 35, 91, 59,
+ 92, 92, 61,
+ 93, 122, 59,
+ 123, 123, 62,
+ 124, 255, 59
};
static const int lexer_goto_row8[] = {
5,
- 0, 9, 62,
- 10, 10, 63,
- 11, 12, 62,
- 13, 13, 64,
- 14, 255, 62
+ 0, 9, 63,
+ 10, 10, 64,
+ 11, 12, 63,
+ 13, 13, 65,
+ 14, 255, 63
};
static const int lexer_goto_row9[] = {
1,
- 61, 61, 65
+ 61, 61, 66
};
static const int lexer_goto_row10[] = {
1,
- 61, 61, 66
+ 61, 61, 67
};
static const int lexer_goto_row11[] = {
7,
- 0, 9, 67,
- 11, 12, 67,
- 14, 38, 67,
- 39, 39, 68,
- 40, 91, 67,
- 92, 92, 69,
- 93, 255, 67
+ 0, 9, 68,
+ 11, 12, 68,
+ 14, 38, 68,
+ 39, 39, 69,
+ 40, 91, 68,
+ 92, 92, 70,
+ 93, 255, 68
};
static const int lexer_goto_row14[] = {
2,
- 42, 42, 70,
- 61, 61, 71
+ 42, 42, 71,
+ 61, 61, 72
};
static const int lexer_goto_row15[] = {
1,
- 61, 61, 72
+ 61, 61, 73
};
static const int lexer_goto_row17[] = {
1,
- 61, 61, 73
+ 61, 61, 74
};
static const int lexer_goto_row18[] = {
2,
- 46, 46, 74,
- 48, 57, 75
+ 46, 46, 75,
+ 48, 57, 76
};
static const int lexer_goto_row19[] = {
1,
- 61, 61, 76
+ 61, 61, 77
};
static const int lexer_goto_row20[] = {
13,
- 46, 46, 77,
- 48, 57, 78,
- 66, 66, 79,
- 69, 69, 80,
- 79, 79, 81,
- 88, 88, 82,
- 95, 95, 83,
- 98, 98, 84,
- 101, 101, 85,
- 105, 105, 86,
- 111, 111, 87,
- 117, 117, 88,
- 120, 120, 89
+ 46, 46, 78,
+ 48, 57, 79,
+ 66, 66, 80,
+ 69, 69, 81,
+ 79, 79, 82,
+ 88, 88, 83,
+ 95, 95, 84,
+ 98, 98, 85,
+ 101, 101, 86,
+ 105, 105, 87,
+ 111, 111, 88,
+ 117, 117, 89,
+ 120, 120, 90
};
static const int lexer_goto_row21[] = {
5,
46, 57, -21,
- 69, 69, 80,
- 95, 95, 83,
+ 69, 69, 81,
+ 95, 95, 84,
101, 105, -21,
- 117, 117, 88
+ 117, 117, 89
};
static const int lexer_goto_row22[] = {
1,
- 58, 58, 90
+ 58, 58, 91
};
static const int lexer_goto_row24[] = {
2,
- 60, 60, 91,
- 61, 61, 92
+ 60, 60, 92,
+ 61, 61, 93
};
static const int lexer_goto_row25[] = {
1,
- 61, 61, 93
+ 61, 61, 94
};
static const int lexer_goto_row26[] = {
2,
- 61, 61, 94,
- 62, 62, 95
+ 61, 61, 95,
+ 62, 62, 96
};
-static const int lexer_goto_row28[] = {
+static const int lexer_goto_row29[] = {
4,
- 48, 57, 96,
- 65, 90, 97,
- 95, 95, 98,
- 97, 122, 99
-};
-static const int lexer_goto_row31[] = {
- 1,
- 61, 61, 100
+ 48, 57, 97,
+ 65, 90, 98,
+ 95, 95, 99,
+ 97, 122, 100
};
static const int lexer_goto_row32[] = {
- 2,
- 95, 95, 101,
- 97, 122, 102
+ 1,
+ 61, 61, 101
};
static const int lexer_goto_row33[] = {
- 1,
- 123, 123, 103
+ 2,
+ 95, 95, 102,
+ 97, 122, 103
};
static const int lexer_goto_row34[] = {
- 12,
- 34, 34, 104,
- 39, 39, 105,
- 48, 57, 106,
- 65, 90, 107,
- 95, 95, 108,
- 97, 97, 109,
- 98, 98, 110,
- 99, 109, 109,
- 110, 110, 111,
- 111, 114, 109,
- 115, 115, 112,
- 116, 122, 109
+ 1,
+ 123, 123, 104
};
static const int lexer_goto_row35[] = {
- 4,
- 34, 95, -35,
- 97, 113, 109,
- 114, 114, 113,
- 115, 122, 109
+ 12,
+ 34, 34, 105,
+ 39, 39, 106,
+ 48, 57, 107,
+ 65, 90, 108,
+ 95, 95, 109,
+ 97, 97, 110,
+ 98, 98, 111,
+ 99, 109, 110,
+ 110, 110, 112,
+ 111, 114, 110,
+ 115, 115, 113,
+ 116, 122, 110
};
static const int lexer_goto_row36[] = {
- 7,
- 34, 95, -35,
- 97, 97, 114,
- 98, 107, 109,
- 108, 108, 115,
- 109, 110, 109,
- 111, 111, 116,
- 112, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 113, 110,
+ 114, 114, 114,
+ 115, 122, 110
};
static const int lexer_goto_row37[] = {
- 4,
- 34, 95, -35,
- 97, 110, 109,
+ 7,
+ 34, 95, -36,
+ 97, 97, 115,
+ 98, 107, 110,
+ 108, 108, 116,
+ 109, 110, 110,
111, 111, 117,
- 112, 122, 109
+ 112, 122, 110
};
static const int lexer_goto_row38[] = {
- 8,
- 34, 95, -35,
- 97, 107, 109,
- 108, 108, 118,
- 109, 109, 109,
- 110, 110, 119,
- 111, 119, 109,
- 120, 120, 120,
- 121, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 110, 110,
+ 111, 111, 118,
+ 112, 122, 110
};
static const int lexer_goto_row39[] = {
- 7,
- 34, 95, -35,
- 97, 97, 121,
- 98, 110, 109,
- 111, 111, 122,
- 112, 116, 109,
- 117, 117, 123,
- 118, 122, 109
+ 8,
+ 34, 95, -36,
+ 97, 107, 110,
+ 108, 108, 119,
+ 109, 109, 110,
+ 110, 110, 120,
+ 111, 119, 110,
+ 120, 120, 121,
+ 121, 122, 110
};
static const int lexer_goto_row40[] = {
- 2,
- 34, 95, -35,
- 97, 122, 109
+ 7,
+ 34, 95, -36,
+ 97, 97, 122,
+ 98, 110, 110,
+ 111, 111, 123,
+ 112, 116, 110,
+ 117, 117, 124,
+ 118, 122, 110
};
static const int lexer_goto_row41[] = {
- 9,
- 34, 95, -35,
- 97, 101, 109,
- 102, 102, 124,
- 103, 108, 109,
- 109, 109, 125,
- 110, 110, 126,
- 111, 114, 109,
- 115, 115, 127,
- 116, 122, 109
+ 2,
+ 34, 95, -36,
+ 97, 122, 110
};
static const int lexer_goto_row42[] = {
- 5,
- 34, 95, -35,
- 97, 97, 128,
- 98, 110, 109,
- 111, 111, 129,
- 112, 122, 109
+ 9,
+ 34, 95, -36,
+ 97, 101, 110,
+ 102, 102, 125,
+ 103, 108, 110,
+ 109, 109, 126,
+ 110, 110, 127,
+ 111, 114, 110,
+ 115, 115, 128,
+ 116, 122, 110
};
static const int lexer_goto_row43[] = {
- 3,
- 34, 110, -38,
+ 5,
+ 34, 95, -36,
+ 97, 97, 129,
+ 98, 110, 110,
111, 111, 130,
- 112, 122, 109
+ 112, 122, 110
};
static const int lexer_goto_row44[] = {
- 8,
- 34, 95, -35,
- 97, 100, 109,
- 101, 101, 131,
- 102, 110, 109,
- 111, 111, 132,
- 112, 116, 109,
- 117, 117, 133,
- 118, 122, 109
+ 3,
+ 34, 110, -39,
+ 111, 111, 131,
+ 112, 122, 110
};
static const int lexer_goto_row45[] = {
- 6,
- 34, 95, -35,
- 97, 109, 109,
- 110, 110, 134,
- 111, 113, 109,
- 114, 114, 135,
- 115, 122, 109
+ 8,
+ 34, 95, -36,
+ 97, 100, 110,
+ 101, 101, 132,
+ 102, 110, 110,
+ 111, 111, 133,
+ 112, 116, 110,
+ 117, 117, 134,
+ 118, 122, 110
};
static const int lexer_goto_row46[] = {
- 7,
- 34, 95, -35,
- 97, 97, 136,
- 98, 113, 109,
- 114, 114, 137,
- 115, 116, 109,
- 117, 117, 138,
- 118, 122, 109
+ 6,
+ 34, 95, -36,
+ 97, 109, 110,
+ 110, 110, 135,
+ 111, 113, 110,
+ 114, 114, 136,
+ 115, 122, 110
};
static const int lexer_goto_row47[] = {
- 3,
- 34, 100, -45,
- 101, 101, 139,
- 102, 122, 109
+ 7,
+ 34, 95, -36,
+ 97, 97, 137,
+ 98, 113, 110,
+ 114, 114, 138,
+ 115, 116, 110,
+ 117, 117, 139,
+ 118, 122, 110
};
static const int lexer_goto_row48[] = {
- 5,
- 34, 100, -45,
+ 3,
+ 34, 100, -46,
101, 101, 140,
- 102, 116, 109,
- 117, 117, 141,
- 118, 122, 109
+ 102, 122, 110
};
static const int lexer_goto_row49[] = {
- 8,
- 34, 95, -35,
- 97, 103, 109,
- 104, 104, 142,
- 105, 113, 109,
- 114, 114, 143,
- 115, 120, 109,
- 121, 121, 144,
- 122, 122, 109
+ 5,
+ 34, 100, -46,
+ 101, 101, 141,
+ 102, 116, 110,
+ 117, 117, 142,
+ 118, 122, 110
};
static const int lexer_goto_row50[] = {
- 3,
- 34, 109, -46,
- 110, 110, 145,
- 111, 122, 109
+ 8,
+ 34, 95, -36,
+ 97, 103, 110,
+ 104, 104, 143,
+ 105, 113, 110,
+ 114, 114, 144,
+ 115, 120, 110,
+ 121, 121, 145,
+ 122, 122, 110
};
static const int lexer_goto_row51[] = {
3,
- 34, 95, -35,
- 97, 97, 146,
- 98, 122, 109
+ 34, 109, -47,
+ 110, 110, 146,
+ 111, 122, 110
};
static const int lexer_goto_row52[] = {
- 4,
- 34, 103, -50,
- 104, 104, 147,
- 105, 105, 148,
- 106, 122, 109
+ 3,
+ 34, 95, -36,
+ 97, 97, 147,
+ 98, 122, 110
};
static const int lexer_goto_row53[] = {
4,
- 34, 95, -35,
- 97, 104, 109,
+ 34, 103, -51,
+ 104, 104, 148,
105, 105, 149,
- 106, 122, 109
+ 106, 122, 110
};
static const int lexer_goto_row54[] = {
- 1,
- 61, 61, 150
+ 4,
+ 34, 95, -36,
+ 97, 104, 110,
+ 105, 105, 150,
+ 106, 122, 110
};
static const int lexer_goto_row55[] = {
+ 1,
+ 61, 61, 151
+};
+static const int lexer_goto_row56[] = {
11,
- 0, 9, 151,
- 11, 12, 151,
- 14, 33, 151,
- 34, 34, 152,
- 35, 91, 151,
- 92, 92, 153,
- 93, 122, 151,
- 123, 123, 154,
- 124, 124, 151,
- 125, 125, 155,
- 126, 255, 151
-};
-static const int lexer_goto_row59[] = {
+ 0, 9, 152,
+ 11, 12, 152,
+ 14, 33, 152,
+ 34, 34, 153,
+ 35, 91, 152,
+ 92, 92, 154,
+ 93, 122, 152,
+ 123, 123, 155,
+ 124, 124, 152,
+ 125, 125, 156,
+ 126, 255, 152
+};
+static const int lexer_goto_row60[] = {
3,
0, 33, -8,
- 34, 34, 156,
+ 34, 34, 157,
35, 255, -8
};
-static const int lexer_goto_row60[] = {
+static const int lexer_goto_row61[] = {
2,
- 34, 34, 157,
- 97, 122, 158
+ 34, 34, 158,
+ 97, 122, 159
};
-static const int lexer_goto_row61[] = {
+static const int lexer_goto_row62[] = {
3,
- 0, 9, 159,
- 11, 12, 159,
- 14, 255, 159
+ 0, 9, 160,
+ 11, 12, 160,
+ 14, 255, 160
};
-static const int lexer_goto_row63[] = {
+static const int lexer_goto_row64[] = {
1,
0, 255, -9
};
-static const int lexer_goto_row65[] = {
- 1,
- 10, 10, 160
-};
-static const int lexer_goto_row68[] = {
+static const int lexer_goto_row66[] = {
1,
- 39, 39, 161
+ 10, 10, 161
};
static const int lexer_goto_row69[] = {
1,
39, 39, 162
};
static const int lexer_goto_row70[] = {
- 3,
- 0, 9, 163,
- 11, 12, 163,
- 14, 255, 163
+ 1,
+ 39, 39, 163
};
static const int lexer_goto_row71[] = {
- 1,
- 61, 61, 164
+ 3,
+ 0, 9, 164,
+ 11, 12, 164,
+ 14, 255, 164
};
-static const int lexer_goto_row75[] = {
+static const int lexer_goto_row72[] = {
1,
- 46, 46, 165
+ 61, 61, 165
};
static const int lexer_goto_row76[] = {
- 3,
- 48, 57, 75,
- 69, 69, 80,
- 101, 101, 85
-};
-static const int lexer_goto_row78[] = {
1,
- 48, 57, 75
+ 46, 46, 166
+};
+static const int lexer_goto_row77[] = {
+ 3,
+ 48, 57, 76,
+ 69, 69, 81,
+ 101, 101, 86
};
static const int lexer_goto_row79[] = {
1,
- 46, 117, -22
+ 48, 57, 76
};
static const int lexer_goto_row80[] = {
- 3,
- 48, 48, 166,
- 49, 49, 167,
- 95, 95, 168
+ 1,
+ 46, 117, -22
};
static const int lexer_goto_row81[] = {
3,
- 43, 43, 169,
- 45, 45, 170,
- 48, 57, 171
+ 48, 48, 167,
+ 49, 49, 168,
+ 95, 95, 169
};
static const int lexer_goto_row82[] = {
- 2,
- 48, 55, 172,
- 95, 95, 173
+ 3,
+ 43, 43, 170,
+ 45, 45, 171,
+ 48, 57, 172
};
static const int lexer_goto_row83[] = {
- 4,
- 48, 57, 174,
- 65, 70, 175,
- 95, 95, 176,
- 97, 102, 177
+ 2,
+ 48, 55, 173,
+ 95, 95, 174
};
static const int lexer_goto_row84[] = {
- 3,
- 48, 57, 178,
- 95, 95, 83,
- 105, 117, -22
+ 4,
+ 48, 57, 175,
+ 65, 70, 176,
+ 95, 95, 177,
+ 97, 102, 178
};
static const int lexer_goto_row85[] = {
- 1,
- 48, 95, -81
+ 3,
+ 48, 57, 179,
+ 95, 95, 84,
+ 105, 117, -22
};
static const int lexer_goto_row86[] = {
1,
- 43, 57, -82
+ 48, 95, -82
};
static const int lexer_goto_row87[] = {
- 3,
- 49, 49, 179,
- 51, 51, 180,
- 56, 56, 181
+ 1,
+ 43, 57, -83
};
static const int lexer_goto_row88[] = {
- 1,
- 48, 95, -83
+ 3,
+ 49, 49, 180,
+ 51, 51, 181,
+ 56, 56, 182
};
static const int lexer_goto_row89[] = {
- 3,
- 49, 49, 182,
- 51, 51, 183,
- 56, 56, 184
+ 1,
+ 48, 95, -84
};
static const int lexer_goto_row90[] = {
- 1,
- 48, 102, -84
+ 3,
+ 49, 49, 183,
+ 51, 51, 184,
+ 56, 56, 185
};
-static const int lexer_goto_row92[] = {
+static const int lexer_goto_row91[] = {
1,
- 61, 61, 185
+ 48, 102, -85
};
static const int lexer_goto_row93[] = {
1,
- 62, 62, 186
+ 61, 61, 186
};
-static const int lexer_goto_row96[] = {
+static const int lexer_goto_row94[] = {
1,
- 61, 61, 187
+ 62, 62, 187
};
static const int lexer_goto_row97[] = {
1,
- 48, 122, -29
+ 61, 61, 188
};
static const int lexer_goto_row98[] = {
1,
- 48, 122, -29
+ 48, 122, -30
};
static const int lexer_goto_row99[] = {
1,
- 48, 122, -29
+ 48, 122, -30
};
static const int lexer_goto_row100[] = {
1,
- 48, 122, -29
+ 48, 122, -30
};
-static const int lexer_goto_row102[] = {
+static const int lexer_goto_row101[] = {
1,
- 100, 100, 188
+ 48, 122, -30
};
static const int lexer_goto_row103[] = {
- 4,
- 48, 57, 189,
- 65, 90, 190,
- 95, 95, 191,
- 97, 122, 192
+ 1,
+ 100, 100, 189
};
static const int lexer_goto_row104[] = {
- 5,
- 0, 91, 193,
- 92, 92, 194,
- 93, 95, 193,
- 96, 96, 195,
- 97, 255, 193
+ 4,
+ 48, 57, 190,
+ 65, 90, 191,
+ 95, 95, 192,
+ 97, 122, 193
};
static const int lexer_goto_row105[] = {
- 9,
- 0, 9, 196,
- 11, 12, 196,
- 14, 33, 196,
- 34, 34, 197,
- 35, 91, 196,
- 92, 92, 198,
- 93, 122, 196,
- 123, 123, 61,
- 124, 255, 196
+ 5,
+ 0, 91, 194,
+ 92, 92, 195,
+ 93, 95, 194,
+ 96, 96, 196,
+ 97, 255, 194
};
static const int lexer_goto_row106[] = {
- 7,
- 0, 9, 199,
- 11, 12, 199,
- 14, 38, 199,
- 39, 39, 200,
- 40, 91, 199,
- 92, 92, 201,
- 93, 255, 199
+ 9,
+ 0, 9, 197,
+ 11, 12, 197,
+ 14, 33, 197,
+ 34, 34, 198,
+ 35, 91, 197,
+ 92, 92, 199,
+ 93, 122, 197,
+ 123, 123, 62,
+ 124, 255, 197
};
static const int lexer_goto_row107[] = {
- 1,
- 34, 122, -41
+ 7,
+ 0, 9, 200,
+ 11, 12, 200,
+ 14, 38, 200,
+ 39, 39, 201,
+ 40, 91, 200,
+ 92, 92, 202,
+ 93, 255, 200
};
static const int lexer_goto_row108[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row109[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row110[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row111[] = {
- 5,
- 34, 110, -38,
- 111, 111, 202,
- 112, 114, 109,
- 115, 115, 203,
- 116, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row112[] = {
- 4,
- 34, 95, -35,
- 97, 99, 109,
- 100, 100, 204,
- 101, 122, 109
+ 5,
+ 34, 110, -39,
+ 111, 111, 203,
+ 112, 114, 110,
+ 115, 115, 204,
+ 116, 122, 110
};
static const int lexer_goto_row113[] = {
4,
- 34, 95, -35,
- 97, 114, 109,
- 115, 115, 205,
- 116, 122, 109
+ 34, 95, -36,
+ 97, 99, 110,
+ 100, 100, 205,
+ 101, 122, 110
};
static const int lexer_goto_row114[] = {
- 3,
- 34, 100, -45,
- 101, 101, 206,
- 102, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 114, 110,
+ 115, 115, 206,
+ 116, 122, 110
};
static const int lexer_goto_row115[] = {
- 4,
- 34, 95, -35,
- 97, 115, 109,
- 116, 116, 207,
- 117, 122, 109
+ 3,
+ 34, 100, -46,
+ 101, 101, 207,
+ 102, 122, 110
};
static const int lexer_goto_row116[] = {
- 3,
- 34, 95, -35,
- 97, 97, 208,
- 98, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 115, 110,
+ 116, 116, 208,
+ 117, 122, 110
};
static const int lexer_goto_row117[] = {
3,
- 34, 109, -46,
- 110, 110, 209,
- 111, 122, 109
+ 34, 95, -36,
+ 97, 97, 209,
+ 98, 122, 110
};
static const int lexer_goto_row118[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 109, -47,
+ 110, 110, 210,
+ 111, 122, 110
};
static const int lexer_goto_row119[] = {
- 3,
- 34, 114, -114,
- 115, 115, 210,
- 116, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row120[] = {
- 5,
- 34, 99, -113,
- 100, 100, 211,
- 101, 116, 109,
- 117, 117, 212,
- 118, 122, 109
+ 3,
+ 34, 114, -115,
+ 115, 115, 211,
+ 116, 122, 110
};
static const int lexer_goto_row121[] = {
- 3,
- 34, 115, -116,
- 116, 116, 213,
- 117, 122, 109
+ 5,
+ 34, 99, -114,
+ 100, 100, 212,
+ 101, 116, 110,
+ 117, 117, 213,
+ 118, 122, 110
};
static const int lexer_goto_row122[] = {
3,
- 34, 107, -39,
- 108, 108, 214,
- 109, 122, 109
+ 34, 115, -117,
+ 116, 116, 214,
+ 117, 122, 110
};
static const int lexer_goto_row123[] = {
3,
- 34, 113, -36,
- 114, 114, 215,
- 115, 122, 109
+ 34, 107, -40,
+ 108, 108, 215,
+ 109, 122, 110
};
static const int lexer_goto_row124[] = {
3,
- 34, 109, -46,
- 110, 110, 216,
- 111, 122, 109
+ 34, 113, -37,
+ 114, 114, 216,
+ 115, 122, 110
};
static const int lexer_goto_row125[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 109, -47,
+ 110, 110, 217,
+ 111, 122, 110
};
static const int lexer_goto_row126[] = {
- 4,
- 34, 95, -35,
- 97, 111, 109,
- 112, 112, 217,
- 113, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row127[] = {
- 5,
- 34, 104, -54,
- 105, 105, 218,
- 106, 115, 109,
- 116, 116, 219,
- 117, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 111, 110,
+ 112, 112, 218,
+ 113, 122, 110
};
static const int lexer_goto_row128[] = {
5,
- 34, 95, -35,
- 97, 97, 220,
- 98, 114, 109,
- 115, 115, 221,
- 116, 122, 109
+ 34, 104, -55,
+ 105, 105, 219,
+ 106, 115, 110,
+ 116, 116, 220,
+ 117, 122, 110
};
static const int lexer_goto_row129[] = {
- 3,
- 34, 97, -35,
- 98, 98, 222,
- 99, 122, 109
+ 5,
+ 34, 95, -36,
+ 97, 97, 221,
+ 98, 114, 110,
+ 115, 115, 222,
+ 116, 122, 110
};
static const int lexer_goto_row130[] = {
3,
- 34, 110, -38,
- 111, 111, 223,
- 112, 122, 109
+ 34, 97, -36,
+ 98, 98, 223,
+ 99, 122, 110
};
static const int lexer_goto_row131[] = {
3,
- 34, 99, -113,
- 100, 100, 224,
- 101, 122, 109
+ 34, 110, -39,
+ 111, 111, 224,
+ 112, 122, 110
};
static const int lexer_goto_row132[] = {
- 4,
- 34, 95, -35,
- 97, 118, 109,
- 119, 119, 225,
- 120, 122, 109
+ 3,
+ 34, 99, -114,
+ 100, 100, 225,
+ 101, 122, 110
};
static const int lexer_goto_row133[] = {
- 3,
- 34, 115, -116,
- 116, 116, 226,
- 117, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 118, 110,
+ 119, 119, 226,
+ 120, 122, 110
};
static const int lexer_goto_row134[] = {
3,
- 34, 107, -39,
- 108, 108, 227,
- 109, 122, 109
+ 34, 115, -117,
+ 116, 116, 227,
+ 117, 122, 110
};
static const int lexer_goto_row135[] = {
- 4,
- 34, 95, -35,
- 97, 98, 109,
- 99, 99, 228,
- 100, 122, 109
+ 3,
+ 34, 107, -40,
+ 108, 108, 228,
+ 109, 122, 110
};
static const int lexer_goto_row136[] = {
- 1,
- 34, 122, -41
+ 4,
+ 34, 95, -36,
+ 97, 98, 110,
+ 99, 99, 229,
+ 100, 122, 110
};
static const int lexer_goto_row137[] = {
- 3,
- 34, 98, -136,
- 99, 99, 229,
- 100, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row138[] = {
- 5,
- 34, 104, -54,
- 105, 105, 230,
- 106, 110, 109,
- 111, 111, 231,
- 112, 122, 109
+ 3,
+ 34, 98, -137,
+ 99, 99, 230,
+ 100, 122, 110
};
static const int lexer_goto_row139[] = {
- 3,
- 34, 97, -35,
- 98, 98, 232,
- 99, 122, 109
+ 5,
+ 34, 104, -55,
+ 105, 105, 231,
+ 106, 110, 110,
+ 111, 111, 232,
+ 112, 122, 110
};
static const int lexer_goto_row140[] = {
- 5,
- 34, 99, -113,
- 100, 100, 233,
- 101, 115, 109,
- 116, 116, 234,
- 117, 122, 109
+ 3,
+ 34, 97, -36,
+ 98, 98, 233,
+ 99, 122, 110
};
static const int lexer_goto_row141[] = {
- 3,
- 34, 107, -39,
- 108, 108, 235,
- 109, 122, 109
+ 5,
+ 34, 99, -114,
+ 100, 100, 234,
+ 101, 115, 110,
+ 116, 116, 235,
+ 117, 122, 110
};
static const int lexer_goto_row142[] = {
- 5,
- 34, 97, -35,
- 98, 98, 236,
- 99, 111, 109,
- 112, 112, 237,
- 113, 122, 109
+ 3,
+ 34, 107, -40,
+ 108, 108, 236,
+ 109, 122, 110
};
static const int lexer_goto_row143[] = {
- 3,
- 34, 100, -45,
- 101, 101, 238,
- 102, 122, 109
+ 5,
+ 34, 97, -36,
+ 98, 98, 237,
+ 99, 111, 110,
+ 112, 112, 238,
+ 113, 122, 110
};
static const int lexer_goto_row144[] = {
- 4,
- 34, 95, -35,
- 97, 116, 109,
- 117, 117, 239,
- 118, 122, 109
+ 3,
+ 34, 100, -46,
+ 101, 101, 239,
+ 102, 122, 110
};
static const int lexer_goto_row145[] = {
- 3,
- 34, 111, -127,
- 112, 112, 240,
- 113, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 116, 110,
+ 117, 117, 240,
+ 118, 122, 110
};
static const int lexer_goto_row146[] = {
3,
- 34, 104, -54,
- 105, 105, 241,
- 106, 122, 109
+ 34, 111, -128,
+ 112, 112, 241,
+ 113, 122, 110
};
static const int lexer_goto_row147[] = {
3,
- 34, 113, -36,
- 114, 114, 242,
- 115, 122, 109
+ 34, 104, -55,
+ 105, 105, 242,
+ 106, 122, 110
};
static const int lexer_goto_row148[] = {
3,
- 34, 104, -54,
- 105, 105, 243,
- 106, 122, 109
+ 34, 113, -37,
+ 114, 114, 243,
+ 115, 122, 110
};
static const int lexer_goto_row149[] = {
3,
- 34, 115, -116,
- 116, 116, 244,
- 117, 122, 109
+ 34, 104, -55,
+ 105, 105, 244,
+ 106, 122, 110
};
static const int lexer_goto_row150[] = {
3,
- 34, 100, -45,
- 101, 101, 245,
- 102, 122, 109
+ 34, 115, -117,
+ 116, 116, 245,
+ 117, 122, 110
};
-static const int lexer_goto_row152[] = {
- 2,
- 0, 123, -56,
- 124, 255, 151
+static const int lexer_goto_row151[] = {
+ 3,
+ 34, 100, -46,
+ 101, 101, 246,
+ 102, 122, 110
};
static const int lexer_goto_row153[] = {
- 1,
- 97, 122, 246
+ 2,
+ 0, 123, -57,
+ 124, 255, 152
};
static const int lexer_goto_row154[] = {
- 3,
- 0, 9, 247,
- 11, 12, 247,
- 14, 255, 247
+ 1,
+ 97, 122, 247
};
-static const int lexer_goto_row156[] = {
+static const int lexer_goto_row155[] = {
3,
- 0, 124, -56,
- 125, 125, 248,
- 126, 255, 151
+ 0, 9, 248,
+ 11, 12, 248,
+ 14, 255, 248
};
static const int lexer_goto_row157[] = {
- 1,
- 97, 122, 158
+ 3,
+ 0, 124, -57,
+ 125, 125, 249,
+ 126, 255, 152
};
static const int lexer_goto_row158[] = {
- 11,
- 0, 9, 249,
- 10, 10, 250,
- 11, 12, 249,
- 13, 13, 251,
- 14, 33, 249,
- 34, 34, 252,
- 35, 91, 249,
- 92, 92, 253,
- 93, 122, 249,
- 123, 123, 254,
- 124, 255, 249
+ 1,
+ 97, 122, 159
};
static const int lexer_goto_row159[] = {
- 4,
- 48, 57, 255,
- 65, 90, 256,
- 95, 95, 257,
- 97, 122, 258
+ 11,
+ 0, 9, 250,
+ 10, 10, 251,
+ 11, 12, 250,
+ 13, 13, 252,
+ 14, 33, 250,
+ 34, 34, 253,
+ 35, 91, 250,
+ 92, 92, 254,
+ 93, 122, 250,
+ 123, 123, 255,
+ 124, 255, 250
};
static const int lexer_goto_row160[] = {
- 1,
- 0, 255, -60
+ 4,
+ 48, 57, 256,
+ 65, 90, 257,
+ 95, 95, 258,
+ 97, 122, 259
};
-static const int lexer_goto_row162[] = {
+static const int lexer_goto_row161[] = {
1,
- 97, 122, 259
+ 0, 255, -61
};
static const int lexer_goto_row163[] = {
- 9,
- 0, 9, 260,
- 10, 10, 261,
- 11, 12, 260,
- 13, 13, 262,
- 14, 38, 260,
- 39, 39, 263,
- 40, 91, 260,
- 92, 92, 264,
- 93, 255, 260
+ 1,
+ 97, 122, 260
};
static const int lexer_goto_row164[] = {
+ 9,
+ 0, 9, 261,
+ 10, 10, 262,
+ 11, 12, 261,
+ 13, 13, 263,
+ 14, 38, 261,
+ 39, 39, 264,
+ 40, 91, 261,
+ 92, 92, 265,
+ 93, 255, 261
+};
+static const int lexer_goto_row165[] = {
1,
- 39, 39, 265
+ 39, 39, 266
};
-static const int lexer_goto_row167[] = {
+static const int lexer_goto_row168[] = {
2,
- 48, 95, -81,
+ 48, 95, -82,
105, 117, -22
};
-static const int lexer_goto_row168[] = {
- 1,
- 48, 117, -168
-};
static const int lexer_goto_row169[] = {
1,
- 48, 117, -168
+ 48, 117, -169
};
static const int lexer_goto_row170[] = {
1,
- 48, 57, 171
+ 48, 117, -169
};
static const int lexer_goto_row171[] = {
1,
- 48, 57, 171
+ 48, 57, 172
};
static const int lexer_goto_row172[] = {
1,
- 48, 57, 171
+ 48, 57, 172
};
static const int lexer_goto_row173[] = {
+ 1,
+ 48, 57, 172
+};
+static const int lexer_goto_row174[] = {
2,
- 48, 95, -83,
+ 48, 95, -84,
105, 117, -22
};
-static const int lexer_goto_row174[] = {
+static const int lexer_goto_row175[] = {
1,
- 48, 117, -174
+ 48, 117, -175
};
-static const int lexer_goto_row175[] = {
+static const int lexer_goto_row176[] = {
2,
- 48, 102, -84,
+ 48, 102, -85,
105, 117, -22
};
-static const int lexer_goto_row176[] = {
- 1,
- 48, 117, -176
-};
static const int lexer_goto_row177[] = {
1,
- 48, 117, -176
+ 48, 117, -177
};
static const int lexer_goto_row178[] = {
1,
- 48, 117, -176
+ 48, 117, -177
};
static const int lexer_goto_row179[] = {
1,
- 48, 117, -85
+ 48, 117, -177
};
static const int lexer_goto_row180[] = {
1,
- 54, 54, 266
+ 48, 117, -86
};
static const int lexer_goto_row181[] = {
1,
- 50, 50, 267
+ 54, 54, 267
};
-static const int lexer_goto_row183[] = {
+static const int lexer_goto_row182[] = {
1,
- 54, 54, 268
+ 50, 50, 268
};
static const int lexer_goto_row184[] = {
1,
- 50, 50, 269
+ 54, 54, 269
};
-static const int lexer_goto_row189[] = {
+static const int lexer_goto_row185[] = {
1,
- 101, 101, 270
+ 50, 50, 270
};
static const int lexer_goto_row190[] = {
1,
- 48, 122, -104
+ 101, 101, 271
};
static const int lexer_goto_row191[] = {
1,
- 48, 122, -104
+ 48, 122, -105
};
static const int lexer_goto_row192[] = {
1,
- 48, 122, -104
+ 48, 122, -105
};
static const int lexer_goto_row193[] = {
1,
- 48, 122, -104
+ 48, 122, -105
};
static const int lexer_goto_row194[] = {
1,
- 0, 255, -105
+ 48, 122, -105
};
static const int lexer_goto_row195[] = {
1,
- 0, 255, 271
+ 0, 255, -106
};
static const int lexer_goto_row196[] = {
- 3,
- 0, 124, 272,
- 125, 125, 273,
- 126, 255, 272
+ 1,
+ 0, 255, 272
};
static const int lexer_goto_row197[] = {
3,
- 0, 33, -106,
- 34, 34, 156,
- 35, 255, -106
+ 0, 124, 273,
+ 125, 125, 274,
+ 126, 255, 273
};
static const int lexer_goto_row198[] = {
- 2,
- 34, 34, 274,
- 97, 122, 158
+ 3,
+ 0, 33, -107,
+ 34, 34, 157,
+ 35, 255, -107
};
static const int lexer_goto_row199[] = {
- 3,
- 0, 9, 275,
- 11, 12, 275,
- 14, 255, 275
+ 2,
+ 34, 34, 275,
+ 97, 122, 159
};
static const int lexer_goto_row200[] = {
- 1,
- 39, 39, 161
+ 3,
+ 0, 9, 276,
+ 11, 12, 276,
+ 14, 255, 276
};
static const int lexer_goto_row201[] = {
1,
- 39, 39, 276
+ 39, 39, 162
};
static const int lexer_goto_row202[] = {
- 3,
- 0, 9, 277,
- 11, 12, 277,
- 14, 255, 277
+ 1,
+ 39, 39, 277
};
static const int lexer_goto_row203[] = {
3,
- 34, 113, -36,
- 114, 114, 278,
- 115, 122, 109
+ 0, 9, 278,
+ 11, 12, 278,
+ 14, 255, 278
};
static const int lexer_goto_row204[] = {
3,
- 34, 115, -116,
- 116, 116, 279,
- 117, 122, 109
+ 34, 113, -37,
+ 114, 114, 279,
+ 115, 122, 110
};
static const int lexer_goto_row205[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 115, -117,
+ 116, 116, 280,
+ 117, 122, 110
};
static const int lexer_goto_row206[] = {
- 3,
- 34, 100, -45,
- 101, 101, 280,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row207[] = {
3,
- 34, 95, -35,
- 97, 97, 281,
- 98, 122, 109
+ 34, 100, -46,
+ 101, 101, 281,
+ 102, 122, 110
};
static const int lexer_goto_row208[] = {
3,
- 34, 98, -136,
- 99, 99, 282,
- 100, 122, 109
+ 34, 95, -36,
+ 97, 97, 282,
+ 98, 122, 110
};
static const int lexer_goto_row209[] = {
3,
- 34, 114, -114,
- 115, 115, 283,
- 116, 122, 109
+ 34, 98, -137,
+ 99, 99, 283,
+ 100, 122, 110
};
static const int lexer_goto_row210[] = {
3,
- 34, 115, -116,
- 116, 116, 284,
- 117, 122, 109
+ 34, 114, -115,
+ 115, 115, 284,
+ 116, 122, 110
};
static const int lexer_goto_row211[] = {
3,
- 34, 100, -45,
- 101, 101, 285,
- 102, 122, 109
+ 34, 115, -117,
+ 116, 116, 285,
+ 117, 122, 110
};
static const int lexer_goto_row212[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 286,
+ 102, 122, 110
};
static const int lexer_goto_row213[] = {
- 4,
- 34, 95, -35,
- 97, 108, 109,
- 109, 109, 286,
- 110, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row214[] = {
- 3,
- 34, 100, -45,
- 101, 101, 287,
- 102, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 108, 110,
+ 109, 109, 287,
+ 110, 122, 110
};
static const int lexer_goto_row215[] = {
3,
- 34, 114, -114,
- 115, 115, 288,
- 116, 122, 109
+ 34, 100, -46,
+ 101, 101, 288,
+ 102, 122, 110
};
static const int lexer_goto_row216[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 114, -115,
+ 115, 115, 289,
+ 116, 122, 110
};
static const int lexer_goto_row217[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row218[] = {
- 5,
- 34, 107, -39,
- 108, 108, 289,
- 109, 110, 109,
- 111, 111, 290,
- 112, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row219[] = {
- 3,
- 34, 115, -116,
- 116, 116, 291,
- 117, 122, 109
+ 5,
+ 34, 107, -40,
+ 108, 108, 290,
+ 109, 110, 110,
+ 111, 111, 291,
+ 112, 122, 110
};
static const int lexer_goto_row220[] = {
- 5,
- 34, 100, -45,
- 101, 101, 292,
- 102, 113, 109,
- 114, 114, 293,
- 115, 122, 109
+ 3,
+ 34, 115, -117,
+ 116, 116, 292,
+ 117, 122, 110
};
static const int lexer_goto_row221[] = {
- 1,
- 34, 122, -41
+ 5,
+ 34, 100, -46,
+ 101, 101, 293,
+ 102, 113, 110,
+ 114, 114, 294,
+ 115, 122, 110
};
static const int lexer_goto_row222[] = {
- 3,
- 34, 100, -45,
- 101, 101, 294,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row223[] = {
3,
- 34, 100, -45,
+ 34, 100, -46,
101, 101, 295,
- 102, 122, 109
+ 102, 122, 110
};
static const int lexer_goto_row224[] = {
3,
- 34, 111, -127,
- 112, 112, 296,
- 113, 122, 109
+ 34, 100, -46,
+ 101, 101, 296,
+ 102, 122, 110
};
static const int lexer_goto_row225[] = {
3,
- 34, 116, -145,
- 117, 117, 297,
- 118, 122, 109
+ 34, 111, -128,
+ 112, 112, 297,
+ 113, 122, 110
};
static const int lexer_goto_row226[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 116, -146,
+ 117, 117, 298,
+ 118, 122, 110
};
static const int lexer_goto_row227[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row228[] = {
- 3,
- 34, 107, -39,
- 108, 108, 298,
- 109, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row229[] = {
3,
- 34, 100, -45,
- 101, 101, 299,
- 102, 122, 109
+ 34, 107, -40,
+ 108, 108, 299,
+ 109, 122, 110
};
static const int lexer_goto_row230[] = {
- 4,
- 34, 95, -35,
- 97, 106, 109,
- 107, 107, 300,
- 108, 122, 109
+ 3,
+ 34, 100, -46,
+ 101, 101, 300,
+ 102, 122, 110
};
static const int lexer_goto_row231[] = {
4,
- 34, 95, -35,
- 97, 117, 109,
- 118, 118, 301,
- 119, 122, 109
+ 34, 95, -36,
+ 97, 106, 110,
+ 107, 107, 301,
+ 108, 122, 110
};
static const int lexer_goto_row232[] = {
- 3,
- 34, 115, -116,
- 116, 116, 302,
- 117, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 117, 110,
+ 118, 118, 302,
+ 119, 122, 110
};
static const int lexer_goto_row233[] = {
3,
- 34, 107, -39,
- 108, 108, 303,
- 109, 122, 109
+ 34, 115, -117,
+ 116, 116, 303,
+ 117, 122, 110
};
static const int lexer_goto_row234[] = {
3,
- 34, 100, -45,
- 101, 101, 304,
- 102, 122, 109
+ 34, 107, -40,
+ 108, 108, 304,
+ 109, 122, 110
};
static const int lexer_goto_row235[] = {
3,
- 34, 116, -145,
- 117, 117, 305,
- 118, 122, 109
+ 34, 100, -46,
+ 101, 101, 305,
+ 102, 122, 110
};
static const int lexer_goto_row236[] = {
3,
- 34, 101, -42,
- 102, 102, 306,
- 103, 122, 109
+ 34, 116, -146,
+ 117, 117, 306,
+ 118, 122, 110
};
static const int lexer_goto_row237[] = {
3,
- 34, 114, -114,
- 115, 115, 307,
- 116, 122, 109
+ 34, 101, -43,
+ 102, 102, 307,
+ 103, 122, 110
};
static const int lexer_goto_row238[] = {
3,
- 34, 100, -45,
- 101, 101, 308,
- 102, 122, 109
+ 34, 114, -115,
+ 115, 115, 308,
+ 116, 122, 110
};
static const int lexer_goto_row239[] = {
3,
- 34, 109, -46,
- 110, 110, 309,
- 111, 122, 109
+ 34, 100, -46,
+ 101, 101, 309,
+ 102, 122, 110
};
static const int lexer_goto_row240[] = {
3,
- 34, 100, -45,
- 101, 101, 310,
- 102, 122, 109
+ 34, 109, -47,
+ 110, 110, 310,
+ 111, 122, 110
};
static const int lexer_goto_row241[] = {
3,
- 34, 100, -45,
+ 34, 100, -46,
101, 101, 311,
- 102, 122, 109
+ 102, 122, 110
};
static const int lexer_goto_row242[] = {
3,
- 34, 117, -232,
- 118, 118, 312,
- 119, 122, 109
+ 34, 100, -46,
+ 101, 101, 312,
+ 102, 122, 110
};
static const int lexer_goto_row243[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 117, -233,
+ 118, 118, 313,
+ 119, 122, 110
};
static const int lexer_goto_row244[] = {
- 3,
- 34, 107, -39,
- 108, 108, 313,
- 109, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row245[] = {
3,
- 34, 103, -50,
- 104, 104, 314,
- 105, 122, 109
+ 34, 107, -40,
+ 108, 108, 314,
+ 109, 122, 110
};
static const int lexer_goto_row246[] = {
3,
- 34, 107, -39,
- 108, 108, 315,
- 109, 122, 109
+ 34, 103, -51,
+ 104, 104, 315,
+ 105, 122, 110
};
static const int lexer_goto_row247[] = {
- 4,
- 48, 57, 316,
- 65, 90, 317,
- 95, 95, 318,
- 97, 122, 319
+ 3,
+ 34, 107, -40,
+ 108, 108, 316,
+ 109, 122, 110
};
static const int lexer_goto_row248[] = {
- 1,
- 0, 255, -153
+ 4,
+ 48, 57, 317,
+ 65, 90, 318,
+ 95, 95, 319,
+ 97, 122, 320
};
static const int lexer_goto_row249[] = {
- 11,
- 0, 9, 320,
- 10, 10, 321,
- 11, 12, 320,
- 13, 13, 322,
- 14, 33, 320,
- 34, 34, 323,
- 35, 91, 320,
- 92, 92, 324,
- 93, 122, 320,
- 123, 123, 325,
- 124, 255, 320
+ 1,
+ 0, 255, -154
};
static const int lexer_goto_row250[] = {
- 1,
- 0, 255, -159
+ 11,
+ 0, 9, 321,
+ 10, 10, 322,
+ 11, 12, 321,
+ 13, 13, 323,
+ 14, 33, 321,
+ 34, 34, 324,
+ 35, 91, 321,
+ 92, 92, 325,
+ 93, 122, 321,
+ 123, 123, 326,
+ 124, 255, 321
};
static const int lexer_goto_row251[] = {
1,
- 0, 255, -159
+ 0, 255, -160
};
static const int lexer_goto_row252[] = {
1,
- 0, 255, -159
+ 0, 255, -160
};
static const int lexer_goto_row253[] = {
- 5,
- 0, 33, -159,
- 34, 34, 326,
- 35, 122, -159,
- 123, 123, 327,
- 124, 255, 249
+ 1,
+ 0, 255, -160
};
static const int lexer_goto_row254[] = {
- 3,
- 0, 9, 328,
- 11, 12, 328,
- 14, 255, 328
+ 5,
+ 0, 33, -160,
+ 34, 34, 327,
+ 35, 122, -160,
+ 123, 123, 328,
+ 124, 255, 250
};
static const int lexer_goto_row255[] = {
- 5,
- 0, 33, -159,
- 34, 34, 329,
- 35, 122, -159,
- 123, 123, 330,
- 124, 255, 249
+ 3,
+ 0, 9, 329,
+ 11, 12, 329,
+ 14, 255, 329
};
static const int lexer_goto_row256[] = {
- 1,
- 48, 122, -160
+ 5,
+ 0, 33, -160,
+ 34, 34, 330,
+ 35, 122, -160,
+ 123, 123, 331,
+ 124, 255, 250
};
static const int lexer_goto_row257[] = {
1,
- 48, 122, -160
+ 48, 122, -161
};
static const int lexer_goto_row258[] = {
1,
- 48, 122, -160
+ 48, 122, -161
};
static const int lexer_goto_row259[] = {
1,
- 48, 122, -160
+ 48, 122, -161
};
static const int lexer_goto_row260[] = {
- 4,
- 48, 57, 331,
- 65, 90, 332,
- 95, 95, 333,
- 97, 122, 334
+ 1,
+ 48, 122, -161
};
static const int lexer_goto_row261[] = {
- 1,
- 0, 255, -164
+ 4,
+ 48, 57, 332,
+ 65, 90, 333,
+ 95, 95, 334,
+ 97, 122, 335
};
static const int lexer_goto_row262[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row263[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row264[] = {
- 9,
- 0, 9, 335,
- 10, 10, 336,
- 11, 12, 335,
- 13, 13, 337,
- 14, 38, 335,
- 39, 39, 338,
- 40, 91, 335,
- 92, 92, 339,
- 93, 255, 335
+ 1,
+ 0, 255, -165
};
static const int lexer_goto_row265[] = {
- 3,
- 0, 9, 340,
- 11, 12, 340,
- 14, 255, 340
+ 9,
+ 0, 9, 336,
+ 10, 10, 337,
+ 11, 12, 336,
+ 13, 13, 338,
+ 14, 38, 336,
+ 39, 39, 339,
+ 40, 91, 336,
+ 92, 92, 340,
+ 93, 255, 336
};
static const int lexer_goto_row266[] = {
- 1,
- 97, 122, 259
+ 3,
+ 0, 9, 341,
+ 11, 12, 341,
+ 14, 255, 341
};
-static const int lexer_goto_row271[] = {
+static const int lexer_goto_row267[] = {
1,
- 98, 98, 341
+ 97, 122, 260
};
static const int lexer_goto_row272[] = {
1,
- 0, 255, -105
+ 98, 98, 342
};
static const int lexer_goto_row273[] = {
1,
- 0, 255, -105
+ 0, 255, -106
};
-static const int lexer_goto_row275[] = {
- 11,
- 0, 9, 342,
- 10, 10, 343,
- 11, 12, 342,
- 13, 13, 344,
- 14, 33, 342,
- 34, 34, 345,
- 35, 91, 342,
- 92, 92, 346,
- 93, 122, 342,
- 123, 123, 347,
- 124, 255, 342
+static const int lexer_goto_row274[] = {
+ 1,
+ 0, 255, -106
};
static const int lexer_goto_row276[] = {
- 1,
- 0, 255, -198
+ 11,
+ 0, 9, 343,
+ 10, 10, 344,
+ 11, 12, 343,
+ 13, 13, 345,
+ 14, 33, 343,
+ 34, 34, 346,
+ 35, 91, 343,
+ 92, 92, 347,
+ 93, 122, 343,
+ 123, 123, 348,
+ 124, 255, 343
};
static const int lexer_goto_row277[] = {
- 9,
- 0, 9, 348,
- 10, 10, 349,
- 11, 12, 348,
- 13, 13, 350,
- 14, 38, 348,
- 39, 39, 351,
- 40, 91, 348,
- 92, 92, 352,
- 93, 255, 348
+ 1,
+ 0, 255, -199
};
static const int lexer_goto_row278[] = {
- 1,
- 39, 39, 265
+ 9,
+ 0, 9, 349,
+ 10, 10, 350,
+ 11, 12, 349,
+ 13, 13, 351,
+ 14, 38, 349,
+ 39, 39, 352,
+ 40, 91, 349,
+ 92, 92, 353,
+ 93, 255, 349
};
static const int lexer_goto_row279[] = {
- 3,
- 34, 115, -116,
- 116, 116, 353,
- 117, 122, 109
+ 1,
+ 39, 39, 266
};
static const int lexer_goto_row280[] = {
3,
- 34, 113, -36,
- 114, 114, 354,
- 115, 122, 109
+ 34, 115, -117,
+ 116, 116, 354,
+ 117, 122, 110
};
static const int lexer_goto_row281[] = {
3,
- 34, 113, -36,
+ 34, 113, -37,
114, 114, 355,
- 115, 122, 109
+ 115, 122, 110
};
static const int lexer_goto_row282[] = {
3,
- 34, 106, -231,
- 107, 107, 356,
- 108, 122, 109
+ 34, 113, -37,
+ 114, 114, 356,
+ 115, 122, 110
};
static const int lexer_goto_row283[] = {
3,
- 34, 103, -50,
- 104, 104, 357,
- 105, 122, 109
+ 34, 106, -232,
+ 107, 107, 357,
+ 108, 122, 110
};
static const int lexer_goto_row284[] = {
3,
- 34, 114, -114,
- 115, 115, 358,
- 116, 122, 109
+ 34, 103, -51,
+ 104, 104, 358,
+ 105, 122, 110
};
static const int lexer_goto_row285[] = {
3,
- 34, 104, -54,
- 105, 105, 359,
- 106, 122, 109
+ 34, 114, -115,
+ 115, 115, 359,
+ 116, 122, 110
};
static const int lexer_goto_row286[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 104, -55,
+ 105, 105, 360,
+ 106, 122, 110
};
static const int lexer_goto_row287[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row288[] = {
- 3,
- 34, 113, -36,
- 114, 114, 360,
- 115, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row289[] = {
3,
- 34, 100, -45,
- 101, 101, 361,
- 102, 122, 109
+ 34, 113, -37,
+ 114, 114, 361,
+ 115, 122, 110
};
static const int lexer_goto_row290[] = {
3,
- 34, 104, -54,
- 105, 105, 362,
- 106, 122, 109
+ 34, 100, -46,
+ 101, 101, 362,
+ 102, 122, 110
};
static const int lexer_goto_row291[] = {
3,
- 34, 113, -36,
- 114, 114, 363,
- 115, 122, 109
+ 34, 104, -55,
+ 105, 105, 363,
+ 106, 122, 110
};
static const int lexer_goto_row292[] = {
- 1,
- 34, 122, -41
-};
-static const int lexer_goto_row293[] = {
3,
- 34, 113, -36,
+ 34, 113, -37,
114, 114, 364,
- 115, 122, 109
+ 115, 122, 110
+};
+static const int lexer_goto_row293[] = {
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row294[] = {
3,
- 34, 116, -145,
- 117, 117, 365,
- 118, 122, 109
+ 34, 113, -37,
+ 114, 114, 365,
+ 115, 122, 110
};
static const int lexer_goto_row295[] = {
3,
- 34, 115, -116,
- 116, 116, 366,
- 117, 122, 109
+ 34, 116, -146,
+ 117, 117, 366,
+ 118, 122, 110
};
static const int lexer_goto_row296[] = {
3,
- 34, 107, -39,
- 108, 108, 367,
- 109, 122, 109
+ 34, 115, -117,
+ 116, 116, 367,
+ 117, 122, 110
};
static const int lexer_goto_row297[] = {
- 1,
- 34, 122, -41
-};
-static const int lexer_goto_row298[] = {
3,
- 34, 107, -39,
+ 34, 107, -40,
108, 108, 368,
- 109, 122, 109
+ 109, 122, 110
+};
+static const int lexer_goto_row298[] = {
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row299[] = {
3,
- 34, 95, -35,
- 97, 97, 369,
- 98, 122, 109
+ 34, 107, -40,
+ 108, 108, 369,
+ 109, 122, 110
};
static const int lexer_goto_row300[] = {
- 1,
- 34, 122, -41
-};
-static const int lexer_goto_row301[] = {
3,
- 34, 95, -35,
+ 34, 95, -36,
97, 97, 370,
- 98, 122, 109
+ 98, 122, 110
+};
+static const int lexer_goto_row301[] = {
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row302[] = {
3,
- 34, 95, -35,
+ 34, 95, -36,
97, 97, 371,
- 98, 122, 109
+ 98, 122, 110
};
static const int lexer_goto_row303[] = {
3,
- 34, 100, -45,
- 101, 101, 372,
- 102, 122, 109
+ 34, 95, -36,
+ 97, 97, 372,
+ 98, 122, 110
};
static const int lexer_goto_row304[] = {
3,
- 34, 104, -54,
- 105, 105, 373,
- 106, 122, 109
+ 34, 100, -46,
+ 101, 101, 373,
+ 102, 122, 110
};
static const int lexer_goto_row305[] = {
3,
- 34, 101, -42,
- 102, 102, 374,
- 103, 122, 109
+ 34, 104, -55,
+ 105, 105, 374,
+ 106, 122, 110
};
static const int lexer_goto_row306[] = {
3,
- 34, 113, -36,
- 114, 114, 375,
- 115, 122, 109
+ 34, 101, -43,
+ 102, 102, 375,
+ 103, 122, 110
};
static const int lexer_goto_row307[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 113, -37,
+ 114, 114, 376,
+ 115, 122, 110
};
static const int lexer_goto_row308[] = {
- 3,
- 34, 100, -45,
- 101, 101, 376,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row309[] = {
3,
- 34, 113, -36,
- 114, 114, 377,
- 115, 122, 109
+ 34, 100, -46,
+ 101, 101, 377,
+ 102, 122, 110
};
static const int lexer_goto_row310[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 113, -37,
+ 114, 114, 378,
+ 115, 122, 110
};
static const int lexer_goto_row311[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row312[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row313[] = {
- 3,
- 34, 100, -45,
- 101, 101, 378,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row314[] = {
3,
- 34, 100, -45,
+ 34, 100, -46,
101, 101, 379,
- 102, 122, 109
+ 102, 122, 110
};
static const int lexer_goto_row315[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 380,
+ 102, 122, 110
};
static const int lexer_goto_row316[] = {
- 3,
- 34, 99, -113,
- 100, 100, 380,
- 101, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row317[] = {
- 1,
- 48, 122, -248
+ 3,
+ 34, 99, -114,
+ 100, 100, 381,
+ 101, 122, 110
};
static const int lexer_goto_row318[] = {
1,
- 48, 122, -248
+ 48, 122, -249
};
static const int lexer_goto_row319[] = {
1,
- 48, 122, -248
+ 48, 122, -249
};
static const int lexer_goto_row320[] = {
1,
- 48, 122, -248
+ 48, 122, -249
};
static const int lexer_goto_row321[] = {
1,
- 0, 255, -250
+ 48, 122, -249
};
static const int lexer_goto_row322[] = {
- 11,
- 0, 9, 381,
- 10, 10, 321,
- 11, 12, 381,
- 13, 13, 322,
- 14, 33, 381,
- 34, 34, 382,
- 35, 91, 381,
- 92, 92, 383,
- 93, 122, 381,
- 123, 123, 384,
- 124, 255, 381
+ 1,
+ 0, 255, -251
};
static const int lexer_goto_row323[] = {
- 1,
- 0, 255, -323
+ 11,
+ 0, 9, 382,
+ 10, 10, 322,
+ 11, 12, 382,
+ 13, 13, 323,
+ 14, 33, 382,
+ 34, 34, 383,
+ 35, 91, 382,
+ 92, 92, 384,
+ 93, 122, 382,
+ 123, 123, 385,
+ 124, 255, 382
};
static const int lexer_goto_row324[] = {
- 7,
- 0, 33, -323,
- 34, 34, 385,
- 35, 92, -323,
- 93, 96, 381,
- 97, 122, 386,
- 123, 123, 387,
- 124, 255, 381
+ 1,
+ 0, 255, -324
};
static const int lexer_goto_row325[] = {
- 3,
- 0, 9, 388,
- 11, 12, 388,
- 14, 255, 388
+ 7,
+ 0, 33, -324,
+ 34, 34, 386,
+ 35, 92, -324,
+ 93, 96, 382,
+ 97, 122, 387,
+ 123, 123, 388,
+ 124, 255, 382
};
static const int lexer_goto_row326[] = {
- 5,
- 0, 33, -323,
- 34, 34, 389,
- 35, 122, -323,
- 123, 123, 390,
- 124, 255, 381
+ 3,
+ 0, 9, 389,
+ 11, 12, 389,
+ 14, 255, 389
};
static const int lexer_goto_row327[] = {
- 3,
- 0, 33, -159,
- 34, 34, 391,
- 35, 255, -254
+ 5,
+ 0, 33, -324,
+ 34, 34, 390,
+ 35, 122, -324,
+ 123, 123, 391,
+ 124, 255, 382
};
static const int lexer_goto_row328[] = {
3,
- 0, 122, -256,
- 123, 123, 392,
- 124, 255, 249
+ 0, 33, -160,
+ 34, 34, 392,
+ 35, 255, -255
};
static const int lexer_goto_row329[] = {
- 1,
- 0, 255, -159
+ 3,
+ 0, 122, -257,
+ 123, 123, 393,
+ 124, 255, 250
};
static const int lexer_goto_row330[] = {
- 3,
- 0, 33, -159,
- 34, 34, 393,
- 35, 255, -254
+ 1,
+ 0, 255, -160
};
static const int lexer_goto_row331[] = {
3,
- 0, 122, -256,
- 123, 123, 394,
- 124, 255, 249
+ 0, 33, -160,
+ 34, 34, 394,
+ 35, 255, -255
};
static const int lexer_goto_row332[] = {
- 1,
- 48, 122, -261
+ 3,
+ 0, 122, -257,
+ 123, 123, 395,
+ 124, 255, 250
};
static const int lexer_goto_row333[] = {
1,
- 48, 122, -261
+ 48, 122, -262
};
static const int lexer_goto_row334[] = {
1,
- 48, 122, -261
+ 48, 122, -262
};
static const int lexer_goto_row335[] = {
1,
- 48, 122, -261
+ 48, 122, -262
};
static const int lexer_goto_row336[] = {
1,
- 0, 255, -164
+ 48, 122, -262
};
static const int lexer_goto_row337[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row338[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row339[] = {
- 9,
- 0, 9, 395,
- 10, 10, 396,
- 11, 12, 395,
- 13, 13, 397,
- 14, 38, 395,
- 39, 39, 398,
- 40, 91, 395,
- 92, 92, 399,
- 93, 255, 395
+ 1,
+ 0, 255, -165
};
static const int lexer_goto_row340[] = {
- 3,
- 0, 9, 400,
- 11, 12, 400,
- 14, 255, 400
+ 9,
+ 0, 9, 396,
+ 10, 10, 397,
+ 11, 12, 396,
+ 13, 13, 398,
+ 14, 38, 396,
+ 39, 39, 399,
+ 40, 91, 396,
+ 92, 92, 400,
+ 93, 255, 396
};
static const int lexer_goto_row341[] = {
- 1,
- 0, 255, -164
+ 3,
+ 0, 9, 401,
+ 11, 12, 401,
+ 14, 255, 401
};
static const int lexer_goto_row342[] = {
1,
- 117, 117, 401
+ 0, 255, -165
};
static const int lexer_goto_row343[] = {
1,
- 0, 255, -276
+ 117, 117, 402
};
static const int lexer_goto_row344[] = {
1,
- 0, 255, -276
+ 0, 255, -277
};
static const int lexer_goto_row345[] = {
1,
- 0, 255, -276
+ 0, 255, -277
};
static const int lexer_goto_row346[] = {
- 5,
- 0, 33, -276,
- 34, 34, 402,
- 35, 122, -276,
- 123, 123, 403,
- 124, 255, 342
+ 1,
+ 0, 255, -277
};
static const int lexer_goto_row347[] = {
- 3,
- 0, 9, 404,
- 11, 12, 404,
- 14, 255, 404
+ 5,
+ 0, 33, -277,
+ 34, 34, 403,
+ 35, 122, -277,
+ 123, 123, 404,
+ 124, 255, 343
};
static const int lexer_goto_row348[] = {
- 5,
- 0, 33, -276,
- 34, 34, 405,
- 35, 122, -276,
- 123, 123, 406,
- 124, 255, 342
+ 3,
+ 0, 9, 405,
+ 11, 12, 405,
+ 14, 255, 405
};
static const int lexer_goto_row349[] = {
- 1,
- 0, 255, -278
+ 5,
+ 0, 33, -277,
+ 34, 34, 406,
+ 35, 122, -277,
+ 123, 123, 407,
+ 124, 255, 343
};
static const int lexer_goto_row350[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row351[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row352[] = {
- 9,
- 0, 9, 407,
- 10, 10, 408,
- 11, 12, 407,
- 13, 13, 409,
- 14, 38, 407,
- 39, 39, 410,
- 40, 91, 407,
- 92, 92, 411,
- 93, 255, 407
+ 1,
+ 0, 255, -279
};
static const int lexer_goto_row353[] = {
- 3,
- 0, 9, 412,
- 11, 12, 412,
- 14, 255, 412
+ 9,
+ 0, 9, 408,
+ 10, 10, 409,
+ 11, 12, 408,
+ 13, 13, 410,
+ 14, 38, 408,
+ 39, 39, 411,
+ 40, 91, 408,
+ 92, 92, 412,
+ 93, 255, 408
};
static const int lexer_goto_row354[] = {
- 1,
- 34, 122, -41
+ 3,
+ 0, 9, 413,
+ 11, 12, 413,
+ 14, 255, 413
};
static const int lexer_goto_row355[] = {
- 3,
- 34, 95, -35,
- 97, 97, 413,
- 98, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row356[] = {
3,
- 34, 115, -116,
- 116, 116, 414,
- 117, 122, 109
+ 34, 95, -36,
+ 97, 97, 414,
+ 98, 122, 110
};
static const int lexer_goto_row357[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 115, -117,
+ 116, 116, 415,
+ 117, 122, 110
};
static const int lexer_goto_row358[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row359[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row360[] = {
- 3,
- 34, 109, -46,
- 110, 110, 415,
- 111, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row361[] = {
3,
- 34, 109, -46,
+ 34, 109, -47,
110, 110, 416,
- 111, 122, 109
+ 111, 122, 110
};
static const int lexer_goto_row362[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 109, -47,
+ 110, 110, 417,
+ 111, 122, 110
};
static const int lexer_goto_row363[] = {
- 3,
- 34, 100, -45,
- 101, 101, 417,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row364[] = {
3,
- 34, 115, -116,
- 116, 116, 418,
- 117, 122, 109
+ 34, 100, -46,
+ 101, 101, 418,
+ 102, 122, 110
};
static const int lexer_goto_row365[] = {
3,
- 34, 101, -42,
- 102, 102, 419,
- 103, 122, 109
+ 34, 115, -117,
+ 116, 116, 419,
+ 117, 122, 110
};
static const int lexer_goto_row366[] = {
3,
- 34, 99, -113,
- 100, 100, 420,
- 101, 122, 109
+ 34, 101, -43,
+ 102, 102, 420,
+ 103, 122, 110
};
static const int lexer_goto_row367[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 99, -114,
+ 100, 100, 421,
+ 101, 122, 110
};
static const int lexer_goto_row368[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row369[] = {
- 3,
- 34, 100, -45,
- 101, 101, 421,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row370[] = {
3,
- 34, 97, -35,
- 98, 98, 422,
- 99, 122, 109
+ 34, 100, -46,
+ 101, 101, 422,
+ 102, 122, 110
};
static const int lexer_goto_row371[] = {
- 4,
- 34, 95, -35,
- 97, 102, 109,
- 103, 103, 423,
- 104, 122, 109
+ 3,
+ 34, 97, -36,
+ 98, 98, 423,
+ 99, 122, 110
};
static const int lexer_goto_row372[] = {
- 3,
- 34, 115, -116,
- 116, 116, 424,
- 117, 122, 109
+ 4,
+ 34, 95, -36,
+ 97, 102, 110,
+ 103, 103, 424,
+ 104, 122, 110
};
static const int lexer_goto_row373[] = {
3,
- 34, 98, -136,
- 99, 99, 425,
- 100, 122, 109
+ 34, 115, -117,
+ 116, 116, 425,
+ 117, 122, 110
};
static const int lexer_goto_row374[] = {
3,
- 34, 98, -136,
+ 34, 98, -137,
99, 99, 426,
- 100, 122, 109
+ 100, 122, 110
};
static const int lexer_goto_row375[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 98, -137,
+ 99, 99, 427,
+ 100, 122, 110
};
static const int lexer_goto_row376[] = {
- 3,
- 34, 109, -46,
- 110, 110, 427,
- 111, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row377[] = {
3,
- 34, 115, -116,
- 116, 116, 428,
- 117, 122, 109
+ 34, 109, -47,
+ 110, 110, 428,
+ 111, 122, 110
};
static const int lexer_goto_row378[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 115, -117,
+ 116, 116, 429,
+ 117, 122, 110
};
static const int lexer_goto_row379[] = {
- 3,
- 34, 113, -36,
- 114, 114, 429,
- 115, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row380[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 113, -37,
+ 114, 114, 430,
+ 115, 122, 110
};
static const int lexer_goto_row381[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row382[] = {
1,
- 0, 255, -323
+ 34, 122, -42
};
static const int lexer_goto_row383[] = {
- 3,
- 0, 92, -325,
- 93, 122, 381,
- 123, 255, -325
+ 1,
+ 0, 255, -324
};
static const int lexer_goto_row384[] = {
3,
- 0, 9, 430,
- 11, 12, 430,
- 14, 255, 430
+ 0, 92, -326,
+ 93, 122, 382,
+ 123, 255, -326
};
static const int lexer_goto_row385[] = {
- 1,
- 0, 255, -327
+ 3,
+ 0, 9, 431,
+ 11, 12, 431,
+ 14, 255, 431
};
static const int lexer_goto_row386[] = {
- 3,
- 0, 33, -323,
- 34, 34, 431,
- 35, 255, -384
+ 1,
+ 0, 255, -328
};
static const int lexer_goto_row387[] = {
- 12,
- 0, 34, -323,
- 35, 47, 381,
- 48, 57, 432,
- 58, 64, 381,
- 65, 90, 433,
- 91, 91, 381,
- 92, 92, 383,
- 93, 94, 381,
- 95, 95, 434,
- 96, 96, 381,
- 97, 122, 435,
- 123, 255, -323
+ 3,
+ 0, 33, -324,
+ 34, 34, 432,
+ 35, 255, -385
};
static const int lexer_goto_row388[] = {
- 3,
- 0, 122, -327,
- 123, 123, 436,
- 124, 255, 381
+ 12,
+ 0, 34, -324,
+ 35, 47, 382,
+ 48, 57, 433,
+ 58, 64, 382,
+ 65, 90, 434,
+ 91, 91, 382,
+ 92, 92, 384,
+ 93, 94, 382,
+ 95, 95, 435,
+ 96, 96, 382,
+ 97, 122, 436,
+ 123, 255, -324
};
static const int lexer_goto_row389[] = {
- 1,
- 0, 255, -250
+ 3,
+ 0, 122, -328,
+ 123, 123, 437,
+ 124, 255, 382
};
static const int lexer_goto_row390[] = {
- 3,
- 0, 33, -323,
- 34, 34, 437,
- 35, 255, -384
+ 1,
+ 0, 255, -251
};
static const int lexer_goto_row391[] = {
3,
- 0, 122, -327,
- 123, 123, 438,
- 124, 255, 381
+ 0, 33, -324,
+ 34, 34, 438,
+ 35, 255, -385
};
static const int lexer_goto_row392[] = {
- 1,
- 34, 34, 439
+ 3,
+ 0, 122, -328,
+ 123, 123, 439,
+ 124, 255, 382
};
static const int lexer_goto_row393[] = {
1,
- 0, 255, -332
+ 34, 34, 440
};
static const int lexer_goto_row394[] = {
1,
- 0, 255, -328
+ 0, 255, -333
};
static const int lexer_goto_row395[] = {
1,
- 123, 123, 440
+ 0, 255, -329
};
static const int lexer_goto_row396[] = {
1,
- 0, 255, -164
+ 123, 123, 441
};
static const int lexer_goto_row397[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row398[] = {
1,
- 0, 255, -164
+ 0, 255, -165
};
static const int lexer_goto_row399[] = {
1,
- 97, 122, 441
+ 0, 255, -165
};
static const int lexer_goto_row400[] = {
- 3,
- 0, 9, 442,
- 11, 12, 442,
- 14, 255, 442
+ 1,
+ 97, 122, 442
};
static const int lexer_goto_row401[] = {
- 1,
- 0, 255, -164
+ 3,
+ 0, 9, 443,
+ 11, 12, 443,
+ 14, 255, 443
};
static const int lexer_goto_row402[] = {
1,
- 103, 103, 443
+ 0, 255, -165
};
static const int lexer_goto_row403[] = {
- 3,
- 0, 33, -276,
- 34, 34, 391,
- 35, 255, -347
+ 1,
+ 103, 103, 444
};
static const int lexer_goto_row404[] = {
3,
- 0, 122, -349,
- 123, 123, 444,
- 124, 255, 342
+ 0, 33, -277,
+ 34, 34, 392,
+ 35, 255, -348
};
static const int lexer_goto_row405[] = {
- 1,
- 0, 255, -276
+ 3,
+ 0, 122, -350,
+ 123, 123, 445,
+ 124, 255, 343
};
static const int lexer_goto_row406[] = {
- 3,
- 0, 33, -276,
- 34, 34, 445,
- 35, 255, -347
+ 1,
+ 0, 255, -277
};
static const int lexer_goto_row407[] = {
3,
- 0, 122, -349,
- 123, 123, 394,
- 124, 255, 342
+ 0, 33, -277,
+ 34, 34, 446,
+ 35, 255, -348
};
static const int lexer_goto_row408[] = {
- 1,
- 0, 255, -278
+ 3,
+ 0, 122, -350,
+ 123, 123, 395,
+ 124, 255, 343
};
static const int lexer_goto_row409[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row410[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row411[] = {
- 9,
- 0, 9, 446,
- 10, 10, 447,
- 11, 12, 446,
- 13, 13, 448,
- 14, 38, 446,
- 39, 39, 398,
- 40, 91, 446,
- 92, 92, 449,
- 93, 255, 446
+ 1,
+ 0, 255, -279
};
static const int lexer_goto_row412[] = {
- 3,
- 0, 9, 450,
- 11, 12, 450,
- 14, 255, 450
+ 9,
+ 0, 9, 447,
+ 10, 10, 448,
+ 11, 12, 447,
+ 13, 13, 449,
+ 14, 38, 447,
+ 39, 39, 399,
+ 40, 91, 447,
+ 92, 92, 450,
+ 93, 255, 447
};
static const int lexer_goto_row413[] = {
- 1,
- 0, 255, -278
+ 3,
+ 0, 9, 451,
+ 11, 12, 451,
+ 14, 255, 451
};
static const int lexer_goto_row414[] = {
- 3,
- 34, 98, -136,
- 99, 99, 451,
- 100, 122, 109
+ 1,
+ 0, 255, -279
};
static const int lexer_goto_row415[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 98, -137,
+ 99, 99, 452,
+ 100, 122, 110
};
static const int lexer_goto_row416[] = {
- 3,
- 34, 116, -145,
- 117, 117, 452,
- 118, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row417[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 116, -146,
+ 117, 117, 453,
+ 118, 122, 110
};
static const int lexer_goto_row418[] = {
- 3,
- 34, 114, -114,
- 115, 115, 453,
- 116, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row419[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 114, -115,
+ 115, 115, 454,
+ 116, 122, 110
};
static const int lexer_goto_row420[] = {
- 3,
- 34, 95, -35,
- 97, 97, 454,
- 98, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row421[] = {
3,
- 34, 100, -45,
- 101, 101, 455,
- 102, 122, 109
+ 34, 95, -36,
+ 97, 97, 455,
+ 98, 122, 110
};
static const int lexer_goto_row422[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 456,
+ 102, 122, 110
};
static const int lexer_goto_row423[] = {
- 3,
- 34, 107, -39,
- 108, 108, 456,
- 109, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row424[] = {
3,
- 34, 100, -45,
- 101, 101, 457,
- 102, 122, 109
+ 34, 107, -40,
+ 108, 108, 457,
+ 109, 122, 110
};
static const int lexer_goto_row425[] = {
3,
- 34, 100, -45,
+ 34, 100, -46,
101, 101, 458,
- 102, 122, 109
+ 102, 122, 110
};
static const int lexer_goto_row426[] = {
3,
- 34, 115, -116,
- 116, 116, 459,
- 117, 122, 109
+ 34, 100, -46,
+ 101, 101, 459,
+ 102, 122, 110
};
static const int lexer_goto_row427[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 115, -117,
+ 116, 116, 460,
+ 117, 122, 110
};
static const int lexer_goto_row428[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row429[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row430[] = {
- 3,
- 34, 114, -114,
- 115, 115, 460,
- 116, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row431[] = {
- 1,
- 0, 255, -323
+ 3,
+ 34, 114, -115,
+ 115, 115, 461,
+ 116, 122, 110
};
static const int lexer_goto_row432[] = {
- 2,
- 34, 34, 461,
- 97, 122, 462
+ 1,
+ 0, 255, -324
};
static const int lexer_goto_row433[] = {
- 1,
- 0, 255, -388
+ 2,
+ 34, 34, 462,
+ 97, 122, 463
};
static const int lexer_goto_row434[] = {
1,
- 0, 255, -388
+ 0, 255, -389
};
static const int lexer_goto_row435[] = {
1,
- 0, 255, -388
+ 0, 255, -389
};
static const int lexer_goto_row436[] = {
1,
- 0, 255, -388
+ 0, 255, -389
};
static const int lexer_goto_row437[] = {
1,
- 0, 255, -392
+ 0, 255, -389
};
static const int lexer_goto_row438[] = {
1,
- 0, 255, -387
+ 0, 255, -393
};
static const int lexer_goto_row439[] = {
1,
- 123, 123, 463
+ 0, 255, -388
};
static const int lexer_goto_row440[] = {
1,
- 34, 34, 439
+ 123, 123, 464
};
static const int lexer_goto_row441[] = {
1,
- 123, 123, 440
+ 34, 34, 440
};
static const int lexer_goto_row442[] = {
- 4,
- 48, 57, 464,
- 65, 90, 465,
- 95, 95, 466,
- 97, 122, 467
+ 1,
+ 123, 123, 441
};
static const int lexer_goto_row443[] = {
- 1,
- 0, 255, -164
+ 4,
+ 48, 57, 465,
+ 65, 90, 466,
+ 95, 95, 467,
+ 97, 122, 468
};
static const int lexer_goto_row444[] = {
1,
- 95, 95, 468
+ 0, 255, -165
};
static const int lexer_goto_row445[] = {
1,
- 0, 255, -408
+ 95, 95, 469
};
static const int lexer_goto_row446[] = {
1,
- 0, 255, -404
+ 0, 255, -409
};
static const int lexer_goto_row447[] = {
1,
- 0, 255, -278
+ 0, 255, -405
};
static const int lexer_goto_row448[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row449[] = {
1,
- 0, 255, -278
+ 0, 255, -279
};
static const int lexer_goto_row450[] = {
- 3,
- 0, 9, 469,
- 11, 12, 469,
- 14, 255, 469
+ 1,
+ 0, 255, -279
};
static const int lexer_goto_row451[] = {
- 1,
- 0, 255, -278
+ 3,
+ 0, 9, 470,
+ 11, 12, 470,
+ 14, 255, 470
};
static const int lexer_goto_row452[] = {
- 3,
- 34, 115, -116,
- 116, 116, 470,
- 117, 122, 109
+ 1,
+ 0, 255, -279
};
static const int lexer_goto_row453[] = {
3,
- 34, 100, -45,
- 101, 101, 471,
- 102, 122, 109
+ 34, 115, -117,
+ 116, 116, 471,
+ 117, 122, 110
};
static const int lexer_goto_row454[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 472,
+ 102, 122, 110
};
static const int lexer_goto_row455[] = {
- 3,
- 34, 98, -136,
- 99, 99, 472,
- 100, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row456[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 98, -137,
+ 99, 99, 473,
+ 100, 122, 110
};
static const int lexer_goto_row457[] = {
- 3,
- 34, 100, -45,
- 101, 101, 473,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row458[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 474,
+ 102, 122, 110
};
static const int lexer_goto_row459[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row460[] = {
- 3,
- 34, 100, -45,
- 101, 101, 474,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row461[] = {
3,
- 34, 95, -35,
- 97, 97, 475,
- 98, 122, 109
+ 34, 100, -46,
+ 101, 101, 475,
+ 102, 122, 110
};
static const int lexer_goto_row462[] = {
- 1,
- 34, 122, -433
+ 3,
+ 34, 95, -36,
+ 97, 97, 476,
+ 98, 122, 110
};
static const int lexer_goto_row463[] = {
- 4,
- 48, 57, 476,
- 65, 90, 477,
- 95, 95, 478,
- 97, 122, 479
+ 1,
+ 34, 122, -434
};
static const int lexer_goto_row464[] = {
- 1,
- 123, 123, 463
+ 4,
+ 48, 57, 477,
+ 65, 90, 478,
+ 95, 95, 479,
+ 97, 122, 480
};
static const int lexer_goto_row465[] = {
1,
- 48, 122, -443
+ 123, 123, 464
};
static const int lexer_goto_row466[] = {
1,
- 48, 122, -443
+ 48, 122, -444
};
static const int lexer_goto_row467[] = {
1,
- 48, 122, -443
+ 48, 122, -444
};
static const int lexer_goto_row468[] = {
1,
- 48, 122, -443
+ 48, 122, -444
};
static const int lexer_goto_row469[] = {
1,
- 95, 95, 480
+ 48, 122, -444
};
static const int lexer_goto_row470[] = {
1,
- 0, 255, -278
+ 95, 95, 481
};
static const int lexer_goto_row471[] = {
1,
- 34, 122, -41
+ 0, 255, -279
};
static const int lexer_goto_row472[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row473[] = {
- 3,
- 34, 100, -45,
- 101, 101, 481,
- 102, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row474[] = {
- 1,
- 34, 122, -41
+ 3,
+ 34, 100, -46,
+ 101, 101, 482,
+ 102, 122, 110
};
static const int lexer_goto_row475[] = {
- 3,
- 34, 99, -113,
- 100, 100, 482,
- 101, 122, 109
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row476[] = {
3,
- 34, 107, -39,
- 108, 108, 483,
- 109, 122, 109
+ 34, 99, -114,
+ 100, 100, 483,
+ 101, 122, 110
};
static const int lexer_goto_row477[] = {
- 1,
- 48, 122, -464
+ 3,
+ 34, 107, -40,
+ 108, 108, 484,
+ 109, 122, 110
};
static const int lexer_goto_row478[] = {
1,
- 48, 122, -464
+ 48, 122, -465
};
static const int lexer_goto_row479[] = {
1,
- 48, 122, -464
+ 48, 122, -465
};
static const int lexer_goto_row480[] = {
1,
- 48, 122, -464
+ 48, 122, -465
};
-static const int lexer_goto_row482[] = {
+static const int lexer_goto_row481[] = {
1,
- 34, 122, -41
+ 48, 122, -465
};
static const int lexer_goto_row483[] = {
1,
- 34, 122, -41
+ 34, 122, -42
};
static const int lexer_goto_row484[] = {
1,
- 34, 122, -41
+ 34, 122, -42
+};
+static const int lexer_goto_row485[] = {
+ 1,
+ 34, 122, -42
};
static const int lexer_goto_row_null[] = {0};
const int* const lexer_goto_table[] = {
lexer_goto_row25,
lexer_goto_row26,
lexer_goto_row_null,
- lexer_goto_row28,
+ lexer_goto_row_null,
+ lexer_goto_row29,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row31,
lexer_goto_row32,
lexer_goto_row33,
lexer_goto_row34,
lexer_goto_row53,
lexer_goto_row54,
lexer_goto_row55,
+ lexer_goto_row56,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row59,
lexer_goto_row60,
lexer_goto_row61,
+ lexer_goto_row62,
lexer_goto_row_null,
- lexer_goto_row63,
+ lexer_goto_row64,
lexer_goto_row_null,
- lexer_goto_row65,
+ lexer_goto_row66,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row68,
lexer_goto_row69,
lexer_goto_row70,
lexer_goto_row71,
+ lexer_goto_row72,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row75,
lexer_goto_row76,
+ lexer_goto_row77,
lexer_goto_row_null,
- lexer_goto_row78,
lexer_goto_row79,
lexer_goto_row80,
lexer_goto_row81,
lexer_goto_row88,
lexer_goto_row89,
lexer_goto_row90,
+ lexer_goto_row91,
lexer_goto_row_null,
- lexer_goto_row92,
lexer_goto_row93,
+ lexer_goto_row94,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row96,
lexer_goto_row97,
lexer_goto_row98,
lexer_goto_row99,
lexer_goto_row100,
+ lexer_goto_row101,
lexer_goto_row_null,
- lexer_goto_row102,
lexer_goto_row103,
lexer_goto_row104,
lexer_goto_row105,
lexer_goto_row148,
lexer_goto_row149,
lexer_goto_row150,
+ lexer_goto_row151,
lexer_goto_row_null,
- lexer_goto_row152,
lexer_goto_row153,
lexer_goto_row154,
+ lexer_goto_row155,
lexer_goto_row_null,
- lexer_goto_row156,
lexer_goto_row157,
lexer_goto_row158,
lexer_goto_row159,
lexer_goto_row160,
+ lexer_goto_row161,
lexer_goto_row_null,
- lexer_goto_row162,
lexer_goto_row163,
lexer_goto_row164,
+ lexer_goto_row165,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row167,
lexer_goto_row168,
lexer_goto_row169,
lexer_goto_row170,
lexer_goto_row179,
lexer_goto_row180,
lexer_goto_row181,
+ lexer_goto_row182,
lexer_goto_row_null,
- lexer_goto_row183,
lexer_goto_row184,
+ lexer_goto_row185,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row189,
lexer_goto_row190,
lexer_goto_row191,
lexer_goto_row192,
lexer_goto_row264,
lexer_goto_row265,
lexer_goto_row266,
+ lexer_goto_row267,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row271,
lexer_goto_row272,
lexer_goto_row273,
+ lexer_goto_row274,
lexer_goto_row_null,
- lexer_goto_row275,
lexer_goto_row276,
lexer_goto_row277,
lexer_goto_row278,
lexer_goto_row478,
lexer_goto_row479,
lexer_goto_row480,
+ lexer_goto_row481,
lexer_goto_row_null,
- lexer_goto_row482,
lexer_goto_row483,
- lexer_goto_row484
+ lexer_goto_row484,
+ lexer_goto_row485
};
const int lexer_accept_table[] = {
- -1,0,1,1,0,97,110,2,83,86,-1,56,57,80,78,60,79,77,82,103,103,61,99,90,63,93,98,100,58,59,85,-1,-1,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,84,110,87,1,89,110,105,-1,106,2,2,2,68,72,112,112,112,81,66,64,65,76,104,67,-1,103,-1,-1,-1,-1,103,-1,-1,-1,-1,-1,-1,62,92,91,88,94,95,100,100,100,100,71,-1,102,114,-1,-1,101,101,101,101,101,101,48,101,101,101,101,17,101,101,101,101,101,101,24,101,30,16,101,101,101,101,101,101,101,32,101,101,101,101,101,101,101,101,101,101,101,101,101,101,70,110,108,-1,107,110,105,111,105,110,2,109,111,112,69,75,103,103,103,-1,-1,104,103,103,103,103,103,103,103,-1,-1,103,-1,-1,103,73,96,74,-1,102,102,102,102,114,-1,-1,-1,105,-1,-1,-1,-1,101,101,31,101,101,101,101,101,101,11,101,101,101,29,12,101,101,101,41,101,101,101,101,40,33,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,18,101,101,101,108,110,110,111,111,111,-1,-1,-1,105,105,105,105,109,111,111,111,-1,-1,109,103,103,103,103,-1,114,114,113,-1,-1,-1,-1,101,101,101,101,101,101,101,26,9,101,101,101,101,14,101,101,101,101,28,101,47,42,101,101,101,101,101,101,44,101,101,25,45,13,101,101,52,101,108,108,108,108,110,-1,-1,108,-1,107,-1,-1,111,-1,-1,109,109,109,109,111,111,111,-1,-1,111,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,101,101,37,55,6,101,101,46,101,101,101,101,50,51,101,101,101,101,101,101,15,101,101,43,101,27,54,-1,-1,-1,-1,-1,108,-1,110,-1,-1,105,-1,-1,106,111,111,111,105,-1,111,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,101,39,101,19,101,5,101,101,4,101,101,101,101,20,35,10,101,-1,108,108,108,108,108,-1,-1,107,105,106,105,111,-1,-1,-1,-1,-1,-1,-1,-1,101,101,34,101,23,101,3,22,101,101,108,108,107,105,105,105,105,-1,-1,7,36,101,49,101,101,108,108,108,108,53,8,21,9
+ -1,0,1,1,0,97,111,2,83,86,-1,56,57,80,78,60,79,77,82,104,104,61,100,90,63,93,98,99,101,58,59,85,-1,-1,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,84,111,87,1,89,111,106,-1,107,2,2,2,68,72,113,113,113,81,66,64,65,76,105,67,-1,104,-1,-1,-1,-1,104,-1,-1,-1,-1,-1,-1,62,92,91,88,94,95,101,101,101,101,71,-1,103,115,-1,-1,102,102,102,102,102,102,48,102,102,102,102,17,102,102,102,102,102,102,24,102,30,16,102,102,102,102,102,102,102,32,102,102,102,102,102,102,102,102,102,102,102,102,102,102,70,111,109,-1,108,111,106,112,106,111,2,110,112,113,69,75,104,104,104,-1,-1,105,104,104,104,104,104,104,104,-1,-1,104,-1,-1,104,73,96,74,-1,103,103,103,103,115,-1,-1,-1,106,-1,-1,-1,-1,102,102,31,102,102,102,102,102,102,11,102,102,102,29,12,102,102,102,41,102,102,102,102,40,33,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,18,102,102,102,109,111,111,112,112,112,-1,-1,-1,106,106,106,106,110,112,112,112,-1,-1,110,104,104,104,104,-1,115,115,114,-1,-1,-1,-1,102,102,102,102,102,102,102,26,9,102,102,102,102,14,102,102,102,102,28,102,47,42,102,102,102,102,102,102,44,102,102,25,45,13,102,102,52,102,109,109,109,109,111,-1,-1,109,-1,108,-1,-1,112,-1,-1,110,110,110,110,112,112,112,-1,-1,112,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,102,102,37,55,6,102,102,46,102,102,102,102,50,51,102,102,102,102,102,102,15,102,102,43,102,27,54,-1,-1,-1,-1,-1,109,-1,111,-1,-1,106,-1,-1,107,112,112,112,106,-1,112,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102,39,102,19,102,5,102,102,4,102,102,102,102,20,35,10,102,-1,109,109,109,109,109,-1,-1,108,106,107,106,112,-1,-1,-1,-1,-1,-1,-1,-1,102,102,34,102,23,102,3,22,102,102,109,109,108,106,106,106,106,-1,-1,7,36,102,49,102,102,109,109,109,109,53,8,21,9
};
static int parser_action_row1[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row2[] = {
1,
- -1, 1, 499
+ -1, 1, 562
};
static int parser_action_row3[] = {
1,
- -1, 1, 1112
+ -1, 1, 1299
};
static int parser_action_row4[] = {
4,
- -1, 1, 487,
+ -1, 1, 550,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
static int parser_action_row5[] = {
2,
-1, 3, 4,
- 114, 2, -1
+ 115, 2, -1
};
static int parser_action_row6[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row7[] = {
1,
- -1, 1, 1078
+ -1, 1, 1265
};
static int parser_action_row8[] = {
1,
- -1, 1, 1082
+ -1, 1, 1269
};
static int parser_action_row9[] = {
1,
};
static int parser_action_row12[] = {
1,
- -1, 1, 1080
+ -1, 1, 1267
};
static int parser_action_row13[] = {
2,
- -1, 1, 496,
- 114, 1, 23
+ -1, 1, 559,
+ 115, 1, 23
};
static int parser_action_row14[] = {
33,
37, 0, 42,
38, 0, 43,
39, 0, 44,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row15[] = {
3,
-1, 3, 14,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
static int parser_action_row16[] = {
1,
- -1, 1, 1114
+ -1, 1, 1301
};
static int parser_action_row17[] = {
4,
-1, 3, 16,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
static int parser_action_row18[] = {
1,
- -1, 1, 498
+ -1, 1, 561
};
static int parser_action_row19[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row20[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row21[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row22[] = {
7,
- -1, 1, 484,
+ -1, 1, 547,
0, 0, 102,
1, 0, 103,
- 10, 1, 1075,
- 29, 1, 1075,
- 98, 0, 104,
- 112, 1, 1075
+ 10, 1, 1262,
+ 29, 1, 1262,
+ 99, 0, 104,
+ 113, 1, 1262
};
static int parser_action_row23[] = {
7,
- -1, 1, 486,
+ -1, 1, 549,
0, 0, 1,
1, 0, 2,
- 10, 1, 1077,
- 29, 1, 1077,
- 98, 0, 105,
- 112, 1, 1077
+ 10, 1, 1264,
+ 29, 1, 1264,
+ 99, 0, 105,
+ 113, 1, 1264
};
static int parser_action_row24[] = {
1,
- -1, 1, 491
+ -1, 1, 554
};
static int parser_action_row25[] = {
4,
- -1, 1, 484,
+ -1, 1, 547,
0, 0, 102,
1, 0, 103,
- 98, 0, 104
+ 99, 0, 104
};
static int parser_action_row26[] = {
4,
- -1, 1, 486,
+ -1, 1, 549,
0, 0, 1,
1, 0, 2,
- 98, 0, 105
+ 99, 0, 105
};
static int parser_action_row27[] = {
1,
37, 0, 42,
38, 0, 43,
39, 0, 44,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row29[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row30[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row31[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row32[] = {
- 26,
- -1, 1, 452,
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 364,
- 76, 1, 364,
+ 57, 1, 426,
+ 76, 1, 426,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 426,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
static int parser_action_row33[] = {
1,
};
static int parser_action_row34[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 156,
+ 10, 0, 157,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row35[] = {
2,
-1, 3, 34,
- 100, 0, 161
+ 101, 0, 162
};
static int parser_action_row36[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row37[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row38[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 156,
+ 10, 0, 157,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row39[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row40[] = {
- 25,
+ 26,
-1, 1, 175,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row41[] = {
2,
-1, 1, 181,
- 50, 0, 197
+ 50, 0, 199
};
static int parser_action_row42[] = {
2,
-1, 1, 178,
- 50, 0, 197
+ 50, 0, 199
};
static int parser_action_row43[] = {
1,
-1, 1, 180
};
static int parser_action_row44[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 200,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 202,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row45[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row46[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row47[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row48[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row49[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row50[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row51[] = {
2,
-1, 3, 50,
- 12, 0, 211
+ 12, 0, 213
};
static int parser_action_row52[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row53[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row54[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row55[] = {
2,
-1, 3, 54,
- 61, 0, 215
+ 61, 0, 217
};
static int parser_action_row56[] = {
- 39,
- -1, 1, 452,
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 352,
- 61, 0, 216,
- 62, 0, 217,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 352,
+ 57, 1, 412,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 412,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 412,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
static int parser_action_row57[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row58[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row59[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row60[] = {
1,
- -1, 1, 407
+ -1, 1, 469
};
static int parser_action_row61[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row62[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
static int parser_action_row63[] = {
1,
-1, 1, 166,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
static int parser_action_row66[] = {
1,
-1, 1, 189
};
static int parser_action_row75[] = {
- 3,
+ 4,
-1, 3, 74,
- 57, 0, 244,
- 76, 0, 245
+ 57, 0, 246,
+ 76, 0, 247,
+ 97, 0, 248
};
static int parser_action_row76[] = {
1,
- -1, 1, 340
+ -1, 1, 391
};
static int parser_action_row77[] = {
1,
- -1, 1, 389
+ -1, 1, 451
};
static int parser_action_row78[] = {
1,
- -1, 1, 388
+ -1, 1, 450
};
static int parser_action_row79[] = {
3,
-1, 3, 78,
- 106, 0, 247,
- 107, 0, 248
+ 107, 0, 250,
+ 108, 0, 251
};
static int parser_action_row80[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row81[] = {
3,
-1, 3, 80,
- 42, 0, 254,
- 101, 0, 255
+ 42, 0, 257,
+ 102, 0, 258
};
static int parser_action_row82[] = {
1,
- -1, 1, 1110
+ -1, 1, 1297
};
static int parser_action_row83[] = {
3,
- -1, 1, 465,
- 13, 0, 256,
- 100, 0, 257
+ -1, 1, 528,
+ 13, 0, 259,
+ 101, 0, 260
};
static int parser_action_row84[] = {
4,
- -1, 1, 467,
- 13, 0, 258,
- 99, 0, 54,
- 100, 0, 259
+ -1, 1, 530,
+ 13, 0, 261,
+ 100, 0, 54,
+ 101, 0, 262
};
static int parser_action_row85[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row87[] = {
2,
-1, 3, 86,
- 112, 0, 263
+ 113, 0, 266
};
static int parser_action_row88[] = {
1,
};
static int parser_action_row89[] = {
1,
- -1, 1, 482
+ -1, 1, 545
};
static int parser_action_row90[] = {
1,
- -1, 1, 481
+ -1, 1, 544
};
static int parser_action_row91[] = {
1,
- -1, 1, 483
+ -1, 1, 546
};
static int parser_action_row92[] = {
1,
};
static int parser_action_row93[] = {
1,
- -1, 1, 1079
+ -1, 1, 1266
};
static int parser_action_row94[] = {
1,
};
static int parser_action_row95[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row96[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row97[] = {
1,
};
static int parser_action_row98[] = {
1,
- -1, 1, 1081
+ -1, 1, 1268
};
static int parser_action_row99[] = {
33,
37, 0, 42,
38, 0, 43,
39, 0, 44,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row100[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row101[] = {
1,
- -1, 1, 1083
+ -1, 1, 1270
};
static int parser_action_row102[] = {
1,
};
static int parser_action_row103[] = {
1,
- -1, 1, 500
+ -1, 1, 563
};
static int parser_action_row104[] = {
1,
- -1, 1, 1113
+ -1, 1, 1300
};
static int parser_action_row105[] = {
4,
- -1, 1, 489,
+ -1, 1, 552,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
static int parser_action_row106[] = {
4,
- -1, 1, 488,
+ -1, 1, 551,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
static int parser_action_row107[] = {
1,
- -1, 1, 1115
+ -1, 1, 1302
};
static int parser_action_row108[] = {
7,
- -1, 1, 485,
+ -1, 1, 548,
0, 0, 102,
1, 0, 103,
- 10, 1, 1076,
- 29, 1, 1076,
- 98, 0, 271,
- 112, 1, 1076
+ 10, 1, 1263,
+ 29, 1, 1263,
+ 99, 0, 274,
+ 113, 1, 1263
};
static int parser_action_row109[] = {
4,
- -1, 1, 485,
+ -1, 1, 548,
0, 0, 102,
1, 0, 103,
- 98, 0, 271
+ 99, 0, 274
};
static int parser_action_row110[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
static int parser_action_row111[] = {
1,
};
static int parser_action_row112[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 29, 1, 497,
- 98, 0, 3,
- 112, 1, 497,
- 114, 1, 22
+ 29, 1, 560,
+ 99, 0, 3,
+ 113, 1, 560,
+ 115, 1, 22
};
static int parser_action_row113[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row114[] = {
1,
};
static int parser_action_row115[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
static int parser_action_row116[] = {
1,
};
static int parser_action_row117[] = {
2,
- -1, 1, 784,
- 55, 0, 277
+ -1, 1, 945,
+ 55, 0, 280
};
static int parser_action_row118[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row119[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row120[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row121[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row122[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row123[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row124[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row125[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row126[] = {
14,
- -1, 1, 468,
+ -1, 1, 531,
13, 0, 116,
- 39, 0, 287,
+ 39, 0, 290,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
static int parser_action_row127[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row128[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row129[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row130[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+ 14,
+ -1, 1, 531,
+ 13, 0, 116,
+ 39, 0, 290,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 100, 0, 54,
+ 101, 0, 296,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row131[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row131[] = {
- 3,
- -1, 1, 772,
- 55, 0, 277,
- 61, 0, 216
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row132[] = {
- 2,
- -1, 1, 415,
- 97, 0, 204
+ 3,
+ -1, 1, 931,
+ 55, 0, 280,
+ 61, 0, 218
};
static int parser_action_row133[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row134[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row135[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row136[] = {
- 1,
- -1, 1, 808
+ 2,
+ -1, 1, 477,
+ 98, 0, 206
};
static int parser_action_row137[] = {
1,
- -1, 1, 363
+ -1, 1, 969
};
static int parser_action_row138[] = {
1,
- -1, 1, 200
+ -1, 1, 425
};
static int parser_action_row139[] = {
- 3,
- -1, 3, 138,
- 42, 0, 299,
- 101, 0, 300
+ 1,
+ -1, 1, 205
};
static int parser_action_row140[] = {
- 2,
- -1, 1, 465,
- 100, 0, 301
+ 3,
+ -1, 3, 139,
+ 42, 0, 306,
+ 102, 0, 307
};
static int parser_action_row141[] = {
- 1,
- -1, 1, 450
+ 2,
+ -1, 1, 528,
+ 101, 0, 308
};
static int parser_action_row142[] = {
- 4,
- -1, 1, 714,
- 30, 0, 302,
- 31, 0, 303,
- 33, 0, 304
+ 1,
+ -1, 1, 513
};
static int parser_action_row143[] = {
- 1,
- -1, 1, 716
+ 4,
+ -1, 1, 839,
+ 30, 0, 309,
+ 31, 0, 310,
+ 33, 0, 311
};
static int parser_action_row144[] = {
1,
- -1, 1, 721
+ -1, 1, 841
};
static int parser_action_row145[] = {
- 10,
- -1, 1, 723,
- 40, 0, 305,
- 83, 0, 306,
- 87, 0, 307,
- 88, 0, 308,
- 89, 0, 309,
- 90, 0, 310,
- 92, 0, 311,
- 93, 0, 312,
- 95, 0, 313
+ 1,
+ -1, 1, 846
};
static int parser_action_row146[] = {
- 2,
- -1, 1, 732,
- 84, 0, 314
+ 10,
+ -1, 1, 848,
+ 40, 0, 312,
+ 83, 0, 313,
+ 87, 0, 314,
+ 88, 0, 315,
+ 89, 0, 316,
+ 90, 0, 317,
+ 92, 0, 318,
+ 93, 0, 319,
+ 95, 0, 320
};
static int parser_action_row147[] = {
2,
- -1, 1, 734,
- 85, 0, 315
+ -1, 1, 857,
+ 84, 0, 321
};
static int parser_action_row148[] = {
- 3,
- -1, 1, 736,
- 91, 0, 316,
- 94, 0, 317
+ 2,
+ -1, 1, 859,
+ 85, 0, 322
};
static int parser_action_row149[] = {
3,
- -1, 1, 738,
- 77, 0, 318,
- 78, 0, 319
+ -1, 1, 861,
+ 91, 0, 323,
+ 94, 0, 324
};
static int parser_action_row150[] = {
- 4,
- -1, 1, 741,
- 79, 0, 320,
- 81, 0, 321,
- 82, 0, 322
+ 3,
+ -1, 1, 863,
+ 77, 0, 325,
+ 78, 0, 326
};
static int parser_action_row151[] = {
- 1,
- -1, 1, 744
+ 4,
+ -1, 1, 866,
+ 79, 0, 327,
+ 81, 0, 328,
+ 82, 0, 329
};
static int parser_action_row152[] = {
- 2,
- -1, 1, 748,
- 80, 0, 323
+ 1,
+ -1, 1, 869
};
static int parser_action_row153[] = {
- 1,
- -1, 1, 750
+ 2,
+ -1, 1, 873,
+ 80, 0, 330
};
static int parser_action_row154[] = {
- 3,
- -1, 1, 755,
- 57, 0, 244,
- 76, 0, 324
+ 1,
+ -1, 1, 875
};
static int parser_action_row155[] = {
- 1,
- -1, 1, 760
+ 4,
+ -1, 1, 880,
+ 57, 0, 246,
+ 76, 0, 331,
+ 97, 0, 332
};
static int parser_action_row156[] = {
- 3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 326
+ 1,
+ -1, 1, 910
};
static int parser_action_row157[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 334
+};
+static int parser_action_row158[] = {
2,
-1, 1, 164,
- 50, 1, 1001
+ 50, 1, 1188
};
-static int parser_action_row158[] = {
+static int parser_action_row159[] = {
1,
- -1, 1, 264
+ -1, 1, 290
};
-static int parser_action_row159[] = {
+static int parser_action_row160[] = {
1,
-1, 1, 165
};
-static int parser_action_row160[] = {
+static int parser_action_row161[] = {
31,
- -1, 1, 468,
- 10, 0, 328,
+ -1, 1, 531,
+ 10, 0, 336,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row161[] = {
+static int parser_action_row162[] = {
2,
- -1, 3, 160,
- 50, 0, 197
+ -1, 3, 161,
+ 50, 0, 199
};
-static int parser_action_row162[] = {
+static int parser_action_row163[] = {
3,
-1, 1, 161,
- 60, 0, 333,
- 97, 0, 204
+ 60, 0, 341,
+ 98, 0, 206
};
-static int parser_action_row163[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row164[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row164[] = {
+static int parser_action_row165[] = {
3,
- -1, 1, 1075,
+ -1, 1, 1262,
0, 0, 102,
1, 0, 103
};
-static int parser_action_row165[] = {
+static int parser_action_row166[] = {
3,
- -1, 1, 1077,
+ -1, 1, 1264,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row166[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row167[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row167[] = {
+static int parser_action_row168[] = {
1,
- -1, 1, 276
+ -1, 1, 302
};
-static int parser_action_row168[] = {
+static int parser_action_row169[] = {
31,
- -1, 1, 468,
- 10, 0, 328,
+ -1, 1, 531,
+ 10, 0, 336,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row169[] = {
- 2,
- -1, 3, 168,
- 50, 0, 197
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row170[] = {
- 3,
+ 2,
-1, 3, 169,
- 55, 0, 341,
- 100, 0, 342
+ 50, 0, 199
};
static int parser_action_row171[] = {
- 2,
- -1, 1, 364,
- 55, 0, 277
+ 3,
+ -1, 3, 170,
+ 55, 0, 349,
+ 101, 0, 350
};
static int parser_action_row172[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+ 2,
+ -1, 1, 426,
+ 55, 0, 280
};
static int parser_action_row173[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row174[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row175[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
static int parser_action_row176[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row177[] = {
16,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
39, 0, 44,
43, 0, 45,
44, 0, 46,
46, 0, 48,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row177[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row178[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row178[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row179[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row179[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row180[] = {
+ 16,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row180[] = {
- 3,
- -1, 1, 352,
- 55, 0, 277,
- 61, 0, 216
+ 100, 0, 54,
+ 101, 0, 363,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row181[] = {
- 1,
- -1, 1, 176
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row182[] = {
- 4,
- -1, 1, 294,
- 30, 0, 357,
- 31, 0, 358,
- 33, 0, 359
+ 3,
+ -1, 1, 412,
+ 55, 0, 280,
+ 61, 0, 218
};
static int parser_action_row183[] = {
1,
- -1, 1, 296
+ -1, 1, 176
};
static int parser_action_row184[] = {
- 1,
- -1, 1, 301
+ 4,
+ -1, 1, 320,
+ 30, 0, 369,
+ 31, 0, 370,
+ 33, 0, 371
};
static int parser_action_row185[] = {
- 10,
- -1, 1, 303,
- 40, 0, 360,
- 83, 0, 361,
- 87, 0, 362,
- 88, 0, 363,
- 89, 0, 364,
- 90, 0, 365,
- 92, 0, 366,
- 93, 0, 367,
- 95, 0, 368
+ 1,
+ -1, 1, 322
};
static int parser_action_row186[] = {
- 2,
- -1, 1, 312,
- 84, 0, 369
+ 1,
+ -1, 1, 327
};
static int parser_action_row187[] = {
- 2,
- -1, 1, 314,
- 85, 0, 370
+ 10,
+ -1, 1, 329,
+ 40, 0, 372,
+ 83, 0, 373,
+ 87, 0, 374,
+ 88, 0, 375,
+ 89, 0, 376,
+ 90, 0, 377,
+ 92, 0, 378,
+ 93, 0, 379,
+ 95, 0, 380
};
static int parser_action_row188[] = {
- 3,
- -1, 1, 316,
- 91, 0, 371,
- 94, 0, 372
+ 2,
+ -1, 1, 338,
+ 84, 0, 381
};
static int parser_action_row189[] = {
- 3,
- -1, 1, 318,
- 77, 0, 373,
- 78, 0, 374
+ 2,
+ -1, 1, 340,
+ 85, 0, 382
};
static int parser_action_row190[] = {
- 4,
- -1, 1, 321,
- 79, 0, 375,
- 81, 0, 376,
- 82, 0, 377
+ 3,
+ -1, 1, 342,
+ 91, 0, 383,
+ 94, 0, 384
};
static int parser_action_row191[] = {
- 1,
- -1, 1, 324
+ 3,
+ -1, 1, 344,
+ 77, 0, 385,
+ 78, 0, 386
};
static int parser_action_row192[] = {
- 2,
- -1, 1, 328,
- 80, 0, 378
+ 4,
+ -1, 1, 347,
+ 79, 0, 387,
+ 81, 0, 388,
+ 82, 0, 389
};
static int parser_action_row193[] = {
1,
- -1, 1, 330
+ -1, 1, 350
};
static int parser_action_row194[] = {
- 3,
- -1, 1, 335,
- 57, 0, 244,
- 76, 0, 379
+ 2,
+ -1, 1, 354,
+ 80, 0, 390
};
static int parser_action_row195[] = {
- 3,
- -1, 3, 194,
- 42, 0, 381,
- 101, 0, 382
+ 1,
+ -1, 1, 356
};
static int parser_action_row196[] = {
- 2,
- -1, 1, 465,
- 100, 0, 383
+ 4,
+ -1, 1, 361,
+ 57, 0, 246,
+ 76, 0, 391,
+ 97, 0, 392
};
static int parser_action_row197[] = {
3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 384
+ -1, 3, 196,
+ 42, 0, 394,
+ 102, 0, 395
};
static int parser_action_row198[] = {
2,
- -1, 1, 208,
- 100, 0, 386
+ -1, 1, 528,
+ 101, 0, 396
};
static int parser_action_row199[] = {
- 1,
- -1, 1, 182
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 397
};
static int parser_action_row200[] = {
- 1,
- -1, 1, 179
+ 2,
+ -1, 1, 216,
+ 101, 0, 399
};
static int parser_action_row201[] = {
- 4,
- -1, 1, 352,
- 55, 0, 277,
- 60, 0, 387,
- 61, 0, 216
+ 1,
+ -1, 1, 182
};
static int parser_action_row202[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 1,
+ -1, 1, 179
+};
+static int parser_action_row203[] = {
+ 4,
+ -1, 1, 412,
+ 55, 0, 280,
+ 60, 0, 400,
+ 61, 0, 218
+};
+static int parser_action_row204[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row203[] = {
+static int parser_action_row205[] = {
2,
- -1, 1, 291,
- 25, 0, 389
+ -1, 1, 317,
+ 25, 0, 402
};
-static int parser_action_row204[] = {
+static int parser_action_row206[] = {
4,
- -1, 3, 203,
- 48, 0, 390,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 205,
+ 48, 0, 403,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row205[] = {
+static int parser_action_row207[] = {
3,
-1, 1, 30,
14, 0, 32,
- 55, 0, 397
-};
-static int parser_action_row206[] = {
- 1,
- -1, 1, 414
-};
-static int parser_action_row207[] = {
- 1,
- -1, 1, 380
+ 55, 0, 410
};
static int parser_action_row208[] = {
1,
- -1, 1, 381
+ -1, 1, 476
};
static int parser_action_row209[] = {
1,
- -1, 1, 382
+ -1, 1, 442
};
static int parser_action_row210[] = {
1,
- -1, 1, 383
+ -1, 1, 443
};
static int parser_action_row211[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 1,
+ -1, 1, 444
+};
+static int parser_action_row212[] = {
+ 1,
+ -1, 1, 445
+};
+static int parser_action_row213[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 400,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 413,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row212[] = {
+static int parser_action_row214[] = {
4,
- -1, 3, 211,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 213,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row213[] = {
+static int parser_action_row215[] = {
1,
-1, 1, 177
};
-static int parser_action_row214[] = {
+static int parser_action_row216[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row215[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 454,
- 28, 0, 455,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row217[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 467,
+ 28, 0, 468,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row216[] = {
+static int parser_action_row218[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row217[] = {
+static int parser_action_row219[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row218[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row220[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row219[] = {
- 1,
- -1, 1, 252
-};
-static int parser_action_row220[] = {
- 1,
- -1, 1, 253
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row221[] = {
1,
- -1, 1, 254
+ -1, 1, 278
};
static int parser_action_row222[] = {
1,
- -1, 1, 255
+ -1, 1, 279
};
static int parser_action_row223[] = {
1,
- -1, 1, 256
+ -1, 1, 280
};
static int parser_action_row224[] = {
1,
- -1, 1, 257
+ -1, 1, 281
};
static int parser_action_row225[] = {
1,
- -1, 1, 258
+ -1, 1, 282
};
static int parser_action_row226[] = {
1,
- -1, 1, 259
+ -1, 1, 283
};
static int parser_action_row227[] = {
1,
- -1, 1, 260
+ -1, 1, 284
};
static int parser_action_row228[] = {
1,
- -1, 1, 261
+ -1, 1, 285
};
static int parser_action_row229[] = {
1,
- -1, 1, 262
+ -1, 1, 286
};
static int parser_action_row230[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 1,
+ -1, 1, 287
+};
+static int parser_action_row231[] = {
+ 1,
+ -1, 1, 288
+};
+static int parser_action_row232[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row231[] = {
- 13,
- -1, 1, 351,
- 62, 0, 463,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row232[] = {
- 1,
- -1, 1, 194
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
static int parser_action_row233[] = {
- 1,
- -1, 1, 384
+ 13,
+ -1, 1, 411,
+ 62, 0, 476,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
static int parser_action_row234[] = {
1,
- -1, 1, 385
+ -1, 1, 198
};
static int parser_action_row235[] = {
1,
- -1, 1, 387
+ -1, 1, 446
};
static int parser_action_row236[] = {
1,
- -1, 1, 386
+ -1, 1, 447
};
static int parser_action_row237[] = {
+ 1,
+ -1, 1, 449
+};
+static int parser_action_row238[] = {
+ 1,
+ -1, 1, 448
+};
+static int parser_action_row239[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row238[] = {
+static int parser_action_row240[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row239[] = {
+static int parser_action_row241[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row240[] = {
+static int parser_action_row242[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row241[] = {
+static int parser_action_row243[] = {
10,
- -1, 3, 240,
- 3, 0, 469,
- 4, 0, 470,
- 5, 0, 471,
- 6, 0, 472,
- 7, 0, 473,
- 8, 0, 474,
- 9, 0, 475,
- 11, 0, 476,
- 18, 0, 477
+ -1, 3, 242,
+ 3, 0, 482,
+ 4, 0, 483,
+ 5, 0, 484,
+ 6, 0, 485,
+ 7, 0, 486,
+ 8, 0, 487,
+ 9, 0, 488,
+ 11, 0, 489,
+ 18, 0, 490
};
-static int parser_action_row242[] = {
+static int parser_action_row244[] = {
1,
- -1, 1, 1096
+ -1, 1, 1283
};
-static int parser_action_row243[] = {
+static int parser_action_row245[] = {
32,
-1, 1, 168,
13, 0, 31,
37, 0, 42,
38, 0, 43,
39, 0, 44,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row244[] = {
+static int parser_action_row246[] = {
4,
-1, 1, 167,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row245[] = {
+static int parser_action_row247[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row246[] = {
+static int parser_action_row248[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row247[] = {
+static int parser_action_row249[] = {
+ 2,
+ -1, 3, 248,
+ 76, 0, 497
+};
+static int parser_action_row250[] = {
13,
- -1, 1, 365,
- 62, 0, 484,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 427,
+ 62, 0, 498,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row248[] = {
+static int parser_action_row251[] = {
1,
- -1, 1, 410
+ -1, 1, 472
};
-static int parser_action_row249[] = {
+static int parser_action_row252[] = {
1,
- -1, 1, 411
+ -1, 1, 473
};
-static int parser_action_row250[] = {
+static int parser_action_row253[] = {
1,
- -1, 1, 1102
+ -1, 1, 1289
};
-static int parser_action_row251[] = {
+static int parser_action_row254[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row252[] = {
+static int parser_action_row255[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row253[] = {
+static int parser_action_row256[] = {
3,
- -1, 3, 252,
- 106, 0, 247,
- 107, 0, 248
+ -1, 3, 255,
+ 107, 0, 250,
+ 108, 0, 251
};
-static int parser_action_row254[] = {
- 25,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row257[] = {
+ 26,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 106, 1, 406,
- 107, 1, 406,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 107, 1, 468,
+ 108, 1, 468,
+ 109, 0, 60
};
-static int parser_action_row255[] = {
- 26,
- -1, 1, 452,
+static int parser_action_row258[] = {
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 360,
- 76, 1, 360,
+ 57, 1, 420,
+ 76, 1, 420,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 420,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row256[] = {
+static int parser_action_row259[] = {
13,
- -1, 1, 342,
- 62, 0, 493,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 394,
+ 62, 0, 507,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row257[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row260[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row258[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row261[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 354,
- 62, 0, 497,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 354,
+ 57, 1, 414,
+ 62, 0, 511,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 414,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 414,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row259[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row262[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row260[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row263[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 358,
- 61, 0, 216,
- 62, 0, 502,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 358,
+ 57, 1, 418,
+ 61, 0, 218,
+ 62, 0, 516,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 418,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 418,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row261[] = {
+static int parser_action_row264[] = {
1,
- -1, 1, 1111
+ -1, 1, 1298
};
-static int parser_action_row262[] = {
+static int parser_action_row265[] = {
3,
- -1, 1, 466,
- 13, 0, 506,
- 100, 0, 507
+ -1, 1, 529,
+ 13, 0, 520,
+ 101, 0, 521
};
-static int parser_action_row263[] = {
+static int parser_action_row266[] = {
2,
- -1, 3, 262,
- 104, 0, 508
+ -1, 3, 265,
+ 105, 0, 522
};
-static int parser_action_row264[] = {
+static int parser_action_row267[] = {
1,
-1, 1, 145
};
-static int parser_action_row265[] = {
+static int parser_action_row268[] = {
1,
-1, 1, 6
};
-static int parser_action_row266[] = {
+static int parser_action_row269[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
-static int parser_action_row267[] = {
+static int parser_action_row270[] = {
1,
-1, 1, 10
};
-static int parser_action_row268[] = {
+static int parser_action_row271[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row269[] = {
+static int parser_action_row272[] = {
1,
-1, 1, 12
};
-static int parser_action_row270[] = {
+static int parser_action_row273[] = {
1,
- -1, 1, 493
+ -1, 1, 556
};
-static int parser_action_row271[] = {
+static int parser_action_row274[] = {
1,
- -1, 1, 492
+ -1, 1, 555
};
-static int parser_action_row272[] = {
+static int parser_action_row275[] = {
4,
- -1, 1, 490,
+ -1, 1, 553,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row273[] = {
+static int parser_action_row276[] = {
9,
- -1, 3, 272,
- 4, 0, 470,
- 5, 0, 471,
- 6, 0, 472,
- 7, 0, 473,
- 8, 0, 474,
- 9, 0, 475,
- 11, 0, 476,
- 18, 0, 477
+ -1, 3, 275,
+ 4, 0, 483,
+ 5, 0, 484,
+ 6, 0, 485,
+ 7, 0, 486,
+ 8, 0, 487,
+ 9, 0, 488,
+ 11, 0, 489,
+ 18, 0, 490
};
-static int parser_action_row274[] = {
+static int parser_action_row277[] = {
1,
-1, 1, 7
};
-static int parser_action_row275[] = {
+static int parser_action_row278[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3,
- 114, 1, 22
+ 99, 0, 3,
+ 115, 1, 22
};
-static int parser_action_row276[] = {
+static int parser_action_row279[] = {
1,
-1, 1, 11
};
-static int parser_action_row277[] = {
+static int parser_action_row280[] = {
1,
-1, 1, 13
};
-static int parser_action_row278[] = {
+static int parser_action_row281[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row279[] = {
+static int parser_action_row282[] = {
1,
- -1, 1, 783
+ -1, 1, 944
};
-static int parser_action_row280[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row283[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row281[] = {
- 20,
- -1, 1, 468,
+static int parser_action_row284[] = {
+ 21,
+ -1, 1, 531,
13, 0, 116,
32, 0, 118,
39, 0, 119,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row282[] = {
+static int parser_action_row285[] = {
4,
- -1, 3, 281,
- 48, 0, 390,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 284,
+ 48, 0, 403,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row283[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row286[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row284[] = {
+static int parser_action_row287[] = {
1,
- -1, 1, 800
+ -1, 1, 961
};
-static int parser_action_row285[] = {
+static int parser_action_row288[] = {
1,
- -1, 1, 801
+ -1, 1, 962
};
-static int parser_action_row286[] = {
+static int parser_action_row289[] = {
1,
- -1, 1, 802
+ -1, 1, 963
};
-static int parser_action_row287[] = {
+static int parser_action_row290[] = {
1,
- -1, 1, 803
+ -1, 1, 964
};
-static int parser_action_row288[] = {
+static int parser_action_row291[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row289[] = {
+static int parser_action_row292[] = {
3,
- -1, 3, 288,
- 42, 0, 299,
- 101, 0, 519
+ -1, 3, 291,
+ 42, 0, 306,
+ 102, 0, 533
};
-static int parser_action_row290[] = {
- 3,
- -1, 3, 289,
- 57, 0, 244,
- 76, 0, 520
+static int parser_action_row293[] = {
+ 4,
+ -1, 3, 292,
+ 57, 0, 246,
+ 76, 0, 534,
+ 97, 0, 535
};
-static int parser_action_row291[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row294[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
- 56, 0, 521,
+ 56, 0, 536,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 522,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 537,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row292[] = {
+static int parser_action_row295[] = {
1,
- -1, 1, 752
+ -1, 1, 877
};
-static int parser_action_row293[] = {
+static int parser_action_row296[] = {
1,
- -1, 1, 751
+ -1, 1, 876
};
-static int parser_action_row294[] = {
+static int parser_action_row297[] = {
+ 6,
+ -1, 1, 903,
+ 55, 0, 280,
+ 57, 1, 931,
+ 61, 0, 218,
+ 76, 1, 931,
+ 97, 1, 931
+};
+static int parser_action_row298[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 542
+};
+static int parser_action_row299[] = {
+ 4,
+ -1, 3, 298,
+ 57, 0, 246,
+ 76, 0, 543,
+ 97, 0, 544
+};
+static int parser_action_row300[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 545
+};
+static int parser_action_row301[] = {
1,
- -1, 1, 753
+ -1, 1, 878
};
-static int parser_action_row295[] = {
+static int parser_action_row302[] = {
1,
- -1, 1, 771
+ -1, 1, 930
};
-static int parser_action_row296[] = {
+static int parser_action_row303[] = {
1,
- -1, 1, 804
+ -1, 1, 965
};
-static int parser_action_row297[] = {
+static int parser_action_row304[] = {
1,
- -1, 1, 805
+ -1, 1, 966
};
-static int parser_action_row298[] = {
+static int parser_action_row305[] = {
1,
- -1, 1, 807
+ -1, 1, 968
};
-static int parser_action_row299[] = {
+static int parser_action_row306[] = {
1,
- -1, 1, 806
+ -1, 1, 967
};
-static int parser_action_row300[] = {
+static int parser_action_row307[] = {
2,
- -1, 1, 780,
- 55, 0, 277
+ -1, 1, 939,
+ 55, 0, 280
};
-static int parser_action_row301[] = {
+static int parser_action_row308[] = {
1,
- -1, 1, 762
+ -1, 1, 913
};
-static int parser_action_row302[] = {
+static int parser_action_row309[] = {
2,
- -1, 1, 774,
- 55, 0, 277
+ -1, 1, 933,
+ 55, 0, 280
};
-static int parser_action_row303[] = {
+static int parser_action_row310[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row304[] = {
+static int parser_action_row311[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 25, 0, 529
+ 25, 0, 550
};
-static int parser_action_row305[] = {
+static int parser_action_row312[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row306[] = {
+static int parser_action_row313[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row307[] = {
+static int parser_action_row314[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row308[] = {
+static int parser_action_row315[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row309[] = {
+static int parser_action_row316[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row310[] = {
+static int parser_action_row317[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row311[] = {
+static int parser_action_row318[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row312[] = {
+static int parser_action_row319[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row313[] = {
+static int parser_action_row320[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row314[] = {
+static int parser_action_row321[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row315[] = {
+static int parser_action_row322[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row316[] = {
+static int parser_action_row323[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row317[] = {
+static int parser_action_row324[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row318[] = {
+static int parser_action_row325[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row319[] = {
+static int parser_action_row326[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row320[] = {
+static int parser_action_row327[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row321[] = {
+static int parser_action_row328[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row322[] = {
+static int parser_action_row329[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row323[] = {
+static int parser_action_row330[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row324[] = {
+static int parser_action_row331[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row325[] = {
+static int parser_action_row332[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row326[] = {
+static int parser_action_row333[] = {
+ 2,
+ -1, 3, 332,
+ 76, 0, 573
+};
+static int parser_action_row334[] = {
1,
- -1, 1, 785
+ -1, 1, 946
};
-static int parser_action_row327[] = {
+static int parser_action_row335[] = {
3,
- -1, 1, 778,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 937,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row328[] = {
+static int parser_action_row336[] = {
2,
- -1, 1, 466,
- 100, 0, 553
+ -1, 1, 529,
+ 101, 0, 575
};
-static int parser_action_row329[] = {
+static int parser_action_row337[] = {
2,
-1, 1, 163,
- 50, 1, 1000
+ 50, 1, 1187
};
-static int parser_action_row330[] = {
+static int parser_action_row338[] = {
2,
- -1, 3, 329,
- 54, 0, 554
+ -1, 3, 337,
+ 54, 0, 576
};
-static int parser_action_row331[] = {
+static int parser_action_row339[] = {
2,
-1, 1, 162,
- 50, 1, 999
+ 50, 1, 1186
};
-static int parser_action_row332[] = {
+static int parser_action_row340[] = {
4,
- -1, 3, 331,
+ -1, 3, 339,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row333[] = {
+static int parser_action_row341[] = {
1,
- -1, 1, 263
+ -1, 1, 289
};
-static int parser_action_row334[] = {
+static int parser_action_row342[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row335[] = {
+static int parser_action_row343[] = {
2,
- -1, 1, 210,
- 62, 0, 558
+ -1, 1, 218,
+ 62, 0, 580
};
-static int parser_action_row336[] = {
+static int parser_action_row344[] = {
2,
-1, 1, 161,
- 60, 0, 333
+ 60, 0, 341
};
-static int parser_action_row337[] = {
+static int parser_action_row345[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row338[] = {
+static int parser_action_row346[] = {
3,
- -1, 1, 1076,
+ -1, 1, 1263,
0, 0, 102,
1, 0, 103
};
-static int parser_action_row339[] = {
+static int parser_action_row347[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row340[] = {
+static int parser_action_row348[] = {
4,
- -1, 3, 339,
+ -1, 3, 347,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row341[] = {
+static int parser_action_row349[] = {
1,
- -1, 1, 275
+ -1, 1, 301
};
-static int parser_action_row342[] = {
+static int parser_action_row350[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row343[] = {
+static int parser_action_row351[] = {
1,
- -1, 1, 459
+ -1, 1, 522
};
-static int parser_action_row344[] = {
+static int parser_action_row352[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row345[] = {
+static int parser_action_row353[] = {
1,
- -1, 1, 281
+ -1, 1, 307
};
-static int parser_action_row346[] = {
+static int parser_action_row354[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row347[] = {
+static int parser_action_row355[] = {
2,
- -1, 1, 458,
- 59, 0, 567
+ -1, 1, 521,
+ 59, 0, 589
};
-static int parser_action_row348[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row356[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row349[] = {
- 22,
- -1, 1, 468,
- 13, 0, 170,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row357[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 171,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row350[] = {
+static int parser_action_row358[] = {
4,
- -1, 3, 349,
- 48, 0, 390,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 357,
+ 48, 0, 403,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row351[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row359[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row352[] = {
- 3,
- -1, 3, 351,
- 57, 0, 244,
- 76, 0, 572
+static int parser_action_row360[] = {
+ 4,
+ -1, 3, 359,
+ 57, 0, 246,
+ 76, 0, 594,
+ 97, 0, 595
};
-static int parser_action_row353[] = {
+static int parser_action_row361[] = {
3,
- -1, 3, 352,
- 42, 0, 381,
- 101, 0, 573
+ -1, 3, 360,
+ 42, 0, 394,
+ 102, 0, 596
};
-static int parser_action_row354[] = {
+static int parser_action_row362[] = {
1,
- -1, 1, 332
+ -1, 1, 358
};
-static int parser_action_row355[] = {
+static int parser_action_row363[] = {
1,
- -1, 1, 331
+ -1, 1, 357
};
-static int parser_action_row356[] = {
+static int parser_action_row364[] = {
+ 6,
+ -1, 1, 384,
+ 55, 0, 280,
+ 57, 1, 412,
+ 61, 0, 218,
+ 76, 1, 412,
+ 97, 1, 412
+};
+static int parser_action_row365[] = {
+ 4,
+ -1, 3, 364,
+ 57, 0, 246,
+ 76, 0, 598,
+ 97, 0, 599
+};
+static int parser_action_row366[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 600
+};
+static int parser_action_row367[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 601
+};
+static int parser_action_row368[] = {
1,
- -1, 1, 333
+ -1, 1, 359
};
-static int parser_action_row357[] = {
+static int parser_action_row369[] = {
1,
- -1, 1, 351
+ -1, 1, 411
};
-static int parser_action_row358[] = {
+static int parser_action_row370[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row359[] = {
+static int parser_action_row371[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 25, 0, 575
+ 25, 0, 604
};
-static int parser_action_row360[] = {
+static int parser_action_row372[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row361[] = {
+static int parser_action_row373[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row362[] = {
+static int parser_action_row374[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row363[] = {
+static int parser_action_row375[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row364[] = {
+static int parser_action_row376[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row365[] = {
+static int parser_action_row377[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row366[] = {
+static int parser_action_row378[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row367[] = {
+static int parser_action_row379[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row368[] = {
+static int parser_action_row380[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row369[] = {
+static int parser_action_row381[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row370[] = {
+static int parser_action_row382[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row371[] = {
+static int parser_action_row383[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row372[] = {
+static int parser_action_row384[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row373[] = {
+static int parser_action_row385[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row374[] = {
+static int parser_action_row386[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row375[] = {
+static int parser_action_row387[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row376[] = {
+static int parser_action_row388[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row377[] = {
+static int parser_action_row389[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row378[] = {
+static int parser_action_row390[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row379[] = {
+static int parser_action_row391[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row380[] = {
+static int parser_action_row392[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row381[] = {
+static int parser_action_row393[] = {
+ 2,
+ -1, 3, 392,
+ 76, 0, 627
+};
+static int parser_action_row394[] = {
1,
- -1, 1, 365
+ -1, 1, 427
};
-static int parser_action_row382[] = {
+static int parser_action_row395[] = {
2,
- -1, 1, 360,
- 55, 0, 277
+ -1, 1, 420,
+ 55, 0, 280
};
-static int parser_action_row383[] = {
+static int parser_action_row396[] = {
1,
- -1, 1, 342
+ -1, 1, 394
};
-static int parser_action_row384[] = {
+static int parser_action_row397[] = {
2,
- -1, 1, 354,
- 55, 0, 277
+ -1, 1, 414,
+ 55, 0, 280
};
-static int parser_action_row385[] = {
+static int parser_action_row398[] = {
3,
- -1, 1, 358,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 418,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row386[] = {
+static int parser_action_row399[] = {
2,
- -1, 1, 466,
- 100, 0, 600
+ -1, 1, 529,
+ 101, 0, 630
};
-static int parser_action_row387[] = {
+static int parser_action_row400[] = {
1,
- -1, 1, 209
+ -1, 1, 217
};
-static int parser_action_row388[] = {
+static int parser_action_row401[] = {
1,
- -1, 1, 293
+ -1, 1, 319
};
-static int parser_action_row389[] = {
+static int parser_action_row402[] = {
2,
- -1, 1, 292,
- 25, 0, 601
+ -1, 1, 318,
+ 25, 0, 631
};
-static int parser_action_row390[] = {
+static int parser_action_row403[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row391[] = {
+static int parser_action_row404[] = {
3,
- -1, 3, 390,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 403,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row392[] = {
+static int parser_action_row405[] = {
2,
- -1, 1, 469,
- 61, 0, 215
+ -1, 1, 532,
+ 61, 0, 217
};
-static int parser_action_row393[] = {
+static int parser_action_row406[] = {
2,
- -1, 3, 392,
- 61, 0, 216
+ -1, 3, 405,
+ 61, 0, 218
};
-static int parser_action_row394[] = {
+static int parser_action_row407[] = {
3,
- -1, 1, 812,
- 57, 0, 606,
- 97, 0, 607
+ -1, 1, 973,
+ 57, 0, 636,
+ 98, 0, 637
};
-static int parser_action_row395[] = {
+static int parser_action_row408[] = {
2,
- -1, 3, 394,
- 99, 0, 610
+ -1, 3, 407,
+ 100, 0, 640
};
-static int parser_action_row396[] = {
+static int parser_action_row409[] = {
2,
- -1, 3, 395,
- 76, 0, 611
+ -1, 3, 408,
+ 76, 0, 641
};
-static int parser_action_row397[] = {
+static int parser_action_row410[] = {
3,
- -1, 3, 396,
- 99, 0, 612,
- 100, 0, 392
+ -1, 3, 409,
+ 100, 0, 642,
+ 101, 0, 405
};
-static int parser_action_row398[] = {
+static int parser_action_row411[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row399[] = {
+static int parser_action_row412[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row400[] = {
+static int parser_action_row413[] = {
1,
- -1, 1, 412
+ -1, 1, 474
};
-static int parser_action_row401[] = {
+static int parser_action_row414[] = {
6,
- -1, 1, 352,
- 55, 0, 277,
- 60, 0, 333,
- 61, 0, 216,
+ -1, 1, 412,
+ 55, 0, 280,
+ 60, 0, 341,
+ 61, 0, 218,
62, 1, 161,
- 97, 0, 204
+ 98, 0, 206
};
-static int parser_action_row402[] = {
+static int parser_action_row415[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row403[] = {
+static int parser_action_row416[] = {
1,
- -1, 1, 288
+ -1, 1, 314
};
-static int parser_action_row404[] = {
+static int parser_action_row417[] = {
3,
- -1, 3, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row405[] = {
+static int parser_action_row418[] = {
2,
- -1, 3, 404,
- 60, 0, 620
+ -1, 3, 417,
+ 60, 0, 650
};
-static int parser_action_row406[] = {
+static int parser_action_row419[] = {
3,
-1, 1, 149,
- 30, 0, 621,
- 31, 0, 622
+ 30, 0, 651,
+ 31, 0, 652
};
-static int parser_action_row407[] = {
+static int parser_action_row420[] = {
3,
- -1, 1, 415,
- 57, 0, 623,
- 97, 0, 204
+ -1, 1, 477,
+ 57, 0, 653,
+ 98, 0, 206
};
-static int parser_action_row408[] = {
- 25,
- -1, 1, 1007,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row421[] = {
+ 26,
+ -1, 1, 1194,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row409[] = {
+static int parser_action_row422[] = {
2,
- -1, 1, 1013,
- 50, 0, 197
+ -1, 1, 1200,
+ 50, 0, 199
};
-static int parser_action_row410[] = {
+static int parser_action_row423[] = {
2,
- -1, 1, 1010,
- 50, 0, 197
+ -1, 1, 1197,
+ 50, 0, 199
};
-static int parser_action_row411[] = {
+static int parser_action_row424[] = {
1,
- -1, 1, 1012
+ -1, 1, 1199
};
-static int parser_action_row412[] = {
+static int parser_action_row425[] = {
2,
- -1, 3, 411,
- 12, 0, 628
+ -1, 3, 424,
+ 12, 0, 658
};
-static int parser_action_row413[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row426[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row414[] = {
+static int parser_action_row427[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 58, 0, 630
+ 58, 0, 660
};
-static int parser_action_row415[] = {
- 23,
- -1, 1, 508,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row428[] = {
+ 24,
+ -1, 1, 571,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row416[] = {
- 23,
- -1, 1, 509,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row429[] = {
+ 24,
+ -1, 1, 572,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row417[] = {
- 1,
- -1, 1, 510
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row418[] = {
+static int parser_action_row430[] = {
1,
- -1, 1, 511
+ -1, 1, 573
};
-static int parser_action_row419[] = {
+static int parser_action_row431[] = {
1,
- -1, 1, 512
+ -1, 1, 574
};
-static int parser_action_row420[] = {
+static int parser_action_row432[] = {
1,
- -1, 1, 513
+ -1, 1, 575
};
-static int parser_action_row421[] = {
+static int parser_action_row433[] = {
1,
- -1, 1, 514
+ -1, 1, 576
};
-static int parser_action_row422[] = {
+static int parser_action_row434[] = {
1,
- -1, 1, 515
+ -1, 1, 577
};
-static int parser_action_row423[] = {
+static int parser_action_row435[] = {
1,
- -1, 1, 516
+ -1, 1, 578
};
-static int parser_action_row424[] = {
- 23,
- -1, 1, 517,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row436[] = {
+ 18,
+ -1, 1, 579,
+ 13, 0, 171,
+ 39, 0, 44,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 363,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row425[] = {
- 1,
- -1, 1, 518
-};
-static int parser_action_row426[] = {
+static int parser_action_row437[] = {
+ 24,
+ -1, 1, 580,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row438[] = {
1,
- -1, 1, 519
+ -1, 1, 581
};
-static int parser_action_row427[] = {
+static int parser_action_row439[] = {
1,
- -1, 1, 522
+ -1, 1, 582
};
-static int parser_action_row428[] = {
+static int parser_action_row440[] = {
1,
- -1, 1, 520
+ -1, 1, 585
};
-static int parser_action_row429[] = {
+static int parser_action_row441[] = {
1,
- -1, 1, 524
+ -1, 1, 583
};
-static int parser_action_row430[] = {
+static int parser_action_row442[] = {
1,
- -1, 1, 523
+ -1, 1, 587
};
-static int parser_action_row431[] = {
+static int parser_action_row443[] = {
1,
- -1, 1, 521
+ -1, 1, 586
};
-static int parser_action_row432[] = {
+static int parser_action_row444[] = {
1,
- -1, 1, 525
+ -1, 1, 584
};
-static int parser_action_row433[] = {
+static int parser_action_row445[] = {
1,
- -1, 1, 527
+ -1, 1, 588
};
-static int parser_action_row434[] = {
+static int parser_action_row446[] = {
+ 1,
+ -1, 1, 590
+};
+static int parser_action_row447[] = {
15,
- -1, 1, 352,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 631,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 412,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 661,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row435[] = {
+static int parser_action_row448[] = {
1,
- -1, 1, 438
+ -1, 1, 500
};
-static int parser_action_row436[] = {
+static int parser_action_row449[] = {
1,
- -1, 1, 1005
+ -1, 1, 1192
};
-static int parser_action_row437[] = {
+static int parser_action_row450[] = {
1,
- -1, 1, 1006
+ -1, 1, 1193
};
-static int parser_action_row438[] = {
+static int parser_action_row451[] = {
1,
- -1, 1, 1015
+ -1, 1, 1202
};
-static int parser_action_row439[] = {
+static int parser_action_row452[] = {
1,
- -1, 1, 1017
+ -1, 1, 1204
};
-static int parser_action_row440[] = {
+static int parser_action_row453[] = {
1,
- -1, 1, 1016
+ -1, 1, 1203
};
-static int parser_action_row441[] = {
+static int parser_action_row454[] = {
1,
- -1, 1, 1018
+ -1, 1, 1205
};
-static int parser_action_row442[] = {
+static int parser_action_row455[] = {
1,
- -1, 1, 1019
+ -1, 1, 1206
};
-static int parser_action_row443[] = {
+static int parser_action_row456[] = {
1,
- -1, 1, 1020
+ -1, 1, 1207
};
-static int parser_action_row444[] = {
+static int parser_action_row457[] = {
1,
- -1, 1, 439
+ -1, 1, 501
};
-static int parser_action_row445[] = {
- 3,
- -1, 1, 335,
- 57, 0, 244,
- 76, 0, 632
+static int parser_action_row458[] = {
+ 4,
+ -1, 1, 361,
+ 57, 0, 246,
+ 76, 0, 662,
+ 97, 0, 663
};
-static int parser_action_row446[] = {
+static int parser_action_row459[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row447[] = {
+static int parser_action_row460[] = {
1,
- -1, 1, 443
+ -1, 1, 506
};
-static int parser_action_row448[] = {
+static int parser_action_row461[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 59, 0, 634
+ 59, 0, 665
};
-static int parser_action_row449[] = {
+static int parser_action_row462[] = {
3,
- -1, 3, 448,
- 42, 0, 381,
- 101, 0, 255
+ -1, 3, 461,
+ 42, 0, 394,
+ 102, 0, 258
};
-static int parser_action_row450[] = {
+static int parser_action_row463[] = {
23,
- -1, 1, 465,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 610,
- 100, 0, 642
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 640,
+ 101, 0, 674
};
-static int parser_action_row451[] = {
+static int parser_action_row464[] = {
1,
- -1, 1, 530
+ -1, 1, 593
};
-static int parser_action_row452[] = {
+static int parser_action_row465[] = {
1,
- -1, 1, 442
+ -1, 1, 505
};
-static int parser_action_row453[] = {
+static int parser_action_row466[] = {
1,
- -1, 1, 440
+ -1, 1, 502
};
-static int parser_action_row454[] = {
+static int parser_action_row467[] = {
23,
- -1, 1, 467,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 612,
- 100, 0, 644
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 642,
+ 101, 0, 676
};
-static int parser_action_row455[] = {
+static int parser_action_row468[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row456[] = {
+static int parser_action_row469[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row457[] = {
+static int parser_action_row470[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row458[] = {
+static int parser_action_row471[] = {
2,
-1, 1, 161,
- 60, 0, 333
+ 60, 0, 341
};
-static int parser_action_row459[] = {
+static int parser_action_row472[] = {
2,
- -1, 1, 397,
- 59, 0, 651
+ -1, 1, 459,
+ 59, 0, 683
};
-static int parser_action_row460[] = {
+static int parser_action_row473[] = {
1,
- -1, 1, 478
+ -1, 1, 541
};
-static int parser_action_row461[] = {
+static int parser_action_row474[] = {
1,
- -1, 1, 477
+ -1, 1, 540
};
-static int parser_action_row462[] = {
+static int parser_action_row475[] = {
1,
- -1, 1, 225
+ -1, 1, 242
};
-static int parser_action_row463[] = {
+static int parser_action_row476[] = {
1,
- -1, 1, 244
+ -1, 1, 270
};
-static int parser_action_row464[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row477[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row465[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row478[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row466[] = {
+static int parser_action_row479[] = {
1,
-1, 1, 85
};
-static int parser_action_row467[] = {
+static int parser_action_row480[] = {
1,
-1, 1, 87
};
-static int parser_action_row468[] = {
+static int parser_action_row481[] = {
1,
-1, 1, 86
};
-static int parser_action_row469[] = {
+static int parser_action_row482[] = {
1,
-1, 1, 88
};
-static int parser_action_row470[] = {
+static int parser_action_row483[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row471[] = {
+static int parser_action_row484[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row472[] = {
+static int parser_action_row485[] = {
1,
-1, 1, 32
};
-static int parser_action_row473[] = {
+static int parser_action_row486[] = {
2,
- -1, 3, 472,
- 5, 0, 658
+ -1, 3, 485,
+ 5, 0, 690
};
-static int parser_action_row474[] = {
+static int parser_action_row487[] = {
1,
-1, 1, 34
};
-static int parser_action_row475[] = {
+static int parser_action_row488[] = {
1,
-1, 1, 35
};
-static int parser_action_row476[] = {
+static int parser_action_row489[] = {
1,
-1, 1, 37
};
-static int parser_action_row477[] = {
+static int parser_action_row490[] = {
23,
- -1, 3, 476,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ -1, 3, 489,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row478[] = {
+static int parser_action_row491[] = {
2,
- -1, 3, 477,
- 5, 0, 684
+ -1, 3, 490,
+ 5, 0, 716
};
-static int parser_action_row479[] = {
+static int parser_action_row492[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row480[] = {
+static int parser_action_row493[] = {
1,
-1, 1, 172
};
-static int parser_action_row481[] = {
+static int parser_action_row494[] = {
1,
- -1, 1, 1097
+ -1, 1, 1284
};
-static int parser_action_row482[] = {
+static int parser_action_row495[] = {
32,
-1, 1, 169,
13, 0, 31,
37, 0, 42,
38, 0, 43,
39, 0, 44,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row483[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row496[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 522,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 537,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row484[] = {
+static int parser_action_row497[] = {
5,
- -1, 1, 468,
- 13, 0, 687,
- 47, 0, 688,
- 99, 0, 54,
- 100, 0, 689
+ -1, 1, 531,
+ 13, 0, 719,
+ 47, 0, 720,
+ 100, 0, 54,
+ 101, 0, 721
};
-static int parser_action_row485[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row498[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row499[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row486[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row500[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row487[] = {
- 25,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row501[] = {
+ 26,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 106, 1, 409,
- 107, 1, 409,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 107, 1, 471,
+ 108, 1, 471,
+ 109, 0, 60
};
-static int parser_action_row488[] = {
+static int parser_action_row502[] = {
1,
- -1, 1, 403
+ -1, 1, 465
};
-static int parser_action_row489[] = {
+static int parser_action_row503[] = {
1,
- -1, 1, 1103
+ -1, 1, 1290
};
-static int parser_action_row490[] = {
+static int parser_action_row504[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row491[] = {
+static int parser_action_row505[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row492[] = {
+static int parser_action_row506[] = {
1,
- -1, 1, 359
+ -1, 1, 419
};
-static int parser_action_row493[] = {
+static int parser_action_row507[] = {
1,
- -1, 1, 198
+ -1, 1, 202
};
-static int parser_action_row494[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row508[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row495[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row509[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row496[] = {
+static int parser_action_row510[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row497[] = {
+static int parser_action_row511[] = {
1,
- -1, 1, 204
+ -1, 1, 212
};
-static int parser_action_row498[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row512[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row499[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row513[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row500[] = {
+static int parser_action_row514[] = {
13,
- -1, 1, 353,
- 62, 0, 703,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 413,
+ 62, 0, 736,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row501[] = {
+static int parser_action_row515[] = {
1,
- -1, 1, 195
+ -1, 1, 199
};
-static int parser_action_row502[] = {
+static int parser_action_row516[] = {
1,
- -1, 1, 206
+ -1, 1, 214
};
-static int parser_action_row503[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row517[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row504[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row518[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row505[] = {
+static int parser_action_row519[] = {
13,
- -1, 1, 357,
- 62, 0, 707,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 417,
+ 62, 0, 740,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row506[] = {
+static int parser_action_row520[] = {
1,
- -1, 1, 197
+ -1, 1, 201
};
-static int parser_action_row507[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row521[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row508[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row522[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 356,
- 62, 0, 710,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 356,
+ 57, 1, 416,
+ 62, 0, 743,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 416,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 416,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row509[] = {
+static int parser_action_row523[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row510[] = {
+static int parser_action_row524[] = {
1,
-1, 1, 14
};
-static int parser_action_row511[] = {
+static int parser_action_row525[] = {
8,
- -1, 3, 510,
- 5, 0, 471,
- 6, 0, 472,
- 7, 0, 473,
- 8, 0, 474,
- 9, 0, 475,
- 11, 0, 476,
- 18, 0, 477
+ -1, 3, 524,
+ 5, 0, 484,
+ 6, 0, 485,
+ 7, 0, 486,
+ 8, 0, 487,
+ 9, 0, 488,
+ 11, 0, 489,
+ 18, 0, 490
};
-static int parser_action_row512[] = {
+static int parser_action_row526[] = {
1,
- -1, 1, 494
+ -1, 1, 557
};
-static int parser_action_row513[] = {
+static int parser_action_row527[] = {
1,
-1, 1, 15
};
-static int parser_action_row514[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row528[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
- 56, 0, 715,
+ 56, 0, 748,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 522,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 537,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row515[] = {
+static int parser_action_row529[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row516[] = {
+static int parser_action_row530[] = {
1,
- -1, 1, 722
+ -1, 1, 847
};
-static int parser_action_row517[] = {
+static int parser_action_row531[] = {
3,
- -1, 1, 757,
- 55, 0, 277,
- 76, 0, 718
+ -1, 1, 882,
+ 55, 0, 280,
+ 76, 0, 751
};
-static int parser_action_row518[] = {
+static int parser_action_row532[] = {
1,
- -1, 1, 754
+ -1, 1, 879
};
-static int parser_action_row519[] = {
+static int parser_action_row533[] = {
4,
- -1, 3, 518,
- 48, 0, 390,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 532,
+ 48, 0, 403,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row520[] = {
- 3,
- -1, 1, 759,
- 57, 1, 762,
- 76, 1, 762
+static int parser_action_row534[] = {
+ 4,
+ -1, 1, 885,
+ 57, 1, 913,
+ 76, 1, 913,
+ 97, 1, 913
};
-static int parser_action_row521[] = {
+static int parser_action_row535[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row522[] = {
+static int parser_action_row536[] = {
+ 2,
+ -1, 3, 535,
+ 76, 0, 755
+};
+static int parser_action_row537[] = {
9,
- -1, 1, 448,
- 0, 1, 451,
- 1, 1, 451,
- 10, 1, 451,
- 25, 1, 451,
- 56, 1, 451,
- 59, 1, 451,
- 98, 1, 451,
- 114, 1, 451
+ -1, 1, 511,
+ 0, 1, 514,
+ 1, 1, 514,
+ 10, 1, 514,
+ 25, 1, 514,
+ 56, 1, 514,
+ 59, 1, 514,
+ 99, 1, 514,
+ 115, 1, 514
};
-static int parser_action_row523[] = {
+static int parser_action_row538[] = {
4,
- -1, 1, 352,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 722
+ -1, 1, 412,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 756
};
-static int parser_action_row524[] = {
+static int parser_action_row539[] = {
2,
- -1, 1, 377,
- 74, 0, 723
+ -1, 1, 439,
+ 74, 0, 757
};
-static int parser_action_row525[] = {
+static int parser_action_row540[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row526[] = {
+static int parser_action_row541[] = {
2,
- -1, 3, 525,
- 56, 0, 725
+ -1, 3, 540,
+ 56, 0, 759
};
-static int parser_action_row527[] = {
+static int parser_action_row542[] = {
+ 4,
+ -1, 1, 902,
+ 57, 1, 930,
+ 76, 1, 930,
+ 97, 1, 930
+};
+static int parser_action_row543[] = {
+ 5,
+ -1, 1, 905,
+ 55, 0, 280,
+ 57, 1, 933,
+ 76, 1, 933,
+ 97, 1, 933
+};
+static int parser_action_row544[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row545[] = {
+ 2,
+ -1, 3, 544,
+ 76, 0, 762
+};
+static int parser_action_row546[] = {
+ 6,
+ -1, 1, 909,
+ 55, 0, 280,
+ 57, 1, 937,
+ 61, 0, 218,
+ 76, 1, 937,
+ 97, 1, 937
+};
+static int parser_action_row547[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 764
+};
+static int parser_action_row548[] = {
1,
- -1, 1, 779
+ -1, 1, 938
};
-static int parser_action_row528[] = {
+static int parser_action_row549[] = {
1,
- -1, 1, 773
+ -1, 1, 932
};
-static int parser_action_row529[] = {
- 20,
- -1, 1, 468,
+static int parser_action_row550[] = {
+ 21,
+ -1, 1, 531,
13, 0, 116,
32, 0, 118,
39, 0, 119,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row530[] = {
+static int parser_action_row551[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row531[] = {
- 20,
- -1, 1, 468,
+static int parser_action_row552[] = {
+ 21,
+ -1, 1, 531,
13, 0, 116,
32, 0, 118,
39, 0, 119,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row532[] = {
- 20,
- -1, 1, 468,
+static int parser_action_row553[] = {
+ 21,
+ -1, 1, 531,
13, 0, 116,
32, 0, 118,
39, 0, 119,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row533[] = {
+static int parser_action_row554[] = {
4,
- -1, 3, 532,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 553,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row534[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row555[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row535[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row556[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row536[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row557[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row537[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row558[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row538[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row559[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row539[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row560[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row540[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row561[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row541[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row562[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row542[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row563[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row543[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row564[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row544[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row565[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row545[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row566[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row546[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row567[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row547[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row568[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row548[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row569[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row549[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row570[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row550[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row571[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row551[] = {
- 19,
- -1, 1, 468,
+static int parser_action_row572[] = {
+ 20,
+ -1, 1, 531,
13, 0, 116,
39, 0, 119,
41, 0, 120,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row552[] = {
+static int parser_action_row573[] = {
5,
- -1, 1, 468,
- 13, 0, 749,
- 47, 0, 750,
- 99, 0, 54,
- 100, 0, 751
+ -1, 1, 531,
+ 13, 0, 788,
+ 47, 0, 789,
+ 100, 0, 54,
+ 101, 0, 790
};
-static int parser_action_row553[] = {
+static int parser_action_row574[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row575[] = {
1,
- -1, 1, 777
+ -1, 1, 936
};
-static int parser_action_row554[] = {
+static int parser_action_row576[] = {
2,
- -1, 1, 776,
- 55, 0, 277
+ -1, 1, 935,
+ 55, 0, 280
};
-static int parser_action_row555[] = {
+static int parser_action_row577[] = {
5,
- -1, 3, 554,
+ -1, 3, 576,
0, 0, 1,
1, 0, 2,
- 10, 0, 756,
- 98, 0, 3
+ 10, 0, 796,
+ 99, 0, 3
};
-static int parser_action_row556[] = {
+static int parser_action_row578[] = {
32,
- -1, 1, 468,
- 10, 0, 759,
+ -1, 1, 531,
+ 10, 0, 799,
13, 0, 31,
16, 0, 33,
17, 0, 34,
54, 1, 168,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row557[] = {
+static int parser_action_row579[] = {
4,
- -1, 3, 556,
+ -1, 3, 578,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row558[] = {
+static int parser_action_row580[] = {
4,
- -1, 3, 557,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 579,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row559[] = {
+static int parser_action_row581[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row560[] = {
+static int parser_action_row582[] = {
2,
- -1, 1, 211,
- 62, 0, 763
+ -1, 1, 219,
+ 62, 0, 803
};
-static int parser_action_row561[] = {
+static int parser_action_row583[] = {
2,
- -1, 3, 560,
- 24, 0, 764
+ -1, 3, 582,
+ 24, 0, 804
};
-static int parser_action_row562[] = {
+static int parser_action_row584[] = {
2,
- -1, 3, 561,
- 16, 0, 765
+ -1, 3, 583,
+ 16, 0, 805
};
-static int parser_action_row563[] = {
+static int parser_action_row585[] = {
31,
- -1, 1, 468,
- 10, 0, 759,
+ -1, 1, 531,
+ 10, 0, 799,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row564[] = {
+static int parser_action_row586[] = {
4,
- -1, 3, 563,
+ -1, 3, 585,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row565[] = {
+static int parser_action_row587[] = {
2,
- -1, 3, 564,
- 100, 0, 342
+ -1, 3, 586,
+ 101, 0, 350
};
-static int parser_action_row566[] = {
+static int parser_action_row588[] = {
3,
- -1, 3, 565,
- 16, 0, 768,
- 59, 0, 769
+ -1, 3, 587,
+ 16, 0, 808,
+ 59, 0, 809
};
-static int parser_action_row567[] = {
+static int parser_action_row589[] = {
2,
- -1, 3, 566,
- 29, 0, 770
+ -1, 3, 588,
+ 29, 0, 810
};
-static int parser_action_row568[] = {
+static int parser_action_row590[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row569[] = {
+static int parser_action_row591[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row570[] = {
+static int parser_action_row592[] = {
1,
- -1, 1, 302
+ -1, 1, 328
};
-static int parser_action_row571[] = {
+static int parser_action_row593[] = {
3,
- -1, 1, 337,
- 55, 0, 277,
- 76, 0, 611
+ -1, 1, 363,
+ 55, 0, 280,
+ 76, 0, 641
};
-static int parser_action_row572[] = {
+static int parser_action_row594[] = {
1,
- -1, 1, 334
+ -1, 1, 360
};
-static int parser_action_row573[] = {
+static int parser_action_row595[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row574[] = {
- 3,
- -1, 1, 339,
- 57, 1, 342,
- 76, 1, 342
+static int parser_action_row596[] = {
+ 2,
+ -1, 3, 595,
+ 76, 0, 815
};
-static int parser_action_row575[] = {
- 22,
- -1, 1, 468,
- 13, 0, 170,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row597[] = {
+ 4,
+ -1, 1, 366,
+ 57, 1, 394,
+ 76, 1, 394,
+ 97, 1, 394
+};
+static int parser_action_row598[] = {
+ 4,
+ -1, 1, 383,
+ 57, 1, 411,
+ 76, 1, 411,
+ 97, 1, 411
+};
+static int parser_action_row599[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row600[] = {
+ 2,
+ -1, 3, 599,
+ 76, 0, 817
+};
+static int parser_action_row601[] = {
+ 5,
+ -1, 1, 386,
+ 55, 0, 280,
+ 57, 1, 414,
+ 76, 1, 414,
+ 97, 1, 414
+};
+static int parser_action_row602[] = {
+ 6,
+ -1, 1, 390,
+ 55, 0, 280,
+ 57, 1, 418,
+ 61, 0, 218,
+ 76, 1, 418,
+ 97, 1, 418
+};
+static int parser_action_row603[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 820
+};
+static int parser_action_row604[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 171,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row576[] = {
+static int parser_action_row605[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row577[] = {
- 22,
- -1, 1, 468,
- 13, 0, 170,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row606[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 171,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row578[] = {
- 22,
- -1, 1, 468,
- 13, 0, 170,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row607[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 171,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row579[] = {
+static int parser_action_row608[] = {
4,
- -1, 3, 578,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 607,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row580[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row609[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row581[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row610[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row582[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row611[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row583[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row612[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row584[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row613[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row585[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row614[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row586[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row615[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row587[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row616[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row588[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row617[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row589[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row618[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row590[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row619[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row591[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row620[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row592[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row621[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row593[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row622[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row594[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row623[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row595[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row624[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row596[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row625[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row597[] = {
- 21,
- -1, 1, 468,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row626[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row598[] = {
+static int parser_action_row627[] = {
5,
- -1, 1, 468,
- 13, 0, 798,
- 47, 0, 688,
- 99, 0, 54,
- 100, 0, 799
+ -1, 1, 531,
+ 13, 0, 844,
+ 47, 0, 720,
+ 100, 0, 54,
+ 101, 0, 845
};
-static int parser_action_row599[] = {
+static int parser_action_row628[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row629[] = {
1,
- -1, 1, 353
+ -1, 1, 413
};
-static int parser_action_row600[] = {
+static int parser_action_row630[] = {
1,
- -1, 1, 357
+ -1, 1, 417
};
-static int parser_action_row601[] = {
+static int parser_action_row631[] = {
2,
- -1, 1, 356,
- 55, 0, 277
+ -1, 1, 416,
+ 55, 0, 280
};
-static int parser_action_row602[] = {
+static int parser_action_row632[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row603[] = {
+static int parser_action_row633[] = {
1,
-1, 1, 164
};
-static int parser_action_row604[] = {
+static int parser_action_row634[] = {
1,
- -1, 1, 289
+ -1, 1, 315
};
-static int parser_action_row605[] = {
+static int parser_action_row635[] = {
31,
- -1, 1, 468,
- 10, 0, 805,
+ -1, 1, 531,
+ 10, 0, 852,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row606[] = {
+static int parser_action_row636[] = {
3,
- -1, 1, 812,
- 57, 0, 807,
- 97, 0, 607
+ -1, 1, 973,
+ 57, 0, 854,
+ 98, 0, 637
};
-static int parser_action_row607[] = {
+static int parser_action_row637[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row608[] = {
+static int parser_action_row638[] = {
3,
-1, 1, 30,
14, 0, 32,
- 55, 0, 810
+ 55, 0, 857
};
-static int parser_action_row609[] = {
+static int parser_action_row639[] = {
1,
- -1, 1, 811
+ -1, 1, 972
};
-static int parser_action_row610[] = {
+static int parser_action_row640[] = {
1,
- -1, 1, 637
+ -1, 1, 736
};
-static int parser_action_row611[] = {
+static int parser_action_row641[] = {
1,
- -1, 1, 470
+ -1, 1, 533
};
-static int parser_action_row612[] = {
+static int parser_action_row642[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row613[] = {
+static int parser_action_row643[] = {
2,
- -1, 1, 472,
- 61, 0, 215
+ -1, 1, 535,
+ 61, 0, 217
};
-static int parser_action_row614[] = {
+static int parser_action_row644[] = {
2,
- -1, 3, 613,
- 99, 0, 814
+ -1, 3, 643,
+ 100, 0, 861
};
-static int parser_action_row615[] = {
+static int parser_action_row645[] = {
2,
-1, 1, 30,
14, 0, 32
};
-static int parser_action_row616[] = {
+static int parser_action_row646[] = {
4,
- -1, 3, 615,
- 6, 0, 818,
- 18, 0, 819,
- 100, 0, 820
+ -1, 3, 645,
+ 6, 0, 865,
+ 18, 0, 866,
+ 101, 0, 867
};
-static int parser_action_row617[] = {
+static int parser_action_row647[] = {
2,
- -1, 3, 616,
- 62, 0, 822
+ -1, 3, 646,
+ 62, 0, 869
};
-static int parser_action_row618[] = {
+static int parser_action_row648[] = {
2,
-1, 1, 161,
- 60, 0, 333
+ 60, 0, 341
};
-static int parser_action_row619[] = {
+static int parser_action_row649[] = {
2,
- -1, 3, 618,
- 16, 0, 824
+ -1, 3, 648,
+ 16, 0, 871
};
-static int parser_action_row620[] = {
+static int parser_action_row650[] = {
3,
- -1, 1, 415,
- 57, 0, 825,
- 97, 0, 204
+ -1, 1, 477,
+ 57, 0, 872,
+ 98, 0, 206
};
-static int parser_action_row621[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row651[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row622[] = {
+static int parser_action_row652[] = {
4,
- -1, 3, 621,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 651,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row623[] = {
+static int parser_action_row653[] = {
4,
- -1, 3, 622,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 652,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row624[] = {
+static int parser_action_row654[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row625[] = {
+static int parser_action_row655[] = {
1,
-1, 1, 152
};
-static int parser_action_row626[] = {
+static int parser_action_row656[] = {
1,
- -1, 1, 1008
+ -1, 1, 1195
};
-static int parser_action_row627[] = {
+static int parser_action_row657[] = {
1,
- -1, 1, 1014
+ -1, 1, 1201
};
-static int parser_action_row628[] = {
+static int parser_action_row658[] = {
1,
- -1, 1, 1011
+ -1, 1, 1198
};
-static int parser_action_row629[] = {
+static int parser_action_row659[] = {
4,
- -1, 3, 628,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 658,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row630[] = {
+static int parser_action_row660[] = {
1,
- -1, 1, 1009
+ -1, 1, 1196
};
-static int parser_action_row631[] = {
+static int parser_action_row661[] = {
2,
- -1, 1, 526,
- 62, 0, 832
+ -1, 1, 589,
+ 62, 0, 879
};
-static int parser_action_row632[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row662[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row633[] = {
+static int parser_action_row663[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row634[] = {
+static int parser_action_row664[] = {
2,
- -1, 3, 633,
- 56, 0, 834
+ -1, 3, 663,
+ 76, 0, 881
};
-static int parser_action_row635[] = {
+static int parser_action_row665[] = {
+ 2,
+ -1, 3, 664,
+ 56, 0, 882
+};
+static int parser_action_row666[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row636[] = {
+static int parser_action_row667[] = {
1,
- -1, 1, 1098
+ -1, 1, 1285
};
-static int parser_action_row637[] = {
+static int parser_action_row668[] = {
2,
- -1, 3, 636,
- 56, 0, 836
+ -1, 3, 667,
+ 56, 0, 884
};
-static int parser_action_row638[] = {
+static int parser_action_row669[] = {
2,
- -1, 1, 395,
- 59, 0, 634
+ -1, 1, 457,
+ 59, 0, 665
};
-static int parser_action_row639[] = {
+static int parser_action_row670[] = {
2,
- -1, 3, 638,
- 58, 0, 630
+ -1, 3, 669,
+ 58, 0, 660
};
-static int parser_action_row640[] = {
+static int parser_action_row671[] = {
1,
- -1, 1, 508
+ -1, 1, 571
};
-static int parser_action_row641[] = {
+static int parser_action_row672[] = {
1,
- -1, 1, 509
+ -1, 1, 572
};
-static int parser_action_row642[] = {
+static int parser_action_row673[] = {
1,
- -1, 1, 517
+ -1, 1, 579
};
-static int parser_action_row643[] = {
+static int parser_action_row674[] = {
+ 1,
+ -1, 1, 580
+};
+static int parser_action_row675[] = {
14,
- -1, 1, 354,
- 55, 0, 277,
- 62, 0, 838,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 414,
+ 55, 0, 280,
+ 62, 0, 886,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row644[] = {
+static int parser_action_row676[] = {
1,
- -1, 1, 531
+ -1, 1, 594
};
-static int parser_action_row645[] = {
+static int parser_action_row677[] = {
15,
- -1, 1, 358,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 839,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 418,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 887,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row646[] = {
+static int parser_action_row678[] = {
23,
- -1, 1, 466,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 814,
- 100, 0, 840
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 861,
+ 101, 0, 888
};
-static int parser_action_row647[] = {
+static int parser_action_row679[] = {
1,
- -1, 1, 533
+ -1, 1, 596
};
-static int parser_action_row648[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row680[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row649[] = {
+static int parser_action_row681[] = {
3,
- -1, 3, 648,
- 55, 0, 341,
- 100, 0, 342
+ -1, 3, 680,
+ 55, 0, 349,
+ 101, 0, 350
};
-static int parser_action_row650[] = {
+static int parser_action_row682[] = {
2,
- -1, 1, 400,
- 75, 0, 844
+ -1, 1, 462,
+ 75, 0, 892
};
-static int parser_action_row651[] = {
+static int parser_action_row683[] = {
2,
- -1, 3, 650,
- 58, 0, 845
+ -1, 3, 682,
+ 58, 0, 893
};
-static int parser_action_row652[] = {
+static int parser_action_row684[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row653[] = {
+static int parser_action_row685[] = {
1,
- -1, 1, 1100
+ -1, 1, 1287
};
-static int parser_action_row654[] = {
+static int parser_action_row686[] = {
2,
- -1, 1, 398,
- 59, 0, 651
+ -1, 1, 460,
+ 59, 0, 683
};
-static int parser_action_row655[] = {
+static int parser_action_row687[] = {
1,
- -1, 1, 224
+ -1, 1, 241
};
-static int parser_action_row656[] = {
+static int parser_action_row688[] = {
1,
- -1, 1, 243
+ -1, 1, 269
};
-static int parser_action_row657[] = {
+static int parser_action_row689[] = {
3,
- -1, 3, 656,
- 61, 0, 848,
- 100, 0, 849
+ -1, 3, 688,
+ 61, 0, 896,
+ 101, 0, 897
};
-static int parser_action_row658[] = {
+static int parser_action_row690[] = {
4,
- -1, 3, 657,
- 10, 0, 852,
- 61, 0, 848,
- 100, 0, 849
+ -1, 3, 689,
+ 10, 0, 900,
+ 61, 0, 896,
+ 101, 0, 897
};
-static int parser_action_row659[] = {
+static int parser_action_row691[] = {
1,
-1, 1, 33
};
-static int parser_action_row660[] = {
+static int parser_action_row692[] = {
2,
- -1, 3, 659,
- 58, 0, 854
+ -1, 3, 691,
+ 58, 0, 902
};
-static int parser_action_row661[] = {
+static int parser_action_row693[] = {
1,
-1, 1, 89
};
-static int parser_action_row662[] = {
+static int parser_action_row694[] = {
1,
-1, 1, 90
};
-static int parser_action_row663[] = {
+static int parser_action_row695[] = {
1,
-1, 1, 91
};
-static int parser_action_row664[] = {
+static int parser_action_row696[] = {
1,
-1, 1, 92
};
-static int parser_action_row665[] = {
+static int parser_action_row697[] = {
1,
-1, 1, 93
};
-static int parser_action_row666[] = {
+static int parser_action_row698[] = {
1,
-1, 1, 94
};
-static int parser_action_row667[] = {
+static int parser_action_row699[] = {
1,
-1, 1, 95
};
-static int parser_action_row668[] = {
+static int parser_action_row700[] = {
1,
-1, 1, 96
};
-static int parser_action_row669[] = {
+static int parser_action_row701[] = {
1,
-1, 1, 97
};
-static int parser_action_row670[] = {
+static int parser_action_row702[] = {
1,
-1, 1, 98
};
-static int parser_action_row671[] = {
+static int parser_action_row703[] = {
1,
-1, 1, 99
};
-static int parser_action_row672[] = {
+static int parser_action_row704[] = {
1,
-1, 1, 100
};
-static int parser_action_row673[] = {
+static int parser_action_row705[] = {
1,
-1, 1, 103
};
-static int parser_action_row674[] = {
+static int parser_action_row706[] = {
1,
-1, 1, 101
};
-static int parser_action_row675[] = {
+static int parser_action_row707[] = {
1,
-1, 1, 105
};
-static int parser_action_row676[] = {
+static int parser_action_row708[] = {
1,
-1, 1, 104
};
-static int parser_action_row677[] = {
+static int parser_action_row709[] = {
1,
-1, 1, 102
};
-static int parser_action_row678[] = {
+static int parser_action_row710[] = {
1,
-1, 1, 106
};
-static int parser_action_row679[] = {
+static int parser_action_row711[] = {
1,
-1, 1, 108
};
-static int parser_action_row680[] = {
+static int parser_action_row712[] = {
3,
-1, 1, 111,
- 61, 0, 216,
- 62, 0, 855
+ 61, 0, 218,
+ 62, 0, 903
};
-static int parser_action_row681[] = {
+static int parser_action_row713[] = {
1,
- -1, 1, 473
+ -1, 1, 536
};
-static int parser_action_row682[] = {
+static int parser_action_row714[] = {
5,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 60, 0, 857
+ 55, 0, 904,
+ 60, 0, 905
};
-static int parser_action_row683[] = {
+static int parser_action_row715[] = {
22,
- -1, 3, 682,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 100, 0, 861
+ -1, 3, 714,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 101, 0, 909
};
-static int parser_action_row684[] = {
+static int parser_action_row716[] = {
23,
- -1, 3, 683,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ -1, 3, 715,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row685[] = {
+static int parser_action_row717[] = {
1,
-1, 1, 36
};
-static int parser_action_row686[] = {
+static int parser_action_row718[] = {
3,
- -1, 3, 685,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 717,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row687[] = {
+static int parser_action_row719[] = {
2,
- -1, 3, 686,
- 58, 0, 866
+ -1, 3, 718,
+ 58, 0, 914
};
-static int parser_action_row688[] = {
- 26,
- -1, 1, 452,
+static int parser_action_row720[] = {
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 362,
- 76, 1, 362,
+ 57, 1, 422,
+ 76, 1, 422,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 422,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row689[] = {
+static int parser_action_row721[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row690[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row722[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 344,
- 61, 0, 216,
- 62, 0, 870,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 344,
+ 57, 1, 396,
+ 61, 0, 218,
+ 62, 0, 918,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 396,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 396,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row691[] = {
+static int parser_action_row723[] = {
2,
- -1, 3, 690,
- 101, 0, 874
+ -1, 3, 722,
+ 102, 0, 922
};
-static int parser_action_row692[] = {
+static int parser_action_row724[] = {
3,
- -1, 1, 465,
- 13, 0, 875,
- 100, 0, 876
+ -1, 1, 528,
+ 13, 0, 923,
+ 101, 0, 924
};
-static int parser_action_row693[] = {
+static int parser_action_row725[] = {
4,
- -1, 1, 467,
- 13, 0, 877,
- 99, 0, 54,
- 100, 0, 878
+ -1, 1, 530,
+ 13, 0, 925,
+ 100, 0, 54,
+ 101, 0, 926
};
-static int parser_action_row694[] = {
+static int parser_action_row726[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 928,
+ 100, 0, 54,
+ 101, 0, 929
+};
+static int parser_action_row727[] = {
1,
- -1, 1, 232
+ -1, 1, 249
};
-static int parser_action_row695[] = {
+static int parser_action_row728[] = {
1,
- -1, 1, 251
+ -1, 1, 277
};
-static int parser_action_row696[] = {
+static int parser_action_row729[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row697[] = {
+static int parser_action_row730[] = {
1,
- -1, 1, 404
+ -1, 1, 466
};
-static int parser_action_row698[] = {
+static int parser_action_row731[] = {
1,
- -1, 1, 405
+ -1, 1, 467
};
-static int parser_action_row699[] = {
+static int parser_action_row732[] = {
1,
- -1, 1, 215
+ -1, 1, 224
};
-static int parser_action_row700[] = {
+static int parser_action_row733[] = {
1,
- -1, 1, 234
+ -1, 1, 252
};
-static int parser_action_row701[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row734[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
- 56, 0, 881,
+ 56, 0, 934,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 522,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 537,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row702[] = {
+static int parser_action_row735[] = {
1,
- -1, 1, 227
+ -1, 1, 244
};
-static int parser_action_row703[] = {
+static int parser_action_row736[] = {
1,
- -1, 1, 246
+ -1, 1, 272
};
-static int parser_action_row704[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row737[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row705[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row738[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row706[] = {
+static int parser_action_row739[] = {
1,
- -1, 1, 231
+ -1, 1, 248
};
-static int parser_action_row707[] = {
+static int parser_action_row740[] = {
1,
- -1, 1, 250
+ -1, 1, 276
};
-static int parser_action_row708[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row741[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row709[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row742[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row710[] = {
+static int parser_action_row743[] = {
1,
- -1, 1, 205
+ -1, 1, 213
};
-static int parser_action_row711[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row744[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row712[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row745[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row713[] = {
+static int parser_action_row746[] = {
13,
- -1, 1, 355,
- 62, 0, 889,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 415,
+ 62, 0, 942,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row714[] = {
+static int parser_action_row747[] = {
1,
- -1, 1, 196
+ -1, 1, 200
};
-static int parser_action_row715[] = {
+static int parser_action_row748[] = {
1,
-1, 1, 143
};
-static int parser_action_row716[] = {
+static int parser_action_row749[] = {
1,
- -1, 1, 448
+ -1, 1, 511
};
-static int parser_action_row717[] = {
+static int parser_action_row750[] = {
2,
- -1, 3, 716,
- 56, 0, 891
+ -1, 3, 749,
+ 56, 0, 944
};
-static int parser_action_row718[] = {
+static int parser_action_row751[] = {
2,
- -1, 3, 717,
- 24, 0, 892
+ -1, 3, 750,
+ 24, 0, 945
};
-static int parser_action_row719[] = {
+static int parser_action_row752[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row720[] = {
+static int parser_action_row753[] = {
1,
- -1, 1, 756
+ -1, 1, 881
};
-static int parser_action_row721[] = {
+static int parser_action_row754[] = {
2,
- -1, 3, 720,
- 76, 0, 718
+ -1, 3, 753,
+ 76, 0, 751
};
-static int parser_action_row722[] = {
+static int parser_action_row755[] = {
5,
- -1, 1, 468,
- 13, 0, 749,
- 47, 0, 750,
- 99, 0, 54,
- 100, 0, 751
+ -1, 1, 531,
+ 13, 0, 788,
+ 47, 0, 789,
+ 100, 0, 54,
+ 101, 0, 790
};
-static int parser_action_row723[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row756[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row757[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row724[] = {
+static int parser_action_row758[] = {
1,
- -1, 1, 378
+ -1, 1, 440
};
-static int parser_action_row725[] = {
+static int parser_action_row759[] = {
2,
- -1, 1, 454,
- 59, 0, 896
+ -1, 1, 517,
+ 59, 0, 950
};
-static int parser_action_row726[] = {
+static int parser_action_row760[] = {
9,
- -1, 1, 447,
- 0, 1, 449,
- 1, 1, 449,
- 10, 1, 449,
- 25, 1, 449,
- 56, 1, 449,
- 59, 1, 449,
- 98, 1, 449,
- 114, 1, 449
+ -1, 1, 510,
+ 0, 1, 512,
+ 1, 1, 512,
+ 10, 1, 512,
+ 25, 1, 512,
+ 56, 1, 512,
+ 59, 1, 512,
+ 99, 1, 512,
+ 115, 1, 512
};
-static int parser_action_row727[] = {
+static int parser_action_row761[] = {
+ 4,
+ -1, 1, 904,
+ 57, 1, 932,
+ 76, 1, 932,
+ 97, 1, 932
+};
+static int parser_action_row762[] = {
+ 5,
+ -1, 1, 531,
+ 13, 0, 788,
+ 47, 0, 789,
+ 100, 0, 54,
+ 101, 0, 953
+};
+static int parser_action_row763[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row764[] = {
+ 4,
+ -1, 1, 908,
+ 57, 1, 936,
+ 76, 1, 936,
+ 97, 1, 936
+};
+static int parser_action_row765[] = {
+ 5,
+ -1, 1, 907,
+ 55, 0, 280,
+ 57, 1, 935,
+ 76, 1, 935,
+ 97, 1, 935
+};
+static int parser_action_row766[] = {
1,
- -1, 1, 718
+ -1, 1, 843
};
-static int parser_action_row728[] = {
- 20,
- -1, 1, 468,
+static int parser_action_row767[] = {
+ 21,
+ -1, 1, 531,
13, 0, 116,
32, 0, 118,
39, 0, 119,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row729[] = {
+static int parser_action_row768[] = {
1,
- -1, 1, 717
+ -1, 1, 842
};
-static int parser_action_row730[] = {
+static int parser_action_row769[] = {
1,
- -1, 1, 720
+ -1, 1, 845
};
-static int parser_action_row731[] = {
+static int parser_action_row770[] = {
1,
- -1, 1, 731
+ -1, 1, 856
};
-static int parser_action_row732[] = {
+static int parser_action_row771[] = {
2,
- -1, 1, 733,
- 84, 0, 314
+ -1, 1, 858,
+ 84, 0, 321
};
-static int parser_action_row733[] = {
+static int parser_action_row772[] = {
2,
- -1, 1, 724,
- 83, 0, 306
+ -1, 1, 849,
+ 83, 0, 313
};
-static int parser_action_row734[] = {
+static int parser_action_row773[] = {
2,
- -1, 1, 725,
- 83, 0, 306
+ -1, 1, 850,
+ 83, 0, 313
};
-static int parser_action_row735[] = {
+static int parser_action_row774[] = {
2,
- -1, 1, 726,
- 83, 0, 306
+ -1, 1, 851,
+ 83, 0, 313
};
-static int parser_action_row736[] = {
+static int parser_action_row775[] = {
2,
- -1, 1, 727,
- 83, 0, 306
+ -1, 1, 852,
+ 83, 0, 313
};
-static int parser_action_row737[] = {
+static int parser_action_row776[] = {
2,
- -1, 1, 728,
- 83, 0, 306
+ -1, 1, 853,
+ 83, 0, 313
};
-static int parser_action_row738[] = {
+static int parser_action_row777[] = {
2,
- -1, 1, 729,
- 83, 0, 306
+ -1, 1, 854,
+ 83, 0, 313
};
-static int parser_action_row739[] = {
+static int parser_action_row778[] = {
2,
- -1, 1, 730,
- 83, 0, 306
+ -1, 1, 855,
+ 83, 0, 313
};
-static int parser_action_row740[] = {
+static int parser_action_row779[] = {
2,
- -1, 1, 735,
- 85, 0, 315
+ -1, 1, 860,
+ 85, 0, 322
};
-static int parser_action_row741[] = {
+static int parser_action_row780[] = {
3,
- -1, 1, 737,
- 91, 0, 316,
- 94, 0, 317
+ -1, 1, 862,
+ 91, 0, 323,
+ 94, 0, 324
};
-static int parser_action_row742[] = {
+static int parser_action_row781[] = {
3,
- -1, 1, 739,
- 77, 0, 318,
- 78, 0, 319
+ -1, 1, 864,
+ 77, 0, 325,
+ 78, 0, 326
};
-static int parser_action_row743[] = {
+static int parser_action_row782[] = {
3,
- -1, 1, 740,
- 77, 0, 318,
- 78, 0, 319
+ -1, 1, 865,
+ 77, 0, 325,
+ 78, 0, 326
};
-static int parser_action_row744[] = {
+static int parser_action_row783[] = {
4,
- -1, 1, 742,
- 79, 0, 320,
- 81, 0, 321,
- 82, 0, 322
+ -1, 1, 867,
+ 79, 0, 327,
+ 81, 0, 328,
+ 82, 0, 329
};
-static int parser_action_row745[] = {
+static int parser_action_row784[] = {
4,
- -1, 1, 743,
- 79, 0, 320,
- 81, 0, 321,
- 82, 0, 322
+ -1, 1, 868,
+ 79, 0, 327,
+ 81, 0, 328,
+ 82, 0, 329
};
-static int parser_action_row746[] = {
+static int parser_action_row785[] = {
1,
- -1, 1, 745
+ -1, 1, 870
};
-static int parser_action_row747[] = {
+static int parser_action_row786[] = {
1,
- -1, 1, 746
+ -1, 1, 871
};
-static int parser_action_row748[] = {
+static int parser_action_row787[] = {
1,
- -1, 1, 747
+ -1, 1, 872
};
-static int parser_action_row749[] = {
+static int parser_action_row788[] = {
1,
- -1, 1, 749
+ -1, 1, 874
};
-static int parser_action_row750[] = {
+static int parser_action_row789[] = {
2,
- -1, 1, 782,
- 55, 0, 277
+ -1, 1, 941,
+ 55, 0, 280
};
-static int parser_action_row751[] = {
+static int parser_action_row790[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row752[] = {
+static int parser_action_row791[] = {
3,
- -1, 1, 764,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 915,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row753[] = {
+static int parser_action_row792[] = {
2,
- -1, 3, 752,
- 101, 0, 903
+ -1, 3, 791,
+ 102, 0, 962
};
-static int parser_action_row754[] = {
+static int parser_action_row793[] = {
2,
- -1, 1, 465,
- 100, 0, 904
+ -1, 1, 528,
+ 101, 0, 963
};
-static int parser_action_row755[] = {
+static int parser_action_row794[] = {
3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 905
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 964
};
-static int parser_action_row756[] = {
+static int parser_action_row795[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 966,
+ 100, 0, 54,
+ 101, 0, 967
+};
+static int parser_action_row796[] = {
1,
- -1, 1, 775
+ -1, 1, 934
};
-static int parser_action_row757[] = {
+static int parser_action_row797[] = {
1,
- -1, 1, 1001
+ -1, 1, 1188
};
-static int parser_action_row758[] = {
+static int parser_action_row798[] = {
31,
- -1, 1, 468,
- 10, 0, 907,
+ -1, 1, 531,
+ 10, 0, 971,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row759[] = {
+static int parser_action_row799[] = {
1,
- -1, 1, 265
+ -1, 1, 291
};
-static int parser_action_row760[] = {
+static int parser_action_row800[] = {
1,
-1, 1, 170
};
-static int parser_action_row761[] = {
+static int parser_action_row801[] = {
32,
- -1, 1, 468,
- 10, 0, 909,
+ -1, 1, 531,
+ 10, 0, 973,
13, 0, 31,
16, 0, 33,
17, 0, 34,
54, 1, 169,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row762[] = {
+static int parser_action_row802[] = {
1,
-1, 1, 160
};
-static int parser_action_row763[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row803[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row764[] = {
+static int parser_action_row804[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row765[] = {
+static int parser_action_row805[] = {
35,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 912,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 976,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 25, 0, 916,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 25, 0, 980,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row766[] = {
+static int parser_action_row806[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 156,
+ 10, 0, 157,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row767[] = {
+static int parser_action_row807[] = {
31,
- -1, 1, 468,
- 10, 0, 909,
+ -1, 1, 531,
+ 10, 0, 973,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row768[] = {
+static int parser_action_row808[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 59, 0, 567
+ 59, 0, 589
};
-static int parser_action_row769[] = {
+static int parser_action_row809[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 156,
+ 10, 0, 157,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row770[] = {
+static int parser_action_row810[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row771[] = {
+static int parser_action_row811[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row772[] = {
+static int parser_action_row812[] = {
2,
- -1, 3, 771,
- 100, 0, 953
+ -1, 3, 811,
+ 101, 0, 1017
};
-static int parser_action_row773[] = {
+static int parser_action_row813[] = {
2,
- -1, 3, 772,
- 24, 0, 954
+ -1, 3, 812,
+ 24, 0, 1018
};
-static int parser_action_row774[] = {
+static int parser_action_row814[] = {
1,
- -1, 1, 336
+ -1, 1, 362
};
-static int parser_action_row775[] = {
+static int parser_action_row815[] = {
5,
- -1, 1, 468,
- 13, 0, 798,
- 47, 0, 688,
- 99, 0, 54,
- 100, 0, 799
+ -1, 1, 531,
+ 13, 0, 844,
+ 47, 0, 720,
+ 100, 0, 54,
+ 101, 0, 845
};
-static int parser_action_row776[] = {
+static int parser_action_row816[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row817[] = {
+ 5,
+ -1, 1, 531,
+ 13, 0, 844,
+ 47, 0, 720,
+ 100, 0, 54,
+ 101, 0, 1021
+};
+static int parser_action_row818[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row819[] = {
+ 4,
+ -1, 1, 385,
+ 57, 1, 413,
+ 76, 1, 413,
+ 97, 1, 413
+};
+static int parser_action_row820[] = {
+ 4,
+ -1, 1, 389,
+ 57, 1, 417,
+ 76, 1, 417,
+ 97, 1, 417
+};
+static int parser_action_row821[] = {
+ 5,
+ -1, 1, 388,
+ 55, 0, 280,
+ 57, 1, 416,
+ 76, 1, 416,
+ 97, 1, 416
+};
+static int parser_action_row822[] = {
1,
- -1, 1, 298
+ -1, 1, 324
};
-static int parser_action_row777[] = {
- 22,
- -1, 1, 468,
- 13, 0, 170,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row823[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 171,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row778[] = {
+static int parser_action_row824[] = {
1,
- -1, 1, 297
+ -1, 1, 323
};
-static int parser_action_row779[] = {
+static int parser_action_row825[] = {
1,
- -1, 1, 300
+ -1, 1, 326
};
-static int parser_action_row780[] = {
+static int parser_action_row826[] = {
1,
- -1, 1, 311
+ -1, 1, 337
};
-static int parser_action_row781[] = {
+static int parser_action_row827[] = {
2,
- -1, 1, 313,
- 84, 0, 369
+ -1, 1, 339,
+ 84, 0, 381
};
-static int parser_action_row782[] = {
+static int parser_action_row828[] = {
2,
- -1, 1, 304,
- 83, 0, 361
+ -1, 1, 330,
+ 83, 0, 373
};
-static int parser_action_row783[] = {
+static int parser_action_row829[] = {
2,
- -1, 1, 305,
- 83, 0, 361
+ -1, 1, 331,
+ 83, 0, 373
};
-static int parser_action_row784[] = {
+static int parser_action_row830[] = {
2,
- -1, 1, 306,
- 83, 0, 361
+ -1, 1, 332,
+ 83, 0, 373
};
-static int parser_action_row785[] = {
+static int parser_action_row831[] = {
2,
- -1, 1, 307,
- 83, 0, 361
+ -1, 1, 333,
+ 83, 0, 373
};
-static int parser_action_row786[] = {
+static int parser_action_row832[] = {
2,
- -1, 1, 308,
- 83, 0, 361
+ -1, 1, 334,
+ 83, 0, 373
};
-static int parser_action_row787[] = {
+static int parser_action_row833[] = {
2,
- -1, 1, 309,
- 83, 0, 361
+ -1, 1, 335,
+ 83, 0, 373
};
-static int parser_action_row788[] = {
+static int parser_action_row834[] = {
2,
- -1, 1, 310,
- 83, 0, 361
+ -1, 1, 336,
+ 83, 0, 373
};
-static int parser_action_row789[] = {
+static int parser_action_row835[] = {
2,
- -1, 1, 315,
- 85, 0, 370
+ -1, 1, 341,
+ 85, 0, 382
};
-static int parser_action_row790[] = {
+static int parser_action_row836[] = {
3,
- -1, 1, 317,
- 91, 0, 371,
- 94, 0, 372
+ -1, 1, 343,
+ 91, 0, 383,
+ 94, 0, 384
};
-static int parser_action_row791[] = {
+static int parser_action_row837[] = {
3,
- -1, 1, 319,
- 77, 0, 373,
- 78, 0, 374
+ -1, 1, 345,
+ 77, 0, 385,
+ 78, 0, 386
};
-static int parser_action_row792[] = {
+static int parser_action_row838[] = {
3,
- -1, 1, 320,
- 77, 0, 373,
- 78, 0, 374
+ -1, 1, 346,
+ 77, 0, 385,
+ 78, 0, 386
};
-static int parser_action_row793[] = {
+static int parser_action_row839[] = {
4,
- -1, 1, 322,
- 79, 0, 375,
- 81, 0, 376,
- 82, 0, 377
+ -1, 1, 348,
+ 79, 0, 387,
+ 81, 0, 388,
+ 82, 0, 389
};
-static int parser_action_row794[] = {
+static int parser_action_row840[] = {
4,
- -1, 1, 323,
- 79, 0, 375,
- 81, 0, 376,
- 82, 0, 377
+ -1, 1, 349,
+ 79, 0, 387,
+ 81, 0, 388,
+ 82, 0, 389
};
-static int parser_action_row795[] = {
+static int parser_action_row841[] = {
1,
- -1, 1, 325
+ -1, 1, 351
};
-static int parser_action_row796[] = {
+static int parser_action_row842[] = {
1,
- -1, 1, 326
+ -1, 1, 352
};
-static int parser_action_row797[] = {
+static int parser_action_row843[] = {
1,
- -1, 1, 327
+ -1, 1, 353
};
-static int parser_action_row798[] = {
+static int parser_action_row844[] = {
1,
- -1, 1, 329
+ -1, 1, 355
};
-static int parser_action_row799[] = {
+static int parser_action_row845[] = {
2,
- -1, 1, 362,
- 55, 0, 277
+ -1, 1, 422,
+ 55, 0, 280
};
-static int parser_action_row800[] = {
+static int parser_action_row846[] = {
3,
- -1, 1, 344,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 396,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row801[] = {
+static int parser_action_row847[] = {
2,
- -1, 3, 800,
- 101, 0, 958
+ -1, 3, 846,
+ 102, 0, 1028
};
-static int parser_action_row802[] = {
+static int parser_action_row848[] = {
2,
- -1, 1, 465,
- 100, 0, 959
+ -1, 1, 528,
+ 101, 0, 1029
};
-static int parser_action_row803[] = {
+static int parser_action_row849[] = {
3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 960
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1030
};
-static int parser_action_row804[] = {
+static int parser_action_row850[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1032,
+ 100, 0, 54,
+ 101, 0, 1033
+};
+static int parser_action_row851[] = {
1,
- -1, 1, 355
+ -1, 1, 415
};
-static int parser_action_row805[] = {
+static int parser_action_row852[] = {
1,
- -1, 1, 290
+ -1, 1, 316
};
-static int parser_action_row806[] = {
+static int parser_action_row853[] = {
1,
-1, 1, 163
};
-static int parser_action_row807[] = {
+static int parser_action_row854[] = {
1,
-1, 1, 162
};
-static int parser_action_row808[] = {
+static int parser_action_row855[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row809[] = {
+static int parser_action_row856[] = {
1,
- -1, 1, 638
+ -1, 1, 737
};
-static int parser_action_row810[] = {
+static int parser_action_row857[] = {
4,
- -1, 3, 809,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 856,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row811[] = {
+static int parser_action_row858[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row812[] = {
+static int parser_action_row859[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row813[] = {
+static int parser_action_row860[] = {
1,
- -1, 1, 809
+ -1, 1, 970
};
-static int parser_action_row814[] = {
+static int parser_action_row861[] = {
3,
- -1, 3, 813,
- 99, 0, 54,
- 100, 0, 967
+ -1, 3, 860,
+ 100, 0, 54,
+ 101, 0, 1042
};
-static int parser_action_row815[] = {
+static int parser_action_row862[] = {
1,
- -1, 1, 471
+ -1, 1, 534
};
-static int parser_action_row816[] = {
+static int parser_action_row863[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row817[] = {
+static int parser_action_row864[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row818[] = {
+static int parser_action_row865[] = {
2,
- -1, 1, 418,
- 59, 0, 972
+ -1, 1, 480,
+ 59, 0, 1047
};
-static int parser_action_row819[] = {
+static int parser_action_row866[] = {
1,
- -1, 1, 446
+ -1, 1, 509
};
-static int parser_action_row820[] = {
+static int parser_action_row867[] = {
1,
- -1, 1, 445
+ -1, 1, 508
};
-static int parser_action_row821[] = {
+static int parser_action_row868[] = {
1,
- -1, 1, 444
+ -1, 1, 507
};
-static int parser_action_row822[] = {
+static int parser_action_row869[] = {
3,
- -1, 1, 415,
- 55, 0, 975,
- 97, 0, 204
+ -1, 1, 477,
+ 55, 0, 1050,
+ 98, 0, 206
};
-static int parser_action_row823[] = {
+static int parser_action_row870[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row824[] = {
+static int parser_action_row871[] = {
2,
- -1, 3, 823,
- 62, 0, 978
+ -1, 3, 870,
+ 62, 0, 1053
};
-static int parser_action_row825[] = {
+static int parser_action_row872[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 156,
+ 10, 0, 157,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row826[] = {
+static int parser_action_row873[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row827[] = {
+static int parser_action_row874[] = {
1,
-1, 1, 153
};
-static int parser_action_row828[] = {
+static int parser_action_row875[] = {
1,
- -1, 1, 207
+ -1, 1, 215
};
-static int parser_action_row829[] = {
+static int parser_action_row876[] = {
1,
-1, 1, 150
};
-static int parser_action_row830[] = {
+static int parser_action_row877[] = {
1,
-1, 1, 151
};
-static int parser_action_row831[] = {
+static int parser_action_row878[] = {
4,
- -1, 3, 830,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 877,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row832[] = {
+static int parser_action_row879[] = {
2,
- -1, 3, 831,
- 60, 0, 983
+ -1, 3, 878,
+ 60, 0, 1058
};
-static int parser_action_row833[] = {
+static int parser_action_row880[] = {
1,
- -1, 1, 529
+ -1, 1, 592
};
-static int parser_action_row834[] = {
+static int parser_action_row881[] = {
25,
- -1, 1, 468,
- 13, 0, 798,
- 47, 0, 688,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 54,
- 100, 0, 984
+ -1, 1, 531,
+ 13, 0, 844,
+ 47, 0, 720,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 1059
};
-static int parser_action_row835[] = {
+static int parser_action_row882[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row883[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row836[] = {
+static int parser_action_row884[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row837[] = {
+static int parser_action_row885[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row838[] = {
+static int parser_action_row886[] = {
1,
- -1, 1, 1099
+ -1, 1, 1286
};
-static int parser_action_row839[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row887[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row840[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row888[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row841[] = {
+static int parser_action_row889[] = {
14,
- -1, 1, 356,
- 55, 0, 277,
- 62, 0, 991,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 416,
+ 55, 0, 280,
+ 62, 0, 1067,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row842[] = {
+static int parser_action_row890[] = {
1,
- -1, 1, 532
+ -1, 1, 595
};
-static int parser_action_row843[] = {
+static int parser_action_row891[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row844[] = {
+static int parser_action_row892[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row845[] = {
+static int parser_action_row893[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row846[] = {
+static int parser_action_row894[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row847[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 454,
- 28, 0, 455,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row895[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 467,
+ 28, 0, 468,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row848[] = {
+static int parser_action_row896[] = {
1,
- -1, 1, 1101
+ -1, 1, 1288
};
-static int parser_action_row849[] = {
+static int parser_action_row897[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row850[] = {
+static int parser_action_row898[] = {
2,
- -1, 1, 461,
- 61, 0, 216
+ -1, 1, 524,
+ 61, 0, 218
};
-static int parser_action_row851[] = {
+static int parser_action_row899[] = {
2,
-1, 1, 81,
- 15, 0, 999
+ 15, 0, 1075
};
-static int parser_action_row852[] = {
+static int parser_action_row900[] = {
2,
- -1, 3, 851,
- 100, 0, 1001
+ -1, 3, 899,
+ 101, 0, 1077
};
-static int parser_action_row853[] = {
+static int parser_action_row901[] = {
4,
- -1, 3, 852,
+ -1, 3, 900,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row854[] = {
+static int parser_action_row902[] = {
2,
-1, 1, 81,
- 15, 0, 999
+ 15, 0, 1075
};
-static int parser_action_row855[] = {
+static int parser_action_row903[] = {
2,
-1, 1, 107,
- 62, 0, 1004
+ 62, 0, 1080
};
-static int parser_action_row856[] = {
+static int parser_action_row904[] = {
1,
-1, 1, 109
};
-static int parser_action_row857[] = {
+static int parser_action_row905[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row858[] = {
+static int parser_action_row906[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row859[] = {
+static int parser_action_row907[] = {
4,
-1, 1, 127,
- 4, 0, 1007,
- 15, 0, 1008,
- 16, 0, 1009
+ 4, 0, 1083,
+ 15, 0, 1084,
+ 16, 0, 1085
};
-static int parser_action_row860[] = {
+static int parser_action_row908[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row861[] = {
+static int parser_action_row909[] = {
1,
-1, 1, 115
};
-static int parser_action_row862[] = {
+static int parser_action_row910[] = {
2,
-1, 1, 111,
- 62, 0, 855
+ 62, 0, 903
};
-static int parser_action_row863[] = {
+static int parser_action_row911[] = {
1,
- -1, 1, 474
+ -1, 1, 537
};
-static int parser_action_row864[] = {
+static int parser_action_row912[] = {
1,
- -1, 1, 476
+ -1, 1, 539
};
-static int parser_action_row865[] = {
+static int parser_action_row913[] = {
22,
- -1, 3, 864,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 100, 0, 861
+ -1, 3, 912,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 101, 0, 909
};
-static int parser_action_row866[] = {
+static int parser_action_row914[] = {
7,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
29, 0, 84,
- 57, 0, 1015,
- 98, 0, 3,
- 112, 0, 85
+ 57, 0, 1091,
+ 99, 0, 3,
+ 113, 0, 85
};
-static int parser_action_row867[] = {
+static int parser_action_row915[] = {
1,
- -1, 1, 453
+ -1, 1, 516
};
-static int parser_action_row868[] = {
+static int parser_action_row916[] = {
1,
- -1, 1, 361
+ -1, 1, 421
};
-static int parser_action_row869[] = {
+static int parser_action_row917[] = {
1,
- -1, 1, 199
+ -1, 1, 203
};
-static int parser_action_row870[] = {
+static int parser_action_row918[] = {
3,
- -1, 3, 869,
- 32, 0, 1025,
- 55, 0, 1026
+ -1, 3, 917,
+ 32, 0, 1101,
+ 55, 0, 1102
};
-static int parser_action_row871[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row919[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row872[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row920[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row873[] = {
+static int parser_action_row921[] = {
13,
- -1, 1, 343,
- 62, 0, 1029,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 395,
+ 62, 0, 1105,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row874[] = {
+static int parser_action_row922[] = {
1,
-1, 1, 190
};
-static int parser_action_row875[] = {
+static int parser_action_row923[] = {
13,
- -1, 1, 341,
- 62, 0, 1031,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 392,
+ 62, 0, 1107,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row876[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row924[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row877[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row925[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 346,
- 62, 0, 1034,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 346,
+ 57, 1, 398,
+ 62, 0, 1110,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 398,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 398,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row878[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row926[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row879[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row927[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 350,
- 61, 0, 216,
- 62, 0, 1039,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 350,
+ 57, 1, 402,
+ 61, 0, 218,
+ 62, 0, 1115,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 402,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 402,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row880[] = {
+static int parser_action_row928[] = {
3,
- -1, 1, 466,
- 13, 0, 1043,
- 100, 0, 1044
-};
-static int parser_action_row881[] = {
- 1,
- -1, 1, 408
+ -1, 1, 529,
+ 13, 0, 1119,
+ 101, 0, 1120
};
-static int parser_action_row882[] = {
- 1,
- -1, 1, 451
+static int parser_action_row929[] = {
+ 28,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 424,
+ 76, 1, 424,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 424,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row883[] = {
+static int parser_action_row930[] = {
+ 41,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 404,
+ 61, 0, 218,
+ 62, 0, 1123,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 404,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 404,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row931[] = {
2,
- -1, 3, 882,
- 56, 0, 1045
+ -1, 3, 930,
+ 102, 0, 1127
};
-static int parser_action_row884[] = {
+static int parser_action_row932[] = {
+ 3,
+ -1, 1, 528,
+ 13, 0, 1128,
+ 101, 0, 1129
+};
+static int parser_action_row933[] = {
+ 4,
+ -1, 1, 530,
+ 13, 0, 1130,
+ 100, 0, 54,
+ 101, 0, 1131
+};
+static int parser_action_row934[] = {
1,
- -1, 1, 226
+ -1, 1, 470
};
-static int parser_action_row885[] = {
+static int parser_action_row935[] = {
1,
- -1, 1, 245
+ -1, 1, 514
};
-static int parser_action_row886[] = {
+static int parser_action_row936[] = {
+ 2,
+ -1, 3, 935,
+ 56, 0, 1133
+};
+static int parser_action_row937[] = {
1,
- -1, 1, 230
+ -1, 1, 243
};
-static int parser_action_row887[] = {
+static int parser_action_row938[] = {
1,
- -1, 1, 249
+ -1, 1, 271
};
-static int parser_action_row888[] = {
+static int parser_action_row939[] = {
1,
- -1, 1, 229
+ -1, 1, 247
};
-static int parser_action_row889[] = {
+static int parser_action_row940[] = {
1,
- -1, 1, 248
+ -1, 1, 275
};
-static int parser_action_row890[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row941[] = {
+ 1,
+ -1, 1, 246
+};
+static int parser_action_row942[] = {
+ 1,
+ -1, 1, 274
+};
+static int parser_action_row943[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row891[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row944[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row892[] = {
+static int parser_action_row945[] = {
1,
- -1, 1, 447
+ -1, 1, 510
};
-static int parser_action_row893[] = {
+static int parser_action_row946[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row894[] = {
+static int parser_action_row947[] = {
3,
- -1, 3, 893,
- 99, 0, 54,
- 100, 0, 1049
+ -1, 3, 946,
+ 100, 0, 54,
+ 101, 0, 1137
};
-static int parser_action_row895[] = {
+static int parser_action_row948[] = {
2,
- -1, 3, 894,
- 101, 0, 1052
+ -1, 3, 947,
+ 102, 0, 1140
};
-static int parser_action_row896[] = {
+static int parser_action_row949[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 966,
+ 100, 0, 54,
+ 101, 0, 967
+};
+static int parser_action_row950[] = {
1,
- -1, 1, 379
+ -1, 1, 441
};
-static int parser_action_row897[] = {
+static int parser_action_row951[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row898[] = {
+static int parser_action_row952[] = {
1,
- -1, 1, 1108
+ -1, 1, 1295
};
-static int parser_action_row899[] = {
+static int parser_action_row953[] = {
2,
- -1, 1, 455,
- 59, 0, 896
+ -1, 1, 518,
+ 59, 0, 950
};
-static int parser_action_row900[] = {
+static int parser_action_row954[] = {
+ 6,
+ -1, 1, 887,
+ 55, 0, 280,
+ 57, 1, 915,
+ 61, 0, 218,
+ 76, 1, 915,
+ 97, 1, 915
+};
+static int parser_action_row955[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1145
+};
+static int parser_action_row956[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1146
+};
+static int parser_action_row957[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 966,
+ 100, 0, 54,
+ 101, 0, 1148
+};
+static int parser_action_row958[] = {
+ 4,
+ -1, 1, 906,
+ 57, 1, 934,
+ 76, 1, 934,
+ 97, 1, 934
+};
+static int parser_action_row959[] = {
1,
- -1, 1, 719
+ -1, 1, 844
};
-static int parser_action_row901[] = {
+static int parser_action_row960[] = {
1,
- -1, 1, 781
+ -1, 1, 940
};
-static int parser_action_row902[] = {
+static int parser_action_row961[] = {
3,
- -1, 3, 901,
- 32, 0, 1055,
- 55, 0, 1056
+ -1, 3, 960,
+ 32, 0, 1151,
+ 55, 0, 1152
};
-static int parser_action_row903[] = {
+static int parser_action_row962[] = {
1,
- -1, 1, 763
+ -1, 1, 914
};
-static int parser_action_row904[] = {
+static int parser_action_row963[] = {
1,
- -1, 1, 761
+ -1, 1, 911
};
-static int parser_action_row905[] = {
+static int parser_action_row964[] = {
2,
- -1, 1, 766,
- 55, 0, 277
+ -1, 1, 917,
+ 55, 0, 280
};
-static int parser_action_row906[] = {
+static int parser_action_row965[] = {
3,
- -1, 1, 770,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 921,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row907[] = {
+static int parser_action_row966[] = {
2,
- -1, 1, 466,
- 100, 0, 1059
+ -1, 1, 529,
+ 101, 0, 1155
};
-static int parser_action_row908[] = {
+static int parser_action_row967[] = {
+ 2,
+ -1, 1, 943,
+ 55, 0, 280
+};
+static int parser_action_row968[] = {
+ 3,
+ -1, 1, 923,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row969[] = {
+ 2,
+ -1, 3, 968,
+ 102, 0, 1158
+};
+static int parser_action_row970[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1159
+};
+static int parser_action_row971[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1160
+};
+static int parser_action_row972[] = {
1,
- -1, 1, 1000
+ -1, 1, 1187
};
-static int parser_action_row909[] = {
+static int parser_action_row973[] = {
1,
- -1, 1, 999
+ -1, 1, 1186
};
-static int parser_action_row910[] = {
+static int parser_action_row974[] = {
1,
-1, 1, 171
};
-static int parser_action_row911[] = {
+static int parser_action_row975[] = {
1,
- -1, 1, 212
+ -1, 1, 220
};
-static int parser_action_row912[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row976[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row913[] = {
+static int parser_action_row977[] = {
1,
- -1, 1, 274
+ -1, 1, 300
};
-static int parser_action_row914[] = {
- 26,
- -1, 1, 452,
+static int parser_action_row978[] = {
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 364,
- 76, 1, 364,
+ 57, 1, 426,
+ 76, 1, 426,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 426,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row915[] = {
+static int parser_action_row979[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1062,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1164,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row916[] = {
+static int parser_action_row980[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row917[] = {
+static int parser_action_row981[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row918[] = {
+static int parser_action_row982[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row919[] = {
+static int parser_action_row983[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1062,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1164,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row920[] = {
+static int parser_action_row984[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row921[] = {
- 26,
+static int parser_action_row985[] = {
+ 27,
-1, 1, 175,
- 13, 0, 170,
- 23, 0, 171,
- 25, 1, 917,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ 13, 0, 171,
+ 23, 0, 172,
+ 25, 1, 1088,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row922[] = {
+static int parser_action_row986[] = {
3,
-1, 1, 181,
- 25, 1, 923,
- 50, 0, 197
+ 25, 1, 1094,
+ 50, 0, 199
};
-static int parser_action_row923[] = {
+static int parser_action_row987[] = {
3,
-1, 1, 178,
- 25, 1, 920,
- 50, 0, 197
+ 25, 1, 1091,
+ 50, 0, 199
};
-static int parser_action_row924[] = {
+static int parser_action_row988[] = {
2,
-1, 1, 180,
- 25, 1, 922
+ 25, 1, 1093
};
-static int parser_action_row925[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row989[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 200,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 202,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row926[] = {
+static int parser_action_row990[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row927[] = {
+static int parser_action_row991[] = {
2,
- -1, 3, 926,
- 12, 0, 1080
+ -1, 3, 990,
+ 12, 0, 1182
};
-static int parser_action_row928[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row992[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row929[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row993[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 352,
- 61, 0, 216,
- 62, 0, 217,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 352,
+ 57, 1, 412,
+ 61, 0, 218,
+ 62, 0, 219,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 412,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 412,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row930[] = {
+static int parser_action_row994[] = {
1,
- -1, 1, 267
+ -1, 1, 293
};
-static int parser_action_row931[] = {
+static int parser_action_row995[] = {
2,
-1, 1, 173,
- 25, 1, 915
+ 25, 1, 1086
};
-static int parser_action_row932[] = {
+static int parser_action_row996[] = {
2,
-1, 1, 174,
- 25, 1, 916
+ 25, 1, 1087
};
-static int parser_action_row933[] = {
+static int parser_action_row997[] = {
1,
- -1, 1, 272
+ -1, 1, 298
};
-static int parser_action_row934[] = {
- 3,
- -1, 3, 933,
- 57, 0, 244,
- 76, 0, 1083
+static int parser_action_row998[] = {
+ 4,
+ -1, 3, 997,
+ 57, 0, 246,
+ 76, 0, 1185,
+ 97, 0, 1186
};
-static int parser_action_row935[] = {
+static int parser_action_row999[] = {
3,
- -1, 3, 934,
- 42, 0, 1084,
- 101, 0, 255
+ -1, 3, 998,
+ 42, 0, 1187,
+ 102, 0, 258
};
-static int parser_action_row936[] = {
+static int parser_action_row1000[] = {
3,
- -1, 1, 465,
- 13, 0, 1085,
- 100, 0, 1086
+ -1, 1, 528,
+ 13, 0, 1188,
+ 101, 0, 1189
};
-static int parser_action_row937[] = {
+static int parser_action_row1001[] = {
32,
- -1, 1, 468,
- 10, 0, 912,
+ -1, 1, 531,
+ 10, 0, 976,
13, 0, 31,
16, 0, 33,
17, 0, 34,
23, 0, 35,
- 25, 0, 1087,
+ 25, 0, 1190,
26, 0, 36,
27, 0, 37,
28, 0, 38,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row938[] = {
+static int parser_action_row1002[] = {
2,
- -1, 3, 937,
- 25, 0, 1091
+ -1, 3, 1001,
+ 25, 0, 1194
};
-static int parser_action_row939[] = {
+static int parser_action_row1003[] = {
1,
- -1, 1, 925
+ -1, 1, 1096
};
-static int parser_action_row940[] = {
+static int parser_action_row1004[] = {
1,
- -1, 1, 926
+ -1, 1, 1097
};
-static int parser_action_row941[] = {
+static int parser_action_row1005[] = {
1,
- -1, 1, 928
+ -1, 1, 1099
};
-static int parser_action_row942[] = {
+static int parser_action_row1006[] = {
1,
- -1, 1, 927
+ -1, 1, 1098
};
-static int parser_action_row943[] = {
+static int parser_action_row1007[] = {
1,
- -1, 1, 929
+ -1, 1, 1100
};
-static int parser_action_row944[] = {
+static int parser_action_row1008[] = {
1,
- -1, 1, 930
+ -1, 1, 1101
};
-static int parser_action_row945[] = {
+static int parser_action_row1009[] = {
1,
- -1, 1, 931
+ -1, 1, 1102
};
-static int parser_action_row946[] = {
+static int parser_action_row1010[] = {
4,
- -1, 1, 467,
- 13, 0, 1092,
- 99, 0, 54,
- 100, 0, 1093
+ -1, 1, 530,
+ 13, 0, 1195,
+ 100, 0, 54,
+ 101, 0, 1196
};
-static int parser_action_row947[] = {
+static int parser_action_row1011[] = {
1,
- -1, 1, 278
+ -1, 1, 304
};
-static int parser_action_row948[] = {
+static int parser_action_row1012[] = {
2,
- -1, 3, 947,
- 50, 0, 197
+ -1, 3, 1011,
+ 50, 0, 199
};
-static int parser_action_row949[] = {
+static int parser_action_row1013[] = {
2,
- -1, 3, 948,
- 56, 0, 1096
+ -1, 3, 1012,
+ 56, 0, 1199
};
-static int parser_action_row950[] = {
+static int parser_action_row1014[] = {
1,
- -1, 1, 280
+ -1, 1, 306
};
-static int parser_action_row951[] = {
+static int parser_action_row1015[] = {
2,
- -1, 3, 950,
- 50, 0, 197
+ -1, 3, 1014,
+ 50, 0, 199
};
-static int parser_action_row952[] = {
+static int parser_action_row1016[] = {
3,
- -1, 3, 951,
- 55, 0, 341,
- 100, 0, 342
+ -1, 3, 1015,
+ 55, 0, 349,
+ 101, 0, 350
};
-static int parser_action_row953[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1017[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row954[] = {
+static int parser_action_row1018[] = {
1,
- -1, 1, 460
+ -1, 1, 523
};
-static int parser_action_row955[] = {
+static int parser_action_row1019[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row956[] = {
+static int parser_action_row1020[] = {
2,
- -1, 3, 955,
- 101, 0, 1101
+ -1, 3, 1019,
+ 102, 0, 1204
};
-static int parser_action_row957[] = {
+static int parser_action_row1021[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1032,
+ 100, 0, 54,
+ 101, 0, 1033
+};
+static int parser_action_row1022[] = {
+ 6,
+ -1, 1, 368,
+ 55, 0, 280,
+ 57, 1, 396,
+ 61, 0, 218,
+ 76, 1, 396,
+ 97, 1, 396
+};
+static int parser_action_row1023[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1207
+};
+static int parser_action_row1024[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1208
+};
+static int parser_action_row1025[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1032,
+ 100, 0, 54,
+ 101, 0, 1210
+};
+static int parser_action_row1026[] = {
+ 4,
+ -1, 1, 387,
+ 57, 1, 415,
+ 76, 1, 415,
+ 97, 1, 415
+};
+static int parser_action_row1027[] = {
1,
- -1, 1, 299
+ -1, 1, 325
};
-static int parser_action_row958[] = {
+static int parser_action_row1028[] = {
1,
- -1, 1, 343
+ -1, 1, 395
};
-static int parser_action_row959[] = {
+static int parser_action_row1029[] = {
1,
- -1, 1, 341
+ -1, 1, 392
};
-static int parser_action_row960[] = {
+static int parser_action_row1030[] = {
2,
- -1, 1, 346,
- 55, 0, 277
+ -1, 1, 398,
+ 55, 0, 280
};
-static int parser_action_row961[] = {
+static int parser_action_row1031[] = {
3,
- -1, 1, 350,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 402,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row962[] = {
+static int parser_action_row1032[] = {
2,
- -1, 1, 466,
- 100, 0, 1104
+ -1, 1, 529,
+ 101, 0, 1215
};
-static int parser_action_row963[] = {
+static int parser_action_row1033[] = {
+ 2,
+ -1, 1, 424,
+ 55, 0, 280
+};
+static int parser_action_row1034[] = {
+ 3,
+ -1, 1, 404,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row1035[] = {
+ 2,
+ -1, 3, 1034,
+ 102, 0, 1217
+};
+static int parser_action_row1036[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1218
+};
+static int parser_action_row1037[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1219
+};
+static int parser_action_row1038[] = {
4,
- -1, 3, 962,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1037,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row964[] = {
+static int parser_action_row1039[] = {
2,
-1, 1, 156,
- 59, 0, 1106
+ 59, 0, 1222
};
-static int parser_action_row965[] = {
+static int parser_action_row1040[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row966[] = {
+static int parser_action_row1041[] = {
2,
-1, 1, 30,
14, 0, 32
};
-static int parser_action_row967[] = {
+static int parser_action_row1042[] = {
4,
- -1, 3, 966,
- 6, 0, 818,
- 18, 0, 819,
- 100, 0, 820
+ -1, 3, 1041,
+ 6, 0, 865,
+ 18, 0, 866,
+ 101, 0, 867
};
-static int parser_action_row968[] = {
+static int parser_action_row1043[] = {
3,
- -1, 1, 367,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 429,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row969[] = {
+static int parser_action_row1044[] = {
2,
- -1, 3, 968,
- 100, 0, 1113
+ -1, 3, 1043,
+ 101, 0, 1229
};
-static int parser_action_row970[] = {
+static int parser_action_row1045[] = {
3,
- -1, 3, 969,
- 99, 0, 54,
- 100, 0, 1114
+ -1, 3, 1044,
+ 100, 0, 54,
+ 101, 0, 1230
};
-static int parser_action_row971[] = {
+static int parser_action_row1046[] = {
4,
- -1, 3, 970,
- 6, 0, 818,
- 18, 0, 819,
- 100, 0, 820
+ -1, 3, 1045,
+ 6, 0, 865,
+ 18, 0, 866,
+ 101, 0, 867
};
-static int parser_action_row972[] = {
+static int parser_action_row1047[] = {
2,
- -1, 3, 971,
- 56, 0, 1117
+ -1, 3, 1046,
+ 56, 0, 1233
};
-static int parser_action_row973[] = {
+static int parser_action_row1048[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row974[] = {
+static int parser_action_row1049[] = {
1,
- -1, 1, 1104
+ -1, 1, 1291
};
-static int parser_action_row975[] = {
+static int parser_action_row1050[] = {
2,
- -1, 1, 419,
- 59, 0, 972
+ -1, 1, 481,
+ 59, 0, 1047
};
-static int parser_action_row976[] = {
+static int parser_action_row1051[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row977[] = {
+static int parser_action_row1052[] = {
1,
- -1, 1, 416
+ -1, 1, 478
};
-static int parser_action_row978[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1053[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row979[] = {
+static int parser_action_row1054[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row980[] = {
+static int parser_action_row1055[] = {
1,
- -1, 1, 285
+ -1, 1, 311
};
-static int parser_action_row981[] = {
+static int parser_action_row1056[] = {
2,
- -1, 3, 980,
- 50, 0, 197
+ -1, 3, 1055,
+ 50, 0, 199
};
-static int parser_action_row982[] = {
+static int parser_action_row1057[] = {
4,
- -1, 3, 981,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1056,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row983[] = {
+static int parser_action_row1058[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row984[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1059[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row985[] = {
+static int parser_action_row1060[] = {
15,
- -1, 1, 344,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1127,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 396,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1243,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row986[] = {
+static int parser_action_row1061[] = {
22,
- -1, 1, 465,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 100, 0, 1128
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 1244
};
-static int parser_action_row987[] = {
+static int parser_action_row1062[] = {
1,
- -1, 1, 441
+ -1, 1, 503
};
-static int parser_action_row988[] = {
+static int parser_action_row1063[] = {
23,
- -1, 1, 467,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 54,
- 100, 0, 1129
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 1245
};
-static int parser_action_row989[] = {
+static int parser_action_row1064[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 1032,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 1247
+};
+static int parser_action_row1065[] = {
1,
- -1, 1, 394
+ -1, 1, 456
};
-static int parser_action_row990[] = {
+static int parser_action_row1066[] = {
1,
- -1, 1, 396
+ -1, 1, 458
};
-static int parser_action_row991[] = {
+static int parser_action_row1067[] = {
1,
- -1, 1, 393
+ -1, 1, 455
};
-static int parser_action_row992[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1068[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row993[] = {
+static int parser_action_row1069[] = {
2,
- -1, 3, 992,
- 24, 0, 1131
+ -1, 3, 1068,
+ 24, 0, 1251
};
-static int parser_action_row994[] = {
+static int parser_action_row1070[] = {
3,
- -1, 3, 993,
- 16, 0, 1132,
- 59, 0, 769
+ -1, 3, 1069,
+ 16, 0, 1252,
+ 59, 0, 809
};
-static int parser_action_row995[] = {
- 22,
- -1, 1, 468,
- 13, 0, 1133,
- 23, 0, 1134,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1071[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 23, 0, 1254,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row996[] = {
+static int parser_action_row1072[] = {
1,
- -1, 1, 392
+ -1, 1, 454
};
-static int parser_action_row997[] = {
+static int parser_action_row1073[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row998[] = {
+static int parser_action_row1074[] = {
1,
- -1, 1, 399
+ -1, 1, 461
};
-static int parser_action_row999[] = {
+static int parser_action_row1075[] = {
2,
- -1, 3, 998,
- 100, 0, 1172
+ -1, 3, 1074,
+ 101, 0, 1293
};
-static int parser_action_row1000[] = {
+static int parser_action_row1076[] = {
5,
-1, 1, 30,
0, 0, 88,
1, 0, 89,
14, 0, 32,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1001[] = {
+static int parser_action_row1077[] = {
4,
- -1, 3, 1000,
+ -1, 3, 1076,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1002[] = {
+static int parser_action_row1078[] = {
2,
- -1, 1, 462,
- 61, 0, 216
+ -1, 1, 525,
+ 61, 0, 218
};
-static int parser_action_row1003[] = {
+static int parser_action_row1079[] = {
1,
-1, 1, 18
};
-static int parser_action_row1004[] = {
+static int parser_action_row1080[] = {
4,
- -1, 3, 1003,
+ -1, 3, 1079,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1005[] = {
+static int parser_action_row1081[] = {
1,
-1, 1, 110
};
-static int parser_action_row1006[] = {
+static int parser_action_row1082[] = {
2,
-1, 1, 118,
- 100, 0, 1178
+ 101, 0, 1299
};
-static int parser_action_row1007[] = {
+static int parser_action_row1083[] = {
4,
- -1, 3, 1006,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1082,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1008[] = {
+static int parser_action_row1084[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1009[] = {
+static int parser_action_row1085[] = {
5,
-1, 1, 30,
0, 0, 88,
1, 0, 89,
14, 0, 32,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1010[] = {
+static int parser_action_row1086[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1011[] = {
+static int parser_action_row1087[] = {
3,
-1, 1, 127,
- 4, 0, 1007,
- 16, 0, 1186
+ 4, 0, 1083,
+ 16, 0, 1307
};
-static int parser_action_row1012[] = {
+static int parser_action_row1088[] = {
3,
- -1, 3, 1011,
+ -1, 3, 1087,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1013[] = {
+static int parser_action_row1089[] = {
1,
- -1, 1, 503
+ -1, 1, 566
};
-static int parser_action_row1014[] = {
+static int parser_action_row1090[] = {
1,
-1, 1, 114
};
-static int parser_action_row1015[] = {
+static int parser_action_row1091[] = {
1,
- -1, 1, 475
+ -1, 1, 538
};
-static int parser_action_row1016[] = {
+static int parser_action_row1092[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1017[] = {
+static int parser_action_row1093[] = {
2,
-1, 1, 78,
10, 1, 46
};
-static int parser_action_row1018[] = {
+static int parser_action_row1094[] = {
2,
- -1, 3, 1017,
- 10, 0, 1190
+ -1, 3, 1093,
+ 10, 0, 1311
};
-static int parser_action_row1019[] = {
+static int parser_action_row1095[] = {
1,
- -1, 1, 1086
+ -1, 1, 1273
};
-static int parser_action_row1020[] = {
+static int parser_action_row1096[] = {
4,
- -1, 3, 1019,
+ -1, 3, 1095,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1021[] = {
+static int parser_action_row1097[] = {
4,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1022[] = {
+static int parser_action_row1098[] = {
1,
-1, 1, 77
};
-static int parser_action_row1023[] = {
+static int parser_action_row1099[] = {
1,
- -1, 1, 496
+ -1, 1, 559
};
-static int parser_action_row1024[] = {
+static int parser_action_row1100[] = {
5,
-1, 1, 30,
- 6, 0, 1193,
+ 6, 0, 1314,
10, 1, 47,
14, 0, 32,
- 100, 0, 1194
+ 101, 0, 1315
};
-static int parser_action_row1025[] = {
+static int parser_action_row1101[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 10, 1, 497,
- 98, 0, 3
+ 10, 1, 560,
+ 99, 0, 3
};
-static int parser_action_row1026[] = {
+static int parser_action_row1102[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1027[] = {
+static int parser_action_row1103[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1028[] = {
+static int parser_action_row1104[] = {
1,
- -1, 1, 217
+ -1, 1, 226
};
-static int parser_action_row1029[] = {
+static int parser_action_row1105[] = {
1,
- -1, 1, 236
+ -1, 1, 254
};
-static int parser_action_row1030[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1106[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1031[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1107[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1032[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1108[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1033[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1109[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1034[] = {
+static int parser_action_row1110[] = {
1,
- -1, 1, 201
+ -1, 1, 206
};
-static int parser_action_row1035[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1111[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1036[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1112[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1037[] = {
+static int parser_action_row1113[] = {
13,
- -1, 1, 345,
- 62, 0, 1209,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 397,
+ 62, 0, 1330,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1038[] = {
+static int parser_action_row1114[] = {
1,
-1, 1, 191
};
-static int parser_action_row1039[] = {
+static int parser_action_row1115[] = {
1,
- -1, 1, 203
+ -1, 1, 208
};
-static int parser_action_row1040[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1116[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1041[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1117[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1042[] = {
+static int parser_action_row1118[] = {
13,
- -1, 1, 349,
- 62, 0, 1213,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 401,
+ 62, 0, 1334,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1043[] = {
+static int parser_action_row1119[] = {
1,
-1, 1, 193
};
-static int parser_action_row1044[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1120[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1045[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row1121[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 348,
- 62, 0, 1216,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 348,
+ 57, 1, 400,
+ 62, 0, 1337,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 400,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 400,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1046[] = {
- 1,
- -1, 1, 449
-};
-static int parser_action_row1047[] = {
+static int parser_action_row1122[] = {
1,
- -1, 1, 228
+ -1, 1, 423
};
-static int parser_action_row1048[] = {
+static int parser_action_row1123[] = {
1,
- -1, 1, 247
+ -1, 1, 204
};
-static int parser_action_row1049[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1124[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1050[] = {
- 3,
- -1, 1, 787,
- 55, 0, 277,
- 61, 0, 216
-};
-static int parser_action_row1051[] = {
- 2,
- -1, 3, 1050,
- 100, 0, 1222
-};
-static int parser_action_row1052[] = {
- 3,
- -1, 3, 1051,
- 99, 0, 54,
- 100, 0, 1223
-};
-static int parser_action_row1053[] = {
- 3,
- -1, 1, 758,
- 57, 1, 761,
- 76, 1, 761
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1054[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1125[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 522,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1055[] = {
+static int parser_action_row1126[] = {
+ 13,
+ -1, 1, 403,
+ 62, 0, 1343,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1127[] = {
1,
- -1, 1, 1109
+ -1, 1, 194
};
-static int parser_action_row1056[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row1128[] = {
+ 13,
+ -1, 1, 393,
+ 62, 0, 1345,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1057[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row1129[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1058[] = {
- 1,
- -1, 1, 765
+static int parser_action_row1130[] = {
+ 40,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 406,
+ 62, 0, 1348,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 406,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 406,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1059[] = {
- 1,
- -1, 1, 769
+static int parser_action_row1131[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1060[] = {
- 2,
- -1, 1, 768,
- 55, 0, 277
+static int parser_action_row1132[] = {
+ 41,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 410,
+ 61, 0, 218,
+ 62, 0, 1353,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 410,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 410,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1061[] = {
+static int parser_action_row1133[] = {
+ 3,
+ -1, 1, 529,
+ 13, 0, 1357,
+ 101, 0, 1358
+};
+static int parser_action_row1134[] = {
1,
- -1, 1, 213
+ -1, 1, 512
};
-static int parser_action_row1062[] = {
- 2,
- -1, 1, 200,
- 25, 1, 942
+static int parser_action_row1135[] = {
+ 1,
+ -1, 1, 245
};
-static int parser_action_row1063[] = {
- 3,
- -1, 1, 164,
- 25, 1, 913,
- 50, 1, 1001
+static int parser_action_row1136[] = {
+ 1,
+ -1, 1, 273
};
-static int parser_action_row1064[] = {
- 31,
- -1, 1, 468,
- 10, 0, 1229,
- 13, 0, 31,
- 16, 0, 33,
- 17, 0, 34,
- 23, 0, 35,
- 26, 0, 36,
- 27, 0, 37,
- 28, 0, 38,
- 34, 0, 39,
- 35, 0, 40,
- 36, 0, 41,
- 37, 0, 42,
- 38, 0, 43,
- 39, 0, 44,
+static int parser_action_row1137[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 49,
- 52, 0, 50,
- 53, 0, 51,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1065[] = {
- 1,
- -1, 1, 951
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1066[] = {
- 1,
- -1, 1, 914
+static int parser_action_row1138[] = {
+ 3,
+ -1, 1, 948,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1067[] = {
+static int parser_action_row1139[] = {
2,
- -1, 3, 1066,
- 50, 0, 197
+ -1, 3, 1138,
+ 101, 0, 1361
};
-static int parser_action_row1068[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1140[] = {
+ 3,
+ -1, 3, 1139,
+ 100, 0, 54,
+ 101, 0, 1362
+};
+static int parser_action_row1141[] = {
+ 4,
+ -1, 1, 883,
+ 57, 1, 911,
+ 76, 1, 911,
+ 97, 1, 911
+};
+static int parser_action_row1142[] = {
+ 2,
+ -1, 3, 1141,
+ 102, 0, 1364
+};
+static int parser_action_row1143[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 537,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1069[] = {
+static int parser_action_row1144[] = {
1,
- -1, 1, 269
+ -1, 1, 1296
};
-static int parser_action_row1070[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1145[] = {
+ 4,
+ -1, 1, 886,
+ 57, 1, 914,
+ 76, 1, 914,
+ 97, 1, 914
+};
+static int parser_action_row1146[] = {
+ 5,
+ -1, 1, 889,
+ 55, 0, 280,
+ 57, 1, 917,
+ 76, 1, 917,
+ 97, 1, 917
+};
+static int parser_action_row1147[] = {
+ 6,
+ -1, 1, 893,
+ 55, 0, 280,
+ 57, 1, 921,
+ 61, 0, 218,
+ 76, 1, 921,
+ 97, 1, 921
+};
+static int parser_action_row1148[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1368
+};
+static int parser_action_row1149[] = {
+ 6,
+ -1, 1, 895,
+ 55, 0, 280,
+ 57, 1, 923,
+ 61, 0, 218,
+ 76, 1, 923,
+ 97, 1, 923
+};
+static int parser_action_row1150[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1370
+};
+static int parser_action_row1151[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1371
+};
+static int parser_action_row1152[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1153[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1154[] = {
+ 1,
+ -1, 1, 916
+};
+static int parser_action_row1155[] = {
+ 1,
+ -1, 1, 920
+};
+static int parser_action_row1156[] = {
+ 2,
+ -1, 1, 919,
+ 55, 0, 280
+};
+static int parser_action_row1157[] = {
+ 1,
+ -1, 1, 942
+};
+static int parser_action_row1158[] = {
+ 1,
+ -1, 1, 922
+};
+static int parser_action_row1159[] = {
+ 1,
+ -1, 1, 912
+};
+static int parser_action_row1160[] = {
+ 2,
+ -1, 1, 925,
+ 55, 0, 280
+};
+static int parser_action_row1161[] = {
+ 3,
+ -1, 1, 929,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row1162[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1378
+};
+static int parser_action_row1163[] = {
+ 1,
+ -1, 1, 221
+};
+static int parser_action_row1164[] = {
+ 2,
+ -1, 1, 205,
+ 25, 1, 1118
+};
+static int parser_action_row1165[] = {
+ 3,
+ -1, 1, 164,
+ 25, 1, 1084,
+ 50, 1, 1188
+};
+static int parser_action_row1166[] = {
+ 31,
+ -1, 1, 531,
+ 10, 0, 1379,
+ 13, 0, 31,
+ 16, 0, 33,
+ 17, 0, 34,
+ 23, 0, 35,
+ 26, 0, 36,
+ 27, 0, 37,
+ 28, 0, 38,
+ 34, 0, 39,
+ 35, 0, 40,
+ 36, 0, 41,
+ 37, 0, 42,
+ 38, 0, 43,
+ 39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 51, 0, 49,
+ 52, 0, 50,
+ 53, 0, 51,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1071[] = {
+static int parser_action_row1167[] = {
+ 1,
+ -1, 1, 1130
+};
+static int parser_action_row1168[] = {
+ 1,
+ -1, 1, 1085
+};
+static int parser_action_row1169[] = {
+ 2,
+ -1, 3, 1168,
+ 50, 0, 199
+};
+static int parser_action_row1170[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1171[] = {
+ 1,
+ -1, 1, 295
+};
+static int parser_action_row1172[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1173[] = {
31,
- -1, 1, 468,
- 10, 0, 1229,
+ -1, 1, 531,
+ 10, 0, 1379,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1072[] = {
+static int parser_action_row1174[] = {
1,
- -1, 1, 955
+ -1, 1, 1134
};
-static int parser_action_row1073[] = {
+static int parser_action_row1175[] = {
2,
- -1, 3, 1072,
- 50, 0, 197
+ -1, 3, 1174,
+ 50, 0, 199
};
-static int parser_action_row1074[] = {
+static int parser_action_row1176[] = {
3,
- -1, 3, 1073,
- 55, 0, 341,
- 100, 0, 342
+ -1, 3, 1175,
+ 55, 0, 349,
+ 101, 0, 350
};
-static int parser_action_row1075[] = {
+static int parser_action_row1177[] = {
2,
-1, 1, 176,
- 25, 1, 918
+ 25, 1, 1089
};
-static int parser_action_row1076[] = {
+static int parser_action_row1178[] = {
2,
-1, 1, 182,
- 25, 1, 924
+ 25, 1, 1095
};
-static int parser_action_row1077[] = {
+static int parser_action_row1179[] = {
2,
-1, 1, 179,
- 25, 1, 921
+ 25, 1, 1092
};
-static int parser_action_row1078[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1180[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1079[] = {
+static int parser_action_row1181[] = {
2,
- -1, 1, 291,
- 25, 0, 1238
+ -1, 1, 317,
+ 25, 0, 1388
};
-static int parser_action_row1080[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1182[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 400,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 413,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1081[] = {
+static int parser_action_row1183[] = {
4,
- -1, 3, 1080,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1182,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1082[] = {
+static int parser_action_row1184[] = {
2,
-1, 1, 177,
- 25, 1, 919
+ 25, 1, 1090
};
-static int parser_action_row1083[] = {
+static int parser_action_row1185[] = {
2,
- -1, 1, 194,
- 25, 1, 936
+ -1, 1, 198,
+ 25, 1, 1111
};
-static int parser_action_row1084[] = {
+static int parser_action_row1186[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1085[] = {
- 26,
- -1, 1, 452,
+static int parser_action_row1187[] = {
+ 2,
+ -1, 3, 1186,
+ 76, 0, 1392
+};
+static int parser_action_row1188[] = {
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 360,
- 76, 1, 360,
+ 57, 1, 420,
+ 76, 1, 420,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 420,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1086[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1189[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1087[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row1190[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 354,
- 62, 0, 497,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 354,
+ 57, 1, 414,
+ 62, 0, 511,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 414,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 414,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1088[] = {
+static int parser_action_row1191[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1089[] = {
+static int parser_action_row1192[] = {
3,
- -1, 3, 1088,
- 10, 0, 912,
- 25, 0, 1246
+ -1, 3, 1191,
+ 10, 0, 976,
+ 25, 0, 1397
};
-static int parser_action_row1090[] = {
+static int parser_action_row1193[] = {
4,
- -1, 3, 1089,
+ -1, 3, 1192,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1091[] = {
+static int parser_action_row1194[] = {
1,
- -1, 1, 273
+ -1, 1, 299
};
-static int parser_action_row1092[] = {
+static int parser_action_row1195[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1093[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1196[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1094[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row1197[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 358,
- 61, 0, 216,
- 62, 0, 502,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 358,
+ 57, 1, 418,
+ 61, 0, 218,
+ 62, 0, 516,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 418,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 418,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1095[] = {
+static int parser_action_row1198[] = {
3,
- -1, 1, 466,
- 13, 0, 1252,
- 100, 0, 1253
+ -1, 1, 529,
+ 13, 0, 1403,
+ 101, 0, 1404
};
-static int parser_action_row1096[] = {
+static int parser_action_row1199[] = {
1,
- -1, 1, 277
+ -1, 1, 303
};
-static int parser_action_row1097[] = {
+static int parser_action_row1200[] = {
1,
- -1, 1, 457
+ -1, 1, 520
};
-static int parser_action_row1098[] = {
+static int parser_action_row1201[] = {
1,
- -1, 1, 279
+ -1, 1, 305
};
-static int parser_action_row1099[] = {
+static int parser_action_row1202[] = {
1,
- -1, 1, 282
+ -1, 1, 308
};
-static int parser_action_row1100[] = {
+static int parser_action_row1203[] = {
1,
- -1, 1, 283
+ -1, 1, 309
};
-static int parser_action_row1101[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1204[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1102[] = {
- 3,
- -1, 1, 338,
- 57, 1, 341,
- 76, 1, 341
-};
-static int parser_action_row1103[] = {
- 1,
- -1, 1, 345
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1104[] = {
- 1,
- -1, 1, 349
+static int parser_action_row1205[] = {
+ 4,
+ -1, 1, 364,
+ 57, 1, 392,
+ 76, 1, 392,
+ 97, 1, 392
};
-static int parser_action_row1105[] = {
+static int parser_action_row1206[] = {
2,
- -1, 1, 348,
- 55, 0, 277
+ -1, 3, 1205,
+ 102, 0, 1406
};
-static int parser_action_row1106[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
+static int parser_action_row1207[] = {
+ 4,
+ -1, 1, 367,
+ 57, 1, 395,
+ 76, 1, 395,
+ 97, 1, 395
+};
+static int parser_action_row1208[] = {
+ 5,
+ -1, 1, 370,
+ 55, 0, 280,
+ 57, 1, 398,
+ 76, 1, 398,
+ 97, 1, 398
+};
+static int parser_action_row1209[] = {
+ 6,
+ -1, 1, 374,
+ 55, 0, 280,
+ 57, 1, 402,
+ 61, 0, 218,
+ 76, 1, 402,
+ 97, 1, 402
+};
+static int parser_action_row1210[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1409
+};
+static int parser_action_row1211[] = {
+ 6,
+ -1, 1, 376,
+ 55, 0, 280,
+ 57, 1, 404,
+ 61, 0, 218,
+ 76, 1, 404,
+ 97, 1, 404
+};
+static int parser_action_row1212[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1411
+};
+static int parser_action_row1213[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1412
+};
+static int parser_action_row1214[] = {
+ 1,
+ -1, 1, 397
+};
+static int parser_action_row1215[] = {
+ 1,
+ -1, 1, 401
+};
+static int parser_action_row1216[] = {
+ 2,
+ -1, 1, 400,
+ 55, 0, 280
+};
+static int parser_action_row1217[] = {
+ 1,
+ -1, 1, 403
+};
+static int parser_action_row1218[] = {
+ 1,
+ -1, 1, 393
+};
+static int parser_action_row1219[] = {
+ 2,
+ -1, 1, 406,
+ 55, 0, 280
+};
+static int parser_action_row1220[] = {
+ 3,
+ -1, 1, 410,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row1221[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1417
+};
+static int parser_action_row1222[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
1, 0, 2
};
-static int parser_action_row1107[] = {
+static int parser_action_row1223[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1108[] = {
+static int parser_action_row1224[] = {
1,
- -1, 1, 1094
+ -1, 1, 1281
};
-static int parser_action_row1109[] = {
+static int parser_action_row1225[] = {
2,
-1, 1, 157,
- 59, 0, 1106
+ 59, 0, 1222
};
-static int parser_action_row1110[] = {
+static int parser_action_row1226[] = {
2,
- -1, 3, 1109,
- 58, 0, 1259
+ -1, 3, 1225,
+ 58, 0, 1421
};
-static int parser_action_row1111[] = {
+static int parser_action_row1227[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1112[] = {
+static int parser_action_row1228[] = {
2,
- -1, 1, 812,
- 97, 0, 607
+ -1, 1, 973,
+ 98, 0, 637
};
-static int parser_action_row1113[] = {
+static int parser_action_row1229[] = {
1,
- -1, 1, 366
+ -1, 1, 428
};
-static int parser_action_row1114[] = {
+static int parser_action_row1230[] = {
2,
- -1, 1, 369,
- 55, 0, 277
+ -1, 1, 431,
+ 55, 0, 280
};
-static int parser_action_row1115[] = {
+static int parser_action_row1231[] = {
3,
- -1, 1, 373,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 435,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1116[] = {
+static int parser_action_row1232[] = {
2,
- -1, 3, 1115,
- 100, 0, 1264
+ -1, 3, 1231,
+ 101, 0, 1426
};
-static int parser_action_row1117[] = {
+static int parser_action_row1233[] = {
12,
- -1, 1, 415,
+ -1, 1, 477,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
- 55, 0, 1265,
- 97, 0, 204,
- 102, 0, 131,
+ 55, 0, 1427,
+ 98, 0, 206,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1118[] = {
+static int parser_action_row1234[] = {
1,
- -1, 1, 413
+ -1, 1, 475
};
-static int parser_action_row1119[] = {
+static int parser_action_row1235[] = {
2,
-1, 1, 30,
14, 0, 32
};
-static int parser_action_row1120[] = {
+static int parser_action_row1236[] = {
1,
- -1, 1, 1105
+ -1, 1, 1292
};
-static int parser_action_row1121[] = {
+static int parser_action_row1237[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1122[] = {
+static int parser_action_row1238[] = {
1,
- -1, 1, 286
+ -1, 1, 312
};
-static int parser_action_row1123[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1239[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1124[] = {
+static int parser_action_row1240[] = {
1,
- -1, 1, 284
+ -1, 1, 310
};
-static int parser_action_row1125[] = {
+static int parser_action_row1241[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1126[] = {
+static int parser_action_row1242[] = {
2,
- -1, 3, 1125,
- 58, 0, 1274
+ -1, 3, 1241,
+ 58, 0, 1436
};
-static int parser_action_row1127[] = {
+static int parser_action_row1243[] = {
1,
- -1, 1, 1021
+ -1, 1, 1208
};
-static int parser_action_row1128[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1244[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1129[] = {
+static int parser_action_row1245[] = {
14,
- -1, 1, 346,
- 55, 0, 277,
- 62, 0, 1275,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 398,
+ 55, 0, 280,
+ 62, 0, 1437,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1130[] = {
+static int parser_action_row1246[] = {
15,
- -1, 1, 350,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1276,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 402,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1438,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1131[] = {
+static int parser_action_row1247[] = {
22,
- -1, 1, 466,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 100, 0, 1277
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 1439
};
-static int parser_action_row1132[] = {
+static int parser_action_row1248[] = {
+ 15,
+ -1, 1, 404,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1440,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1249[] = {
+ 22,
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 1441
+};
+static int parser_action_row1250[] = {
+ 1,
+ -1, 1, 504
+};
+static int parser_action_row1251[] = {
+ 23,
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 1442
+};
+static int parser_action_row1252[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1133[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 454,
- 28, 0, 455,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1253[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 467,
+ 28, 0, 468,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1134[] = {
+static int parser_action_row1254[] = {
2,
- -1, 1, 609,
- 55, 0, 277
+ -1, 1, 708,
+ 55, 0, 280
};
-static int parser_action_row1135[] = {
+static int parser_action_row1255[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1136[] = {
+static int parser_action_row1256[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1137[] = {
+static int parser_action_row1257[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1138[] = {
+static int parser_action_row1258[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1139[] = {
+static int parser_action_row1259[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1140[] = {
+static int parser_action_row1260[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1141[] = {
+static int parser_action_row1261[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1142[] = {
+static int parser_action_row1262[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1143[] = {
+static int parser_action_row1263[] = {
15,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1289,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 55, 0, 52,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1455,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 55, 0, 52,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1144[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1264[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1145[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1265[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1146[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1266[] = {
+ 15,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1455,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 55, 0, 52,
+ 100, 0, 54,
+ 101, 0, 1460,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1147[] = {
+static int parser_action_row1267[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
+};
+static int parser_action_row1268[] = {
3,
- -1, 1, 591,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 682,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1148[] = {
+static int parser_action_row1269[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1149[] = {
+static int parser_action_row1270[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1150[] = {
+static int parser_action_row1271[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1151[] = {
+static int parser_action_row1272[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1152[] = {
+static int parser_action_row1273[] = {
1,
- -1, 1, 633
+ -1, 1, 732
};
-static int parser_action_row1153[] = {
+static int parser_action_row1274[] = {
1,
- -1, 1, 632
+ -1, 1, 731
};
-static int parser_action_row1154[] = {
+static int parser_action_row1275[] = {
3,
- -1, 3, 1153,
- 42, 0, 1300,
- 101, 0, 1301
+ -1, 3, 1274,
+ 42, 0, 1470,
+ 102, 0, 1471
};
-static int parser_action_row1155[] = {
+static int parser_action_row1276[] = {
2,
- -1, 1, 465,
- 100, 0, 1302
+ -1, 1, 528,
+ 101, 0, 1472
};
-static int parser_action_row1156[] = {
+static int parser_action_row1277[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1157[] = {
+static int parser_action_row1278[] = {
4,
- -1, 1, 539,
- 30, 0, 1304,
- 31, 0, 1305,
- 33, 0, 1306
+ -1, 1, 602,
+ 30, 0, 1474,
+ 31, 0, 1475,
+ 33, 0, 1476
};
-static int parser_action_row1158[] = {
+static int parser_action_row1279[] = {
1,
- -1, 1, 541
+ -1, 1, 604
};
-static int parser_action_row1159[] = {
+static int parser_action_row1280[] = {
1,
- -1, 1, 546
+ -1, 1, 609
};
-static int parser_action_row1160[] = {
+static int parser_action_row1281[] = {
10,
- -1, 1, 548,
- 40, 0, 1307,
- 83, 0, 1308,
- 87, 0, 1309,
- 88, 0, 1310,
- 89, 0, 1311,
- 90, 0, 1312,
- 92, 0, 1313,
- 93, 0, 1314,
- 95, 0, 1315
+ -1, 1, 611,
+ 40, 0, 1477,
+ 83, 0, 1478,
+ 87, 0, 1479,
+ 88, 0, 1480,
+ 89, 0, 1481,
+ 90, 0, 1482,
+ 92, 0, 1483,
+ 93, 0, 1484,
+ 95, 0, 1485
};
-static int parser_action_row1161[] = {
+static int parser_action_row1282[] = {
2,
- -1, 1, 557,
- 84, 0, 1316
+ -1, 1, 620,
+ 84, 0, 1486
};
-static int parser_action_row1162[] = {
+static int parser_action_row1283[] = {
2,
- -1, 1, 559,
- 85, 0, 1317
+ -1, 1, 622,
+ 85, 0, 1487
};
-static int parser_action_row1163[] = {
+static int parser_action_row1284[] = {
3,
- -1, 1, 561,
- 91, 0, 1318,
- 94, 0, 1319
+ -1, 1, 624,
+ 91, 0, 1488,
+ 94, 0, 1489
};
-static int parser_action_row1164[] = {
+static int parser_action_row1285[] = {
3,
- -1, 1, 563,
- 77, 0, 1320,
- 78, 0, 1321
+ -1, 1, 626,
+ 77, 0, 1490,
+ 78, 0, 1491
};
-static int parser_action_row1165[] = {
+static int parser_action_row1286[] = {
4,
- -1, 1, 566,
- 79, 0, 1322,
- 81, 0, 1323,
- 82, 0, 1324
+ -1, 1, 629,
+ 79, 0, 1492,
+ 81, 0, 1493,
+ 82, 0, 1494
};
-static int parser_action_row1166[] = {
+static int parser_action_row1287[] = {
1,
- -1, 1, 569
+ -1, 1, 632
};
-static int parser_action_row1167[] = {
+static int parser_action_row1288[] = {
2,
- -1, 1, 573,
- 80, 0, 1325
+ -1, 1, 636,
+ 80, 0, 1495
};
-static int parser_action_row1168[] = {
+static int parser_action_row1289[] = {
1,
- -1, 1, 575
+ -1, 1, 638
};
-static int parser_action_row1169[] = {
- 2,
- -1, 1, 580,
- 76, 0, 1326
+static int parser_action_row1290[] = {
+ 3,
+ -1, 1, 643,
+ 76, 0, 1496,
+ 97, 0, 1497
};
-static int parser_action_row1170[] = {
+static int parser_action_row1291[] = {
1,
- -1, 1, 585
+ -1, 1, 673
};
-static int parser_action_row1171[] = {
+static int parser_action_row1292[] = {
3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 1327
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1498
};
-static int parser_action_row1172[] = {
+static int parser_action_row1293[] = {
1,
- -1, 1, 400
+ -1, 1, 462
};
-static int parser_action_row1173[] = {
+static int parser_action_row1294[] = {
2,
- -1, 1, 463,
- 61, 0, 216
+ -1, 1, 526,
+ 61, 0, 218
};
-static int parser_action_row1174[] = {
+static int parser_action_row1295[] = {
2,
- -1, 3, 1173,
- 100, 0, 1329
+ -1, 3, 1294,
+ 101, 0, 1500
};
-static int parser_action_row1175[] = {
+static int parser_action_row1296[] = {
1,
-1, 1, 79
};
-static int parser_action_row1176[] = {
+static int parser_action_row1297[] = {
4,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1177[] = {
+static int parser_action_row1298[] = {
1,
-1, 1, 16
};
-static int parser_action_row1178[] = {
+static int parser_action_row1299[] = {
1,
-1, 1, 17
};
-static int parser_action_row1179[] = {
+static int parser_action_row1300[] = {
3,
- -1, 1, 415,
- 60, 0, 857,
- 97, 0, 204
+ -1, 1, 477,
+ 60, 0, 905,
+ 98, 0, 206
};
-static int parser_action_row1180[] = {
+static int parser_action_row1301[] = {
2,
- -1, 3, 1179,
- 56, 0, 1336
+ -1, 3, 1300,
+ 56, 0, 1507
};
-static int parser_action_row1181[] = {
+static int parser_action_row1302[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 59, 0, 1337
+ 59, 0, 1508
};
-static int parser_action_row1182[] = {
+static int parser_action_row1303[] = {
1,
-1, 1, 159
};
-static int parser_action_row1183[] = {
+static int parser_action_row1304[] = {
25,
- -1, 3, 1182,
- 42, 0, 1341,
- 48, 0, 403,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 391,
- 100, 0, 679
+ -1, 3, 1303,
+ 42, 0, 1512,
+ 48, 0, 416,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 404,
+ 101, 0, 711
};
-static int parser_action_row1184[] = {
+static int parser_action_row1305[] = {
4,
-1, 1, 82,
- 0, 1, 506,
- 1, 1, 506,
- 98, 1, 506
+ 0, 1, 569,
+ 1, 1, 569,
+ 99, 1, 569
};
-static int parser_action_row1185[] = {
+static int parser_action_row1306[] = {
4,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1186[] = {
+static int parser_action_row1307[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1187[] = {
+static int parser_action_row1308[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1188[] = {
+static int parser_action_row1309[] = {
3,
- -1, 3, 1187,
+ -1, 3, 1308,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1189[] = {
+static int parser_action_row1310[] = {
1,
- -1, 1, 504
+ -1, 1, 567
};
-static int parser_action_row1190[] = {
+static int parser_action_row1311[] = {
2,
-1, 1, 40,
- 99, 0, 1354
+ 100, 0, 1525
};
-static int parser_action_row1191[] = {
+static int parser_action_row1312[] = {
1,
-1, 1, 26
};
-static int parser_action_row1192[] = {
+static int parser_action_row1313[] = {
1,
-1, 1, 48
};
-static int parser_action_row1193[] = {
+static int parser_action_row1314[] = {
2,
- -1, 3, 1192,
- 10, 0, 1357
+ -1, 3, 1313,
+ 10, 0, 1528
};
-static int parser_action_row1194[] = {
+static int parser_action_row1315[] = {
1,
- -1, 1, 1074
+ -1, 1, 1261
};
-static int parser_action_row1195[] = {
+static int parser_action_row1316[] = {
1,
- -1, 1, 1073
+ -1, 1, 1260
};
-static int parser_action_row1196[] = {
+static int parser_action_row1317[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row1197[] = {
+static int parser_action_row1318[] = {
56,
- -1, 1, 430,
+ -1, 1, 492,
13, 0, 116,
16, 0, 33,
17, 0, 34,
27, 0, 37,
28, 0, 38,
32, 0, 118,
- 34, 0, 1359,
- 35, 0, 1360,
- 36, 0, 1361,
- 37, 0, 1362,
+ 34, 0, 1530,
+ 35, 0, 1531,
+ 36, 0, 1532,
+ 37, 0, 1533,
38, 0, 43,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
- 48, 0, 403,
+ 48, 0, 416,
49, 0, 125,
51, 0, 49,
- 52, 0, 1363,
- 53, 0, 1364,
- 55, 0, 1365,
- 57, 0, 638,
- 77, 0, 1366,
- 78, 0, 1367,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 1368,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 1369,
- 101, 1, 468,
- 102, 0, 131,
+ 52, 0, 1534,
+ 53, 0, 1535,
+ 55, 0, 1536,
+ 57, 0, 669,
+ 77, 0, 1537,
+ 78, 0, 1538,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 1539,
+ 86, 0, 1540,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 1541,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1198[] = {
+static int parser_action_row1319[] = {
1,
-1, 1, 78
};
-static int parser_action_row1199[] = {
+static int parser_action_row1320[] = {
1,
- -1, 1, 1087
+ -1, 1, 1274
};
-static int parser_action_row1200[] = {
+static int parser_action_row1321[] = {
4,
-1, 1, 30,
- 6, 0, 1193,
+ 6, 0, 1314,
14, 0, 32,
- 100, 0, 1194
+ 101, 0, 1315
};
-static int parser_action_row1201[] = {
+static int parser_action_row1322[] = {
1,
-1, 1, 45
};
-static int parser_action_row1202[] = {
+static int parser_action_row1323[] = {
2,
- -1, 3, 1201,
- 46, 0, 1389
+ -1, 3, 1322,
+ 46, 0, 1561
};
-static int parser_action_row1203[] = {
+static int parser_action_row1324[] = {
5,
- -1, 3, 1202,
- 32, 0, 1390,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1323,
+ 32, 0, 1562,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1204[] = {
+static int parser_action_row1325[] = {
1,
- -1, 1, 216
+ -1, 1, 225
};
-static int parser_action_row1205[] = {
+static int parser_action_row1326[] = {
1,
- -1, 1, 235
+ -1, 1, 253
};
-static int parser_action_row1206[] = {
+static int parser_action_row1327[] = {
1,
- -1, 1, 214
+ -1, 1, 222
};
-static int parser_action_row1207[] = {
+static int parser_action_row1328[] = {
1,
- -1, 1, 233
+ -1, 1, 250
};
-static int parser_action_row1208[] = {
+static int parser_action_row1329[] = {
1,
- -1, 1, 219
+ -1, 1, 228
};
-static int parser_action_row1209[] = {
+static int parser_action_row1330[] = {
1,
- -1, 1, 238
+ -1, 1, 256
};
-static int parser_action_row1210[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1331[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1211[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1332[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1212[] = {
+static int parser_action_row1333[] = {
1,
- -1, 1, 223
+ -1, 1, 232
};
-static int parser_action_row1213[] = {
+static int parser_action_row1334[] = {
1,
- -1, 1, 242
+ -1, 1, 260
};
-static int parser_action_row1214[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1335[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1215[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1336[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1216[] = {
+static int parser_action_row1337[] = {
1,
- -1, 1, 202
+ -1, 1, 207
};
-static int parser_action_row1217[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1338[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1218[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1339[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1219[] = {
+static int parser_action_row1340[] = {
13,
- -1, 1, 347,
- 62, 0, 1398,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 399,
+ 62, 0, 1570,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1220[] = {
+static int parser_action_row1341[] = {
1,
-1, 1, 192
};
-static int parser_action_row1221[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1222[] = {
+static int parser_action_row1342[] = {
1,
- -1, 1, 786
-};
-static int parser_action_row1223[] = {
- 2,
- -1, 1, 789,
- 55, 0, 277
-};
-static int parser_action_row1224[] = {
- 3,
- -1, 1, 793,
- 55, 0, 277,
- 61, 0, 216
-};
-static int parser_action_row1225[] = {
- 2,
- -1, 3, 1224,
- 100, 0, 1403
-};
-static int parser_action_row1226[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1227[] = {
- 2,
- -1, 3, 1226,
- 46, 0, 1405
-};
-static int parser_action_row1228[] = {
- 5,
- -1, 3, 1227,
- 32, 0, 1406,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 1, 234
};
-static int parser_action_row1229[] = {
+static int parser_action_row1343[] = {
1,
- -1, 1, 767
-};
-static int parser_action_row1230[] = {
- 3,
- -1, 1, 163,
- 25, 1, 912,
- 50, 1, 1000
-};
-static int parser_action_row1231[] = {
- 2,
- -1, 3, 1230,
- 54, 0, 1408
-};
-static int parser_action_row1232[] = {
- 3,
- -1, 1, 162,
- 25, 1, 911,
- 50, 1, 999
-};
-static int parser_action_row1233[] = {
- 2,
- -1, 1, 263,
- 25, 1, 950
-};
-static int parser_action_row1234[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1235[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1236[] = {
- 2,
- -1, 1, 275,
- 25, 1, 954
+ -1, 1, 262
};
-static int parser_action_row1237[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row1344[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1238[] = {
- 2,
- -1, 1, 292,
- 25, 0, 1412
+static int parser_action_row1345[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1239[] = {
- 34,
- -1, 1, 468,
- 0, 0, 1,
- 1, 0, 2,
- 10, 0, 1413,
- 13, 0, 913,
- 16, 0, 914,
- 17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
- 39, 0, 44,
+static int parser_action_row1346[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1240[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row1347[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1241[] = {
- 2,
- -1, 3, 1240,
- 60, 0, 1417
+static int parser_action_row1348[] = {
+ 1,
+ -1, 1, 209
};
-static int parser_action_row1242[] = {
- 5,
- -1, 1, 468,
- 13, 0, 1418,
- 47, 0, 688,
- 99, 0, 54,
- 100, 0, 1419
+static int parser_action_row1349[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1243[] = {
- 2,
- -1, 1, 198,
- 25, 1, 940
+static int parser_action_row1350[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1244[] = {
- 2,
- -1, 1, 204,
- 25, 1, 946
+static int parser_action_row1351[] = {
+ 13,
+ -1, 1, 405,
+ 62, 0, 1578,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1245[] = {
- 2,
- -1, 1, 195,
- 25, 1, 937
+static int parser_action_row1352[] = {
+ 1,
+ -1, 1, 195
};
-static int parser_action_row1246[] = {
+static int parser_action_row1353[] = {
1,
- -1, 1, 270
+ -1, 1, 211
};
-static int parser_action_row1247[] = {
- 34,
- -1, 1, 468,
- 0, 0, 1,
- 1, 0, 2,
- 10, 0, 602,
- 13, 0, 31,
- 16, 0, 33,
- 17, 0, 34,
- 23, 0, 35,
- 26, 0, 36,
- 27, 0, 37,
- 28, 0, 38,
- 34, 0, 39,
- 35, 0, 40,
- 36, 0, 41,
- 37, 0, 42,
- 38, 0, 43,
- 39, 0, 44,
+static int parser_action_row1354[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 49,
- 52, 0, 50,
- 53, 0, 51,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1248[] = {
- 1,
- -1, 1, 271
+static int parser_action_row1355[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1249[] = {
- 4,
- -1, 3, 1248,
- 0, 0, 1,
- 1, 0, 2,
- 98, 0, 3
+static int parser_action_row1356[] = {
+ 13,
+ -1, 1, 409,
+ 62, 0, 1582,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1250[] = {
+static int parser_action_row1357[] = {
1,
- -1, 1, 266
-};
-static int parser_action_row1251[] = {
- 2,
- -1, 1, 206,
- 25, 1, 948
-};
-static int parser_action_row1252[] = {
- 2,
- -1, 1, 197,
- 25, 1, 939
+ -1, 1, 197
};
-static int parser_action_row1253[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1358[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1254[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row1359[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 356,
- 62, 0, 710,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 356,
+ 57, 1, 408,
+ 62, 0, 1585,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 408,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 408,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1255[] = {
+static int parser_action_row1360[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1256[] = {
+static int parser_action_row1361[] = {
1,
- -1, 1, 347
+ -1, 1, 947
};
-static int parser_action_row1257[] = {
+static int parser_action_row1362[] = {
2,
- -1, 3, 1256,
- 58, 0, 1426
+ -1, 1, 950,
+ 55, 0, 280
};
-static int parser_action_row1258[] = {
+static int parser_action_row1363[] = {
+ 3,
+ -1, 1, 954,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row1364[] = {
+ 2,
+ -1, 3, 1363,
+ 101, 0, 1592
+};
+static int parser_action_row1365[] = {
4,
- -1, 3, 1257,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 1, 884,
+ 57, 1, 912,
+ 76, 1, 912,
+ 97, 1, 912
};
-static int parser_action_row1259[] = {
- 1,
- -1, 1, 1095
+static int parser_action_row1366[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row1260[] = {
+static int parser_action_row1367[] = {
+ 4,
+ -1, 1, 888,
+ 57, 1, 916,
+ 76, 1, 916,
+ 97, 1, 916
+};
+static int parser_action_row1368[] = {
+ 4,
+ -1, 1, 892,
+ 57, 1, 920,
+ 76, 1, 920,
+ 97, 1, 920
+};
+static int parser_action_row1369[] = {
+ 5,
+ -1, 1, 891,
+ 55, 0, 280,
+ 57, 1, 919,
+ 76, 1, 919,
+ 97, 1, 919
+};
+static int parser_action_row1370[] = {
+ 4,
+ -1, 1, 894,
+ 57, 1, 922,
+ 76, 1, 922,
+ 97, 1, 922
+};
+static int parser_action_row1371[] = {
+ 5,
+ -1, 1, 897,
+ 55, 0, 280,
+ 57, 1, 925,
+ 76, 1, 925,
+ 97, 1, 925
+};
+static int parser_action_row1372[] = {
+ 6,
+ -1, 1, 901,
+ 55, 0, 280,
+ 57, 1, 929,
+ 61, 0, 218,
+ 76, 1, 929,
+ 97, 1, 929
+};
+static int parser_action_row1373[] = {
2,
- -1, 1, 812,
- 97, 0, 607
+ -1, 1, 529,
+ 101, 0, 1597
};
-static int parser_action_row1261[] = {
+static int parser_action_row1374[] = {
2,
- -1, 3, 1260,
- 56, 0, 1429
+ -1, 3, 1373,
+ 46, 0, 1598
};
-static int parser_action_row1262[] = {
+static int parser_action_row1375[] = {
+ 5,
+ -1, 3, 1374,
+ 32, 0, 1599,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
+};
+static int parser_action_row1376[] = {
1,
- -1, 1, 813
+ -1, 1, 918
};
-static int parser_action_row1263[] = {
+static int parser_action_row1377[] = {
1,
- -1, 1, 368
+ -1, 1, 924
};
-static int parser_action_row1264[] = {
+static int parser_action_row1378[] = {
1,
- -1, 1, 372
+ -1, 1, 928
};
-static int parser_action_row1265[] = {
+static int parser_action_row1379[] = {
2,
- -1, 1, 371,
- 55, 0, 277
+ -1, 1, 927,
+ 55, 0, 280
};
-static int parser_action_row1266[] = {
+static int parser_action_row1380[] = {
3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 163,
+ 25, 1, 1083,
+ 50, 1, 1187
};
-static int parser_action_row1267[] = {
- 1,
- -1, 1, 420
+static int parser_action_row1381[] = {
+ 2,
+ -1, 3, 1380,
+ 54, 0, 1602
};
-static int parser_action_row1268[] = {
- 1,
- -1, 1, 422
+static int parser_action_row1382[] = {
+ 3,
+ -1, 1, 162,
+ 25, 1, 1082,
+ 50, 1, 1186
};
-static int parser_action_row1269[] = {
- 1,
- -1, 1, 423
+static int parser_action_row1383[] = {
+ 2,
+ -1, 1, 289,
+ 25, 1, 1129
};
-static int parser_action_row1270[] = {
- 1,
- -1, 1, 424
+static int parser_action_row1384[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row1271[] = {
+static int parser_action_row1385[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1272[] = {
+static int parser_action_row1386[] = {
2,
- -1, 1, 435,
- 59, 0, 1433
-};
-static int parser_action_row1273[] = {
- 1,
- -1, 1, 287
+ -1, 1, 301,
+ 25, 1, 1133
};
-static int parser_action_row1274[] = {
- 2,
- -1, 3, 1273,
- 58, 0, 1436
+static int parser_action_row1387[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row1275[] = {
+static int parser_action_row1388[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 318,
+ 25, 0, 1606
};
-static int parser_action_row1276[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1389[] = {
+ 34,
+ -1, 1, 531,
+ 0, 0, 1,
+ 1, 0, 2,
+ 10, 0, 1607,
+ 13, 0, 977,
+ 16, 0, 978,
+ 17, 0, 34,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
+ 39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1277[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
- 43, 0, 45,
- 44, 0, 46,
- 45, 0, 47,
- 46, 0, 48,
- 49, 0, 175,
- 55, 0, 52,
- 57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+static int parser_action_row1390[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row1278[] = {
- 14,
- -1, 1, 348,
- 55, 0, 277,
- 62, 0, 1438,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+static int parser_action_row1391[] = {
+ 2,
+ -1, 3, 1390,
+ 60, 0, 1611
};
-static int parser_action_row1279[] = {
- 24,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 454,
- 28, 0, 455,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 43, 0, 45,
- 44, 0, 46,
- 45, 0, 47,
- 46, 0, 48,
- 49, 0, 175,
- 55, 0, 52,
- 57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+static int parser_action_row1392[] = {
+ 5,
+ -1, 1, 531,
+ 13, 0, 1612,
+ 47, 0, 720,
+ 100, 0, 54,
+ 101, 0, 1613
};
-static int parser_action_row1280[] = {
+static int parser_action_row1393[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1394[] = {
+ 2,
+ -1, 1, 202,
+ 25, 1, 1115
+};
+static int parser_action_row1395[] = {
+ 2,
+ -1, 1, 212,
+ 25, 1, 1125
+};
+static int parser_action_row1396[] = {
+ 2,
+ -1, 1, 199,
+ 25, 1, 1112
+};
+static int parser_action_row1397[] = {
1,
- -1, 1, 401
+ -1, 1, 296
};
-static int parser_action_row1281[] = {
+static int parser_action_row1398[] = {
+ 34,
+ -1, 1, 531,
+ 0, 0, 1,
+ 1, 0, 2,
+ 10, 0, 632,
+ 13, 0, 31,
+ 16, 0, 33,
+ 17, 0, 34,
+ 23, 0, 35,
+ 26, 0, 36,
+ 27, 0, 37,
+ 28, 0, 38,
+ 34, 0, 39,
+ 35, 0, 40,
+ 36, 0, 41,
+ 37, 0, 42,
+ 38, 0, 43,
+ 39, 0, 44,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 51, 0, 49,
+ 52, 0, 50,
+ 53, 0, 51,
+ 55, 0, 52,
+ 57, 0, 53,
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1399[] = {
1,
- -1, 1, 607
+ -1, 1, 297
};
-static int parser_action_row1282[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1400[] = {
+ 4,
+ -1, 3, 1399,
+ 0, 0, 1,
+ 1, 0, 2,
+ 99, 0, 3
+};
+static int parser_action_row1401[] = {
+ 1,
+ -1, 1, 292
+};
+static int parser_action_row1402[] = {
+ 2,
+ -1, 1, 214,
+ 25, 1, 1127
+};
+static int parser_action_row1403[] = {
+ 2,
+ -1, 1, 201,
+ 25, 1, 1114
+};
+static int parser_action_row1404[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1405[] = {
+ 40,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 416,
+ 62, 0, 743,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 416,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 416,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1406[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1407[] = {
+ 4,
+ -1, 1, 365,
+ 57, 1, 393,
+ 76, 1, 393,
+ 97, 1, 393
+};
+static int parser_action_row1408[] = {
+ 4,
+ -1, 1, 369,
+ 57, 1, 397,
+ 76, 1, 397,
+ 97, 1, 397
+};
+static int parser_action_row1409[] = {
+ 4,
+ -1, 1, 373,
+ 57, 1, 401,
+ 76, 1, 401,
+ 97, 1, 401
+};
+static int parser_action_row1410[] = {
+ 5,
+ -1, 1, 372,
+ 55, 0, 280,
+ 57, 1, 400,
+ 76, 1, 400,
+ 97, 1, 400
+};
+static int parser_action_row1411[] = {
+ 4,
+ -1, 1, 375,
+ 57, 1, 403,
+ 76, 1, 403,
+ 97, 1, 403
+};
+static int parser_action_row1412[] = {
+ 5,
+ -1, 1, 378,
+ 55, 0, 280,
+ 57, 1, 406,
+ 76, 1, 406,
+ 97, 1, 406
+};
+static int parser_action_row1413[] = {
+ 6,
+ -1, 1, 382,
+ 55, 0, 280,
+ 57, 1, 410,
+ 61, 0, 218,
+ 76, 1, 410,
+ 97, 1, 410
+};
+static int parser_action_row1414[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1624
+};
+static int parser_action_row1415[] = {
+ 1,
+ -1, 1, 399
+};
+static int parser_action_row1416[] = {
+ 1,
+ -1, 1, 405
+};
+static int parser_action_row1417[] = {
+ 1,
+ -1, 1, 409
+};
+static int parser_action_row1418[] = {
+ 2,
+ -1, 1, 408,
+ 55, 0, 280
+};
+static int parser_action_row1419[] = {
+ 2,
+ -1, 3, 1418,
+ 58, 0, 1626
+};
+static int parser_action_row1420[] = {
+ 4,
+ -1, 3, 1419,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
+};
+static int parser_action_row1421[] = {
+ 1,
+ -1, 1, 1282
+};
+static int parser_action_row1422[] = {
+ 2,
+ -1, 1, 973,
+ 98, 0, 637
+};
+static int parser_action_row1423[] = {
+ 2,
+ -1, 3, 1422,
+ 56, 0, 1629
+};
+static int parser_action_row1424[] = {
+ 1,
+ -1, 1, 974
+};
+static int parser_action_row1425[] = {
+ 1,
+ -1, 1, 430
+};
+static int parser_action_row1426[] = {
+ 1,
+ -1, 1, 434
+};
+static int parser_action_row1427[] = {
+ 2,
+ -1, 1, 433,
+ 55, 0, 280
+};
+static int parser_action_row1428[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1429[] = {
+ 1,
+ -1, 1, 482
+};
+static int parser_action_row1430[] = {
+ 1,
+ -1, 1, 484
+};
+static int parser_action_row1431[] = {
+ 1,
+ -1, 1, 485
+};
+static int parser_action_row1432[] = {
+ 1,
+ -1, 1, 486
+};
+static int parser_action_row1433[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1434[] = {
+ 2,
+ -1, 1, 497,
+ 59, 0, 1633
+};
+static int parser_action_row1435[] = {
+ 1,
+ -1, 1, 313
+};
+static int parser_action_row1436[] = {
+ 2,
+ -1, 3, 1435,
+ 58, 0, 1636
+};
+static int parser_action_row1437[] = {
+ 2,
+ -1, 1, 477,
+ 98, 0, 206
+};
+static int parser_action_row1438[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1283[] = {
- 21,
- -1, 1, 468,
- 13, 0, 1133,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1439[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1284[] = {
+static int parser_action_row1440[] = {
+ 14,
+ -1, 1, 400,
+ 55, 0, 280,
+ 62, 0, 1638,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1441[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1442[] = {
+ 14,
+ -1, 1, 406,
+ 55, 0, 280,
+ 62, 0, 1639,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1443[] = {
+ 15,
+ -1, 1, 410,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1640,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1444[] = {
+ 22,
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 1641
+};
+static int parser_action_row1445[] = {
+ 25,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 467,
+ 28, 0, 468,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1446[] = {
+ 1,
+ -1, 1, 463
+};
+static int parser_action_row1447[] = {
+ 1,
+ -1, 1, 705
+};
+static int parser_action_row1448[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1449[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
+};
+static int parser_action_row1450[] = {
4,
- -1, 3, 1283,
- 48, 0, 1443,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1449,
+ 48, 0, 1646,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1285[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1451[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1286[] = {
+static int parser_action_row1452[] = {
1,
- -1, 1, 624
+ -1, 1, 723
};
-static int parser_action_row1287[] = {
+static int parser_action_row1453[] = {
1,
- -1, 1, 625
+ -1, 1, 724
};
-static int parser_action_row1288[] = {
+static int parser_action_row1454[] = {
1,
- -1, 1, 626
+ -1, 1, 725
};
-static int parser_action_row1289[] = {
+static int parser_action_row1455[] = {
1,
- -1, 1, 627
+ -1, 1, 726
};
-static int parser_action_row1290[] = {
+static int parser_action_row1456[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1291[] = {
+static int parser_action_row1457[] = {
3,
- -1, 3, 1290,
- 42, 0, 1300,
- 101, 0, 1448
+ -1, 3, 1456,
+ 42, 0, 1470,
+ 102, 0, 1651
};
-static int parser_action_row1292[] = {
- 2,
- -1, 3, 1291,
- 76, 0, 1449
+static int parser_action_row1458[] = {
+ 3,
+ -1, 3, 1457,
+ 76, 0, 1652,
+ 97, 0, 1653
};
-static int parser_action_row1293[] = {
+static int parser_action_row1459[] = {
1,
- -1, 1, 577
+ -1, 1, 640
};
-static int parser_action_row1294[] = {
+static int parser_action_row1460[] = {
1,
- -1, 1, 576
+ -1, 1, 639
};
-static int parser_action_row1295[] = {
+static int parser_action_row1461[] = {
+ 5,
+ -1, 1, 654,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 682,
+ 97, 1, 682
+};
+static int parser_action_row1462[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 1655
+};
+static int parser_action_row1463[] = {
+ 3,
+ -1, 3, 1462,
+ 76, 0, 1656,
+ 97, 0, 1657
+};
+static int parser_action_row1464[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1658
+};
+static int parser_action_row1465[] = {
1,
- -1, 1, 578
+ -1, 1, 641
};
-static int parser_action_row1296[] = {
+static int parser_action_row1466[] = {
1,
- -1, 1, 589
+ -1, 1, 679
};
-static int parser_action_row1297[] = {
+static int parser_action_row1467[] = {
1,
- -1, 1, 628
+ -1, 1, 727
};
-static int parser_action_row1298[] = {
+static int parser_action_row1468[] = {
1,
- -1, 1, 629
+ -1, 1, 728
};
-static int parser_action_row1299[] = {
+static int parser_action_row1469[] = {
1,
- -1, 1, 631
+ -1, 1, 730
};
-static int parser_action_row1300[] = {
+static int parser_action_row1470[] = {
1,
- -1, 1, 630
+ -1, 1, 729
};
-static int parser_action_row1301[] = {
+static int parser_action_row1471[] = {
2,
- -1, 1, 605,
- 55, 0, 277
+ -1, 1, 702,
+ 55, 0, 280
};
-static int parser_action_row1302[] = {
+static int parser_action_row1472[] = {
1,
- -1, 1, 587
+ -1, 1, 676
};
-static int parser_action_row1303[] = {
+static int parser_action_row1473[] = {
2,
- -1, 1, 595,
- 55, 0, 277
+ -1, 1, 688,
+ 55, 0, 280
};
-static int parser_action_row1304[] = {
+static int parser_action_row1474[] = {
3,
- -1, 3, 1303,
- 57, 0, 1452,
- 58, 0, 1453
+ -1, 3, 1473,
+ 57, 0, 1662,
+ 58, 0, 1663
};
-static int parser_action_row1305[] = {
+static int parser_action_row1475[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1306[] = {
+static int parser_action_row1476[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 25, 0, 1455
+ 25, 0, 1665
};
-static int parser_action_row1307[] = {
+static int parser_action_row1477[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1308[] = {
+static int parser_action_row1478[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1309[] = {
+static int parser_action_row1479[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1310[] = {
+static int parser_action_row1480[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1311[] = {
+static int parser_action_row1481[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1312[] = {
+static int parser_action_row1482[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1313[] = {
+static int parser_action_row1483[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1314[] = {
+static int parser_action_row1484[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1315[] = {
+static int parser_action_row1485[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1316[] = {
+static int parser_action_row1486[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1317[] = {
+static int parser_action_row1487[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1318[] = {
+static int parser_action_row1488[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1319[] = {
+static int parser_action_row1489[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1320[] = {
+static int parser_action_row1490[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1321[] = {
+static int parser_action_row1491[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1322[] = {
+static int parser_action_row1492[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1323[] = {
+static int parser_action_row1493[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1324[] = {
+static int parser_action_row1494[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1325[] = {
+static int parser_action_row1495[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1326[] = {
+static int parser_action_row1496[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1327[] = {
+static int parser_action_row1497[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1328[] = {
+static int parser_action_row1498[] = {
+ 2,
+ -1, 3, 1497,
+ 76, 0, 1688
+};
+static int parser_action_row1499[] = {
3,
- -1, 1, 603,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 700,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1329[] = {
+static int parser_action_row1500[] = {
2,
- -1, 1, 466,
- 100, 0, 1479
+ -1, 1, 529,
+ 101, 0, 1690
};
-static int parser_action_row1330[] = {
+static int parser_action_row1501[] = {
2,
- -1, 1, 464,
- 61, 0, 216
+ -1, 1, 527,
+ 61, 0, 218
};
-static int parser_action_row1331[] = {
+static int parser_action_row1502[] = {
1,
- -1, 1, 1088
+ -1, 1, 1275
};
-static int parser_action_row1332[] = {
+static int parser_action_row1503[] = {
2,
-1, 1, 30,
14, 0, 32
};
-static int parser_action_row1333[] = {
+static int parser_action_row1504[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 10, 0, 1481,
- 98, 0, 3
+ 10, 0, 1692,
+ 99, 0, 3
};
-static int parser_action_row1334[] = {
+static int parser_action_row1505[] = {
2,
-1, 1, 121,
- 74, 0, 1483
+ 74, 0, 1694
};
-static int parser_action_row1335[] = {
+static int parser_action_row1506[] = {
2,
- -1, 1, 414,
- 60, 0, 857
+ -1, 1, 476,
+ 60, 0, 905
};
-static int parser_action_row1336[] = {
+static int parser_action_row1507[] = {
1,
-1, 1, 120
};
-static int parser_action_row1337[] = {
+static int parser_action_row1508[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 60, 0, 857
+ 60, 0, 905
};
-static int parser_action_row1338[] = {
+static int parser_action_row1509[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1339[] = {
+static int parser_action_row1510[] = {
1,
- -1, 1, 1090
+ -1, 1, 1277
};
-static int parser_action_row1340[] = {
+static int parser_action_row1511[] = {
1,
-1, 1, 116
};
-static int parser_action_row1341[] = {
+static int parser_action_row1512[] = {
4,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 59, 0, 1337
+ 59, 0, 1508
};
-static int parser_action_row1342[] = {
+static int parser_action_row1513[] = {
1,
-1, 1, 131
};
-static int parser_action_row1343[] = {
+static int parser_action_row1514[] = {
2,
-1, 1, 125,
- 59, 0, 1490
+ 59, 0, 1701
};
-static int parser_action_row1344[] = {
+static int parser_action_row1515[] = {
1,
-1, 1, 129
};
-static int parser_action_row1345[] = {
+static int parser_action_row1516[] = {
1,
-1, 1, 130
};
-static int parser_action_row1346[] = {
+static int parser_action_row1517[] = {
2,
-1, 1, 134,
- 76, 0, 1493
+ 76, 0, 1704
};
-static int parser_action_row1347[] = {
+static int parser_action_row1518[] = {
1,
-1, 1, 132
};
-static int parser_action_row1348[] = {
+static int parser_action_row1519[] = {
23,
- -1, 3, 1347,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 610,
- 100, 0, 861
+ -1, 3, 1518,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 640,
+ 101, 0, 909
};
-static int parser_action_row1349[] = {
+static int parser_action_row1520[] = {
23,
- -1, 3, 1348,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 612,
- 100, 0, 679
+ -1, 3, 1519,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 642,
+ 101, 0, 711
};
-static int parser_action_row1350[] = {
+static int parser_action_row1521[] = {
9,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
4, 1, 83,
- 10, 0, 1495,
+ 10, 0, 1706,
16, 1, 83,
29, 1, 83,
- 98, 0, 3,
- 112, 1, 83
+ 99, 0, 3,
+ 113, 1, 83
};
-static int parser_action_row1351[] = {
+static int parser_action_row1522[] = {
1,
- -1, 1, 480
+ -1, 1, 543
};
-static int parser_action_row1352[] = {
+static int parser_action_row1523[] = {
1,
- -1, 1, 501
+ -1, 1, 564
};
-static int parser_action_row1353[] = {
+static int parser_action_row1524[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1354[] = {
+static int parser_action_row1525[] = {
1,
- -1, 1, 505
+ -1, 1, 568
};
-static int parser_action_row1355[] = {
+static int parser_action_row1526[] = {
3,
-1, 1, 161,
- 60, 0, 333,
- 97, 0, 204
+ 60, 0, 341,
+ 98, 0, 206
};
-static int parser_action_row1356[] = {
+static int parser_action_row1527[] = {
2,
- -1, 3, 1355,
- 58, 0, 1499
+ -1, 3, 1526,
+ 58, 0, 1710
};
-static int parser_action_row1357[] = {
+static int parser_action_row1528[] = {
2,
-1, 1, 38,
- 59, 0, 1500
+ 59, 0, 1711
};
-static int parser_action_row1358[] = {
+static int parser_action_row1529[] = {
1,
-1, 1, 27
};
-static int parser_action_row1359[] = {
+static int parser_action_row1530[] = {
8,
- -1, 3, 1358,
- 11, 0, 1503,
- 12, 0, 1504,
- 13, 0, 1505,
- 17, 0, 1506,
- 39, 0, 1507,
- 40, 0, 1508,
- 42, 0, 1509
+ -1, 3, 1529,
+ 11, 0, 1714,
+ 12, 0, 1715,
+ 13, 0, 1716,
+ 17, 0, 1717,
+ 39, 0, 1718,
+ 40, 0, 1719,
+ 42, 0, 1720
};
-static int parser_action_row1360[] = {
- 25,
- -1, 1, 1024,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1531[] = {
+ 26,
+ -1, 1, 1211,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1361[] = {
+static int parser_action_row1532[] = {
2,
- -1, 1, 1030,
- 50, 0, 197
+ -1, 1, 1217,
+ 50, 0, 199
};
-static int parser_action_row1362[] = {
+static int parser_action_row1533[] = {
2,
- -1, 1, 1027,
- 50, 0, 197
+ -1, 1, 1214,
+ 50, 0, 199
};
-static int parser_action_row1363[] = {
+static int parser_action_row1534[] = {
1,
- -1, 1, 1029
+ -1, 1, 1216
};
-static int parser_action_row1364[] = {
+static int parser_action_row1535[] = {
2,
- -1, 3, 1363,
- 12, 0, 1513
+ -1, 3, 1534,
+ 12, 0, 1724
};
-static int parser_action_row1365[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1536[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1366[] = {
+static int parser_action_row1537[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1367[] = {
- 23,
- -1, 1, 508,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1538[] = {
+ 24,
+ -1, 1, 571,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1368[] = {
- 23,
- -1, 1, 509,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1539[] = {
+ 24,
+ -1, 1, 572,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1369[] = {
- 23,
- -1, 1, 517,
- 13, 0, 170,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1540[] = {
+ 16,
+ -1, 1, 579,
+ 13, 0, 116,
+ 39, 0, 290,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 100, 0, 54,
+ 101, 0, 296,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1541[] = {
+ 24,
+ -1, 1, 580,
+ 13, 0, 171,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1370[] = {
+static int parser_action_row1542[] = {
15,
- -1, 1, 772,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1516,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 931,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1727,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1371[] = {
+static int parser_action_row1543[] = {
1,
- -1, 1, 817
+ -1, 1, 978
};
-static int parser_action_row1372[] = {
+static int parser_action_row1544[] = {
1,
- -1, 1, 1022
+ -1, 1, 1209
};
-static int parser_action_row1373[] = {
+static int parser_action_row1545[] = {
1,
- -1, 1, 1032
+ -1, 1, 1219
};
-static int parser_action_row1374[] = {
+static int parser_action_row1546[] = {
1,
- -1, 1, 1034
+ -1, 1, 1221
};
-static int parser_action_row1375[] = {
+static int parser_action_row1547[] = {
1,
- -1, 1, 1033
+ -1, 1, 1220
};
-static int parser_action_row1376[] = {
+static int parser_action_row1548[] = {
1,
- -1, 1, 1035
+ -1, 1, 1222
};
-static int parser_action_row1377[] = {
+static int parser_action_row1549[] = {
1,
- -1, 1, 1036
+ -1, 1, 1223
};
-static int parser_action_row1378[] = {
+static int parser_action_row1550[] = {
1,
- -1, 1, 1037
+ -1, 1, 1224
};
-static int parser_action_row1379[] = {
+static int parser_action_row1551[] = {
1,
- -1, 1, 431
+ -1, 1, 493
};
-static int parser_action_row1380[] = {
+static int parser_action_row1552[] = {
3,
- -1, 3, 1379,
- 42, 0, 299,
- 101, 0, 1519
+ -1, 3, 1551,
+ 42, 0, 306,
+ 102, 0, 1730
};
-static int parser_action_row1381[] = {
+static int parser_action_row1553[] = {
23,
- -1, 1, 465,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 610,
- 100, 0, 1520
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 640,
+ 101, 0, 1731
};
-static int parser_action_row1382[] = {
+static int parser_action_row1554[] = {
1,
- -1, 1, 821
+ -1, 1, 983
};
-static int parser_action_row1383[] = {
+static int parser_action_row1555[] = {
1,
- -1, 1, 1023
+ -1, 1, 1210
};
-static int parser_action_row1384[] = {
+static int parser_action_row1556[] = {
1,
- -1, 1, 818
+ -1, 1, 979
};
-static int parser_action_row1385[] = {
- 3,
- -1, 1, 755,
- 57, 0, 244,
- 76, 0, 1521
+static int parser_action_row1557[] = {
+ 4,
+ -1, 1, 880,
+ 57, 0, 246,
+ 76, 0, 1732,
+ 97, 0, 1733
};
-static int parser_action_row1386[] = {
+static int parser_action_row1558[] = {
1,
- -1, 1, 434
+ -1, 1, 496
};
-static int parser_action_row1387[] = {
+static int parser_action_row1559[] = {
2,
- -1, 1, 815,
- 59, 0, 1433
+ -1, 1, 976,
+ 59, 0, 1633
};
-static int parser_action_row1388[] = {
+static int parser_action_row1560[] = {
1,
- -1, 1, 819
+ -1, 1, 980
};
-static int parser_action_row1389[] = {
+static int parser_action_row1561[] = {
23,
- -1, 1, 467,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 612,
- 100, 0, 1524
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 642,
+ 101, 0, 1736
};
-static int parser_action_row1390[] = {
+static int parser_action_row1562[] = {
1,
- -1, 1, 376
+ -1, 1, 438
};
-static int parser_action_row1391[] = {
+static int parser_action_row1563[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1392[] = {
+static int parser_action_row1564[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1393[] = {
+static int parser_action_row1565[] = {
1,
- -1, 1, 218
+ -1, 1, 227
};
-static int parser_action_row1394[] = {
+static int parser_action_row1566[] = {
1,
- -1, 1, 237
+ -1, 1, 255
};
-static int parser_action_row1395[] = {
+static int parser_action_row1567[] = {
1,
- -1, 1, 222
+ -1, 1, 231
};
-static int parser_action_row1396[] = {
+static int parser_action_row1568[] = {
1,
- -1, 1, 241
+ -1, 1, 259
};
-static int parser_action_row1397[] = {
+static int parser_action_row1569[] = {
1,
- -1, 1, 221
+ -1, 1, 230
};
-static int parser_action_row1398[] = {
+static int parser_action_row1570[] = {
+ 1,
+ -1, 1, 258
+};
+static int parser_action_row1571[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1572[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1573[] = {
+ 1,
+ -1, 1, 233
+};
+static int parser_action_row1574[] = {
+ 1,
+ -1, 1, 261
+};
+static int parser_action_row1575[] = {
+ 1,
+ -1, 1, 223
+};
+static int parser_action_row1576[] = {
+ 1,
+ -1, 1, 251
+};
+static int parser_action_row1577[] = {
+ 1,
+ -1, 1, 236
+};
+static int parser_action_row1578[] = {
+ 1,
+ -1, 1, 264
+};
+static int parser_action_row1579[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1580[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1581[] = {
1,
-1, 1, 240
};
-static int parser_action_row1399[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1582[] = {
+ 1,
+ -1, 1, 268
+};
+static int parser_action_row1583[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1400[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1584[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1401[] = {
+static int parser_action_row1585[] = {
+ 1,
+ -1, 1, 210
+};
+static int parser_action_row1586[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1587[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1588[] = {
+ 13,
+ -1, 1, 407,
+ 62, 0, 1748,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1589[] = {
+ 1,
+ -1, 1, 196
+};
+static int parser_action_row1590[] = {
2,
- -1, 3, 1400,
- 25, 0, 1530
+ -1, 3, 1589,
+ 25, 0, 1750
};
-static int parser_action_row1402[] = {
+static int parser_action_row1591[] = {
1,
- -1, 1, 788
+ -1, 1, 949
};
-static int parser_action_row1403[] = {
+static int parser_action_row1592[] = {
1,
- -1, 1, 792
+ -1, 1, 953
};
-static int parser_action_row1404[] = {
+static int parser_action_row1593[] = {
2,
- -1, 1, 791,
- 55, 0, 277
+ -1, 1, 952,
+ 55, 0, 280
};
-static int parser_action_row1405[] = {
+static int parser_action_row1594[] = {
1,
- -1, 1, 456
+ -1, 1, 519
};
-static int parser_action_row1406[] = {
+static int parser_action_row1595[] = {
+ 4,
+ -1, 1, 890,
+ 57, 1, 918,
+ 76, 1, 918,
+ 97, 1, 918
+};
+static int parser_action_row1596[] = {
+ 4,
+ -1, 1, 896,
+ 57, 1, 924,
+ 76, 1, 924,
+ 97, 1, 924
+};
+static int parser_action_row1597[] = {
+ 4,
+ -1, 1, 900,
+ 57, 1, 928,
+ 76, 1, 928,
+ 97, 1, 928
+};
+static int parser_action_row1598[] = {
+ 5,
+ -1, 1, 899,
+ 55, 0, 280,
+ 57, 1, 927,
+ 76, 1, 927,
+ 97, 1, 927
+};
+static int parser_action_row1599[] = {
1,
- -1, 1, 796
+ -1, 1, 957
};
-static int parser_action_row1407[] = {
+static int parser_action_row1600[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1408[] = {
+static int parser_action_row1601[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1409[] = {
+static int parser_action_row1602[] = {
+ 1,
+ -1, 1, 926
+};
+static int parser_action_row1603[] = {
5,
- -1, 3, 1408,
+ -1, 3, 1602,
0, 0, 1,
1, 0, 2,
- 10, 0, 756,
- 98, 0, 3
+ 10, 0, 796,
+ 99, 0, 3
};
-static int parser_action_row1410[] = {
+static int parser_action_row1604[] = {
2,
- -1, 3, 1409,
- 24, 0, 1535
+ -1, 3, 1603,
+ 24, 0, 1756
};
-static int parser_action_row1411[] = {
+static int parser_action_row1605[] = {
2,
- -1, 3, 1410,
- 16, 0, 1536
+ -1, 3, 1604,
+ 16, 0, 1757
};
-static int parser_action_row1412[] = {
+static int parser_action_row1606[] = {
3,
- -1, 3, 1411,
- 16, 0, 1537,
- 59, 0, 769
+ -1, 3, 1605,
+ 16, 0, 1758,
+ 59, 0, 809
};
-static int parser_action_row1413[] = {
+static int parser_action_row1607[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1413,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1607,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1414[] = {
+static int parser_action_row1608[] = {
2,
-1, 1, 164,
- 25, 1, 913
+ 25, 1, 1084
};
-static int parser_action_row1415[] = {
+static int parser_action_row1609[] = {
31,
- -1, 1, 468,
- 10, 0, 1539,
+ -1, 1, 531,
+ 10, 0, 1760,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1416[] = {
+static int parser_action_row1610[] = {
1,
- -1, 1, 962
+ -1, 1, 1141
};
-static int parser_action_row1417[] = {
+static int parser_action_row1611[] = {
2,
- -1, 3, 1416,
- 16, 0, 1541
+ -1, 3, 1610,
+ 16, 0, 1762
};
-static int parser_action_row1418[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1612[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1419[] = {
- 26,
- -1, 1, 452,
+static int parser_action_row1613[] = {
+ 28,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 362,
- 76, 1, 362,
+ 57, 1, 422,
+ 76, 1, 422,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 422,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1420[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row1614[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 344,
- 61, 0, 216,
- 62, 0, 870,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 344,
+ 57, 1, 396,
+ 61, 0, 218,
+ 62, 0, 918,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 396,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 396,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1421[] = {
+static int parser_action_row1615[] = {
3,
- -1, 1, 465,
- 13, 0, 1545,
- 100, 0, 1546
+ -1, 1, 528,
+ 13, 0, 1766,
+ 101, 0, 1767
};
-static int parser_action_row1422[] = {
+static int parser_action_row1616[] = {
4,
- -1, 1, 467,
- 13, 0, 1547,
- 99, 0, 54,
- 100, 0, 1548
+ -1, 1, 530,
+ 13, 0, 1768,
+ 100, 0, 54,
+ 101, 0, 1769
};
-static int parser_action_row1423[] = {
+static int parser_action_row1617[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1771,
+ 100, 0, 54,
+ 101, 0, 1772
+};
+static int parser_action_row1618[] = {
1,
- -1, 1, 268
+ -1, 1, 294
};
-static int parser_action_row1424[] = {
+static int parser_action_row1619[] = {
2,
- -1, 1, 205,
- 25, 1, 947
+ -1, 1, 213,
+ 25, 1, 1126
};
-static int parser_action_row1425[] = {
+static int parser_action_row1620[] = {
2,
- -1, 1, 196,
- 25, 1, 938
+ -1, 1, 200,
+ 25, 1, 1113
};
-static int parser_action_row1426[] = {
+static int parser_action_row1621[] = {
2,
- -1, 3, 1425,
- 25, 0, 1550
+ -1, 3, 1620,
+ 25, 0, 1775
};
-static int parser_action_row1427[] = {
+static int parser_action_row1622[] = {
+ 4,
+ -1, 1, 371,
+ 57, 1, 399,
+ 76, 1, 399,
+ 97, 1, 399
+};
+static int parser_action_row1623[] = {
+ 4,
+ -1, 1, 377,
+ 57, 1, 405,
+ 76, 1, 405,
+ 97, 1, 405
+};
+static int parser_action_row1624[] = {
+ 4,
+ -1, 1, 381,
+ 57, 1, 409,
+ 76, 1, 409,
+ 97, 1, 409
+};
+static int parser_action_row1625[] = {
+ 5,
+ -1, 1, 380,
+ 55, 0, 280,
+ 57, 1, 408,
+ 76, 1, 408,
+ 97, 1, 408
+};
+static int parser_action_row1626[] = {
+ 1,
+ -1, 1, 407
+};
+static int parser_action_row1627[] = {
2,
- -1, 1, 812,
- 97, 0, 607
+ -1, 1, 973,
+ 98, 0, 637
};
-static int parser_action_row1428[] = {
+static int parser_action_row1628[] = {
1,
-1, 1, 158
};
-static int parser_action_row1429[] = {
+static int parser_action_row1629[] = {
1,
- -1, 1, 639
+ -1, 1, 738
};
-static int parser_action_row1430[] = {
+static int parser_action_row1630[] = {
1,
- -1, 1, 810
+ -1, 1, 971
};
-static int parser_action_row1431[] = {
+static int parser_action_row1631[] = {
1,
- -1, 1, 370
+ -1, 1, 432
};
-static int parser_action_row1432[] = {
+static int parser_action_row1632[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1433[] = {
+static int parser_action_row1633[] = {
2,
- -1, 3, 1432,
- 56, 0, 1553
+ -1, 3, 1632,
+ 56, 0, 1779
};
-static int parser_action_row1434[] = {
+static int parser_action_row1634[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1435[] = {
+static int parser_action_row1635[] = {
1,
- -1, 1, 1106
+ -1, 1, 1293
};
-static int parser_action_row1436[] = {
+static int parser_action_row1636[] = {
2,
- -1, 1, 436,
- 59, 0, 1433
+ -1, 1, 498,
+ 59, 0, 1633
};
-static int parser_action_row1437[] = {
+static int parser_action_row1637[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1438[] = {
+static int parser_action_row1638[] = {
1,
-1, 1, 154
};
-static int parser_action_row1439[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1639[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1440[] = {
+static int parser_action_row1640[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1641[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1642[] = {
+ 14,
+ -1, 1, 408,
+ 55, 0, 280,
+ 62, 0, 1783,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1643[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1441[] = {
+static int parser_action_row1644[] = {
1,
- -1, 1, 402
+ -1, 1, 464
};
-static int parser_action_row1442[] = {
+static int parser_action_row1645[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1443[] = {
+static int parser_action_row1646[] = {
1,
- -1, 1, 547
+ -1, 1, 610
};
-static int parser_action_row1444[] = {
+static int parser_action_row1647[] = {
3,
- -1, 3, 1443,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1646,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1445[] = {
+static int parser_action_row1648[] = {
2,
- -1, 1, 812,
- 97, 0, 607
+ -1, 1, 973,
+ 98, 0, 637
};
-static int parser_action_row1446[] = {
+static int parser_action_row1649[] = {
3,
- -1, 1, 582,
- 55, 0, 277,
- 76, 0, 1561
+ -1, 1, 645,
+ 55, 0, 280,
+ 76, 0, 1788
};
-static int parser_action_row1447[] = {
+static int parser_action_row1650[] = {
1,
- -1, 1, 579
+ -1, 1, 642
};
-static int parser_action_row1448[] = {
+static int parser_action_row1651[] = {
4,
- -1, 3, 1447,
- 48, 0, 1443,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1650,
+ 48, 0, 1646,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1449[] = {
+static int parser_action_row1652[] = {
+ 3,
+ -1, 1, 648,
+ 76, 1, 676,
+ 97, 1, 676
+};
+static int parser_action_row1653[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1654[] = {
2,
- -1, 1, 584,
- 76, 1, 587
+ -1, 3, 1653,
+ 76, 0, 1792
};
-static int parser_action_row1450[] = {
+static int parser_action_row1655[] = {
3,
- -1, 1, 497,
+ -1, 1, 651,
+ 76, 1, 679,
+ 97, 1, 679
+};
+static int parser_action_row1656[] = {
+ 4,
+ -1, 1, 660,
+ 55, 0, 280,
+ 76, 1, 688,
+ 97, 1, 688
+};
+static int parser_action_row1657[] = {
+ 3,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1451[] = {
+static int parser_action_row1658[] = {
+ 2,
+ -1, 3, 1657,
+ 76, 0, 1795
+};
+static int parser_action_row1659[] = {
+ 5,
+ -1, 1, 672,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 700,
+ 97, 1, 700
+};
+static int parser_action_row1660[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 1797
+};
+static int parser_action_row1661[] = {
1,
- -1, 1, 604
+ -1, 1, 701
};
-static int parser_action_row1452[] = {
+static int parser_action_row1662[] = {
1,
- -1, 1, 593
+ -1, 1, 685
};
-static int parser_action_row1453[] = {
+static int parser_action_row1663[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1454[] = {
+static int parser_action_row1664[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1455[] = {
- 21,
- -1, 1, 468,
- 13, 0, 1133,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1665[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1456[] = {
+static int parser_action_row1666[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1457[] = {
- 21,
- -1, 1, 468,
- 13, 0, 1133,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1667[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1458[] = {
- 21,
- -1, 1, 468,
- 13, 0, 1133,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1668[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1459[] = {
+static int parser_action_row1669[] = {
4,
- -1, 3, 1458,
- 48, 0, 1571,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1668,
+ 48, 0, 1804,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1460[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1670[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1461[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1671[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1462[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1672[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1463[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1673[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1464[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1674[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1465[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1675[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1466[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1676[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1467[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1677[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1468[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1678[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1469[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1679[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1470[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1680[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1471[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1681[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1472[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1682[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1473[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1683[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1474[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1684[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1475[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1685[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1476[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1686[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1477[] = {
- 20,
- -1, 1, 468,
- 13, 0, 1133,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1687[] = {
+ 21,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1478[] = {
+static int parser_action_row1688[] = {
5,
- -1, 1, 468,
- 13, 0, 1592,
- 47, 0, 1593,
- 99, 0, 54,
- 100, 0, 1594
+ -1, 1, 531,
+ 13, 0, 1825,
+ 47, 0, 1826,
+ 100, 0, 54,
+ 101, 0, 1827
};
-static int parser_action_row1479[] = {
+static int parser_action_row1689[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1690[] = {
1,
- -1, 1, 601
+ -1, 1, 697
};
-static int parser_action_row1480[] = {
+static int parser_action_row1691[] = {
2,
- -1, 1, 599,
- 55, 0, 277
+ -1, 1, 694,
+ 55, 0, 280
};
-static int parser_action_row1481[] = {
+static int parser_action_row1692[] = {
5,
-1, 1, 84,
- 19, 0, 236,
- 20, 0, 237,
- 21, 0, 238,
- 22, 0, 239
+ 19, 0, 238,
+ 20, 0, 239,
+ 21, 0, 240,
+ 22, 0, 241
};
-static int parser_action_row1482[] = {
+static int parser_action_row1693[] = {
1,
-1, 1, 80
};
-static int parser_action_row1483[] = {
+static int parser_action_row1694[] = {
1,
- -1, 1, 1089
+ -1, 1, 1276
};
-static int parser_action_row1484[] = {
+static int parser_action_row1695[] = {
1,
-1, 1, 123
};
-static int parser_action_row1485[] = {
+static int parser_action_row1696[] = {
2,
-1, 1, 122,
- 74, 0, 1600
+ 74, 0, 1834
};
-static int parser_action_row1486[] = {
+static int parser_action_row1697[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1487[] = {
+static int parser_action_row1698[] = {
1,
-1, 1, 113
};
-static int parser_action_row1488[] = {
+static int parser_action_row1699[] = {
2,
- -1, 3, 1487,
- 100, 0, 1178
+ -1, 3, 1698,
+ 101, 0, 1299
};
-static int parser_action_row1489[] = {
+static int parser_action_row1700[] = {
1,
- -1, 1, 1091
+ -1, 1, 1278
};
-static int parser_action_row1490[] = {
+static int parser_action_row1701[] = {
1,
-1, 1, 117
};
-static int parser_action_row1491[] = {
+static int parser_action_row1702[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1492[] = {
+static int parser_action_row1703[] = {
1,
- -1, 1, 1092
+ -1, 1, 1279
};
-static int parser_action_row1493[] = {
+static int parser_action_row1704[] = {
2,
-1, 1, 126,
- 59, 0, 1490
+ 59, 0, 1701
};
-static int parser_action_row1494[] = {
+static int parser_action_row1705[] = {
24,
- -1, 3, 1493,
- 47, 0, 1605,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ -1, 3, 1704,
+ 47, 0, 1839,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row1495[] = {
+static int parser_action_row1706[] = {
23,
- -1, 3, 1494,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 814,
- 100, 0, 861
+ -1, 3, 1705,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 861,
+ 101, 0, 909
};
-static int parser_action_row1496[] = {
+static int parser_action_row1707[] = {
1,
- -1, 1, 507
+ -1, 1, 570
};
-static int parser_action_row1497[] = {
+static int parser_action_row1708[] = {
1,
- -1, 1, 502
+ -1, 1, 565
};
-static int parser_action_row1498[] = {
+static int parser_action_row1709[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1499[] = {
+static int parser_action_row1710[] = {
2,
-1, 1, 161,
- 60, 0, 333
+ 60, 0, 341
};
-static int parser_action_row1500[] = {
+static int parser_action_row1711[] = {
6,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
29, 0, 84,
- 98, 0, 3,
- 112, 0, 85
+ 99, 0, 3,
+ 113, 0, 85
};
-static int parser_action_row1501[] = {
+static int parser_action_row1712[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1502[] = {
+static int parser_action_row1713[] = {
1,
- -1, 1, 1084
+ -1, 1, 1271
};
-static int parser_action_row1503[] = {
+static int parser_action_row1714[] = {
2,
-1, 1, 39,
- 59, 0, 1500
+ 59, 0, 1711
};
-static int parser_action_row1504[] = {
+static int parser_action_row1715[] = {
23,
- -1, 3, 1503,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ -1, 3, 1714,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row1505[] = {
+static int parser_action_row1716[] = {
3,
- -1, 3, 1504,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1715,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1506[] = {
+static int parser_action_row1717[] = {
27,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 57, 0, 659,
- 60, 0, 857,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ 55, 0, 904,
+ 57, 0, 691,
+ 60, 0, 905,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row1507[] = {
+static int parser_action_row1718[] = {
2,
- -1, 3, 1506,
- 100, 0, 1617
+ -1, 3, 1717,
+ 101, 0, 1851
};
-static int parser_action_row1508[] = {
+static int parser_action_row1719[] = {
27,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 57, 0, 659,
- 60, 0, 857,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 54,
- 100, 0, 679
+ 55, 0, 904,
+ 57, 0, 691,
+ 60, 0, 905,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 54,
+ 101, 0, 711
};
-static int parser_action_row1509[] = {
+static int parser_action_row1720[] = {
3,
- -1, 3, 1508,
- 15, 0, 1620,
- 16, 0, 1621
+ -1, 3, 1719,
+ 15, 0, 1854,
+ 16, 0, 1855
};
-static int parser_action_row1510[] = {
+static int parser_action_row1721[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1511[] = {
+static int parser_action_row1722[] = {
1,
- -1, 1, 1025
+ -1, 1, 1212
};
-static int parser_action_row1512[] = {
+static int parser_action_row1723[] = {
1,
- -1, 1, 1031
+ -1, 1, 1218
};
-static int parser_action_row1513[] = {
+static int parser_action_row1724[] = {
1,
- -1, 1, 1028
+ -1, 1, 1215
};
-static int parser_action_row1514[] = {
+static int parser_action_row1725[] = {
4,
- -1, 3, 1513,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1724,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1515[] = {
+static int parser_action_row1726[] = {
1,
- -1, 1, 1026
+ -1, 1, 1213
};
-static int parser_action_row1516[] = {
+static int parser_action_row1727[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1517[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1728[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1518[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1729[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1519[] = {
+static int parser_action_row1730[] = {
13,
- -1, 1, 771,
- 62, 0, 1628,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 930,
+ 62, 0, 1862,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1520[] = {
+static int parser_action_row1731[] = {
13,
- -1, 1, 762,
- 62, 0, 1630,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 913,
+ 62, 0, 1864,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1521[] = {
+static int parser_action_row1732[] = {
14,
- -1, 1, 774,
- 55, 0, 277,
- 62, 0, 1632,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 933,
+ 55, 0, 280,
+ 62, 0, 1866,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1522[] = {
+static int parser_action_row1733[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1523[] = {
+static int parser_action_row1734[] = {
+ 2,
+ -1, 3, 1733,
+ 76, 0, 1870
+};
+static int parser_action_row1735[] = {
13,
- -1, 1, 785,
- 62, 0, 1636,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 946,
+ 62, 0, 1871,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1524[] = {
+static int parser_action_row1736[] = {
2,
- -1, 1, 816,
- 59, 0, 1433
+ -1, 1, 977,
+ 59, 0, 1633
};
-static int parser_action_row1525[] = {
+static int parser_action_row1737[] = {
15,
- -1, 1, 778,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1638,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 937,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 1873,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1526[] = {
+static int parser_action_row1738[] = {
23,
- -1, 1, 466,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 814,
- 100, 0, 1641
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 861,
+ 101, 0, 1876
};
-static int parser_action_row1527[] = {
+static int parser_action_row1739[] = {
2,
- -1, 3, 1526,
- 46, 0, 1642
+ -1, 3, 1738,
+ 46, 0, 1877
};
-static int parser_action_row1528[] = {
+static int parser_action_row1740[] = {
2,
- -1, 3, 1527,
- 56, 0, 1643
+ -1, 3, 1739,
+ 56, 0, 1878
};
-static int parser_action_row1529[] = {
+static int parser_action_row1741[] = {
1,
- -1, 1, 220
+ -1, 1, 229
};
-static int parser_action_row1530[] = {
+static int parser_action_row1742[] = {
+ 1,
+ -1, 1, 257
+};
+static int parser_action_row1743[] = {
+ 1,
+ -1, 1, 235
+};
+static int parser_action_row1744[] = {
+ 1,
+ -1, 1, 263
+};
+static int parser_action_row1745[] = {
1,
-1, 1, 239
};
-static int parser_action_row1531[] = {
+static int parser_action_row1746[] = {
+ 1,
+ -1, 1, 267
+};
+static int parser_action_row1747[] = {
+ 1,
+ -1, 1, 238
+};
+static int parser_action_row1748[] = {
+ 1,
+ -1, 1, 266
+};
+static int parser_action_row1749[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1750[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1751[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1532[] = {
+static int parser_action_row1752[] = {
1,
- -1, 1, 790
+ -1, 1, 951
};
-static int parser_action_row1533[] = {
+static int parser_action_row1753[] = {
+ 4,
+ -1, 1, 898,
+ 57, 1, 926,
+ 76, 1, 926,
+ 97, 1, 926
+};
+static int parser_action_row1754[] = {
2,
- -1, 3, 1532,
- 46, 0, 1645
+ -1, 3, 1753,
+ 46, 0, 1882
};
-static int parser_action_row1534[] = {
+static int parser_action_row1755[] = {
2,
- -1, 3, 1533,
- 56, 0, 1646
+ -1, 3, 1754,
+ 56, 0, 1883
};
-static int parser_action_row1535[] = {
+static int parser_action_row1756[] = {
2,
- -1, 1, 265,
- 25, 1, 952
+ -1, 1, 291,
+ 25, 1, 1131
};
-static int parser_action_row1536[] = {
+static int parser_action_row1757[] = {
35,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 912,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 976,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 25, 0, 916,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 25, 0, 980,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1537[] = {
+static int parser_action_row1758[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1062,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1164,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1538[] = {
+static int parser_action_row1759[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1062,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1164,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1539[] = {
+static int parser_action_row1760[] = {
1,
- -1, 1, 963
+ -1, 1, 1142
};
-static int parser_action_row1540[] = {
+static int parser_action_row1761[] = {
2,
-1, 1, 163,
- 25, 1, 912
+ 25, 1, 1083
};
-static int parser_action_row1541[] = {
+static int parser_action_row1762[] = {
2,
-1, 1, 162,
- 25, 1, 911
+ 25, 1, 1082
};
-static int parser_action_row1542[] = {
+static int parser_action_row1763[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1062,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1164,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1543[] = {
+static int parser_action_row1764[] = {
2,
- -1, 1, 207,
- 25, 1, 949
+ -1, 1, 215,
+ 25, 1, 1128
};
-static int parser_action_row1544[] = {
+static int parser_action_row1765[] = {
2,
- -1, 1, 199,
- 25, 1, 941
+ -1, 1, 203,
+ 25, 1, 1116
};
-static int parser_action_row1545[] = {
+static int parser_action_row1766[] = {
2,
-1, 1, 190,
- 25, 1, 932
+ 25, 1, 1103
};
-static int parser_action_row1546[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1767[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1547[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row1768[] = {
+ 40,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 346,
- 62, 0, 1034,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 346,
+ 57, 1, 398,
+ 62, 0, 1110,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 398,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 398,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1548[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1769[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1549[] = {
- 39,
- -1, 1, 452,
+static int parser_action_row1770[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 350,
- 61, 0, 216,
- 62, 0, 1039,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 350,
+ 57, 1, 402,
+ 61, 0, 218,
+ 62, 0, 1115,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 402,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 402,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1550[] = {
+static int parser_action_row1771[] = {
3,
- -1, 1, 466,
- 13, 0, 1658,
- 100, 0, 1659
+ -1, 1, 529,
+ 13, 0, 1895,
+ 101, 0, 1896
};
-static int parser_action_row1551[] = {
+static int parser_action_row1772[] = {
+ 28,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 424,
+ 76, 1, 424,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 424,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1773[] = {
+ 41,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 404,
+ 61, 0, 218,
+ 62, 0, 1123,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 404,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 404,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1774[] = {
3,
- -1, 1, 497,
+ -1, 1, 528,
+ 13, 0, 1899,
+ 101, 0, 1900
+};
+static int parser_action_row1775[] = {
+ 4,
+ -1, 1, 530,
+ 13, 0, 1901,
+ 100, 0, 54,
+ 101, 0, 1902
+};
+static int parser_action_row1776[] = {
+ 3,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1552[] = {
+static int parser_action_row1777[] = {
+ 4,
+ -1, 1, 379,
+ 57, 1, 407,
+ 76, 1, 407,
+ 97, 1, 407
+};
+static int parser_action_row1778[] = {
1,
- -1, 1, 640
+ -1, 1, 739
};
-static int parser_action_row1553[] = {
+static int parser_action_row1779[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1554[] = {
+static int parser_action_row1780[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1555[] = {
+static int parser_action_row1781[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 172,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
+ 48, 0, 416,
+ 49, 0, 176,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1556[] = {
+static int parser_action_row1782[] = {
1,
- -1, 1, 1107
+ -1, 1, 1294
};
-static int parser_action_row1557[] = {
+static int parser_action_row1783[] = {
1,
-1, 1, 155
};
-static int parser_action_row1558[] = {
+static int parser_action_row1784[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1785[] = {
2,
- -1, 1, 400,
- 25, 0, 1550
+ -1, 1, 462,
+ 25, 0, 1775
};
-static int parser_action_row1559[] = {
+static int parser_action_row1786[] = {
2,
- -1, 3, 1558,
- 24, 0, 1664
+ -1, 3, 1785,
+ 24, 0, 1908
};
-static int parser_action_row1560[] = {
+static int parser_action_row1787[] = {
2,
- -1, 1, 812,
- 97, 0, 607
+ -1, 1, 973,
+ 98, 0, 637
};
-static int parser_action_row1561[] = {
+static int parser_action_row1788[] = {
1,
- -1, 1, 825
+ -1, 1, 987
};
-static int parser_action_row1562[] = {
+static int parser_action_row1789[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1563[] = {
+static int parser_action_row1790[] = {
1,
- -1, 1, 581
+ -1, 1, 644
};
-static int parser_action_row1564[] = {
+static int parser_action_row1791[] = {
2,
- -1, 3, 1563,
- 76, 0, 1561
+ -1, 3, 1790,
+ 76, 0, 1788
};
-static int parser_action_row1565[] = {
+static int parser_action_row1792[] = {
5,
- -1, 1, 468,
- 13, 0, 1592,
- 47, 0, 1593,
- 99, 0, 54,
- 100, 0, 1594
+ -1, 1, 531,
+ 13, 0, 1825,
+ 47, 0, 1826,
+ 100, 0, 54,
+ 101, 0, 1827
};
-static int parser_action_row1566[] = {
+static int parser_action_row1793[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1794[] = {
+ 3,
+ -1, 1, 657,
+ 76, 1, 685,
+ 97, 1, 685
+};
+static int parser_action_row1795[] = {
+ 5,
+ -1, 1, 531,
+ 13, 0, 1825,
+ 47, 0, 1826,
+ 100, 0, 54,
+ 101, 0, 1913
+};
+static int parser_action_row1796[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1797[] = {
+ 3,
+ -1, 1, 669,
+ 76, 1, 697,
+ 97, 1, 697
+};
+static int parser_action_row1798[] = {
+ 4,
+ -1, 1, 666,
+ 55, 0, 280,
+ 76, 1, 694,
+ 97, 1, 694
+};
+static int parser_action_row1799[] = {
1,
- -1, 1, 391
+ -1, 1, 453
};
-static int parser_action_row1567[] = {
+static int parser_action_row1800[] = {
1,
- -1, 1, 390
+ -1, 1, 452
};
-static int parser_action_row1568[] = {
+static int parser_action_row1801[] = {
1,
- -1, 1, 543
+ -1, 1, 606
};
-static int parser_action_row1569[] = {
- 21,
- -1, 1, 468,
- 13, 0, 1133,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
+static int parser_action_row1802[] = {
+ 22,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
};
-static int parser_action_row1570[] = {
+static int parser_action_row1803[] = {
1,
- -1, 1, 542
+ -1, 1, 605
};
-static int parser_action_row1571[] = {
+static int parser_action_row1804[] = {
1,
- -1, 1, 545
+ -1, 1, 608
};
-static int parser_action_row1572[] = {
+static int parser_action_row1805[] = {
3,
- -1, 3, 1571,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1804,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1573[] = {
+static int parser_action_row1806[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1574[] = {
+static int parser_action_row1807[] = {
1,
- -1, 1, 556
+ -1, 1, 619
};
-static int parser_action_row1575[] = {
+static int parser_action_row1808[] = {
2,
- -1, 1, 558,
- 84, 0, 1316
+ -1, 1, 621,
+ 84, 0, 1486
};
-static int parser_action_row1576[] = {
+static int parser_action_row1809[] = {
2,
- -1, 1, 549,
- 83, 0, 1308
+ -1, 1, 612,
+ 83, 0, 1478
};
-static int parser_action_row1577[] = {
+static int parser_action_row1810[] = {
2,
- -1, 1, 550,
- 83, 0, 1308
+ -1, 1, 613,
+ 83, 0, 1478
};
-static int parser_action_row1578[] = {
+static int parser_action_row1811[] = {
2,
- -1, 1, 551,
- 83, 0, 1308
+ -1, 1, 614,
+ 83, 0, 1478
};
-static int parser_action_row1579[] = {
+static int parser_action_row1812[] = {
2,
- -1, 1, 552,
- 83, 0, 1308
+ -1, 1, 615,
+ 83, 0, 1478
};
-static int parser_action_row1580[] = {
+static int parser_action_row1813[] = {
2,
- -1, 1, 553,
- 83, 0, 1308
+ -1, 1, 616,
+ 83, 0, 1478
};
-static int parser_action_row1581[] = {
+static int parser_action_row1814[] = {
2,
- -1, 1, 554,
- 83, 0, 1308
+ -1, 1, 617,
+ 83, 0, 1478
};
-static int parser_action_row1582[] = {
+static int parser_action_row1815[] = {
2,
- -1, 1, 555,
- 83, 0, 1308
+ -1, 1, 618,
+ 83, 0, 1478
};
-static int parser_action_row1583[] = {
+static int parser_action_row1816[] = {
2,
- -1, 1, 560,
- 85, 0, 1317
+ -1, 1, 623,
+ 85, 0, 1487
};
-static int parser_action_row1584[] = {
+static int parser_action_row1817[] = {
3,
- -1, 1, 562,
- 91, 0, 1318,
- 94, 0, 1319
+ -1, 1, 625,
+ 91, 0, 1488,
+ 94, 0, 1489
};
-static int parser_action_row1585[] = {
+static int parser_action_row1818[] = {
3,
- -1, 1, 564,
- 77, 0, 1320,
- 78, 0, 1321
+ -1, 1, 627,
+ 77, 0, 1490,
+ 78, 0, 1491
};
-static int parser_action_row1586[] = {
+static int parser_action_row1819[] = {
3,
- -1, 1, 565,
- 77, 0, 1320,
- 78, 0, 1321
+ -1, 1, 628,
+ 77, 0, 1490,
+ 78, 0, 1491
};
-static int parser_action_row1587[] = {
+static int parser_action_row1820[] = {
4,
- -1, 1, 567,
- 79, 0, 1322,
- 81, 0, 1323,
- 82, 0, 1324
+ -1, 1, 630,
+ 79, 0, 1492,
+ 81, 0, 1493,
+ 82, 0, 1494
};
-static int parser_action_row1588[] = {
+static int parser_action_row1821[] = {
4,
- -1, 1, 568,
- 79, 0, 1322,
- 81, 0, 1323,
- 82, 0, 1324
+ -1, 1, 631,
+ 79, 0, 1492,
+ 81, 0, 1493,
+ 82, 0, 1494
};
-static int parser_action_row1589[] = {
+static int parser_action_row1822[] = {
1,
- -1, 1, 570
+ -1, 1, 633
};
-static int parser_action_row1590[] = {
+static int parser_action_row1823[] = {
1,
- -1, 1, 571
+ -1, 1, 634
};
-static int parser_action_row1591[] = {
+static int parser_action_row1824[] = {
1,
- -1, 1, 572
+ -1, 1, 635
};
-static int parser_action_row1592[] = {
+static int parser_action_row1825[] = {
1,
- -1, 1, 574
+ -1, 1, 637
};
-static int parser_action_row1593[] = {
+static int parser_action_row1826[] = {
2,
- -1, 1, 608,
- 55, 0, 277
+ -1, 1, 706,
+ 55, 0, 280
};
-static int parser_action_row1594[] = {
+static int parser_action_row1827[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1595[] = {
+static int parser_action_row1828[] = {
3,
- -1, 1, 590,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 680,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1596[] = {
+static int parser_action_row1829[] = {
2,
- -1, 3, 1595,
- 101, 0, 1674
+ -1, 3, 1828,
+ 102, 0, 1924
};
-static int parser_action_row1597[] = {
+static int parser_action_row1830[] = {
2,
- -1, 1, 465,
- 100, 0, 1675
+ -1, 1, 528,
+ 101, 0, 1925
};
-static int parser_action_row1598[] = {
+static int parser_action_row1831[] = {
3,
- -1, 1, 467,
- 99, 0, 54,
- 100, 0, 1676
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 1926
};
-static int parser_action_row1599[] = {
+static int parser_action_row1832[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1928,
+ 100, 0, 54,
+ 101, 0, 1929
+};
+static int parser_action_row1833[] = {
1,
- -1, 1, 597
+ -1, 1, 691
};
-static int parser_action_row1600[] = {
+static int parser_action_row1834[] = {
4,
- -1, 3, 1599,
- 6, 0, 818,
- 18, 0, 819,
- 100, 0, 820
+ -1, 3, 1833,
+ 6, 0, 865,
+ 18, 0, 866,
+ 101, 0, 867
};
-static int parser_action_row1601[] = {
+static int parser_action_row1835[] = {
1,
-1, 1, 124
};
-static int parser_action_row1602[] = {
+static int parser_action_row1836[] = {
1,
-1, 1, 112
};
-static int parser_action_row1603[] = {
+static int parser_action_row1837[] = {
1,
-1, 1, 119
};
-static int parser_action_row1604[] = {
+static int parser_action_row1838[] = {
25,
- -1, 3, 1603,
- 42, 0, 1341,
- 48, 0, 403,
- 57, 0, 659,
- 77, 0, 660,
- 78, 0, 661,
- 79, 0, 662,
- 80, 0, 663,
- 81, 0, 664,
- 82, 0, 665,
- 83, 0, 666,
- 84, 0, 667,
- 85, 0, 668,
- 86, 0, 669,
- 87, 0, 670,
- 88, 0, 671,
- 89, 0, 672,
- 90, 0, 673,
- 91, 0, 674,
- 92, 0, 675,
- 93, 0, 676,
- 94, 0, 677,
- 95, 0, 678,
- 99, 0, 391,
- 100, 0, 679
+ -1, 3, 1837,
+ 42, 0, 1512,
+ 48, 0, 416,
+ 57, 0, 691,
+ 77, 0, 692,
+ 78, 0, 693,
+ 79, 0, 694,
+ 80, 0, 695,
+ 81, 0, 696,
+ 82, 0, 697,
+ 83, 0, 698,
+ 84, 0, 699,
+ 85, 0, 700,
+ 86, 0, 701,
+ 87, 0, 702,
+ 88, 0, 703,
+ 89, 0, 704,
+ 90, 0, 705,
+ 91, 0, 706,
+ 92, 0, 707,
+ 93, 0, 708,
+ 94, 0, 709,
+ 95, 0, 710,
+ 100, 0, 404,
+ 101, 0, 711
};
-static int parser_action_row1605[] = {
+static int parser_action_row1839[] = {
1,
- -1, 1, 1093
+ -1, 1, 1280
};
-static int parser_action_row1606[] = {
+static int parser_action_row1840[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1607[] = {
+static int parser_action_row1841[] = {
1,
-1, 1, 133
};
-static int parser_action_row1608[] = {
+static int parser_action_row1842[] = {
1,
-1, 1, 42
};
-static int parser_action_row1609[] = {
+static int parser_action_row1843[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1610[] = {
+static int parser_action_row1844[] = {
2,
- -1, 3, 1609,
- 10, 0, 1682
+ -1, 3, 1843,
+ 10, 0, 1937
};
-static int parser_action_row1611[] = {
+static int parser_action_row1845[] = {
4,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1612[] = {
+static int parser_action_row1846[] = {
2,
- -1, 3, 1611,
- 99, 0, 1354
+ -1, 3, 1845,
+ 100, 0, 1525
};
-static int parser_action_row1613[] = {
+static int parser_action_row1847[] = {
1,
- -1, 1, 1085
+ -1, 1, 1272
};
-static int parser_action_row1614[] = {
+static int parser_action_row1848[] = {
5,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 60, 0, 857
+ 55, 0, 904,
+ 60, 0, 905
};
-static int parser_action_row1615[] = {
+static int parser_action_row1849[] = {
2,
- -1, 3, 1614,
- 60, 0, 857
+ -1, 3, 1848,
+ 60, 0, 905
};
-static int parser_action_row1616[] = {
+static int parser_action_row1850[] = {
3,
- -1, 3, 1615,
- 15, 0, 1620,
- 16, 0, 1687
+ -1, 3, 1849,
+ 15, 0, 1854,
+ 16, 0, 1942
};
-static int parser_action_row1617[] = {
+static int parser_action_row1851[] = {
5,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 60, 0, 857
+ 55, 0, 904,
+ 60, 0, 905
};
-static int parser_action_row1618[] = {
+static int parser_action_row1852[] = {
2,
-1, 1, 161,
- 60, 0, 333
+ 60, 0, 341
};
-static int parser_action_row1619[] = {
+static int parser_action_row1853[] = {
4,
-1, 1, 127,
- 4, 0, 1007,
- 15, 0, 1008,
- 16, 0, 1691
+ 4, 0, 1083,
+ 15, 0, 1084,
+ 16, 0, 1946
};
-static int parser_action_row1620[] = {
+static int parser_action_row1854[] = {
5,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2,
- 55, 0, 856,
- 60, 0, 857
+ 55, 0, 904,
+ 60, 0, 905
};
-static int parser_action_row1621[] = {
+static int parser_action_row1855[] = {
5,
-1, 1, 30,
0, 0, 88,
1, 0, 89,
14, 0, 32,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1622[] = {
+static int parser_action_row1856[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1623[] = {
+static int parser_action_row1857[] = {
2,
- -1, 3, 1622,
- 16, 0, 1699
+ -1, 3, 1856,
+ 16, 0, 1954
};
-static int parser_action_row1624[] = {
+static int parser_action_row1858[] = {
4,
- -1, 3, 1623,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1857,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1625[] = {
+static int parser_action_row1859[] = {
2,
- -1, 3, 1624,
- 60, 0, 1701
+ -1, 3, 1858,
+ 60, 0, 1956
};
-static int parser_action_row1626[] = {
+static int parser_action_row1860[] = {
2,
- -1, 3, 1625,
- 56, 0, 1702
+ -1, 3, 1859,
+ 56, 0, 1957
};
-static int parser_action_row1627[] = {
+static int parser_action_row1861[] = {
1,
- -1, 1, 687
+ -1, 1, 803
};
-static int parser_action_row1628[] = {
+static int parser_action_row1862[] = {
1,
- -1, 1, 706
+ -1, 1, 831
};
-static int parser_action_row1629[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1863[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1630[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1864[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1631[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1865[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1632[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1866[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1633[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1867[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1634[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1868[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1635[] = {
+static int parser_action_row1869[] = {
13,
- -1, 1, 773,
- 62, 0, 1709,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 932,
+ 62, 0, 1964,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1636[] = {
+static int parser_action_row1870[] = {
25,
- -1, 1, 468,
- 13, 0, 749,
- 47, 0, 750,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 54,
- 100, 0, 1711
+ -1, 1, 531,
+ 13, 0, 788,
+ 47, 0, 789,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 1966
};
-static int parser_action_row1637[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1871[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1872[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1638[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1873[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1639[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row1874[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1640[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1875[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1641[] = {
+static int parser_action_row1876[] = {
13,
- -1, 1, 777,
- 62, 0, 1720,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 936,
+ 62, 0, 1976,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1642[] = {
+static int parser_action_row1877[] = {
14,
- -1, 1, 776,
- 55, 0, 277,
- 62, 0, 1722,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 935,
+ 55, 0, 280,
+ 62, 0, 1978,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1643[] = {
+static int parser_action_row1878[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1644[] = {
+static int parser_action_row1879[] = {
1,
- -1, 1, 374
+ -1, 1, 436
};
-static int parser_action_row1645[] = {
- 21,
- -1, 1, 468,
+static int parser_action_row1880[] = {
+ 1,
+ -1, 1, 237
+};
+static int parser_action_row1881[] = {
+ 1,
+ -1, 1, 265
+};
+static int parser_action_row1882[] = {
+ 22,
+ -1, 1, 531,
13, 0, 116,
23, 0, 117,
32, 0, 118,
49, 0, 125,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1646[] = {
+static int parser_action_row1883[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1647[] = {
+static int parser_action_row1884[] = {
1,
- -1, 1, 794
+ -1, 1, 955
};
-static int parser_action_row1648[] = {
+static int parser_action_row1885[] = {
2,
- -1, 3, 1647,
- 25, 0, 1728
+ -1, 3, 1884,
+ 25, 0, 1984
};
-static int parser_action_row1649[] = {
+static int parser_action_row1886[] = {
1,
- -1, 1, 957
+ -1, 1, 1136
};
-static int parser_action_row1650[] = {
+static int parser_action_row1887[] = {
2,
- -1, 3, 1649,
- 50, 0, 197
+ -1, 3, 1886,
+ 50, 0, 199
};
-static int parser_action_row1651[] = {
+static int parser_action_row1888[] = {
1,
- -1, 1, 959
+ -1, 1, 1138
};
-static int parser_action_row1652[] = {
+static int parser_action_row1889[] = {
2,
- -1, 3, 1651,
- 50, 0, 197
+ -1, 3, 1888,
+ 50, 0, 199
};
-static int parser_action_row1653[] = {
+static int parser_action_row1890[] = {
1,
- -1, 1, 961
+ -1, 1, 1140
};
-static int parser_action_row1654[] = {
+static int parser_action_row1891[] = {
2,
- -1, 3, 1653,
- 50, 0, 197
+ -1, 3, 1890,
+ 50, 0, 199
};
-static int parser_action_row1655[] = {
+static int parser_action_row1892[] = {
2,
- -1, 1, 201,
- 25, 1, 943
+ -1, 1, 206,
+ 25, 1, 1119
};
-static int parser_action_row1656[] = {
+static int parser_action_row1893[] = {
2,
-1, 1, 191,
- 25, 1, 933
+ 25, 1, 1104
};
-static int parser_action_row1657[] = {
+static int parser_action_row1894[] = {
2,
- -1, 1, 203,
- 25, 1, 945
+ -1, 1, 208,
+ 25, 1, 1121
};
-static int parser_action_row1658[] = {
+static int parser_action_row1895[] = {
2,
-1, 1, 193,
- 25, 1, 935
+ 25, 1, 1106
};
-static int parser_action_row1659[] = {
- 24,
- -1, 1, 452,
+static int parser_action_row1896[] = {
+ 25,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
- 55, 0, 495,
+ 55, 0, 509,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1660[] = {
- 38,
- -1, 1, 452,
+static int parser_action_row1897[] = {
+ 40,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 400,
+ 62, 0, 1337,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 400,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 400,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1898[] = {
+ 2,
+ -1, 1, 204,
+ 25, 1, 1117
+};
+static int parser_action_row1899[] = {
+ 2,
+ -1, 1, 194,
+ 25, 1, 1107
+};
+static int parser_action_row1900[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1901[] = {
+ 40,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 406,
+ 62, 0, 1348,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 406,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 406,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1902[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1903[] = {
+ 41,
+ -1, 1, 515,
13, 0, 116,
23, 0, 117,
32, 0, 118,
39, 0, 119,
41, 0, 120,
- 42, 1, 468,
+ 42, 1, 531,
43, 0, 121,
44, 0, 122,
45, 0, 123,
46, 0, 124,
49, 0, 125,
55, 0, 126,
- 57, 1, 348,
- 62, 0, 1216,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228,
- 76, 1, 348,
+ 57, 1, 410,
+ 61, 0, 218,
+ 62, 0, 1353,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 410,
77, 0, 127,
78, 0, 128,
- 86, 0, 129,
- 99, 0, 54,
- 100, 0, 130,
- 101, 1, 468,
- 102, 0, 131,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 410,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1904[] = {
+ 3,
+ -1, 1, 529,
+ 13, 0, 1994,
+ 101, 0, 1995
};
-static int parser_action_row1661[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1905[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1662[] = {
+static int parser_action_row1906[] = {
2,
- -1, 3, 1661,
- 56, 0, 1735
+ -1, 3, 1905,
+ 56, 0, 1997
};
-static int parser_action_row1663[] = {
+static int parser_action_row1907[] = {
1,
- -1, 1, 417
+ -1, 1, 479
};
-static int parser_action_row1664[] = {
+static int parser_action_row1908[] = {
1,
- -1, 1, 437
+ -1, 1, 499
};
-static int parser_action_row1665[] = {
+static int parser_action_row1909[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1666[] = {
+static int parser_action_row1910[] = {
1,
- -1, 1, 826
+ -1, 1, 988
};
-static int parser_action_row1667[] = {
+static int parser_action_row1911[] = {
3,
- -1, 3, 1666,
- 99, 0, 54,
- 100, 0, 1737
+ -1, 3, 1910,
+ 100, 0, 54,
+ 101, 0, 1999
};
-static int parser_action_row1668[] = {
+static int parser_action_row1912[] = {
2,
- -1, 3, 1667,
- 101, 0, 1740
+ -1, 3, 1911,
+ 102, 0, 2002
};
-static int parser_action_row1669[] = {
+static int parser_action_row1913[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1928,
+ 100, 0, 54,
+ 101, 0, 1929
+};
+static int parser_action_row1914[] = {
+ 5,
+ -1, 1, 652,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 680,
+ 97, 1, 680
+};
+static int parser_action_row1915[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 2005
+};
+static int parser_action_row1916[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 2006
+};
+static int parser_action_row1917[] = {
+ 4,
+ -1, 1, 531,
+ 13, 0, 1928,
+ 100, 0, 54,
+ 101, 0, 2008
+};
+static int parser_action_row1918[] = {
+ 3,
+ -1, 1, 663,
+ 76, 1, 691,
+ 97, 1, 691
+};
+static int parser_action_row1919[] = {
1,
- -1, 1, 544
+ -1, 1, 607
};
-static int parser_action_row1670[] = {
+static int parser_action_row1920[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1671[] = {
+static int parser_action_row1921[] = {
1,
- -1, 1, 537
+ -1, 1, 600
};
-static int parser_action_row1672[] = {
+static int parser_action_row1922[] = {
1,
- -1, 1, 606
+ -1, 1, 703
};
-static int parser_action_row1673[] = {
+static int parser_action_row1923[] = {
3,
- -1, 3, 1672,
- 32, 0, 1742,
- 55, 0, 1743
+ -1, 3, 1922,
+ 32, 0, 2012,
+ 55, 0, 2013
};
-static int parser_action_row1674[] = {
+static int parser_action_row1924[] = {
1,
- -1, 1, 588
+ -1, 1, 677
};
-static int parser_action_row1675[] = {
+static int parser_action_row1925[] = {
1,
- -1, 1, 586
+ -1, 1, 674
};
-static int parser_action_row1676[] = {
+static int parser_action_row1926[] = {
2,
- -1, 1, 594,
- 55, 0, 277
+ -1, 1, 686,
+ 55, 0, 280
};
-static int parser_action_row1677[] = {
+static int parser_action_row1927[] = {
3,
- -1, 1, 602,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 698,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1678[] = {
+static int parser_action_row1928[] = {
2,
- -1, 1, 466,
- 100, 0, 1746
+ -1, 1, 529,
+ 101, 0, 2016
};
-static int parser_action_row1679[] = {
+static int parser_action_row1929[] = {
+ 2,
+ -1, 1, 707,
+ 55, 0, 280
+};
+static int parser_action_row1930[] = {
+ 3,
+ -1, 1, 681,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row1931[] = {
+ 2,
+ -1, 3, 1930,
+ 102, 0, 2019
+};
+static int parser_action_row1932[] = {
+ 2,
+ -1, 1, 528,
+ 101, 0, 2020
+};
+static int parser_action_row1933[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 2021
+};
+static int parser_action_row1934[] = {
57,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 88,
1, 0, 89,
13, 0, 116,
27, 0, 37,
28, 0, 38,
32, 0, 118,
- 34, 0, 1359,
- 35, 0, 1360,
- 36, 0, 1361,
- 37, 0, 1362,
+ 34, 0, 1530,
+ 35, 0, 1531,
+ 36, 0, 1532,
+ 37, 0, 1533,
38, 0, 43,
39, 0, 119,
41, 0, 120,
44, 0, 122,
45, 0, 123,
46, 0, 124,
- 48, 0, 403,
+ 48, 0, 416,
49, 0, 125,
51, 0, 49,
- 52, 0, 1363,
- 53, 0, 1364,
- 55, 0, 1747,
- 57, 0, 638,
- 77, 0, 1366,
- 78, 0, 1367,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 1368,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 98, 0, 90,
- 99, 0, 391,
- 100, 0, 1369,
- 102, 0, 131,
+ 52, 0, 1534,
+ 53, 0, 1535,
+ 55, 0, 2023,
+ 57, 0, 669,
+ 77, 0, 1537,
+ 78, 0, 1538,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 1539,
+ 86, 0, 1540,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 99, 0, 90,
+ 100, 0, 404,
+ 101, 0, 1541,
103, 0, 132,
104, 0, 133,
- 105, 0, 59,
- 108, 0, 134
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
};
-static int parser_action_row1680[] = {
+static int parser_action_row1935[] = {
1,
-1, 1, 128
};
-static int parser_action_row1681[] = {
+static int parser_action_row1936[] = {
6,
- -1, 3, 1680,
- 32, 0, 1751,
- 48, 0, 1752,
- 55, 0, 1753,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 1935,
+ 32, 0, 2027,
+ 48, 0, 2028,
+ 55, 0, 2029,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1682[] = {
+static int parser_action_row1937[] = {
1,
-1, 1, 43
};
-static int parser_action_row1683[] = {
+static int parser_action_row1938[] = {
1,
-1, 1, 28
};
-static int parser_action_row1684[] = {
+static int parser_action_row1939[] = {
2,
- -1, 3, 1683,
- 10, 0, 1755
+ -1, 3, 1938,
+ 10, 0, 2031
};
-static int parser_action_row1685[] = {
+static int parser_action_row1940[] = {
1,
-1, 1, 41
};
-static int parser_action_row1686[] = {
+static int parser_action_row1941[] = {
4,
-1, 1, 127,
- 4, 0, 1007,
- 15, 0, 1008,
- 16, 0, 1756
+ 4, 0, 1083,
+ 15, 0, 1084,
+ 16, 0, 2032
};
-static int parser_action_row1687[] = {
+static int parser_action_row1942[] = {
2,
-1, 1, 81,
- 15, 0, 999
+ 15, 0, 1075
};
-static int parser_action_row1688[] = {
+static int parser_action_row1943[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1689[] = {
+static int parser_action_row1944[] = {
2,
- -1, 3, 1688,
- 16, 0, 1762
+ -1, 3, 1943,
+ 16, 0, 2038
};
-static int parser_action_row1690[] = {
+static int parser_action_row1945[] = {
3,
- -1, 3, 1689,
- 15, 0, 1620,
- 16, 0, 1763
+ -1, 3, 1944,
+ 15, 0, 1854,
+ 16, 0, 2039
};
-static int parser_action_row1691[] = {
+static int parser_action_row1946[] = {
4,
-1, 1, 81,
- 15, 0, 1765,
- 16, 0, 1766,
- 62, 0, 1767
+ 15, 0, 2041,
+ 16, 0, 2042,
+ 62, 0, 2043
};
-static int parser_action_row1692[] = {
+static int parser_action_row1947[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1693[] = {
+static int parser_action_row1948[] = {
3,
-1, 1, 127,
- 4, 0, 1007,
- 16, 0, 1771
+ 4, 0, 1083,
+ 16, 0, 2047
};
-static int parser_action_row1694[] = {
+static int parser_action_row1949[] = {
3,
- -1, 3, 1693,
+ -1, 3, 1948,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1695[] = {
+static int parser_action_row1950[] = {
1,
-1, 1, 54
};
-static int parser_action_row1696[] = {
+static int parser_action_row1951[] = {
4,
-1, 1, 127,
- 4, 0, 1007,
- 15, 0, 1008,
- 16, 0, 1774
+ 4, 0, 1083,
+ 15, 0, 1084,
+ 16, 0, 2050
};
-static int parser_action_row1697[] = {
+static int parser_action_row1952[] = {
1,
-1, 1, 82
};
-static int parser_action_row1698[] = {
+static int parser_action_row1953[] = {
4,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1699[] = {
+static int parser_action_row1954[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1700[] = {
+static int parser_action_row1955[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1701[] = {
+static int parser_action_row1956[] = {
2,
-1, 1, 81,
- 15, 0, 999
+ 15, 0, 1075
};
-static int parser_action_row1702[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1957[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1703[] = {
+static int parser_action_row1958[] = {
2,
- -1, 1, 432,
- 97, 0, 204
+ -1, 1, 494,
+ 98, 0, 206
};
-static int parser_action_row1704[] = {
+static int parser_action_row1959[] = {
1,
- -1, 1, 686
+ -1, 1, 802
};
-static int parser_action_row1705[] = {
+static int parser_action_row1960[] = {
1,
- -1, 1, 705
+ -1, 1, 830
};
-static int parser_action_row1706[] = {
+static int parser_action_row1961[] = {
1,
- -1, 1, 677
+ -1, 1, 785
};
-static int parser_action_row1707[] = {
+static int parser_action_row1962[] = {
1,
- -1, 1, 696
+ -1, 1, 813
};
-static int parser_action_row1708[] = {
+static int parser_action_row1963[] = {
1,
- -1, 1, 689
+ -1, 1, 805
};
-static int parser_action_row1709[] = {
+static int parser_action_row1964[] = {
1,
- -1, 1, 708
+ -1, 1, 833
};
-static int parser_action_row1710[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1965[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1711[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1966[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1712[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1967[] = {
15,
- -1, 1, 764,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1786,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1713[] = {
- 2,
- -1, 3, 1712,
- 101, 0, 1789
-};
-static int parser_action_row1714[] = {
+ -1, 1, 915,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 2062,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row1968[] = {
+ 2,
+ -1, 3, 1967,
+ 102, 0, 2065
+};
+static int parser_action_row1969[] = {
22,
- -1, 1, 465,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 100, 0, 1790
-};
-static int parser_action_row1715[] = {
- 1,
- -1, 1, 820
-};
-static int parser_action_row1716[] = {
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 2066
+};
+static int parser_action_row1970[] = {
+ 1,
+ -1, 1, 981
+};
+static int parser_action_row1971[] = {
23,
- -1, 1, 467,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 99, 0, 54,
- 100, 0, 1791
-};
-static int parser_action_row1717[] = {
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 2067
+};
+static int parser_action_row1972[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 966,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 2069
+};
+static int parser_action_row1973[] = {
1,
- -1, 1, 694
+ -1, 1, 810
};
-static int parser_action_row1718[] = {
+static int parser_action_row1974[] = {
1,
- -1, 1, 713
+ -1, 1, 838
};
-static int parser_action_row1719[] = {
+static int parser_action_row1975[] = {
1,
- -1, 1, 693
+ -1, 1, 809
};
-static int parser_action_row1720[] = {
+static int parser_action_row1976[] = {
1,
- -1, 1, 712
+ -1, 1, 837
};
-static int parser_action_row1721[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1977[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1722[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1978[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1723[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1979[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1724[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1980[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1725[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row1981[] = {
13,
- -1, 1, 775,
- 62, 0, 1797,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
+ -1, 1, 934,
+ 62, 0, 2078,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
};
-static int parser_action_row1726[] = {
+static int parser_action_row1982[] = {
2,
- -1, 3, 1725,
- 56, 0, 1799
+ -1, 3, 1981,
+ 56, 0, 2080
};
-static int parser_action_row1727[] = {
+static int parser_action_row1983[] = {
1,
- -1, 1, 715
+ -1, 1, 840
};
-static int parser_action_row1728[] = {
+static int parser_action_row1984[] = {
2,
- -1, 3, 1727,
- 56, 0, 1800
+ -1, 3, 1983,
+ 56, 0, 2081
};
-static int parser_action_row1729[] = {
+static int parser_action_row1985[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 1413,
- 13, 0, 913,
- 16, 0, 914,
+ 10, 0, 1607,
+ 13, 0, 977,
+ 16, 0, 978,
17, 0, 34,
- 23, 0, 915,
- 26, 0, 917,
- 27, 0, 918,
- 28, 0, 919,
- 34, 0, 920,
- 35, 0, 921,
- 36, 0, 922,
- 37, 0, 923,
- 38, 0, 924,
+ 23, 0, 979,
+ 26, 0, 981,
+ 27, 0, 982,
+ 28, 0, 983,
+ 34, 0, 984,
+ 35, 0, 985,
+ 36, 0, 986,
+ 37, 0, 987,
+ 38, 0, 988,
39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 925,
- 52, 0, 926,
- 53, 0, 927,
+ 51, 0, 989,
+ 52, 0, 990,
+ 53, 0, 991,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 928,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 992,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1730[] = {
+static int parser_action_row1986[] = {
2,
- -1, 1, 277,
- 25, 1, 956
+ -1, 1, 303,
+ 25, 1, 1135
};
-static int parser_action_row1731[] = {
+static int parser_action_row1987[] = {
2,
- -1, 1, 279,
- 25, 1, 958
+ -1, 1, 305,
+ 25, 1, 1137
};
-static int parser_action_row1732[] = {
+static int parser_action_row1988[] = {
2,
- -1, 1, 284,
- 25, 1, 960
+ -1, 1, 310,
+ 25, 1, 1139
};
-static int parser_action_row1733[] = {
+static int parser_action_row1989[] = {
2,
- -1, 1, 202,
- 25, 1, 944
+ -1, 1, 207,
+ 25, 1, 1120
};
-static int parser_action_row1734[] = {
+static int parser_action_row1990[] = {
2,
-1, 1, 192,
- 25, 1, 934
+ 25, 1, 1105
};
-static int parser_action_row1735[] = {
+static int parser_action_row1991[] = {
+ 2,
+ -1, 1, 209,
+ 25, 1, 1122
+};
+static int parser_action_row1992[] = {
+ 2,
+ -1, 1, 195,
+ 25, 1, 1108
+};
+static int parser_action_row1993[] = {
+ 2,
+ -1, 1, 211,
+ 25, 1, 1124
+};
+static int parser_action_row1994[] = {
+ 2,
+ -1, 1, 197,
+ 25, 1, 1110
+};
+static int parser_action_row1995[] = {
+ 25,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 509,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1996[] = {
+ 40,
+ -1, 1, 515,
+ 13, 0, 116,
+ 23, 0, 117,
+ 32, 0, 118,
+ 39, 0, 119,
+ 41, 0, 120,
+ 42, 1, 531,
+ 43, 0, 121,
+ 44, 0, 122,
+ 45, 0, 123,
+ 46, 0, 124,
+ 49, 0, 125,
+ 55, 0, 126,
+ 57, 1, 408,
+ 62, 0, 1585,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230,
+ 76, 1, 408,
+ 77, 0, 127,
+ 78, 0, 128,
+ 85, 0, 129,
+ 86, 0, 130,
+ 97, 1, 408,
+ 100, 0, 54,
+ 101, 0, 131,
+ 102, 1, 531,
+ 103, 0, 132,
+ 104, 0, 133,
+ 105, 0, 134,
+ 106, 0, 59,
+ 109, 0, 135
+};
+static int parser_action_row1997[] = {
1,
- -1, 1, 295
+ -1, 1, 321
};
-static int parser_action_row1736[] = {
+static int parser_action_row1998[] = {
2,
- -1, 1, 415,
- 97, 0, 204
+ -1, 1, 477,
+ 98, 0, 206
};
-static int parser_action_row1737[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row1999[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1738[] = {
+static int parser_action_row2000[] = {
+ 3,
+ -1, 1, 710,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row2001[] = {
+ 2,
+ -1, 3, 2000,
+ 101, 0, 2088
+};
+static int parser_action_row2002[] = {
+ 3,
+ -1, 3, 2001,
+ 100, 0, 54,
+ 101, 0, 2089
+};
+static int parser_action_row2003[] = {
+ 3,
+ -1, 1, 646,
+ 76, 1, 674,
+ 97, 1, 674
+};
+static int parser_action_row2004[] = {
+ 2,
+ -1, 3, 2003,
+ 102, 0, 2091
+};
+static int parser_action_row2005[] = {
3,
- -1, 1, 611,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 649,
+ 76, 1, 677,
+ 97, 1, 677
};
-static int parser_action_row1739[] = {
+static int parser_action_row2006[] = {
+ 4,
+ -1, 1, 658,
+ 55, 0, 280,
+ 76, 1, 686,
+ 97, 1, 686
+};
+static int parser_action_row2007[] = {
+ 5,
+ -1, 1, 670,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 698,
+ 97, 1, 698
+};
+static int parser_action_row2008[] = {
2,
- -1, 3, 1738,
- 100, 0, 1805
+ -1, 1, 529,
+ 101, 0, 2094
};
-static int parser_action_row1740[] = {
- 3,
- -1, 3, 1739,
- 99, 0, 54,
- 100, 0, 1806
+static int parser_action_row2009[] = {
+ 5,
+ -1, 1, 653,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 681,
+ 97, 1, 681
};
-static int parser_action_row1741[] = {
+static int parser_action_row2010[] = {
2,
- -1, 1, 583,
- 76, 1, 586
+ -1, 1, 528,
+ 101, 0, 2096
};
-static int parser_action_row1742[] = {
+static int parser_action_row2011[] = {
+ 3,
+ -1, 1, 530,
+ 100, 0, 54,
+ 101, 0, 2097
+};
+static int parser_action_row2012[] = {
1,
- -1, 1, 538
+ -1, 1, 601
};
-static int parser_action_row1743[] = {
+static int parser_action_row2013[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1744[] = {
+static int parser_action_row2014[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1745[] = {
+static int parser_action_row2015[] = {
1,
- -1, 1, 592
+ -1, 1, 683
};
-static int parser_action_row1746[] = {
+static int parser_action_row2016[] = {
1,
- -1, 1, 600
+ -1, 1, 695
};
-static int parser_action_row1747[] = {
+static int parser_action_row2017[] = {
2,
- -1, 1, 598,
- 55, 0, 277
+ -1, 1, 692,
+ 55, 0, 280
};
-static int parser_action_row1748[] = {
+static int parser_action_row2018[] = {
+ 1,
+ -1, 1, 704
+};
+static int parser_action_row2019[] = {
+ 1,
+ -1, 1, 678
+};
+static int parser_action_row2020[] = {
+ 1,
+ -1, 1, 675
+};
+static int parser_action_row2021[] = {
+ 2,
+ -1, 1, 687,
+ 55, 0, 280
+};
+static int parser_action_row2022[] = {
3,
- -1, 1, 497,
+ -1, 1, 699,
+ 55, 0, 280,
+ 61, 0, 218
+};
+static int parser_action_row2023[] = {
+ 2,
+ -1, 1, 529,
+ 101, 0, 2104
+};
+static int parser_action_row2024[] = {
+ 3,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1749[] = {
+static int parser_action_row2025[] = {
4,
- -1, 3, 1748,
+ -1, 3, 2024,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1750[] = {
+static int parser_action_row2026[] = {
1,
- -1, 1, 425
+ -1, 1, 487
};
-static int parser_action_row1751[] = {
+static int parser_action_row2027[] = {
4,
- -1, 3, 1750,
+ -1, 3, 2026,
0, 0, 88,
1, 0, 89,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1752[] = {
+static int parser_action_row2028[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1753[] = {
+static int parser_action_row2029[] = {
3,
-1, 1, 138,
- 99, 0, 391,
- 100, 0, 392
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1754[] = {
+static int parser_action_row2030[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1755[] = {
+static int parser_action_row2031[] = {
1,
-1, 1, 136
};
-static int parser_action_row1756[] = {
+static int parser_action_row2032[] = {
1,
-1, 1, 29
};
-static int parser_action_row1757[] = {
+static int parser_action_row2033[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1758[] = {
+static int parser_action_row2034[] = {
3,
-1, 1, 127,
- 4, 0, 1007,
- 16, 0, 1817
+ 4, 0, 1083,
+ 16, 0, 2111
};
-static int parser_action_row1759[] = {
+static int parser_action_row2035[] = {
3,
- -1, 3, 1758,
+ -1, 3, 2034,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1760[] = {
+static int parser_action_row2036[] = {
1,
-1, 1, 51
};
-static int parser_action_row1761[] = {
+static int parser_action_row2037[] = {
1,
-1, 1, 72
};
-static int parser_action_row1762[] = {
+static int parser_action_row2038[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1763[] = {
+static int parser_action_row2039[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1764[] = {
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2040[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1765[] = {
+static int parser_action_row2041[] = {
2,
- -1, 3, 1764,
- 16, 0, 1823
+ -1, 3, 2040,
+ 16, 0, 2117
};
-static int parser_action_row1766[] = {
+static int parser_action_row2042[] = {
5,
-1, 1, 30,
0, 0, 88,
1, 0, 89,
14, 0, 32,
- 98, 0, 90
+ 99, 0, 90
};
-static int parser_action_row1767[] = {
+static int parser_action_row2043[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1768[] = {
+static int parser_action_row2044[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1769[] = {
+static int parser_action_row2045[] = {
1,
-1, 1, 62
};
-static int parser_action_row1770[] = {
+static int parser_action_row2046[] = {
2,
- -1, 3, 1769,
- 16, 0, 1828
+ -1, 3, 2045,
+ 16, 0, 2122
};
-static int parser_action_row1771[] = {
+static int parser_action_row2047[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1772[] = {
+static int parser_action_row2048[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1773[] = {
- 3,
- -1, 3, 1772,
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2049[] = {
+ 3,
+ -1, 3, 2048,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1774[] = {
+static int parser_action_row2050[] = {
1,
-1, 1, 73
};
-static int parser_action_row1775[] = {
+static int parser_action_row2051[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1776[] = {
+static int parser_action_row2052[] = {
3,
-1, 1, 127,
- 4, 0, 1007,
- 16, 0, 1833
+ 4, 0, 1083,
+ 16, 0, 2127
};
-static int parser_action_row1777[] = {
+static int parser_action_row2053[] = {
3,
- -1, 3, 1776,
+ -1, 3, 2052,
29, 0, 84,
- 112, 0, 85
+ 113, 0, 85
};
-static int parser_action_row1778[] = {
+static int parser_action_row2054[] = {
1,
-1, 1, 55
};
-static int parser_action_row1779[] = {
+static int parser_action_row2055[] = {
5,
- -1, 1, 495,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
16, 1, 83,
- 98, 0, 3
+ 99, 0, 3
};
-static int parser_action_row1780[] = {
+static int parser_action_row2056[] = {
1,
-1, 1, 52
};
-static int parser_action_row1781[] = {
+static int parser_action_row2057[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1782[] = {
+static int parser_action_row2058[] = {
1,
-1, 1, 44
};
-static int parser_action_row1783[] = {
+static int parser_action_row2059[] = {
1,
- -1, 1, 1038
+ -1, 1, 1225
};
-static int parser_action_row1784[] = {
+static int parser_action_row2060[] = {
1,
- -1, 1, 433
+ -1, 1, 495
};
-static int parser_action_row1785[] = {
+static int parser_action_row2061[] = {
1,
- -1, 1, 688
+ -1, 1, 804
};
-static int parser_action_row1786[] = {
+static int parser_action_row2062[] = {
1,
- -1, 1, 707
+ -1, 1, 832
};
-static int parser_action_row1787[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+static int parser_action_row2063[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1788[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2064[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1789[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2065[] = {
13,
- -1, 1, 763,
- 62, 0, 1839,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1790[] = {
+ -1, 1, 914,
+ 62, 0, 2133,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2066[] = {
13,
- -1, 1, 761,
- 62, 0, 1841,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1791[] = {
+ -1, 1, 911,
+ 62, 0, 2135,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2067[] = {
14,
- -1, 1, 766,
- 55, 0, 277,
- 62, 0, 1843,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1792[] = {
+ -1, 1, 917,
+ 55, 0, 280,
+ 62, 0, 2137,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2068[] = {
15,
- -1, 1, 770,
- 55, 0, 277,
- 61, 0, 216,
- 62, 0, 1846,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1793[] = {
+ -1, 1, 921,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 2140,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2069[] = {
22,
- -1, 1, 466,
- 57, 0, 638,
- 77, 0, 639,
- 78, 0, 640,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 641,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 100, 0, 1849
-};
-static int parser_action_row1794[] = {
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 2143
+};
+static int parser_action_row2070[] = {
+ 15,
+ -1, 1, 923,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 2144,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2071[] = {
+ 2,
+ -1, 3, 2070,
+ 102, 0, 2147
+};
+static int parser_action_row2072[] = {
+ 22,
+ -1, 1, 528,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 2148
+};
+static int parser_action_row2073[] = {
+ 1,
+ -1, 1, 982
+};
+static int parser_action_row2074[] = {
+ 23,
+ -1, 1, 530,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 100, 0, 54,
+ 101, 0, 2149
+};
+static int parser_action_row2075[] = {
1,
- -1, 1, 692
+ -1, 1, 808
};
-static int parser_action_row1795[] = {
+static int parser_action_row2076[] = {
1,
- -1, 1, 711
+ -1, 1, 836
};
-static int parser_action_row1796[] = {
+static int parser_action_row2077[] = {
1,
- -1, 1, 691
+ -1, 1, 807
};
-static int parser_action_row1797[] = {
+static int parser_action_row2078[] = {
1,
- -1, 1, 710
+ -1, 1, 835
};
-static int parser_action_row1798[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2079[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1799[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2080[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1800[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2081[] = {
1,
- -1, 1, 375
+ -1, 1, 437
};
-static int parser_action_row1801[] = {
+static int parser_action_row2082[] = {
1,
- -1, 1, 795
+ -1, 1, 956
};
-static int parser_action_row1802[] = {
+static int parser_action_row2083[] = {
1,
- -1, 1, 953
+ -1, 1, 1132
};
-static int parser_action_row1803[] = {
+static int parser_action_row2084[] = {
+ 2,
+ -1, 1, 210,
+ 25, 1, 1123
+};
+static int parser_action_row2085[] = {
+ 2,
+ -1, 1, 196,
+ 25, 1, 1109
+};
+static int parser_action_row2086[] = {
1,
- -1, 1, 421
+ -1, 1, 483
};
-static int parser_action_row1804[] = {
+static int parser_action_row2087[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1805[] = {
+static int parser_action_row2088[] = {
1,
- -1, 1, 610
+ -1, 1, 709
};
-static int parser_action_row1806[] = {
+static int parser_action_row2089[] = {
2,
- -1, 1, 613,
- 55, 0, 277
+ -1, 1, 712,
+ 55, 0, 280
};
-static int parser_action_row1807[] = {
+static int parser_action_row2090[] = {
3,
- -1, 1, 617,
- 55, 0, 277,
- 61, 0, 216
+ -1, 1, 716,
+ 55, 0, 280,
+ 61, 0, 218
};
-static int parser_action_row1808[] = {
+static int parser_action_row2091[] = {
2,
- -1, 3, 1807,
- 100, 0, 1855
+ -1, 3, 2090,
+ 101, 0, 2156
};
-static int parser_action_row1809[] = {
+static int parser_action_row2092[] = {
+ 3,
+ -1, 1, 647,
+ 76, 1, 675,
+ 97, 1, 675
+};
+static int parser_action_row2093[] = {
+ 3,
+ -1, 1, 655,
+ 76, 1, 683,
+ 97, 1, 683
+};
+static int parser_action_row2094[] = {
+ 3,
+ -1, 1, 667,
+ 76, 1, 695,
+ 97, 1, 695
+};
+static int parser_action_row2095[] = {
+ 4,
+ -1, 1, 664,
+ 55, 0, 280,
+ 76, 1, 692,
+ 97, 1, 692
+};
+static int parser_action_row2096[] = {
+ 3,
+ -1, 1, 650,
+ 76, 1, 678,
+ 97, 1, 678
+};
+static int parser_action_row2097[] = {
+ 4,
+ -1, 1, 659,
+ 55, 0, 280,
+ 76, 1, 687,
+ 97, 1, 687
+};
+static int parser_action_row2098[] = {
+ 5,
+ -1, 1, 671,
+ 55, 0, 280,
+ 61, 0, 218,
+ 76, 1, 699,
+ 97, 1, 699
+};
+static int parser_action_row2099[] = {
2,
- -1, 3, 1808,
- 46, 0, 1856
+ -1, 1, 529,
+ 101, 0, 2160
};
-static int parser_action_row1810[] = {
+static int parser_action_row2100[] = {
+ 2,
+ -1, 3, 2099,
+ 46, 0, 2161
+};
+static int parser_action_row2101[] = {
5,
- -1, 3, 1809,
- 32, 0, 1857,
- 48, 0, 403,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 2100,
+ 32, 0, 2162,
+ 48, 0, 416,
+ 100, 0, 404,
+ 101, 0, 405
};
-static int parser_action_row1811[] = {
+static int parser_action_row2102[] = {
1,
- -1, 1, 596
+ -1, 1, 689
};
-static int parser_action_row1812[] = {
+static int parser_action_row2103[] = {
+ 1,
+ -1, 1, 684
+};
+static int parser_action_row2104[] = {
+ 1,
+ -1, 1, 696
+};
+static int parser_action_row2105[] = {
+ 2,
+ -1, 1, 693,
+ 55, 0, 280
+};
+static int parser_action_row2106[] = {
54,
- -1, 1, 468,
- 13, 0, 170,
+ -1, 1, 531,
+ 13, 0, 171,
+ 16, 0, 33,
+ 17, 0, 34,
+ 23, 0, 172,
+ 26, 0, 36,
+ 27, 0, 37,
+ 28, 0, 38,
+ 32, 0, 173,
+ 34, 0, 420,
+ 35, 0, 421,
+ 36, 0, 422,
+ 37, 0, 423,
+ 38, 0, 43,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 48, 0, 416,
+ 49, 0, 176,
+ 51, 0, 49,
+ 52, 0, 424,
+ 53, 0, 425,
+ 55, 0, 52,
+ 57, 0, 426,
+ 77, 0, 427,
+ 78, 0, 428,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 435,
+ 86, 0, 436,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 98, 0, 206,
+ 100, 0, 404,
+ 101, 0, 446,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2107[] = {
+ 1,
+ -1, 1, 488
+};
+static int parser_action_row2108[] = {
+ 1,
+ -1, 1, 491
+};
+static int parser_action_row2109[] = {
+ 2,
+ -1, 3, 2108,
+ 48, 0, 2166
+};
+static int parser_action_row2110[] = {
+ 5,
+ -1, 3, 2109,
+ 32, 0, 2167,
+ 48, 0, 2168,
+ 100, 0, 404,
+ 101, 0, 405
+};
+static int parser_action_row2111[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2112[] = {
+ 34,
+ -1, 1, 531,
+ 0, 0, 1,
+ 1, 0, 2,
+ 10, 0, 632,
+ 13, 0, 31,
+ 16, 0, 33,
+ 17, 0, 34,
+ 23, 0, 35,
+ 26, 0, 36,
+ 27, 0, 37,
+ 28, 0, 38,
+ 34, 0, 39,
+ 35, 0, 40,
+ 36, 0, 41,
+ 37, 0, 42,
+ 38, 0, 43,
+ 39, 0, 44,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 51, 0, 49,
+ 52, 0, 50,
+ 53, 0, 51,
+ 55, 0, 52,
+ 57, 0, 53,
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2113[] = {
+ 3,
+ -1, 3, 2112,
+ 29, 0, 84,
+ 113, 0, 85
+};
+static int parser_action_row2114[] = {
+ 1,
+ -1, 1, 60
+};
+static int parser_action_row2115[] = {
+ 1,
+ -1, 1, 68
+};
+static int parser_action_row2116[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2117[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2118[] = {
+ 34,
+ -1, 1, 531,
+ 0, 0, 1,
+ 1, 0, 2,
+ 10, 0, 632,
+ 13, 0, 31,
16, 0, 33,
17, 0, 34,
- 23, 0, 171,
+ 23, 0, 35,
26, 0, 36,
27, 0, 37,
28, 0, 38,
- 32, 0, 172,
- 34, 0, 407,
- 35, 0, 408,
- 36, 0, 409,
- 37, 0, 410,
+ 34, 0, 39,
+ 35, 0, 40,
+ 36, 0, 41,
+ 37, 0, 42,
38, 0, 43,
- 39, 0, 173,
- 41, 0, 174,
+ 39, 0, 44,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 48, 0, 403,
- 49, 0, 175,
51, 0, 49,
- 52, 0, 411,
- 53, 0, 412,
- 55, 0, 52,
- 57, 0, 413,
- 77, 0, 414,
- 78, 0, 415,
- 79, 0, 416,
- 80, 0, 417,
- 81, 0, 418,
- 82, 0, 419,
- 83, 0, 420,
- 84, 0, 421,
- 85, 0, 422,
- 86, 0, 423,
- 87, 0, 424,
- 88, 0, 425,
- 89, 0, 426,
- 90, 0, 427,
- 91, 0, 428,
- 92, 0, 429,
- 93, 0, 430,
- 94, 0, 431,
- 95, 0, 432,
- 97, 0, 204,
- 99, 0, 391,
- 100, 0, 433,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1813[] = {
- 1,
- -1, 1, 426
-};
-static int parser_action_row1814[] = {
- 1,
- -1, 1, 429
+ 52, 0, 50,
+ 53, 0, 51,
+ 55, 0, 52,
+ 57, 0, 53,
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1815[] = {
+static int parser_action_row2119[] = {
2,
- -1, 3, 1814,
- 48, 0, 1860
+ -1, 1, 79,
+ 16, 1, 82
};
-static int parser_action_row1816[] = {
- 5,
- -1, 3, 1815,
- 32, 0, 1861,
- 48, 0, 1862,
- 99, 0, 391,
- 100, 0, 392
+static int parser_action_row2120[] = {
+ 4,
+ -1, 1, 558,
+ 0, 0, 1,
+ 1, 0, 2,
+ 99, 0, 3
};
-static int parser_action_row1817[] = {
+static int parser_action_row2121[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 64,
+ 10, 0, 2177
};
-static int parser_action_row1818[] = {
+static int parser_action_row2122[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2123[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1819[] = {
- 3,
- -1, 3, 1818,
- 29, 0, 84,
- 112, 0, 85
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1820[] = {
- 1,
- -1, 1, 60
-};
-static int parser_action_row1821[] = {
+static int parser_action_row2124[] = {
1,
- -1, 1, 68
+ -1, 1, 56
};
-static int parser_action_row1822[] = {
+static int parser_action_row2125[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1823[] = {
+static int parser_action_row2126[] = {
+ 1,
+ -1, 1, 75
+};
+static int parser_action_row2127[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 542,
+ 10, 0, 1521
};
-static int parser_action_row1824[] = {
+static int parser_action_row2128[] = {
34,
- -1, 1, 468,
+ -1, 1, 531,
0, 0, 1,
1, 0, 2,
- 10, 0, 602,
+ 10, 0, 632,
13, 0, 31,
16, 0, 33,
17, 0, 34,
53, 0, 51,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 99, 0, 3,
+ 100, 0, 54,
+ 101, 0, 55,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2129[] = {
+ 3,
+ -1, 3, 2128,
+ 29, 0, 84,
+ 113, 0, 85
};
-static int parser_action_row1825[] = {
+static int parser_action_row2130[] = {
+ 1,
+ -1, 1, 74
+};
+static int parser_action_row2131[] = {
+ 1,
+ -1, 1, 53
+};
+static int parser_action_row2132[] = {
+ 1,
+ -1, 1, 787
+};
+static int parser_action_row2133[] = {
+ 1,
+ -1, 1, 815
+};
+static int parser_action_row2134[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2135[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2136[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2137[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2138[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2139[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2140[] = {
+ 13,
+ -1, 1, 916,
+ 62, 0, 2190,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2141[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2142[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2143[] = {
+ 13,
+ -1, 1, 920,
+ 62, 0, 2194,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2144[] = {
+ 14,
+ -1, 1, 919,
+ 55, 0, 280,
+ 62, 0, 2196,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2145[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2146[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2147[] = {
+ 13,
+ -1, 1, 922,
+ 62, 0, 2201,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2148[] = {
+ 13,
+ -1, 1, 912,
+ 62, 0, 2203,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2149[] = {
+ 14,
+ -1, 1, 925,
+ 55, 0, 280,
+ 62, 0, 2205,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2150[] = {
+ 15,
+ -1, 1, 929,
+ 55, 0, 280,
+ 61, 0, 218,
+ 62, 0, 2208,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2151[] = {
+ 22,
+ -1, 1, 529,
+ 57, 0, 669,
+ 77, 0, 670,
+ 78, 0, 671,
+ 79, 0, 429,
+ 80, 0, 430,
+ 81, 0, 431,
+ 82, 0, 432,
+ 83, 0, 433,
+ 84, 0, 434,
+ 85, 0, 672,
+ 86, 0, 673,
+ 87, 0, 437,
+ 88, 0, 438,
+ 89, 0, 439,
+ 90, 0, 440,
+ 91, 0, 441,
+ 92, 0, 442,
+ 93, 0, 443,
+ 94, 0, 444,
+ 95, 0, 445,
+ 101, 0, 2211
+};
+static int parser_action_row2152[] = {
+ 1,
+ -1, 1, 806
+};
+static int parser_action_row2153[] = {
+ 1,
+ -1, 1, 834
+};
+static int parser_action_row2154[] = {
2,
- -1, 1, 79,
- 16, 1, 82
+ -1, 3, 2153,
+ 25, 0, 2212
};
-static int parser_action_row1826[] = {
+static int parser_action_row2155[] = {
+ 1,
+ -1, 1, 711
+};
+static int parser_action_row2156[] = {
+ 1,
+ -1, 1, 715
+};
+static int parser_action_row2157[] = {
+ 2,
+ -1, 1, 714,
+ 55, 0, 280
+};
+static int parser_action_row2158[] = {
+ 3,
+ -1, 1, 661,
+ 76, 1, 689,
+ 97, 1, 689
+};
+static int parser_action_row2159[] = {
+ 3,
+ -1, 1, 656,
+ 76, 1, 684,
+ 97, 1, 684
+};
+static int parser_action_row2160[] = {
+ 3,
+ -1, 1, 668,
+ 76, 1, 696,
+ 97, 1, 696
+};
+static int parser_action_row2161[] = {
4,
- -1, 1, 495,
+ -1, 1, 665,
+ 55, 0, 280,
+ 76, 1, 693,
+ 97, 1, 693
+};
+static int parser_action_row2162[] = {
+ 1,
+ -1, 1, 719
+};
+static int parser_action_row2163[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row2164[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row2165[] = {
+ 1,
+ -1, 1, 690
+};
+static int parser_action_row2166[] = {
+ 2,
+ -1, 3, 2165,
+ 56, 0, 2217
+};
+static int parser_action_row2167[] = {
+ 1,
+ -1, 1, 140
+};
+static int parser_action_row2168[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row2169[] = {
+ 5,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2,
+ 100, 0, 404,
+ 101, 0, 405
+};
+static int parser_action_row2170[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row2171[] = {
+ 1,
+ -1, 1, 49
+};
+static int parser_action_row2172[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2173[] = {
+ 1,
+ -1, 1, 61
+};
+static int parser_action_row2174[] = {
+ 1,
+ -1, 1, 70
+};
+static int parser_action_row2175[] = {
+ 1,
+ -1, 1, 69
+};
+static int parser_action_row2176[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2177[] = {
+ 6,
+ -1, 1, 558,
0, 0, 1,
1, 0, 2,
- 98, 0, 3
+ 10, 0, 1692,
+ 16, 1, 83,
+ 99, 0, 3
+};
+static int parser_action_row2178[] = {
+ 1,
+ -1, 1, 66
+};
+static int parser_action_row2179[] = {
+ 2,
+ -1, 1, 81,
+ 15, 0, 1075
+};
+static int parser_action_row2180[] = {
+ 2,
+ -1, 1, 65,
+ 10, 0, 2224
+};
+static int parser_action_row2181[] = {
+ 1,
+ -1, 1, 58
+};
+static int parser_action_row2182[] = {
+ 1,
+ -1, 1, 57
+};
+static int parser_action_row2183[] = {
+ 2,
+ -1, 1, 542,
+ 10, 0, 1521
+};
+static int parser_action_row2184[] = {
+ 1,
+ -1, 1, 76
+};
+static int parser_action_row2185[] = {
+ 1,
+ -1, 1, 786
+};
+static int parser_action_row2186[] = {
+ 1,
+ -1, 1, 814
+};
+static int parser_action_row2187[] = {
+ 1,
+ -1, 1, 783
+};
+static int parser_action_row2188[] = {
+ 1,
+ -1, 1, 811
};
-static int parser_action_row1827[] = {
- 2,
- -1, 1, 64,
- 10, 0, 1871
+static int parser_action_row2189[] = {
+ 1,
+ -1, 1, 789
};
-static int parser_action_row1828[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2190[] = {
+ 1,
+ -1, 1, 817
+};
+static int parser_action_row2191[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1829[] = {
- 34,
- -1, 1, 468,
- 0, 0, 1,
- 1, 0, 2,
- 10, 0, 602,
- 13, 0, 31,
- 16, 0, 33,
- 17, 0, 34,
- 23, 0, 35,
- 26, 0, 36,
- 27, 0, 37,
- 28, 0, 38,
- 34, 0, 39,
- 35, 0, 40,
- 36, 0, 41,
- 37, 0, 42,
- 38, 0, 43,
- 39, 0, 44,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2192[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 49,
- 52, 0, 50,
- 53, 0, 51,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1830[] = {
+static int parser_action_row2193[] = {
1,
- -1, 1, 56
-};
-static int parser_action_row1831[] = {
- 2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 793
};
-static int parser_action_row1832[] = {
+static int parser_action_row2194[] = {
1,
- -1, 1, 75
-};
-static int parser_action_row1833[] = {
- 2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 821
};
-static int parser_action_row1834[] = {
- 34,
- -1, 1, 468,
- 0, 0, 1,
- 1, 0, 2,
- 10, 0, 602,
- 13, 0, 31,
- 16, 0, 33,
- 17, 0, 34,
- 23, 0, 35,
- 26, 0, 36,
- 27, 0, 37,
- 28, 0, 38,
- 34, 0, 39,
- 35, 0, 40,
- 36, 0, 41,
- 37, 0, 42,
- 38, 0, 43,
- 39, 0, 44,
+static int parser_action_row2195[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 51, 0, 49,
- 52, 0, 50,
- 53, 0, 51,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 98, 0, 3,
- 99, 0, 54,
- 100, 0, 55,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1835[] = {
- 3,
- -1, 3, 1834,
- 29, 0, 84,
- 112, 0, 85
-};
-static int parser_action_row1836[] = {
- 1,
- -1, 1, 74
-};
-static int parser_action_row1837[] = {
- 1,
- -1, 1, 53
-};
-static int parser_action_row1838[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2196[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2197[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2198[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2199[] = {
+ 13,
+ -1, 1, 918,
+ 62, 0, 2232,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2200[] = {
1,
- -1, 1, 679
+ -1, 1, 795
};
-static int parser_action_row1839[] = {
+static int parser_action_row2201[] = {
1,
- -1, 1, 698
+ -1, 1, 823
};
-static int parser_action_row1840[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2202[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1841[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2203[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1842[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2204[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1843[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2205[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1844[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2206[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1845[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2207[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1846[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2208[] = {
13,
- -1, 1, 765,
- 62, 0, 1884,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1847[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ -1, 1, 924,
+ 62, 0, 2240,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2209[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1848[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2210[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1849[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2211[] = {
13,
- -1, 1, 769,
- 62, 0, 1888,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1850[] = {
+ -1, 1, 928,
+ 62, 0, 2244,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2212[] = {
14,
- -1, 1, 768,
- 55, 0, 277,
- 62, 0, 1890,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1851[] = {
- 1,
- -1, 1, 690
-};
-static int parser_action_row1852[] = {
- 1,
- -1, 1, 709
-};
-static int parser_action_row1853[] = {
- 2,
- -1, 3, 1852,
- 25, 0, 1893
-};
-static int parser_action_row1854[] = {
- 1,
- -1, 1, 612
-};
-static int parser_action_row1855[] = {
- 1,
- -1, 1, 616
-};
-static int parser_action_row1856[] = {
- 2,
- -1, 1, 615,
- 55, 0, 277
-};
-static int parser_action_row1857[] = {
- 1,
- -1, 1, 620
-};
-static int parser_action_row1858[] = {
+ -1, 1, 927,
+ 55, 0, 280,
+ 62, 0, 2246,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2213[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1859[] = {
+static int parser_action_row2214[] = {
+ 1,
+ -1, 1, 713
+};
+static int parser_action_row2215[] = {
3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+ -1, 1, 662,
+ 76, 1, 690,
+ 97, 1, 690
};
-static int parser_action_row1860[] = {
+static int parser_action_row2216[] = {
2,
- -1, 3, 1859,
- 56, 0, 1897
-};
-static int parser_action_row1861[] = {
- 1,
- -1, 1, 140
+ -1, 3, 2215,
+ 46, 0, 2250
};
-static int parser_action_row1862[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row2217[] = {
+ 2,
+ -1, 3, 2216,
+ 56, 0, 2251
};
-static int parser_action_row1863[] = {
+static int parser_action_row2218[] = {
5,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2,
- 99, 0, 391,
- 100, 0, 392
+ -1, 3, 2217,
+ 0, 0, 88,
+ 1, 0, 89,
+ 98, 0, 206,
+ 99, 0, 90
};
-static int parser_action_row1864[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
+static int parser_action_row2219[] = {
+ 2,
+ -1, 3, 2218,
+ 48, 0, 2254
};
-static int parser_action_row1865[] = {
- 1,
- -1, 1, 49
+static int parser_action_row2220[] = {
+ 2,
+ -1, 3, 2219,
+ 56, 0, 2255
};
-static int parser_action_row1866[] = {
+static int parser_action_row2221[] = {
2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 3, 2220,
+ 56, 0, 2256
};
-static int parser_action_row1867[] = {
+static int parser_action_row2222[] = {
1,
- -1, 1, 61
+ -1, 1, 50
};
-static int parser_action_row1868[] = {
+static int parser_action_row2223[] = {
1,
- -1, 1, 70
+ -1, 1, 71
};
-static int parser_action_row1869[] = {
+static int parser_action_row2224[] = {
1,
- -1, 1, 69
-};
-static int parser_action_row1870[] = {
- 2,
- -1, 1, 479,
- 10, 0, 1350
+ -1, 1, 63
};
-static int parser_action_row1871[] = {
- 6,
- -1, 1, 495,
- 0, 0, 1,
- 1, 0, 2,
- 10, 0, 1481,
- 16, 1, 83,
- 98, 0, 3
+static int parser_action_row2225[] = {
+ 1,
+ -1, 1, 67
};
-static int parser_action_row1872[] = {
+static int parser_action_row2226[] = {
1,
- -1, 1, 66
+ -1, 1, 59
};
-static int parser_action_row1873[] = {
- 2,
- -1, 1, 81,
- 15, 0, 999
+static int parser_action_row2227[] = {
+ 1,
+ -1, 1, 788
};
-static int parser_action_row1874[] = {
- 2,
- -1, 1, 65,
- 10, 0, 1904
+static int parser_action_row2228[] = {
+ 1,
+ -1, 1, 816
};
-static int parser_action_row1875[] = {
+static int parser_action_row2229[] = {
1,
- -1, 1, 58
+ -1, 1, 792
};
-static int parser_action_row1876[] = {
+static int parser_action_row2230[] = {
1,
- -1, 1, 57
+ -1, 1, 820
};
-static int parser_action_row1877[] = {
- 2,
- -1, 1, 479,
- 10, 0, 1350
+static int parser_action_row2231[] = {
+ 1,
+ -1, 1, 791
};
-static int parser_action_row1878[] = {
+static int parser_action_row2232[] = {
1,
- -1, 1, 76
+ -1, 1, 819
};
-static int parser_action_row1879[] = {
+static int parser_action_row2233[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2234[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 43, 0, 45,
+ 44, 0, 46,
+ 45, 0, 47,
+ 46, 0, 48,
+ 49, 0, 176,
+ 55, 0, 52,
+ 57, 0, 53,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2235[] = {
1,
- -1, 1, 678
+ -1, 1, 794
};
-static int parser_action_row1880[] = {
+static int parser_action_row2236[] = {
1,
- -1, 1, 697
+ -1, 1, 822
};
-static int parser_action_row1881[] = {
+static int parser_action_row2237[] = {
1,
- -1, 1, 676
+ -1, 1, 784
};
-static int parser_action_row1882[] = {
+static int parser_action_row2238[] = {
1,
- -1, 1, 695
+ -1, 1, 812
};
-static int parser_action_row1883[] = {
+static int parser_action_row2239[] = {
1,
- -1, 1, 681
+ -1, 1, 797
};
-static int parser_action_row1884[] = {
+static int parser_action_row2240[] = {
1,
- -1, 1, 700
+ -1, 1, 825
};
-static int parser_action_row1885[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2241[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1886[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2242[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1887[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2243[] = {
1,
- -1, 1, 685
+ -1, 1, 801
};
-static int parser_action_row1888[] = {
+static int parser_action_row2244[] = {
1,
- -1, 1, 704
+ -1, 1, 829
};
-static int parser_action_row1889[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2245[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1890[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2246[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1891[] = {
- 25,
- -1, 1, 528,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
- 42, 1, 468,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2247[] = {
+ 26,
+ -1, 1, 591,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
+ 42, 1, 531,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 101, 1, 468,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1892[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 102, 1, 531,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2248[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1893[] = {
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2249[] = {
13,
- -1, 1, 767,
- 62, 0, 1912,
- 63, 0, 218,
- 64, 0, 219,
- 65, 0, 220,
- 66, 0, 221,
- 67, 0, 222,
- 68, 0, 223,
- 69, 0, 224,
- 70, 0, 225,
- 71, 0, 226,
- 72, 0, 227,
- 73, 0, 228
-};
-static int parser_action_row1894[] = {
+ -1, 1, 926,
+ 62, 0, 2265,
+ 63, 0, 220,
+ 64, 0, 221,
+ 65, 0, 222,
+ 66, 0, 223,
+ 67, 0, 224,
+ 68, 0, 225,
+ 69, 0, 226,
+ 70, 0, 227,
+ 71, 0, 228,
+ 72, 0, 229,
+ 73, 0, 230
+};
+static int parser_action_row2250[] = {
+ 23,
+ -1, 1, 531,
+ 13, 0, 1253,
+ 23, 0, 1254,
+ 32, 0, 1255,
+ 39, 0, 1256,
+ 41, 0, 1257,
+ 43, 0, 1258,
+ 44, 0, 1259,
+ 45, 0, 1260,
+ 46, 0, 1261,
+ 49, 0, 1262,
+ 55, 0, 52,
+ 77, 0, 1263,
+ 78, 0, 1264,
+ 85, 0, 1265,
+ 86, 0, 1266,
+ 100, 0, 54,
+ 101, 0, 1267,
+ 103, 0, 1268,
+ 104, 0, 1269,
+ 105, 0, 1270,
+ 106, 0, 59,
+ 109, 0, 1271
+};
+static int parser_action_row2251[] = {
3,
- -1, 1, 497,
+ -1, 1, 560,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1895[] = {
+static int parser_action_row2252[] = {
1,
- -1, 1, 614
-};
-static int parser_action_row1896[] = {
- 2,
- -1, 3, 1895,
- 46, 0, 1915
-};
-static int parser_action_row1897[] = {
- 2,
- -1, 3, 1896,
- 56, 0, 1916
+ -1, 1, 717
};
-static int parser_action_row1898[] = {
- 5,
- -1, 3, 1897,
+static int parser_action_row2253[] = {
+ 4,
+ -1, 3, 2252,
0, 0, 88,
1, 0, 89,
- 97, 0, 204,
- 98, 0, 90
-};
-static int parser_action_row1899[] = {
- 2,
- -1, 3, 1898,
- 48, 0, 1919
-};
-static int parser_action_row1900[] = {
- 2,
- -1, 3, 1899,
- 56, 0, 1920
+ 99, 0, 90
};
-static int parser_action_row1901[] = {
- 2,
- -1, 3, 1900,
- 56, 0, 1921
-};
-static int parser_action_row1902[] = {
+static int parser_action_row2254[] = {
1,
- -1, 1, 50
+ -1, 1, 489
};
-static int parser_action_row1903[] = {
+static int parser_action_row2255[] = {
+ 3,
+ -1, 1, 560,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row2256[] = {
1,
- -1, 1, 71
+ -1, 1, 137
};
-static int parser_action_row1904[] = {
+static int parser_action_row2257[] = {
1,
- -1, 1, 63
+ -1, 1, 135
};
-static int parser_action_row1905[] = {
+static int parser_action_row2258[] = {
1,
- -1, 1, 67
+ -1, 1, 790
};
-static int parser_action_row1906[] = {
+static int parser_action_row2259[] = {
1,
- -1, 1, 59
+ -1, 1, 818
};
-static int parser_action_row1907[] = {
+static int parser_action_row2260[] = {
1,
- -1, 1, 680
+ -1, 1, 796
};
-static int parser_action_row1908[] = {
+static int parser_action_row2261[] = {
1,
- -1, 1, 699
+ -1, 1, 824
};
-static int parser_action_row1909[] = {
+static int parser_action_row2262[] = {
1,
- -1, 1, 684
+ -1, 1, 800
};
-static int parser_action_row1910[] = {
+static int parser_action_row2263[] = {
1,
- -1, 1, 703
+ -1, 1, 828
};
-static int parser_action_row1911[] = {
+static int parser_action_row2264[] = {
1,
- -1, 1, 683
+ -1, 1, 799
};
-static int parser_action_row1912[] = {
+static int parser_action_row2265[] = {
1,
- -1, 1, 702
+ -1, 1, 827
};
-static int parser_action_row1913[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+static int parser_action_row2266[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1914[] = {
- 23,
- -1, 1, 468,
- 13, 0, 170,
- 23, 0, 171,
- 32, 0, 172,
- 39, 0, 173,
- 41, 0, 174,
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
+};
+static int parser_action_row2267[] = {
+ 24,
+ -1, 1, 531,
+ 13, 0, 171,
+ 23, 0, 172,
+ 32, 0, 173,
+ 39, 0, 174,
+ 41, 0, 175,
43, 0, 45,
44, 0, 46,
45, 0, 47,
46, 0, 48,
- 49, 0, 175,
+ 49, 0, 176,
55, 0, 52,
57, 0, 53,
- 77, 0, 176,
- 78, 0, 177,
- 86, 0, 178,
- 99, 0, 54,
- 100, 0, 179,
- 102, 0, 56,
- 103, 0, 57,
- 104, 0, 58,
- 105, 0, 59,
- 108, 0, 60
-};
-static int parser_action_row1915[] = {
- 22,
- -1, 1, 468,
- 13, 0, 1133,
- 23, 0, 1134,
- 32, 0, 1135,
- 39, 0, 1136,
- 41, 0, 1137,
- 43, 0, 1138,
- 44, 0, 1139,
- 45, 0, 1140,
- 46, 0, 1141,
- 49, 0, 1142,
- 55, 0, 52,
- 77, 0, 1143,
- 78, 0, 1144,
- 86, 0, 1145,
- 99, 0, 54,
- 100, 0, 1146,
- 102, 0, 1147,
- 103, 0, 1148,
- 104, 0, 1149,
- 105, 0, 59,
- 108, 0, 1150
-};
-static int parser_action_row1916[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1917[] = {
- 1,
- -1, 1, 618
+ 77, 0, 177,
+ 78, 0, 178,
+ 85, 0, 179,
+ 86, 0, 180,
+ 100, 0, 54,
+ 101, 0, 181,
+ 103, 0, 56,
+ 104, 0, 57,
+ 105, 0, 58,
+ 106, 0, 59,
+ 109, 0, 60
};
-static int parser_action_row1918[] = {
- 4,
- -1, 3, 1917,
- 0, 0, 88,
- 1, 0, 89,
- 98, 0, 90
-};
-static int parser_action_row1919[] = {
- 1,
- -1, 1, 427
-};
-static int parser_action_row1920[] = {
- 3,
- -1, 1, 497,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row1921[] = {
+static int parser_action_row2268[] = {
1,
- -1, 1, 137
-};
-static int parser_action_row1922[] = {
- 1,
- -1, 1, 135
-};
-static int parser_action_row1923[] = {
- 1,
- -1, 1, 682
+ -1, 1, 603
};
-static int parser_action_row1924[] = {
- 1,
- -1, 1, 701
+static int parser_action_row2269[] = {
+ 2,
+ -1, 3, 2268,
+ 56, 0, 2273
};
-static int parser_action_row1925[] = {
+static int parser_action_row2270[] = {
1,
- -1, 1, 540
+ -1, 1, 490
};
-static int parser_action_row1926[] = {
+static int parser_action_row2271[] = {
2,
- -1, 3, 1925,
- 56, 0, 1928
+ -1, 3, 2270,
+ 56, 0, 2274
};
-static int parser_action_row1927[] = {
+static int parser_action_row2272[] = {
1,
- -1, 1, 428
+ -1, 1, 798
};
-static int parser_action_row1928[] = {
- 2,
- -1, 3, 1927,
- 56, 0, 1929
+static int parser_action_row2273[] = {
+ 1,
+ -1, 1, 826
};
-static int parser_action_row1929[] = {
+static int parser_action_row2274[] = {
1,
- -1, 1, 619
+ -1, 1, 718
};
-static int parser_action_row1930[] = {
+static int parser_action_row2275[] = {
1,
-1, 1, 139
};
parser_action_row1927,
parser_action_row1928,
parser_action_row1929,
- parser_action_row1930
+ parser_action_row1930,
+ parser_action_row1931,
+ parser_action_row1932,
+ parser_action_row1933,
+ parser_action_row1934,
+ parser_action_row1935,
+ parser_action_row1936,
+ parser_action_row1937,
+ parser_action_row1938,
+ parser_action_row1939,
+ parser_action_row1940,
+ parser_action_row1941,
+ parser_action_row1942,
+ parser_action_row1943,
+ parser_action_row1944,
+ parser_action_row1945,
+ parser_action_row1946,
+ parser_action_row1947,
+ parser_action_row1948,
+ parser_action_row1949,
+ parser_action_row1950,
+ parser_action_row1951,
+ parser_action_row1952,
+ parser_action_row1953,
+ parser_action_row1954,
+ parser_action_row1955,
+ parser_action_row1956,
+ parser_action_row1957,
+ parser_action_row1958,
+ parser_action_row1959,
+ parser_action_row1960,
+ parser_action_row1961,
+ parser_action_row1962,
+ parser_action_row1963,
+ parser_action_row1964,
+ parser_action_row1965,
+ parser_action_row1966,
+ parser_action_row1967,
+ parser_action_row1968,
+ parser_action_row1969,
+ parser_action_row1970,
+ parser_action_row1971,
+ parser_action_row1972,
+ parser_action_row1973,
+ parser_action_row1974,
+ parser_action_row1975,
+ parser_action_row1976,
+ parser_action_row1977,
+ parser_action_row1978,
+ parser_action_row1979,
+ parser_action_row1980,
+ parser_action_row1981,
+ parser_action_row1982,
+ parser_action_row1983,
+ parser_action_row1984,
+ parser_action_row1985,
+ parser_action_row1986,
+ parser_action_row1987,
+ parser_action_row1988,
+ parser_action_row1989,
+ parser_action_row1990,
+ parser_action_row1991,
+ parser_action_row1992,
+ parser_action_row1993,
+ parser_action_row1994,
+ parser_action_row1995,
+ parser_action_row1996,
+ parser_action_row1997,
+ parser_action_row1998,
+ parser_action_row1999,
+ parser_action_row2000,
+ parser_action_row2001,
+ parser_action_row2002,
+ parser_action_row2003,
+ parser_action_row2004,
+ parser_action_row2005,
+ parser_action_row2006,
+ parser_action_row2007,
+ parser_action_row2008,
+ parser_action_row2009,
+ parser_action_row2010,
+ parser_action_row2011,
+ parser_action_row2012,
+ parser_action_row2013,
+ parser_action_row2014,
+ parser_action_row2015,
+ parser_action_row2016,
+ parser_action_row2017,
+ parser_action_row2018,
+ parser_action_row2019,
+ parser_action_row2020,
+ parser_action_row2021,
+ parser_action_row2022,
+ parser_action_row2023,
+ parser_action_row2024,
+ parser_action_row2025,
+ parser_action_row2026,
+ parser_action_row2027,
+ parser_action_row2028,
+ parser_action_row2029,
+ parser_action_row2030,
+ parser_action_row2031,
+ parser_action_row2032,
+ parser_action_row2033,
+ parser_action_row2034,
+ parser_action_row2035,
+ parser_action_row2036,
+ parser_action_row2037,
+ parser_action_row2038,
+ parser_action_row2039,
+ parser_action_row2040,
+ parser_action_row2041,
+ parser_action_row2042,
+ parser_action_row2043,
+ parser_action_row2044,
+ parser_action_row2045,
+ parser_action_row2046,
+ parser_action_row2047,
+ parser_action_row2048,
+ parser_action_row2049,
+ parser_action_row2050,
+ parser_action_row2051,
+ parser_action_row2052,
+ parser_action_row2053,
+ parser_action_row2054,
+ parser_action_row2055,
+ parser_action_row2056,
+ parser_action_row2057,
+ parser_action_row2058,
+ parser_action_row2059,
+ parser_action_row2060,
+ parser_action_row2061,
+ parser_action_row2062,
+ parser_action_row2063,
+ parser_action_row2064,
+ parser_action_row2065,
+ parser_action_row2066,
+ parser_action_row2067,
+ parser_action_row2068,
+ parser_action_row2069,
+ parser_action_row2070,
+ parser_action_row2071,
+ parser_action_row2072,
+ parser_action_row2073,
+ parser_action_row2074,
+ parser_action_row2075,
+ parser_action_row2076,
+ parser_action_row2077,
+ parser_action_row2078,
+ parser_action_row2079,
+ parser_action_row2080,
+ parser_action_row2081,
+ parser_action_row2082,
+ parser_action_row2083,
+ parser_action_row2084,
+ parser_action_row2085,
+ parser_action_row2086,
+ parser_action_row2087,
+ parser_action_row2088,
+ parser_action_row2089,
+ parser_action_row2090,
+ parser_action_row2091,
+ parser_action_row2092,
+ parser_action_row2093,
+ parser_action_row2094,
+ parser_action_row2095,
+ parser_action_row2096,
+ parser_action_row2097,
+ parser_action_row2098,
+ parser_action_row2099,
+ parser_action_row2100,
+ parser_action_row2101,
+ parser_action_row2102,
+ parser_action_row2103,
+ parser_action_row2104,
+ parser_action_row2105,
+ parser_action_row2106,
+ parser_action_row2107,
+ parser_action_row2108,
+ parser_action_row2109,
+ parser_action_row2110,
+ parser_action_row2111,
+ parser_action_row2112,
+ parser_action_row2113,
+ parser_action_row2114,
+ parser_action_row2115,
+ parser_action_row2116,
+ parser_action_row2117,
+ parser_action_row2118,
+ parser_action_row2119,
+ parser_action_row2120,
+ parser_action_row2121,
+ parser_action_row2122,
+ parser_action_row2123,
+ parser_action_row2124,
+ parser_action_row2125,
+ parser_action_row2126,
+ parser_action_row2127,
+ parser_action_row2128,
+ parser_action_row2129,
+ parser_action_row2130,
+ parser_action_row2131,
+ parser_action_row2132,
+ parser_action_row2133,
+ parser_action_row2134,
+ parser_action_row2135,
+ parser_action_row2136,
+ parser_action_row2137,
+ parser_action_row2138,
+ parser_action_row2139,
+ parser_action_row2140,
+ parser_action_row2141,
+ parser_action_row2142,
+ parser_action_row2143,
+ parser_action_row2144,
+ parser_action_row2145,
+ parser_action_row2146,
+ parser_action_row2147,
+ parser_action_row2148,
+ parser_action_row2149,
+ parser_action_row2150,
+ parser_action_row2151,
+ parser_action_row2152,
+ parser_action_row2153,
+ parser_action_row2154,
+ parser_action_row2155,
+ parser_action_row2156,
+ parser_action_row2157,
+ parser_action_row2158,
+ parser_action_row2159,
+ parser_action_row2160,
+ parser_action_row2161,
+ parser_action_row2162,
+ parser_action_row2163,
+ parser_action_row2164,
+ parser_action_row2165,
+ parser_action_row2166,
+ parser_action_row2167,
+ parser_action_row2168,
+ parser_action_row2169,
+ parser_action_row2170,
+ parser_action_row2171,
+ parser_action_row2172,
+ parser_action_row2173,
+ parser_action_row2174,
+ parser_action_row2175,
+ parser_action_row2176,
+ parser_action_row2177,
+ parser_action_row2178,
+ parser_action_row2179,
+ parser_action_row2180,
+ parser_action_row2181,
+ parser_action_row2182,
+ parser_action_row2183,
+ parser_action_row2184,
+ parser_action_row2185,
+ parser_action_row2186,
+ parser_action_row2187,
+ parser_action_row2188,
+ parser_action_row2189,
+ parser_action_row2190,
+ parser_action_row2191,
+ parser_action_row2192,
+ parser_action_row2193,
+ parser_action_row2194,
+ parser_action_row2195,
+ parser_action_row2196,
+ parser_action_row2197,
+ parser_action_row2198,
+ parser_action_row2199,
+ parser_action_row2200,
+ parser_action_row2201,
+ parser_action_row2202,
+ parser_action_row2203,
+ parser_action_row2204,
+ parser_action_row2205,
+ parser_action_row2206,
+ parser_action_row2207,
+ parser_action_row2208,
+ parser_action_row2209,
+ parser_action_row2210,
+ parser_action_row2211,
+ parser_action_row2212,
+ parser_action_row2213,
+ parser_action_row2214,
+ parser_action_row2215,
+ parser_action_row2216,
+ parser_action_row2217,
+ parser_action_row2218,
+ parser_action_row2219,
+ parser_action_row2220,
+ parser_action_row2221,
+ parser_action_row2222,
+ parser_action_row2223,
+ parser_action_row2224,
+ parser_action_row2225,
+ parser_action_row2226,
+ parser_action_row2227,
+ parser_action_row2228,
+ parser_action_row2229,
+ parser_action_row2230,
+ parser_action_row2231,
+ parser_action_row2232,
+ parser_action_row2233,
+ parser_action_row2234,
+ parser_action_row2235,
+ parser_action_row2236,
+ parser_action_row2237,
+ parser_action_row2238,
+ parser_action_row2239,
+ parser_action_row2240,
+ parser_action_row2241,
+ parser_action_row2242,
+ parser_action_row2243,
+ parser_action_row2244,
+ parser_action_row2245,
+ parser_action_row2246,
+ parser_action_row2247,
+ parser_action_row2248,
+ parser_action_row2249,
+ parser_action_row2250,
+ parser_action_row2251,
+ parser_action_row2252,
+ parser_action_row2253,
+ parser_action_row2254,
+ parser_action_row2255,
+ parser_action_row2256,
+ parser_action_row2257,
+ parser_action_row2258,
+ parser_action_row2259,
+ parser_action_row2260,
+ parser_action_row2261,
+ parser_action_row2262,
+ parser_action_row2263,
+ parser_action_row2264,
+ parser_action_row2265,
+ parser_action_row2266,
+ parser_action_row2267,
+ parser_action_row2268,
+ parser_action_row2269,
+ parser_action_row2270,
+ parser_action_row2271,
+ parser_action_row2272,
+ parser_action_row2273,
+ parser_action_row2274,
+ parser_action_row2275
};
static int parser_goto_row1[] = {
99, 100,
112, 100,
114, 100,
- 265, 100,
- 274, 100
+ 268, 100,
+ 277, 100
};
static int parser_goto_row5[] = {
16,
28, 110,
29, 113,
30, 115,
- 94, 264,
- 95, 266,
- 99, 268,
- 111, 273,
- 112, 275,
- 114, 276,
- 265, 509,
- 274, 512
+ 94, 267,
+ 95, 269,
+ 99, 271,
+ 111, 276,
+ 112, 278,
+ 114, 279,
+ 268, 523,
+ 277, 526
};
static int parser_goto_row6[] = {
1,
};
static int parser_goto_row8[] = {
9,
- -1, 815,
+ -1, 862,
13, 61,
27, 109,
- 98, 267,
- 204, 398,
- 607, 811,
- 1023, 1195,
- 1199, 1195,
- 1331, 1480
+ 98, 270,
+ 206, 411,
+ 637, 858,
+ 1099, 1316,
+ 1320, 1316,
+ 1502, 1691
};
static int parser_goto_row9[] = {
1,
- -1, 478
+ -1, 491
};
static int parser_goto_row10[] = {
1,
- -1, 1355
+ -1, 1526
};
static int parser_goto_row11[] = {
2,
- -1, 1501,
- 1502, 1612
+ -1, 1712,
+ 1713, 1846
};
static int parser_goto_row12[] = {
2,
- -1, 1356,
- 1611, 1684
+ -1, 1527,
+ 1845, 1939
};
static int parser_goto_row13[] = {
2,
- -1, 1016,
- 1024, 1197
+ -1, 1092,
+ 1100, 1318
};
static int parser_goto_row14[] = {
4,
- -1, 1017,
- 1020, 1192,
- 1499, 1609,
- 1610, 1683
+ -1, 1093,
+ 1096, 1313,
+ 1710, 1843,
+ 1844, 1938
};
static int parser_goto_row15[] = {
2,
- -1, 1018,
- 1024, 1198
+ -1, 1094,
+ 1100, 1319
};
static int parser_goto_row16[] = {
1,
- -1, 1019
+ -1, 1095
};
static int parser_goto_row17[] = {
6,
- -1, 1000,
- 853, 1003,
- 1686, 1760,
- 1690, 1768,
- 1700, 1781,
- 1872, 1903
+ -1, 1076,
+ 901, 1079,
+ 1941, 2036,
+ 1945, 2044,
+ 1955, 2057,
+ 2178, 2223
};
static int parser_goto_row18[] = {
8,
- -1, 1010,
- 1508, 1622,
- 1615, 1688,
- 1618, 1692,
- 1685, 1757,
- 1689, 1764,
- 1690, 1769,
- 1695, 1775
+ -1, 1086,
+ 1719, 1856,
+ 1849, 1943,
+ 1852, 1947,
+ 1940, 2033,
+ 1944, 2040,
+ 1945, 2045,
+ 1950, 2051
};
static int parser_goto_row19[] = {
8,
- -1, 240,
- 109, 272,
- 267, 510,
- 398, 615,
- 811, 966,
- 815, 970,
- 1195, 1358,
- 1480, 1599
+ -1, 242,
+ 109, 275,
+ 270, 524,
+ 411, 645,
+ 858, 1041,
+ 862, 1045,
+ 1316, 1529,
+ 1691, 1833
};
static int parser_goto_row20[] = {
7,
- -1, 680,
- 682, 862,
- 683, 863,
- 864, 1014,
- 1347, 862,
- 1348, 863,
- 1494, 1014
+ -1, 712,
+ 714, 910,
+ 715, 911,
+ 912, 1090,
+ 1518, 910,
+ 1519, 911,
+ 1705, 1090
};
static int parser_goto_row21[] = {
6,
- -1, 858,
- 1505, 1615,
- 1507, 1618,
- 1613, 1685,
- 1616, 1689,
- 1619, 1695
+ -1, 906,
+ 1716, 1849,
+ 1718, 1852,
+ 1847, 1940,
+ 1850, 1944,
+ 1853, 1950
};
static int parser_goto_row22[] = {
1,
- -1, 1179
+ -1, 1300
};
static int parser_goto_row23[] = {
2,
- -1, 1338,
- 1340, 1488
+ -1, 1509,
+ 1511, 1699
};
static int parser_goto_row24[] = {
2,
- -1, 1180,
- 1487, 1602
+ -1, 1301,
+ 1698, 1836
};
static int parser_goto_row25[] = {
8,
- -1, 1011,
- 1010, 1187,
- 1618, 1693,
- 1685, 1758,
- 1692, 1772,
- 1695, 1776,
- 1757, 1818,
- 1775, 1834
+ -1, 1087,
+ 1086, 1308,
+ 1852, 1948,
+ 1940, 2034,
+ 1947, 2048,
+ 1950, 2052,
+ 2033, 2112,
+ 2051, 2128
};
static int parser_goto_row26[] = {
2,
- -1, 1491,
- 1492, 1604
+ -1, 1702,
+ 1703, 1838
};
static int parser_goto_row27[] = {
2,
- -1, 1342,
- 1603, 1679
+ -1, 1513,
+ 1837, 1934
};
static int parser_goto_row28[] = {
1,
- -1, 1343
+ -1, 1514
};
static int parser_goto_row29[] = {
1,
- -1, 1344
+ -1, 1515
};
static int parser_goto_row30[] = {
1,
static int parser_goto_row32[] = {
11,
-1, 87,
- 865, 1020,
- 1011, 1188,
- 1187, 1353,
- 1499, 1610,
- 1693, 1773,
- 1758, 1819,
- 1772, 1831,
- 1776, 1835,
- 1818, 1866,
- 1834, 1877
+ 913, 1096,
+ 1087, 1309,
+ 1308, 1524,
+ 1710, 1844,
+ 1948, 2049,
+ 2034, 2113,
+ 2048, 2125,
+ 2052, 2129,
+ 2112, 2172,
+ 2128, 2183
};
static int parser_goto_row33[] = {
1,
};
static int parser_goto_row35[] = {
22,
- -1, 434,
- 211, 404,
- 557, 761,
- 628, 831,
- 809, 963,
- 830, 963,
- 962, 963,
- 981, 963,
- 1006, 1181,
- 1080, 1240,
- 1182, 1345,
- 1196, 1370,
- 1202, 1391,
- 1227, 1407,
- 1257, 1427,
- 1513, 1624,
- 1603, 1345,
- 1623, 1700,
- 1678, 1370,
- 1680, 1754,
- 1809, 1858,
- 1815, 1863
+ -1, 447,
+ 213, 417,
+ 579, 801,
+ 658, 878,
+ 856, 1038,
+ 877, 1038,
+ 1037, 1038,
+ 1056, 1038,
+ 1082, 1302,
+ 1182, 1390,
+ 1303, 1516,
+ 1317, 1542,
+ 1323, 1563,
+ 1374, 1600,
+ 1419, 1627,
+ 1724, 1858,
+ 1837, 1516,
+ 1857, 1955,
+ 1933, 1542,
+ 1935, 2030,
+ 2100, 2163,
+ 2109, 2169
};
static int parser_goto_row36[] = {
5,
- -1, 405,
- 532, 730,
- 578, 779,
- 621, 828,
- 622, 829
+ -1, 418,
+ 553, 769,
+ 607, 825,
+ 651, 875,
+ 652, 876
};
static int parser_goto_row37[] = {
4,
- -1, 964,
- 830, 982,
- 962, 1105,
- 981, 1124
+ -1, 1039,
+ 877, 1057,
+ 1037, 1221,
+ 1056, 1240
};
static int parser_goto_row38[] = {
2,
- -1, 1107,
- 1108, 1258
+ -1, 1223,
+ 1224, 1420
};
static int parser_goto_row39[] = {
5,
- -1, 859,
- 1178, 1333,
- 1334, 1484,
- 1336, 1485,
- 1614, 1686
+ -1, 907,
+ 1299, 1504,
+ 1505, 1695,
+ 1507, 1696,
+ 1848, 1941
};
static int parser_goto_row40[] = {
8,
- -1, 334,
- 335, 559,
- 400, 616,
- 457, 650,
- 617, 823,
- 1354, 1497,
- 1498, 1608,
- 1617, 1690
+ -1, 342,
+ 343, 581,
+ 413, 646,
+ 470, 682,
+ 647, 870,
+ 1525, 1708,
+ 1709, 1842,
+ 1851, 1945
};
static int parser_goto_row41[] = {
34,
- -1, 157,
- 37, 166,
- 389, 603,
- 601, 804,
- 765, 946,
- 768, 949,
- 824, 979,
- 916, 1068,
- 918, 166,
- 1009, 1185,
- 1087, 1245,
- 1091, 1249,
- 1186, 1352,
- 1238, 603,
- 1246, 1422,
- 1412, 804,
- 1536, 946,
- 1537, 949,
- 1541, 979,
- 1621, 1698,
- 1687, 1761,
- 1691, 1770,
- 1699, 1780,
- 1728, 1249,
- 1756, 1816,
- 1762, 1821,
- 1763, 1822,
- 1766, 1826,
- 1771, 1830,
- 1774, 1832,
- 1817, 1865,
- 1823, 1869,
- 1828, 1873,
- 1833, 1876
+ -1, 158,
+ 37, 167,
+ 402, 633,
+ 631, 851,
+ 805, 1010,
+ 808, 1013,
+ 871, 1054,
+ 980, 1170,
+ 982, 167,
+ 1085, 1306,
+ 1190, 1396,
+ 1194, 1400,
+ 1307, 1523,
+ 1388, 633,
+ 1397, 1617,
+ 1606, 851,
+ 1757, 1010,
+ 1758, 1013,
+ 1762, 1054,
+ 1855, 1953,
+ 1942, 2037,
+ 1946, 2046,
+ 1954, 2056,
+ 1984, 1400,
+ 2032, 2110,
+ 2038, 2115,
+ 2039, 2116,
+ 2042, 2120,
+ 2047, 2124,
+ 2050, 2126,
+ 2111, 2171,
+ 2117, 2175,
+ 2122, 2179,
+ 2127, 2182
};
static int parser_goto_row42[] = {
1,
static int parser_goto_row43[] = {
4,
-1, 63,
- 159, 329,
- 936, 1088,
- 1063, 1230
+ 160, 337,
+ 1000, 1191,
+ 1165, 1380
};
static int parser_goto_row44[] = {
6,
- -1, 330,
- 604, 806,
- 757, 908,
- 1063, 1231,
- 1070, 1231,
- 1414, 1540
+ -1, 338,
+ 634, 853,
+ 797, 972,
+ 1165, 1381,
+ 1172, 1381,
+ 1608, 1761
};
static int parser_goto_row45[] = {
5,
- -1, 241,
- 243, 480,
- 556, 480,
- 563, 480,
- 1248, 480
+ -1, 243,
+ 245, 493,
+ 578, 493,
+ 585, 493,
+ 1399, 493
};
static int parser_goto_row46[] = {
20,
- -1, 158,
+ -1, 159,
13, 64,
27, 64,
98, 64,
- 159, 331,
- 167, 339,
- 242, 479,
- 481, 479,
- 555, 479,
- 562, 479,
- 604, 339,
- 757, 339,
- 760, 479,
- 764, 929,
- 766, 479,
- 936, 1089,
- 1063, 331,
- 1070, 339,
- 1414, 339,
- 1535, 929
+ 160, 339,
+ 168, 347,
+ 244, 492,
+ 494, 492,
+ 577, 492,
+ 584, 492,
+ 634, 347,
+ 797, 347,
+ 800, 492,
+ 804, 993,
+ 806, 492,
+ 1000, 1192,
+ 1165, 339,
+ 1172, 347,
+ 1608, 347,
+ 1756, 993
};
static int parser_goto_row47[] = {
18,
- -1, 198,
- 41, 199,
- 160, 332,
- 168, 340,
- 408, 626,
- 409, 627,
- 921, 1075,
- 922, 1076,
- 947, 1095,
- 950, 1097,
- 980, 1123,
- 1066, 1232,
- 1072, 1235,
- 1360, 1511,
- 1361, 1512,
- 1649, 1729,
- 1651, 1730,
- 1653, 1731
+ -1, 200,
+ 41, 201,
+ 161, 340,
+ 169, 348,
+ 421, 656,
+ 422, 657,
+ 985, 1177,
+ 986, 1178,
+ 1011, 1198,
+ 1014, 1200,
+ 1055, 1239,
+ 1168, 1382,
+ 1174, 1385,
+ 1531, 1722,
+ 1532, 1723,
+ 1886, 1985,
+ 1888, 1986,
+ 1890, 1987
};
static int parser_goto_row48[] = {
20,
-1, 65,
- 213, 435,
- 764, 930,
- 835, 435,
- 914, 930,
- 918, 930,
- 1120, 435,
- 1196, 1371,
- 1238, 930,
- 1412, 930,
- 1431, 435,
- 1515, 435,
- 1535, 930,
- 1536, 930,
- 1537, 930,
- 1541, 930,
- 1554, 435,
- 1678, 1371,
- 1728, 930,
- 1811, 435
+ 215, 448,
+ 804, 994,
+ 883, 448,
+ 978, 994,
+ 982, 994,
+ 1236, 448,
+ 1317, 1543,
+ 1388, 994,
+ 1606, 994,
+ 1631, 448,
+ 1726, 448,
+ 1756, 994,
+ 1757, 994,
+ 1758, 994,
+ 1762, 994,
+ 1780, 448,
+ 1933, 1543,
+ 1984, 994,
+ 2105, 448
};
static int parser_goto_row49[] = {
18,
-1, 66,
- 213, 436,
- 764, 931,
- 835, 436,
- 914, 931,
- 918, 931,
- 1120, 436,
- 1238, 931,
- 1412, 931,
- 1431, 436,
- 1515, 436,
- 1535, 931,
- 1536, 931,
- 1537, 931,
- 1541, 931,
- 1554, 436,
- 1728, 931,
- 1811, 436
+ 215, 449,
+ 804, 995,
+ 883, 449,
+ 978, 995,
+ 982, 995,
+ 1236, 449,
+ 1388, 995,
+ 1606, 995,
+ 1631, 449,
+ 1726, 449,
+ 1756, 995,
+ 1757, 995,
+ 1758, 995,
+ 1762, 995,
+ 1780, 449,
+ 1984, 995,
+ 2105, 449
};
static int parser_goto_row50[] = {
- 52,
- -1, 229,
- 230, 464,
- 246, 485,
- 255, 494,
- 257, 498,
- 259, 503,
- 499, 704,
- 504, 708,
- 507, 711,
- 642, 498,
- 644, 503,
- 689, 871,
- 712, 890,
- 840, 711,
- 872, 1030,
- 874, 1032,
- 876, 1035,
- 878, 1040,
- 984, 871,
- 1036, 1210,
- 1041, 1214,
- 1044, 1217,
- 1086, 498,
- 1093, 503,
- 1128, 1035,
- 1129, 1040,
- 1218, 1399,
- 1253, 711,
- 1277, 1217,
- 1369, 1517,
- 1419, 871,
- 1518, 1629,
- 1519, 1631,
- 1520, 1633,
- 1522, 1637,
- 1524, 1639,
- 1546, 1035,
- 1548, 1040,
- 1634, 1710,
- 1640, 1721,
- 1641, 1723,
- 1659, 1217,
- 1711, 1787,
- 1724, 1798,
- 1788, 1840,
- 1789, 1842,
- 1790, 1844,
- 1791, 1847,
- 1845, 1885,
- 1848, 1889,
- 1849, 1891,
- 1892, 1913
+ 78,
+ -1, 231,
+ 232, 477,
+ 249, 499,
+ 258, 508,
+ 260, 512,
+ 262, 517,
+ 513, 737,
+ 518, 741,
+ 521, 744,
+ 674, 512,
+ 676, 517,
+ 721, 919,
+ 745, 943,
+ 888, 744,
+ 920, 1106,
+ 922, 1108,
+ 924, 1111,
+ 926, 1116,
+ 929, 1124,
+ 1059, 919,
+ 1112, 1331,
+ 1117, 1335,
+ 1120, 1338,
+ 1125, 1344,
+ 1127, 1346,
+ 1129, 1349,
+ 1131, 1354,
+ 1189, 512,
+ 1196, 517,
+ 1244, 1111,
+ 1245, 1116,
+ 1247, 1124,
+ 1339, 1571,
+ 1350, 1579,
+ 1355, 1583,
+ 1358, 1586,
+ 1404, 744,
+ 1439, 1338,
+ 1441, 1349,
+ 1442, 1354,
+ 1541, 1728,
+ 1587, 1749,
+ 1613, 919,
+ 1641, 1586,
+ 1729, 1863,
+ 1730, 1865,
+ 1731, 1867,
+ 1734, 1872,
+ 1736, 1874,
+ 1767, 1111,
+ 1769, 1116,
+ 1772, 1124,
+ 1868, 1965,
+ 1875, 1977,
+ 1876, 1979,
+ 1896, 1338,
+ 1900, 1349,
+ 1902, 1354,
+ 1966, 2063,
+ 1980, 2079,
+ 1995, 1586,
+ 2064, 2134,
+ 2065, 2136,
+ 2066, 2138,
+ 2067, 2141,
+ 2069, 2145,
+ 2139, 2191,
+ 2142, 2195,
+ 2143, 2197,
+ 2146, 2202,
+ 2147, 2204,
+ 2148, 2206,
+ 2149, 2209,
+ 2198, 2233,
+ 2207, 2241,
+ 2210, 2245,
+ 2211, 2247,
+ 2248, 2266
};
static int parser_goto_row51[] = {
10,
-1, 67,
- 213, 437,
- 835, 437,
- 1120, 437,
- 1196, 1372,
- 1431, 437,
- 1515, 437,
- 1554, 437,
- 1678, 1372,
- 1811, 437
+ 215, 450,
+ 883, 450,
+ 1236, 450,
+ 1317, 1544,
+ 1631, 450,
+ 1726, 450,
+ 1780, 450,
+ 1933, 1544,
+ 2105, 450
};
static int parser_goto_row52[] = {
1,
};
static int parser_goto_row53[] = {
3,
- -1, 932,
- 936, 1090,
- 1088, 1247
+ -1, 996,
+ 1000, 1193,
+ 1191, 1398
};
static int parser_goto_row54[] = {
10,
-1, 69,
- 213, 438,
- 835, 438,
- 1120, 438,
- 1196, 1373,
- 1431, 438,
- 1515, 438,
- 1554, 438,
- 1678, 1373,
- 1811, 438
+ 215, 451,
+ 883, 451,
+ 1236, 451,
+ 1317, 1545,
+ 1631, 451,
+ 1726, 451,
+ 1780, 451,
+ 1933, 1545,
+ 2105, 451
};
static int parser_goto_row55[] = {
10,
-1, 70,
- 213, 439,
- 835, 439,
- 1120, 439,
- 1196, 1374,
- 1431, 439,
- 1515, 439,
- 1554, 439,
- 1678, 1374,
- 1811, 439
+ 215, 452,
+ 883, 452,
+ 1236, 452,
+ 1317, 1546,
+ 1631, 452,
+ 1726, 452,
+ 1780, 452,
+ 1933, 1546,
+ 2105, 452
};
static int parser_goto_row56[] = {
10,
-1, 71,
- 213, 440,
- 835, 440,
- 1120, 440,
- 1196, 1375,
- 1431, 440,
- 1515, 440,
- 1554, 440,
- 1678, 1375,
- 1811, 440
+ 215, 453,
+ 883, 453,
+ 1236, 453,
+ 1317, 1547,
+ 1631, 453,
+ 1726, 453,
+ 1780, 453,
+ 1933, 1547,
+ 2105, 453
};
static int parser_goto_row57[] = {
3,
- -1, 343,
- 648, 843,
- 1073, 1236
+ -1, 351,
+ 680, 891,
+ 1175, 1386
};
static int parser_goto_row58[] = {
2,
- -1, 344,
- 951, 1098
+ -1, 352,
+ 1015, 1201
};
static int parser_goto_row59[] = {
10,
-1, 72,
- 213, 441,
- 835, 441,
- 1120, 441,
- 1196, 1376,
- 1431, 441,
- 1515, 441,
- 1554, 441,
- 1678, 1376,
- 1811, 441
+ 215, 454,
+ 883, 454,
+ 1236, 454,
+ 1317, 1548,
+ 1631, 454,
+ 1726, 454,
+ 1780, 454,
+ 1933, 1548,
+ 2105, 454
};
static int parser_goto_row60[] = {
2,
- -1, 401,
- 1079, 1239
+ -1, 414,
+ 1181, 1389
};
static int parser_goto_row61[] = {
10,
-1, 73,
- 213, 442,
- 835, 442,
- 1120, 442,
- 1196, 1377,
- 1431, 442,
- 1515, 442,
- 1554, 442,
- 1678, 1377,
- 1811, 442
+ 215, 455,
+ 883, 455,
+ 1236, 455,
+ 1317, 1549,
+ 1631, 455,
+ 1726, 455,
+ 1780, 455,
+ 1933, 1549,
+ 2105, 455
};
static int parser_goto_row62[] = {
2,
- -1, 201,
- 924, 1077
+ -1, 203,
+ 988, 1179
};
static int parser_goto_row63[] = {
- 133,
- -1, 443,
- 39, 180,
- 43, 202,
- 51, 212,
- 162, 336,
- 165, 338,
- 201, 388,
- 210, 402,
- 214, 456,
- 217, 461,
- 229, 462,
- 253, 490,
- 279, 514,
- 290, 523,
- 347, 568,
- 407, 625,
- 412, 629,
- 463, 654,
- 464, 655,
- 482, 523,
- 484, 693,
- 485, 694,
- 486, 695,
- 493, 698,
- 494, 699,
- 497, 701,
- 498, 702,
- 502, 705,
- 503, 706,
- 513, 523,
- 620, 827,
- 631, 461,
- 647, 842,
- 700, 523,
- 703, 883,
- 704, 884,
- 707, 885,
- 708, 886,
- 710, 887,
- 711, 888,
- 722, 895,
- 762, 910,
- 838, 701,
- 839, 705,
- 846, 996,
- 870, 1027,
- 871, 1028,
- 889, 1046,
- 890, 1047,
- 911, 1060,
- 920, 1074,
- 924, 1078,
- 927, 1081,
- 952, 1099,
- 977, 1121,
- 983, 1126,
- 991, 887,
- 1029, 1203,
- 1030, 1204,
- 1031, 1205,
- 1032, 1206,
- 1034, 1207,
- 1035, 1208,
- 1039, 1211,
- 1040, 1212,
- 1048, 1220,
- 1053, 523,
- 1067, 1233,
- 1069, 1234,
- 1077, 1237,
- 1079, 402,
- 1100, 1254,
- 1122, 1272,
- 1127, 1027,
- 1132, 996,
- 1209, 1392,
- 1210, 1393,
- 1213, 1394,
- 1214, 1395,
- 1216, 1396,
- 1217, 1397,
- 1275, 1207,
- 1276, 1211,
- 1278, 1439,
- 1281, 1441,
- 1359, 1510,
- 1364, 1514,
- 1398, 1528,
- 1399, 1529,
- 1417, 1542,
- 1438, 1396,
- 1516, 1626,
- 1517, 1627,
- 1628, 1703,
- 1629, 1704,
- 1630, 1705,
- 1631, 1706,
- 1632, 1707,
- 1633, 1708,
- 1636, 1716,
- 1637, 1717,
- 1638, 1718,
- 1639, 1719,
- 1660, 1734,
- 1701, 1782,
- 1709, 1784,
- 1710, 1785,
- 1720, 1793,
- 1721, 1794,
- 1722, 1795,
- 1723, 1796,
- 1736, 1803,
- 1786, 1837,
- 1787, 1838,
- 1797, 1850,
- 1798, 1851,
- 1827, 1872,
- 1839, 1878,
- 1840, 1879,
- 1841, 1880,
- 1842, 1881,
- 1843, 1882,
- 1844, 1883,
- 1846, 1886,
- 1847, 1887,
- 1884, 1906,
- 1885, 1907,
- 1888, 1908,
- 1889, 1909,
- 1890, 1910,
- 1891, 1911,
- 1912, 1922,
- 1913, 1923
+ 173,
+ -1, 456,
+ 39, 182,
+ 43, 204,
+ 51, 214,
+ 163, 344,
+ 166, 346,
+ 203, 401,
+ 212, 415,
+ 216, 469,
+ 219, 474,
+ 231, 475,
+ 256, 504,
+ 282, 528,
+ 293, 538,
+ 355, 590,
+ 420, 655,
+ 425, 659,
+ 476, 686,
+ 477, 687,
+ 495, 538,
+ 498, 726,
+ 499, 727,
+ 500, 728,
+ 507, 731,
+ 508, 732,
+ 511, 734,
+ 512, 735,
+ 516, 738,
+ 517, 739,
+ 527, 538,
+ 650, 874,
+ 661, 474,
+ 679, 890,
+ 733, 538,
+ 736, 936,
+ 737, 937,
+ 740, 938,
+ 741, 939,
+ 743, 940,
+ 744, 941,
+ 756, 949,
+ 802, 974,
+ 886, 734,
+ 887, 738,
+ 894, 1072,
+ 918, 1103,
+ 919, 1104,
+ 942, 1134,
+ 943, 1135,
+ 975, 1162,
+ 984, 1176,
+ 988, 1180,
+ 991, 1183,
+ 1016, 1202,
+ 1052, 1237,
+ 1058, 1242,
+ 1067, 940,
+ 1105, 1324,
+ 1106, 1325,
+ 1107, 1326,
+ 1108, 1327,
+ 1110, 1328,
+ 1111, 1329,
+ 1115, 1332,
+ 1116, 1333,
+ 1123, 1341,
+ 1124, 1342,
+ 1136, 1359,
+ 1142, 538,
+ 1169, 1383,
+ 1171, 1384,
+ 1179, 1387,
+ 1181, 415,
+ 1203, 1405,
+ 1238, 1434,
+ 1243, 1103,
+ 1252, 1072,
+ 1330, 1564,
+ 1331, 1565,
+ 1334, 1566,
+ 1335, 1567,
+ 1337, 1568,
+ 1338, 1569,
+ 1343, 1572,
+ 1344, 1573,
+ 1345, 1574,
+ 1346, 1575,
+ 1348, 1576,
+ 1349, 1577,
+ 1353, 1580,
+ 1354, 1581,
+ 1437, 1328,
+ 1438, 1332,
+ 1440, 1341,
+ 1444, 1642,
+ 1447, 1644,
+ 1530, 1721,
+ 1535, 1725,
+ 1570, 1740,
+ 1571, 1741,
+ 1578, 1742,
+ 1579, 1743,
+ 1582, 1744,
+ 1583, 1745,
+ 1585, 1746,
+ 1586, 1747,
+ 1611, 1763,
+ 1638, 1568,
+ 1639, 1576,
+ 1640, 1580,
+ 1727, 1860,
+ 1728, 1861,
+ 1748, 1879,
+ 1749, 1880,
+ 1783, 1746,
+ 1862, 1958,
+ 1863, 1959,
+ 1864, 1960,
+ 1865, 1961,
+ 1866, 1962,
+ 1867, 1963,
+ 1871, 1972,
+ 1872, 1973,
+ 1873, 1974,
+ 1874, 1975,
+ 1904, 1996,
+ 1956, 2058,
+ 1964, 2060,
+ 1965, 2061,
+ 1976, 2074,
+ 1977, 2075,
+ 1978, 2076,
+ 1979, 2077,
+ 1998, 2086,
+ 2062, 2131,
+ 2063, 2132,
+ 2078, 2151,
+ 2079, 2152,
+ 2121, 2178,
+ 2133, 2184,
+ 2134, 2185,
+ 2135, 2186,
+ 2136, 2187,
+ 2137, 2188,
+ 2138, 2189,
+ 2140, 2192,
+ 2141, 2193,
+ 2144, 2199,
+ 2145, 2200,
+ 2190, 2226,
+ 2191, 2227,
+ 2194, 2228,
+ 2195, 2229,
+ 2196, 2230,
+ 2197, 2231,
+ 2201, 2234,
+ 2202, 2235,
+ 2203, 2236,
+ 2204, 2237,
+ 2205, 2238,
+ 2206, 2239,
+ 2208, 2242,
+ 2209, 2243,
+ 2232, 2257,
+ 2233, 2258,
+ 2240, 2259,
+ 2241, 2260,
+ 2244, 2261,
+ 2245, 2262,
+ 2246, 2263,
+ 2247, 2264,
+ 2265, 2271,
+ 2266, 2272
};
static int parser_goto_row64[] = {
1,
- -1, 181
+ -1, 183
};
static int parser_goto_row65[] = {
6,
- -1, 182,
- 348, 569,
- 574, 775,
- 576, 777,
- 577, 778,
- 776, 956
+ -1, 184,
+ 356, 591,
+ 603, 821,
+ 605, 823,
+ 606, 824,
+ 822, 1026
};
static int parser_goto_row66[] = {
1,
- -1, 183
+ -1, 185
};
static int parser_goto_row67[] = {
8,
- -1, 184,
- 580, 781,
- 581, 782,
- 582, 783,
- 583, 784,
- 584, 785,
- 585, 786,
- 586, 787
+ -1, 186,
+ 609, 827,
+ 610, 828,
+ 611, 829,
+ 612, 830,
+ 613, 831,
+ 614, 832,
+ 615, 833
};
static int parser_goto_row68[] = {
2,
- -1, 185,
- 579, 780
+ -1, 187,
+ 608, 826
};
static int parser_goto_row69[] = {
2,
- -1, 186,
- 587, 788
+ -1, 188,
+ 616, 834
};
static int parser_goto_row70[] = {
2,
- -1, 187,
- 588, 789
+ -1, 189,
+ 617, 835
};
static int parser_goto_row71[] = {
3,
- -1, 188,
- 589, 790,
- 590, 791
+ -1, 190,
+ 618, 836,
+ 619, 837
};
static int parser_goto_row72[] = {
3,
- -1, 189,
- 591, 792,
- 592, 793
+ -1, 191,
+ 620, 838,
+ 621, 839
};
static int parser_goto_row73[] = {
5,
- -1, 190,
- 593, 794,
- 594, 795,
- 595, 796,
- 596, 797
+ -1, 192,
+ 622, 840,
+ 623, 841,
+ 624, 842,
+ 625, 843
};
static int parser_goto_row74[] = {
15,
- -1, 191,
- 127, 291,
- 128, 292,
- 129, 293,
- 176, 353,
- 177, 354,
- 178, 355,
- 282, 517,
- 350, 571,
- 414, 353,
- 415, 354,
- 423, 355,
- 1366, 291,
- 1367, 292,
- 1368, 293
+ -1, 193,
+ 127, 294,
+ 128, 295,
+ 130, 300,
+ 177, 361,
+ 178, 362,
+ 180, 367,
+ 285, 531,
+ 358, 593,
+ 427, 361,
+ 428, 362,
+ 436, 367,
+ 1537, 294,
+ 1538, 295,
+ 1540, 300
};
static int parser_goto_row75[] = {
1,
- -1, 192
+ -1, 194
};
static int parser_goto_row76[] = {
- 63,
- -1, 193,
+ 65,
+ -1, 195,
13, 74,
27, 74,
33, 74,
37, 74,
98, 74,
- 159, 74,
- 167, 74,
- 175, 351,
- 213, 444,
- 242, 74,
- 389, 74,
- 481, 74,
- 555, 74,
- 562, 74,
- 601, 74,
- 604, 74,
- 757, 74,
- 760, 74,
- 764, 933,
- 765, 74,
- 766, 74,
- 768, 74,
- 824, 74,
- 835, 444,
- 914, 933,
- 916, 74,
- 918, 933,
- 936, 74,
- 1009, 74,
- 1063, 74,
- 1070, 74,
- 1087, 74,
- 1091, 74,
- 1120, 444,
- 1186, 74,
- 1238, 933,
- 1246, 74,
- 1412, 933,
- 1414, 74,
- 1431, 444,
- 1515, 444,
- 1535, 933,
- 1536, 933,
- 1537, 933,
- 1541, 933,
- 1554, 444,
- 1621, 74,
- 1687, 74,
- 1691, 74,
- 1699, 74,
- 1728, 933,
- 1756, 74,
- 1762, 74,
- 1763, 74,
- 1766, 74,
- 1771, 74,
- 1774, 74,
- 1811, 444,
- 1817, 74,
- 1823, 74,
- 1828, 74,
- 1833, 74
+ 160, 74,
+ 168, 74,
+ 176, 359,
+ 179, 364,
+ 215, 457,
+ 244, 74,
+ 402, 74,
+ 435, 364,
+ 494, 74,
+ 577, 74,
+ 584, 74,
+ 631, 74,
+ 634, 74,
+ 797, 74,
+ 800, 74,
+ 804, 997,
+ 805, 74,
+ 806, 74,
+ 808, 74,
+ 871, 74,
+ 883, 457,
+ 978, 997,
+ 980, 74,
+ 982, 997,
+ 1000, 74,
+ 1085, 74,
+ 1165, 74,
+ 1172, 74,
+ 1190, 74,
+ 1194, 74,
+ 1236, 457,
+ 1307, 74,
+ 1388, 997,
+ 1397, 74,
+ 1606, 997,
+ 1608, 74,
+ 1631, 457,
+ 1726, 457,
+ 1756, 997,
+ 1757, 997,
+ 1758, 997,
+ 1762, 997,
+ 1780, 457,
+ 1855, 74,
+ 1942, 74,
+ 1946, 74,
+ 1954, 74,
+ 1984, 997,
+ 2032, 74,
+ 2038, 74,
+ 2039, 74,
+ 2042, 74,
+ 2047, 74,
+ 2050, 74,
+ 2105, 457,
+ 2111, 74,
+ 2117, 74,
+ 2122, 74,
+ 2127, 74
};
static int parser_goto_row77[] = {
2,
- -1, 524,
- 1053, 1225
+ -1, 539,
+ 1142, 1365
};
static int parser_goto_row78[] = {
1,
-1, 75
};
static int parser_goto_row79[] = {
- 31,
+ 32,
-1, 76,
- 994, 1151,
- 1142, 1151,
- 1143, 1151,
- 1144, 1151,
- 1145, 1151,
- 1282, 1151,
- 1284, 1151,
- 1454, 1151,
- 1456, 1151,
- 1457, 1151,
- 1459, 1151,
- 1460, 1151,
- 1461, 1151,
- 1462, 1151,
- 1463, 1151,
- 1464, 1151,
- 1465, 1151,
- 1466, 1151,
- 1467, 1151,
- 1468, 1151,
- 1469, 1151,
- 1470, 1151,
- 1471, 1151,
- 1472, 1151,
- 1473, 1151,
- 1474, 1151,
- 1475, 1151,
- 1476, 1151,
- 1568, 1151,
- 1914, 1151
+ 1070, 1272,
+ 1262, 1272,
+ 1263, 1272,
+ 1264, 1272,
+ 1265, 1272,
+ 1266, 1272,
+ 1448, 1272,
+ 1450, 1272,
+ 1664, 1272,
+ 1666, 1272,
+ 1667, 1272,
+ 1669, 1272,
+ 1670, 1272,
+ 1671, 1272,
+ 1672, 1272,
+ 1673, 1272,
+ 1674, 1272,
+ 1675, 1272,
+ 1676, 1272,
+ 1677, 1272,
+ 1678, 1272,
+ 1679, 1272,
+ 1680, 1272,
+ 1681, 1272,
+ 1682, 1272,
+ 1683, 1272,
+ 1684, 1272,
+ 1685, 1272,
+ 1686, 1272,
+ 1801, 1272,
+ 2249, 1272
};
static int parser_goto_row80[] = {
1,
- -1, 445
+ -1, 458
};
static int parser_goto_row81[] = {
2,
- -1, 635,
- 637, 837
+ -1, 666,
+ 668, 885
};
static int parser_goto_row82[] = {
1,
- -1, 457
+ -1, 470
};
static int parser_goto_row83[] = {
2,
- -1, 652,
- 653, 847
+ -1, 684,
+ 685, 895
};
static int parser_goto_row84[] = {
4,
- -1, 458,
- 846, 997,
- 1132, 1279,
- 1278, 1440
+ -1, 471,
+ 894, 1073,
+ 1252, 1445,
+ 1444, 1643
};
static int parser_goto_row85[] = {
- 93,
+ 112,
-1, 77,
- 31, 135,
- 55, 135,
- 125, 135,
- 254, 135,
- 256, 135,
- 257, 135,
- 258, 135,
- 259, 135,
- 280, 135,
- 506, 135,
- 507, 135,
- 528, 135,
- 530, 135,
- 531, 135,
- 533, 135,
- 534, 135,
- 535, 135,
- 536, 135,
- 537, 135,
- 538, 135,
- 539, 135,
- 540, 135,
- 541, 135,
- 542, 135,
- 543, 135,
- 544, 135,
- 545, 135,
- 546, 135,
- 547, 135,
- 548, 135,
- 549, 135,
- 550, 135,
- 687, 135,
- 689, 135,
- 727, 135,
- 875, 135,
- 876, 135,
- 877, 135,
- 878, 135,
- 913, 135,
- 928, 135,
- 994, 1152,
- 1043, 135,
- 1044, 135,
- 1084, 135,
- 1085, 135,
- 1086, 135,
- 1092, 135,
- 1093, 135,
- 1116, 135,
- 1142, 1152,
- 1143, 1152,
- 1144, 1152,
- 1145, 1152,
- 1196, 135,
- 1252, 135,
- 1253, 135,
- 1282, 1152,
- 1284, 1152,
- 1418, 135,
- 1419, 135,
- 1454, 1152,
- 1456, 1152,
- 1457, 1152,
- 1459, 1152,
- 1460, 1152,
- 1461, 1152,
- 1462, 1152,
- 1463, 1152,
- 1464, 1152,
- 1465, 1152,
- 1466, 1152,
- 1467, 1152,
- 1468, 1152,
- 1469, 1152,
- 1470, 1152,
- 1471, 1152,
- 1472, 1152,
- 1473, 1152,
- 1474, 1152,
- 1475, 1152,
- 1476, 1152,
- 1545, 135,
- 1546, 135,
- 1547, 135,
- 1548, 135,
- 1568, 1152,
- 1644, 135,
- 1658, 135,
- 1659, 135,
- 1678, 135,
- 1914, 1152
+ 31, 136,
+ 55, 136,
+ 125, 136,
+ 129, 136,
+ 257, 136,
+ 259, 136,
+ 260, 136,
+ 261, 136,
+ 262, 136,
+ 283, 136,
+ 520, 136,
+ 521, 136,
+ 549, 136,
+ 551, 136,
+ 552, 136,
+ 554, 136,
+ 555, 136,
+ 556, 136,
+ 557, 136,
+ 558, 136,
+ 559, 136,
+ 560, 136,
+ 561, 136,
+ 562, 136,
+ 563, 136,
+ 564, 136,
+ 565, 136,
+ 566, 136,
+ 567, 136,
+ 568, 136,
+ 569, 136,
+ 570, 136,
+ 571, 136,
+ 719, 136,
+ 721, 136,
+ 766, 136,
+ 923, 136,
+ 924, 136,
+ 925, 136,
+ 926, 136,
+ 928, 136,
+ 929, 136,
+ 977, 136,
+ 992, 136,
+ 1070, 1273,
+ 1119, 136,
+ 1120, 136,
+ 1128, 136,
+ 1129, 136,
+ 1130, 136,
+ 1131, 136,
+ 1187, 136,
+ 1188, 136,
+ 1189, 136,
+ 1195, 136,
+ 1196, 136,
+ 1232, 136,
+ 1262, 1273,
+ 1263, 1273,
+ 1264, 1273,
+ 1265, 1273,
+ 1266, 1273,
+ 1317, 136,
+ 1357, 136,
+ 1358, 136,
+ 1403, 136,
+ 1404, 136,
+ 1448, 1273,
+ 1450, 1273,
+ 1539, 136,
+ 1612, 136,
+ 1613, 136,
+ 1664, 1273,
+ 1666, 1273,
+ 1667, 1273,
+ 1669, 1273,
+ 1670, 1273,
+ 1671, 1273,
+ 1672, 1273,
+ 1673, 1273,
+ 1674, 1273,
+ 1675, 1273,
+ 1676, 1273,
+ 1677, 1273,
+ 1678, 1273,
+ 1679, 1273,
+ 1680, 1273,
+ 1681, 1273,
+ 1682, 1273,
+ 1683, 1273,
+ 1684, 1273,
+ 1685, 1273,
+ 1686, 1273,
+ 1766, 136,
+ 1767, 136,
+ 1768, 136,
+ 1769, 136,
+ 1771, 136,
+ 1772, 136,
+ 1801, 1273,
+ 1881, 136,
+ 1895, 136,
+ 1896, 136,
+ 1899, 136,
+ 1900, 136,
+ 1901, 136,
+ 1902, 136,
+ 1933, 136,
+ 1994, 136,
+ 1995, 136,
+ 2249, 1273
};
static int parser_goto_row86[] = {
1,
};
static int parser_goto_row88[] = {
2,
- -1, 249,
- 252, 488
+ -1, 252,
+ 255, 502
};
static int parser_goto_row89[] = {
1,
- -1, 250
+ -1, 253
};
static int parser_goto_row90[] = {
2,
- -1, 251,
- 252, 489
+ -1, 254,
+ 255, 503
};
static int parser_goto_row91[] = {
16,
- -1, 205,
- 161, 335,
- 213, 446,
- 400, 617,
- 835, 446,
- 1120, 446,
- 1178, 1334,
- 1196, 1378,
- 1354, 1498,
- 1431, 446,
- 1515, 446,
- 1554, 446,
- 1678, 1748,
- 1702, 1783,
- 1811, 446,
- 1897, 1917
+ -1, 207,
+ 162, 343,
+ 215, 459,
+ 413, 647,
+ 883, 459,
+ 1236, 459,
+ 1299, 1505,
+ 1317, 1550,
+ 1525, 1709,
+ 1631, 459,
+ 1726, 459,
+ 1780, 459,
+ 1933, 2024,
+ 1957, 2059,
+ 2105, 459,
+ 2217, 2252
};
static int parser_goto_row92[] = {
42,
- -1, 206,
- 46, 207,
- 47, 208,
- 48, 209,
- 56, 232,
- 57, 233,
- 58, 234,
- 60, 235,
- 121, 283,
- 122, 284,
- 123, 285,
- 124, 286,
- 131, 295,
- 132, 296,
- 133, 297,
- 134, 298,
- 251, 487,
- 406, 624,
- 489, 696,
- 619, 826,
- 821, 976,
- 834, 988,
- 836, 990,
- 845, 995,
- 1116, 1266,
- 1138, 1285,
- 1139, 1286,
- 1140, 1287,
- 1141, 1288,
- 1147, 1296,
- 1148, 1297,
- 1149, 1298,
- 1150, 1299,
- 1178, 1335,
- 1274, 1437,
- 1436, 1556,
- 1452, 1565,
- 1453, 1566,
- 1553, 1662,
- 1572, 1670,
- 1669, 1741,
- 1735, 1802
+ -1, 208,
+ 46, 209,
+ 47, 210,
+ 48, 211,
+ 56, 234,
+ 57, 235,
+ 58, 236,
+ 60, 237,
+ 121, 286,
+ 122, 287,
+ 123, 288,
+ 124, 289,
+ 132, 302,
+ 133, 303,
+ 134, 304,
+ 135, 305,
+ 254, 501,
+ 419, 654,
+ 503, 729,
+ 649, 873,
+ 868, 1051,
+ 882, 1064,
+ 884, 1066,
+ 893, 1071,
+ 1232, 1428,
+ 1258, 1451,
+ 1259, 1452,
+ 1260, 1453,
+ 1261, 1454,
+ 1268, 1466,
+ 1269, 1467,
+ 1270, 1468,
+ 1271, 1469,
+ 1299, 1506,
+ 1436, 1637,
+ 1636, 1782,
+ 1662, 1798,
+ 1663, 1799,
+ 1779, 1906,
+ 1805, 1920,
+ 1919, 2011,
+ 1997, 2085
};
static int parser_goto_row93[] = {
1,
- -1, 399
+ -1, 412
};
static int parser_goto_row94[] = {
6,
- -1, 816,
- 965, 1110,
- 999, 1174,
- 1008, 1183,
- 1620, 1696,
- 1765, 1824
+ -1, 863,
+ 1040, 1226,
+ 1075, 1295,
+ 1084, 1304,
+ 1854, 1951,
+ 2041, 2118
};
static int parser_goto_row95[] = {
2,
- -1, 817,
- 1118, 1269
+ -1, 864,
+ 1234, 1431
};
static int parser_goto_row96[] = {
1,
- -1, 1267
+ -1, 1429
};
static int parser_goto_row97[] = {
2,
- -1, 973,
- 974, 1119
+ -1, 1048,
+ 1049, 1235
};
static int parser_goto_row98[] = {
5,
- -1, 1330,
- 1332, 1482,
- 1349, 1482,
- 1778, 1482,
- 1870, 1482
+ -1, 1501,
+ 1503, 1693,
+ 1520, 1693,
+ 2054, 1693,
+ 2176, 1693
};
static int parser_goto_row99[] = {
1,
- -1, 1021
+ -1, 1097
};
static int parser_goto_row100[] = {
4,
- -1, 1270,
- 1431, 1552,
- 1515, 1625,
- 1811, 1859
+ -1, 1432,
+ 1631, 1778,
+ 1726, 1859,
+ 2105, 2165
};
static int parser_goto_row101[] = {
3,
- -1, 1434,
- 1435, 1555,
- 1523, 1555
+ -1, 1634,
+ 1635, 1781,
+ 1735, 1781
};
static int parser_goto_row102[] = {
4,
- -1, 1271,
- 213, 447,
- 835, 989,
- 1554, 1663
+ -1, 1433,
+ 215, 460,
+ 883, 1065,
+ 1780, 1907
};
static int parser_goto_row103[] = {
4,
- -1, 821,
- 966, 1111,
- 970, 1116,
- 1599, 1678
+ -1, 868,
+ 1041, 1227,
+ 1045, 1232,
+ 1833, 1933
};
static int parser_goto_row104[] = {
- 86,
- -1, 356,
- 31, 136,
- 55, 230,
- 116, 278,
- 130, 294,
- 170, 136,
- 254, 491,
- 257, 499,
- 259, 504,
- 299, 526,
- 301, 527,
- 326, 552,
- 381, 491,
- 383, 598,
- 384, 599,
- 433, 230,
- 507, 712,
- 516, 719,
- 553, 755,
- 570, 773,
- 600, 803,
- 642, 499,
- 644, 504,
- 687, 867,
- 689, 872,
- 749, 900,
- 751, 902,
- 798, 867,
- 799, 957,
- 840, 712,
- 876, 1036,
- 878, 1041,
- 904, 1057,
- 905, 1058,
- 913, 136,
- 928, 230,
- 959, 1102,
- 960, 1103,
- 967, 1112,
- 984, 872,
- 1044, 1218,
- 1049, 1221,
- 1059, 1228,
- 1084, 491,
- 1086, 499,
- 1093, 504,
- 1104, 1255,
- 1113, 1262,
- 1114, 1263,
- 1128, 1036,
- 1129, 1041,
- 1133, 1280,
- 1146, 1295,
- 1222, 1401,
- 1223, 1402,
- 1253, 712,
- 1264, 1430,
- 1277, 1218,
- 1300, 1450,
- 1302, 1451,
- 1327, 1478,
- 1369, 1518,
- 1403, 1531,
- 1418, 867,
- 1419, 872,
- 1445, 1562,
- 1479, 1598,
- 1520, 1634,
- 1524, 1640,
- 1546, 1036,
- 1548, 1041,
- 1592, 1671,
- 1594, 1673,
- 1641, 1724,
- 1659, 1218,
- 1675, 1744,
- 1676, 1745,
- 1711, 1788,
- 1737, 1804,
- 1746, 1810,
- 1790, 1845,
- 1791, 1848,
- 1805, 1853,
- 1806, 1854,
- 1849, 1892,
- 1855, 1894
+ 155,
+ -1, 368,
+ 31, 137,
+ 55, 232,
+ 116, 281,
+ 131, 301,
+ 171, 137,
+ 257, 505,
+ 260, 513,
+ 262, 518,
+ 296, 541,
+ 306, 547,
+ 308, 548,
+ 334, 574,
+ 363, 597,
+ 394, 505,
+ 396, 628,
+ 397, 629,
+ 446, 232,
+ 521, 745,
+ 530, 752,
+ 542, 760,
+ 545, 763,
+ 575, 795,
+ 592, 813,
+ 600, 818,
+ 601, 819,
+ 630, 850,
+ 674, 513,
+ 676, 518,
+ 719, 915,
+ 721, 920,
+ 764, 957,
+ 788, 959,
+ 790, 961,
+ 820, 1025,
+ 844, 915,
+ 845, 1027,
+ 888, 745,
+ 924, 1112,
+ 926, 1117,
+ 928, 1121,
+ 929, 1125,
+ 953, 1144,
+ 963, 1153,
+ 964, 1154,
+ 966, 1156,
+ 967, 1157,
+ 977, 137,
+ 992, 232,
+ 1021, 1206,
+ 1029, 1213,
+ 1030, 1214,
+ 1032, 1121,
+ 1033, 1216,
+ 1042, 1228,
+ 1059, 920,
+ 1120, 1339,
+ 1129, 1350,
+ 1131, 1355,
+ 1137, 1360,
+ 1145, 1366,
+ 1146, 1367,
+ 1148, 1369,
+ 1155, 1375,
+ 1159, 1376,
+ 1160, 1377,
+ 1187, 505,
+ 1189, 513,
+ 1196, 518,
+ 1207, 1407,
+ 1208, 1408,
+ 1210, 1410,
+ 1215, 1414,
+ 1218, 1415,
+ 1219, 1416,
+ 1229, 1424,
+ 1230, 1425,
+ 1244, 1112,
+ 1245, 1117,
+ 1247, 1125,
+ 1253, 1446,
+ 1267, 1465,
+ 1358, 1587,
+ 1361, 1590,
+ 1362, 1591,
+ 1368, 1594,
+ 1370, 1595,
+ 1371, 1596,
+ 1378, 1601,
+ 1404, 745,
+ 1409, 1621,
+ 1411, 1622,
+ 1412, 1623,
+ 1417, 1625,
+ 1426, 1630,
+ 1439, 1339,
+ 1441, 1350,
+ 1442, 1355,
+ 1460, 1654,
+ 1470, 1660,
+ 1472, 1661,
+ 1498, 1689,
+ 1541, 1729,
+ 1592, 1751,
+ 1597, 1752,
+ 1612, 915,
+ 1613, 920,
+ 1624, 1776,
+ 1641, 1587,
+ 1648, 1789,
+ 1655, 1793,
+ 1658, 1796,
+ 1690, 1832,
+ 1731, 1868,
+ 1736, 1875,
+ 1767, 1112,
+ 1769, 1117,
+ 1771, 1121,
+ 1772, 1125,
+ 1797, 1917,
+ 1825, 1921,
+ 1827, 1923,
+ 1876, 1980,
+ 1896, 1339,
+ 1900, 1350,
+ 1902, 1355,
+ 1913, 2004,
+ 1925, 2014,
+ 1926, 2015,
+ 1928, 2017,
+ 1929, 2018,
+ 1966, 2064,
+ 1995, 1587,
+ 1999, 2087,
+ 2005, 2092,
+ 2006, 2093,
+ 2008, 2095,
+ 2016, 2101,
+ 2020, 2102,
+ 2021, 2103,
+ 2066, 2139,
+ 2067, 2142,
+ 2069, 2146,
+ 2088, 2154,
+ 2089, 2155,
+ 2094, 2157,
+ 2096, 2158,
+ 2097, 2159,
+ 2104, 2164,
+ 2143, 2198,
+ 2148, 2207,
+ 2149, 2210,
+ 2156, 2213,
+ 2160, 2214,
+ 2211, 2248
};
static int parser_goto_row105[] = {
- 34,
- -1, 137,
- 55, 231,
- 254, 492,
- 256, 496,
- 257, 500,
- 258, 501,
- 259, 505,
- 506, 709,
- 507, 713,
- 687, 868,
- 689, 873,
- 875, 1033,
- 876, 1037,
- 877, 1038,
- 878, 1042,
- 913, 1061,
- 928, 1082,
- 1043, 1215,
- 1044, 1219,
- 1084, 1242,
- 1085, 1243,
- 1086, 1244,
- 1092, 1250,
- 1093, 1251,
- 1252, 1423,
- 1253, 1424,
- 1418, 1543,
- 1419, 1544,
- 1545, 1654,
- 1546, 1655,
- 1547, 1656,
- 1548, 1657,
- 1658, 1732,
- 1659, 1733
+ 50,
+ -1, 138,
+ 55, 233,
+ 257, 506,
+ 259, 510,
+ 260, 514,
+ 261, 515,
+ 262, 519,
+ 520, 742,
+ 521, 746,
+ 719, 916,
+ 721, 921,
+ 923, 1109,
+ 924, 1113,
+ 925, 1114,
+ 926, 1118,
+ 928, 1122,
+ 929, 1126,
+ 977, 1163,
+ 992, 1184,
+ 1119, 1336,
+ 1120, 1340,
+ 1128, 1347,
+ 1129, 1351,
+ 1130, 1352,
+ 1131, 1356,
+ 1187, 1393,
+ 1188, 1394,
+ 1189, 1395,
+ 1195, 1401,
+ 1196, 1402,
+ 1357, 1584,
+ 1358, 1588,
+ 1403, 1618,
+ 1404, 1619,
+ 1612, 1764,
+ 1613, 1765,
+ 1766, 1891,
+ 1767, 1892,
+ 1768, 1893,
+ 1769, 1894,
+ 1771, 1897,
+ 1772, 1898,
+ 1895, 1988,
+ 1896, 1989,
+ 1899, 1990,
+ 1900, 1991,
+ 1901, 1992,
+ 1902, 1993,
+ 1994, 2083,
+ 1995, 2084
};
static int parser_goto_row106[] = {
- 6,
- -1, 246,
- 153, 325,
- 193, 380,
- 289, 325,
- 351, 380,
- 1384, 1522
+ 8,
+ -1, 333,
+ 74, 249,
+ 195, 393,
+ 359, 393,
+ 364, 393,
+ 457, 249,
+ 997, 249,
+ 1556, 1734
};
static int parser_goto_row107[] = {
4,
- -1, 525,
- 482, 686,
- 513, 716,
- 700, 882
+ -1, 540,
+ 495, 718,
+ 527, 749,
+ 733, 935
};
static int parser_goto_row108[] = {
2,
- -1, 897,
- 898, 1054
+ -1, 951,
+ 952, 1143
};
static int parser_goto_row109[] = {
1,
- -1, 345
+ -1, 353
};
static int parser_goto_row110[] = {
2,
- -1, 346,
- 564, 767
+ -1, 354,
+ 586, 807
};
static int parser_goto_row111[] = {
2,
- -1, 850,
- 657, 853
+ -1, 898,
+ 689, 901
};
static int parser_goto_row112[] = {
- 164,
- -1, 194,
+ 199,
+ -1, 196,
13, 80,
27, 80,
- 31, 138,
+ 31, 139,
33, 80,
37, 80,
- 55, 138,
+ 55, 139,
98, 80,
- 125, 288,
- 159, 80,
- 167, 80,
- 175, 352,
- 213, 448,
- 242, 80,
- 254, 138,
- 256, 138,
- 257, 138,
- 258, 138,
- 259, 138,
- 280, 138,
- 389, 80,
- 481, 80,
- 483, 690,
- 506, 138,
- 507, 138,
- 528, 138,
- 530, 138,
- 531, 138,
- 533, 138,
- 534, 138,
- 535, 138,
- 536, 138,
- 537, 138,
- 538, 138,
- 539, 138,
- 540, 138,
- 541, 138,
- 542, 138,
- 543, 138,
- 544, 138,
- 545, 138,
- 546, 138,
- 547, 138,
- 548, 138,
- 549, 138,
- 550, 138,
- 551, 752,
- 555, 80,
- 562, 80,
- 597, 800,
- 601, 80,
- 604, 80,
- 687, 138,
- 689, 138,
- 721, 894,
- 727, 138,
- 757, 80,
- 760, 80,
- 764, 934,
- 765, 80,
- 766, 80,
- 768, 80,
- 774, 955,
- 824, 80,
- 833, 690,
- 835, 448,
- 875, 138,
- 876, 138,
- 877, 138,
- 878, 138,
- 913, 138,
- 914, 934,
- 916, 80,
- 918, 934,
- 928, 138,
- 936, 80,
- 994, 1153,
- 1009, 80,
- 1043, 138,
- 1044, 138,
- 1063, 80,
- 1070, 80,
- 1084, 138,
- 1085, 138,
- 1086, 138,
- 1087, 80,
- 1091, 80,
- 1092, 138,
- 1093, 138,
- 1120, 448,
- 1142, 1290,
- 1143, 1153,
- 1144, 1153,
- 1145, 1153,
- 1186, 80,
- 1196, 1379,
- 1238, 934,
- 1241, 690,
- 1246, 80,
- 1252, 138,
- 1253, 138,
- 1282, 1153,
- 1284, 1153,
- 1412, 934,
- 1414, 80,
- 1418, 138,
- 1419, 138,
- 1431, 448,
- 1454, 1153,
- 1456, 1153,
- 1457, 1153,
- 1459, 1153,
- 1460, 1153,
- 1461, 1153,
- 1462, 1153,
- 1463, 1153,
- 1464, 1153,
- 1465, 1153,
- 1466, 1153,
- 1467, 1153,
- 1468, 1153,
- 1469, 1153,
- 1470, 1153,
- 1471, 1153,
- 1472, 1153,
- 1473, 1153,
- 1474, 1153,
- 1475, 1153,
- 1476, 1153,
- 1477, 1595,
- 1515, 448,
- 1535, 934,
- 1536, 934,
- 1537, 934,
- 1541, 934,
- 1545, 138,
- 1546, 138,
- 1547, 138,
- 1548, 138,
- 1554, 448,
- 1564, 1667,
- 1568, 1153,
- 1621, 80,
- 1635, 1712,
- 1644, 138,
- 1658, 138,
- 1659, 138,
- 1678, 1379,
- 1687, 80,
- 1691, 80,
- 1699, 80,
- 1728, 934,
- 1756, 80,
- 1762, 80,
- 1763, 80,
- 1766, 80,
- 1771, 80,
- 1774, 80,
- 1811, 448,
- 1817, 80,
- 1823, 80,
- 1828, 80,
- 1833, 80,
- 1914, 1153
+ 125, 291,
+ 129, 139,
+ 160, 80,
+ 168, 80,
+ 176, 360,
+ 215, 461,
+ 244, 80,
+ 257, 139,
+ 259, 139,
+ 260, 139,
+ 261, 139,
+ 262, 139,
+ 283, 139,
+ 402, 80,
+ 494, 80,
+ 496, 722,
+ 520, 139,
+ 521, 139,
+ 549, 139,
+ 551, 139,
+ 552, 139,
+ 554, 139,
+ 555, 139,
+ 556, 139,
+ 557, 139,
+ 558, 139,
+ 559, 139,
+ 560, 139,
+ 561, 139,
+ 562, 139,
+ 563, 139,
+ 564, 139,
+ 565, 139,
+ 566, 139,
+ 567, 139,
+ 568, 139,
+ 569, 139,
+ 570, 139,
+ 571, 139,
+ 572, 791,
+ 577, 80,
+ 584, 80,
+ 626, 846,
+ 631, 80,
+ 634, 80,
+ 719, 139,
+ 721, 139,
+ 725, 930,
+ 754, 947,
+ 761, 791,
+ 766, 139,
+ 794, 968,
+ 797, 80,
+ 800, 80,
+ 804, 998,
+ 805, 80,
+ 806, 80,
+ 808, 80,
+ 814, 1019,
+ 816, 846,
+ 849, 1034,
+ 871, 80,
+ 880, 722,
+ 883, 461,
+ 923, 139,
+ 924, 139,
+ 925, 139,
+ 926, 139,
+ 928, 139,
+ 929, 139,
+ 948, 1141,
+ 956, 968,
+ 977, 139,
+ 978, 998,
+ 980, 80,
+ 982, 998,
+ 992, 139,
+ 1000, 80,
+ 1020, 1205,
+ 1024, 1034,
+ 1063, 930,
+ 1070, 1274,
+ 1085, 80,
+ 1119, 139,
+ 1120, 139,
+ 1128, 139,
+ 1129, 139,
+ 1130, 139,
+ 1131, 139,
+ 1165, 80,
+ 1172, 80,
+ 1187, 139,
+ 1188, 139,
+ 1189, 139,
+ 1190, 80,
+ 1194, 80,
+ 1195, 139,
+ 1196, 139,
+ 1236, 461,
+ 1262, 1456,
+ 1263, 1274,
+ 1264, 1274,
+ 1265, 1274,
+ 1266, 1274,
+ 1307, 80,
+ 1317, 1551,
+ 1357, 139,
+ 1358, 139,
+ 1388, 998,
+ 1391, 722,
+ 1397, 80,
+ 1403, 139,
+ 1404, 139,
+ 1448, 1274,
+ 1450, 1274,
+ 1539, 139,
+ 1606, 998,
+ 1608, 80,
+ 1612, 139,
+ 1613, 139,
+ 1616, 930,
+ 1631, 461,
+ 1664, 1274,
+ 1666, 1274,
+ 1667, 1274,
+ 1669, 1274,
+ 1670, 1274,
+ 1671, 1274,
+ 1672, 1274,
+ 1673, 1274,
+ 1674, 1274,
+ 1675, 1274,
+ 1676, 1274,
+ 1677, 1274,
+ 1678, 1274,
+ 1679, 1274,
+ 1680, 1274,
+ 1681, 1274,
+ 1682, 1274,
+ 1683, 1274,
+ 1684, 1274,
+ 1685, 1274,
+ 1686, 1274,
+ 1687, 1828,
+ 1726, 461,
+ 1756, 998,
+ 1757, 998,
+ 1758, 998,
+ 1762, 998,
+ 1766, 139,
+ 1767, 139,
+ 1768, 139,
+ 1769, 139,
+ 1771, 139,
+ 1772, 139,
+ 1780, 461,
+ 1791, 1911,
+ 1794, 1828,
+ 1801, 1274,
+ 1831, 1930,
+ 1855, 80,
+ 1869, 1967,
+ 1881, 139,
+ 1895, 139,
+ 1896, 139,
+ 1899, 139,
+ 1900, 139,
+ 1901, 139,
+ 1902, 139,
+ 1912, 2003,
+ 1916, 1930,
+ 1933, 1551,
+ 1942, 80,
+ 1946, 80,
+ 1954, 80,
+ 1971, 2070,
+ 1984, 998,
+ 1994, 139,
+ 1995, 139,
+ 2032, 80,
+ 2038, 80,
+ 2039, 80,
+ 2042, 80,
+ 2047, 80,
+ 2050, 80,
+ 2105, 461,
+ 2111, 80,
+ 2117, 80,
+ 2122, 80,
+ 2127, 80,
+ 2249, 1274
};
static int parser_goto_row113[] = {
16,
- -1, 406,
- 203, 393,
- 281, 393,
- 349, 393,
- 390, 605,
- 403, 619,
- 518, 393,
- 685, 865,
- 1283, 1444,
- 1443, 1559,
- 1447, 1444,
- 1458, 1572,
- 1504, 1614,
- 1571, 1669,
- 1752, 619,
- 1862, 619
+ -1, 419,
+ 205, 406,
+ 284, 406,
+ 357, 406,
+ 403, 635,
+ 416, 649,
+ 532, 406,
+ 717, 913,
+ 1449, 1647,
+ 1646, 1786,
+ 1650, 1647,
+ 1668, 1805,
+ 1715, 1848,
+ 1804, 1919,
+ 2028, 649,
+ 2168, 649
};
static int parser_goto_row114[] = {
6,
- -1, 1346,
- 476, 681,
- 1493, 1606,
- 1503, 1613,
- 1505, 1616,
- 1507, 1619
+ -1, 1517,
+ 489, 713,
+ 1704, 1840,
+ 1714, 1847,
+ 1716, 1850,
+ 1718, 1853
};
static int parser_goto_row115[] = {
- 23,
+ 39,
-1, 81,
- 83, 260,
- 155, 260,
- 196, 260,
- 396, 260,
- 453, 260,
- 683, 260,
- 692, 260,
- 754, 260,
- 802, 260,
- 851, 260,
- 945, 260,
- 969, 260,
- 987, 260,
- 1051, 260,
- 1170, 260,
- 1173, 260,
- 1348, 260,
- 1388, 260,
- 1421, 260,
- 1597, 260,
- 1715, 260,
- 1739, 260
+ 83, 263,
+ 156, 263,
+ 198, 263,
+ 299, 263,
+ 366, 263,
+ 409, 263,
+ 466, 263,
+ 715, 263,
+ 724, 263,
+ 793, 263,
+ 848, 263,
+ 899, 263,
+ 932, 263,
+ 955, 263,
+ 970, 263,
+ 1009, 263,
+ 1023, 263,
+ 1036, 263,
+ 1044, 263,
+ 1062, 263,
+ 1139, 263,
+ 1150, 263,
+ 1212, 263,
+ 1250, 263,
+ 1291, 263,
+ 1294, 263,
+ 1463, 263,
+ 1519, 263,
+ 1560, 263,
+ 1615, 263,
+ 1774, 263,
+ 1830, 263,
+ 1915, 263,
+ 1932, 263,
+ 1970, 263,
+ 2001, 263,
+ 2010, 263,
+ 2073, 263
};
static int parser_goto_row116[] = {
- 229,
- -1, 195,
+ 282,
+ -1, 197,
13, 82,
27, 82,
- 31, 139,
+ 31, 140,
33, 82,
37, 82,
- 55, 139,
- 83, 261,
+ 55, 140,
+ 83, 264,
98, 82,
- 125, 139,
- 155, 327,
- 159, 82,
- 167, 82,
- 196, 385,
- 203, 394,
- 211, 394,
- 213, 449,
- 242, 82,
- 254, 139,
- 256, 139,
- 257, 139,
- 258, 139,
- 259, 139,
- 280, 139,
- 281, 394,
- 349, 394,
- 389, 82,
- 390, 394,
- 396, 613,
- 403, 394,
- 453, 645,
- 476, 682,
- 481, 82,
- 483, 691,
- 506, 139,
- 507, 139,
- 518, 394,
- 528, 139,
- 530, 139,
- 531, 139,
- 532, 394,
- 533, 139,
- 534, 139,
- 535, 139,
- 536, 139,
- 537, 139,
- 538, 139,
- 539, 139,
- 540, 139,
- 541, 139,
- 542, 139,
- 543, 139,
- 544, 139,
- 545, 139,
- 546, 139,
- 547, 139,
- 548, 139,
- 549, 139,
- 550, 139,
- 551, 753,
- 555, 82,
- 557, 394,
- 562, 82,
- 578, 394,
- 597, 801,
- 601, 82,
- 604, 82,
- 621, 394,
- 622, 394,
- 628, 394,
- 683, 864,
- 685, 394,
- 687, 139,
- 689, 139,
- 692, 879,
- 721, 753,
- 727, 139,
- 754, 906,
- 757, 82,
- 760, 82,
- 764, 935,
- 765, 82,
- 766, 82,
- 768, 82,
- 774, 801,
- 802, 961,
- 809, 394,
- 813, 968,
- 824, 82,
- 830, 394,
- 833, 985,
- 835, 449,
- 875, 139,
- 876, 139,
- 877, 139,
- 878, 139,
- 893, 1050,
- 913, 139,
- 914, 935,
- 916, 82,
- 918, 935,
- 928, 139,
- 936, 82,
- 945, 1094,
- 962, 394,
- 969, 1115,
- 981, 394,
- 987, 1130,
- 994, 1154,
- 1006, 394,
- 1009, 82,
- 1043, 139,
- 1044, 139,
- 1051, 1224,
- 1063, 82,
- 1070, 82,
- 1080, 394,
- 1084, 139,
- 1085, 139,
- 1086, 139,
- 1087, 82,
- 1091, 82,
- 1092, 139,
- 1093, 139,
- 1120, 449,
- 1142, 1154,
- 1143, 1154,
- 1144, 1154,
- 1145, 1154,
- 1170, 1328,
- 1182, 1347,
- 1186, 82,
- 1196, 1380,
- 1202, 394,
- 1227, 394,
- 1238, 935,
- 1241, 1420,
- 1246, 82,
- 1252, 139,
- 1253, 139,
- 1257, 394,
- 1282, 1154,
- 1283, 394,
- 1284, 1154,
- 1348, 1494,
- 1388, 1525,
- 1412, 935,
- 1414, 82,
- 1418, 139,
- 1419, 139,
- 1421, 1549,
- 1431, 449,
- 1443, 394,
- 1447, 394,
- 1454, 1154,
- 1456, 1154,
- 1457, 1154,
- 1458, 394,
- 1459, 1154,
- 1460, 1154,
- 1461, 1154,
- 1462, 1154,
- 1463, 1154,
- 1464, 1154,
- 1465, 1154,
- 1466, 1154,
- 1467, 1154,
- 1468, 1154,
- 1469, 1154,
- 1470, 1154,
- 1471, 1154,
- 1472, 1154,
- 1473, 1154,
- 1474, 1154,
- 1475, 1154,
- 1476, 1154,
- 1477, 1596,
- 1493, 682,
- 1503, 682,
- 1504, 394,
- 1505, 682,
- 1507, 682,
- 1513, 394,
- 1515, 449,
- 1535, 935,
- 1536, 935,
- 1537, 935,
- 1541, 935,
- 1545, 139,
- 1546, 139,
- 1547, 139,
- 1548, 139,
- 1554, 449,
- 1564, 1596,
- 1568, 1154,
- 1571, 394,
- 1597, 1677,
- 1603, 1347,
- 1621, 82,
- 1623, 394,
- 1635, 1713,
- 1644, 139,
- 1658, 139,
- 1659, 139,
- 1666, 1738,
- 1678, 1380,
- 1680, 394,
- 1687, 82,
- 1691, 82,
- 1699, 82,
- 1715, 1792,
- 1728, 935,
- 1739, 1807,
- 1752, 394,
- 1756, 82,
- 1762, 82,
- 1763, 82,
- 1766, 82,
- 1771, 82,
- 1774, 82,
- 1809, 394,
- 1811, 449,
- 1815, 394,
- 1817, 82,
- 1823, 82,
- 1828, 82,
- 1833, 82,
- 1862, 394,
- 1914, 1154
+ 125, 140,
+ 129, 297,
+ 156, 335,
+ 160, 82,
+ 168, 82,
+ 179, 365,
+ 198, 398,
+ 205, 407,
+ 213, 407,
+ 215, 462,
+ 244, 82,
+ 257, 140,
+ 259, 140,
+ 260, 140,
+ 261, 140,
+ 262, 140,
+ 283, 140,
+ 284, 407,
+ 299, 546,
+ 357, 407,
+ 366, 602,
+ 402, 82,
+ 403, 407,
+ 409, 643,
+ 416, 407,
+ 435, 365,
+ 466, 677,
+ 489, 714,
+ 494, 82,
+ 496, 723,
+ 520, 140,
+ 521, 140,
+ 532, 407,
+ 549, 140,
+ 551, 140,
+ 552, 140,
+ 553, 407,
+ 554, 140,
+ 555, 140,
+ 556, 140,
+ 557, 140,
+ 558, 140,
+ 559, 140,
+ 560, 140,
+ 561, 140,
+ 562, 140,
+ 563, 140,
+ 564, 140,
+ 565, 140,
+ 566, 140,
+ 567, 140,
+ 568, 140,
+ 569, 140,
+ 570, 140,
+ 571, 140,
+ 572, 792,
+ 577, 82,
+ 579, 407,
+ 584, 82,
+ 607, 407,
+ 626, 847,
+ 631, 82,
+ 634, 82,
+ 651, 407,
+ 652, 407,
+ 658, 407,
+ 715, 912,
+ 717, 407,
+ 719, 140,
+ 721, 140,
+ 724, 927,
+ 725, 931,
+ 754, 792,
+ 761, 954,
+ 766, 140,
+ 793, 965,
+ 794, 969,
+ 797, 82,
+ 800, 82,
+ 804, 999,
+ 805, 82,
+ 806, 82,
+ 808, 82,
+ 814, 847,
+ 816, 1022,
+ 848, 1031,
+ 849, 1035,
+ 856, 407,
+ 860, 1043,
+ 871, 82,
+ 877, 407,
+ 880, 1060,
+ 883, 462,
+ 923, 140,
+ 924, 140,
+ 925, 140,
+ 926, 140,
+ 928, 140,
+ 929, 140,
+ 932, 1132,
+ 946, 1138,
+ 948, 969,
+ 955, 1147,
+ 956, 1149,
+ 970, 1161,
+ 977, 140,
+ 978, 999,
+ 980, 82,
+ 982, 999,
+ 992, 140,
+ 1000, 82,
+ 1009, 1197,
+ 1020, 1035,
+ 1023, 1209,
+ 1024, 1211,
+ 1036, 1220,
+ 1037, 407,
+ 1044, 1231,
+ 1056, 407,
+ 1062, 1246,
+ 1063, 1248,
+ 1070, 1275,
+ 1082, 407,
+ 1085, 82,
+ 1119, 140,
+ 1120, 140,
+ 1128, 140,
+ 1129, 140,
+ 1130, 140,
+ 1131, 140,
+ 1139, 1363,
+ 1150, 1372,
+ 1165, 82,
+ 1172, 82,
+ 1182, 407,
+ 1187, 140,
+ 1188, 140,
+ 1189, 140,
+ 1190, 82,
+ 1194, 82,
+ 1195, 140,
+ 1196, 140,
+ 1212, 1413,
+ 1236, 462,
+ 1250, 1443,
+ 1262, 1275,
+ 1263, 1275,
+ 1264, 1275,
+ 1265, 1461,
+ 1266, 1275,
+ 1291, 1499,
+ 1303, 1518,
+ 1307, 82,
+ 1317, 1552,
+ 1323, 407,
+ 1357, 140,
+ 1358, 140,
+ 1374, 407,
+ 1388, 999,
+ 1391, 1614,
+ 1397, 82,
+ 1403, 140,
+ 1404, 140,
+ 1419, 407,
+ 1448, 1275,
+ 1449, 407,
+ 1450, 1275,
+ 1463, 1659,
+ 1519, 1705,
+ 1539, 297,
+ 1560, 1737,
+ 1606, 999,
+ 1608, 82,
+ 1612, 140,
+ 1613, 140,
+ 1615, 1770,
+ 1616, 1773,
+ 1631, 462,
+ 1646, 407,
+ 1650, 407,
+ 1664, 1275,
+ 1666, 1275,
+ 1667, 1275,
+ 1668, 407,
+ 1669, 1275,
+ 1670, 1275,
+ 1671, 1275,
+ 1672, 1275,
+ 1673, 1275,
+ 1674, 1275,
+ 1675, 1275,
+ 1676, 1275,
+ 1677, 1275,
+ 1678, 1275,
+ 1679, 1275,
+ 1680, 1275,
+ 1681, 1275,
+ 1682, 1275,
+ 1683, 1275,
+ 1684, 1275,
+ 1685, 1275,
+ 1686, 1275,
+ 1687, 1829,
+ 1704, 714,
+ 1714, 714,
+ 1715, 407,
+ 1716, 714,
+ 1718, 714,
+ 1724, 407,
+ 1726, 462,
+ 1756, 999,
+ 1757, 999,
+ 1758, 999,
+ 1762, 999,
+ 1766, 140,
+ 1767, 140,
+ 1768, 140,
+ 1769, 140,
+ 1771, 140,
+ 1772, 140,
+ 1774, 1903,
+ 1780, 462,
+ 1791, 1829,
+ 1794, 1914,
+ 1801, 1275,
+ 1804, 407,
+ 1830, 1927,
+ 1831, 1931,
+ 1837, 1518,
+ 1855, 82,
+ 1857, 407,
+ 1869, 1968,
+ 1881, 140,
+ 1895, 140,
+ 1896, 140,
+ 1899, 140,
+ 1900, 140,
+ 1901, 140,
+ 1902, 140,
+ 1910, 2000,
+ 1912, 1931,
+ 1915, 2007,
+ 1916, 2009,
+ 1932, 2022,
+ 1933, 1552,
+ 1935, 407,
+ 1942, 82,
+ 1946, 82,
+ 1954, 82,
+ 1970, 2068,
+ 1971, 2071,
+ 1984, 999,
+ 1994, 140,
+ 1995, 140,
+ 2001, 2090,
+ 2010, 2098,
+ 2028, 407,
+ 2032, 82,
+ 2038, 82,
+ 2039, 82,
+ 2042, 82,
+ 2047, 82,
+ 2050, 82,
+ 2073, 2150,
+ 2100, 407,
+ 2105, 462,
+ 2109, 407,
+ 2111, 82,
+ 2117, 82,
+ 2122, 82,
+ 2127, 82,
+ 2168, 407,
+ 2249, 1275
};
static int parser_goto_row117[] = {
14,
- -1, 1351,
- 1352, 1496,
- 1698, 1779,
- 1761, 1820,
- 1770, 1829,
- 1780, 1836,
- 1816, 1864,
- 1821, 1867,
- 1822, 1868,
- 1830, 1874,
- 1832, 1875,
- 1865, 1901,
- 1869, 1902,
- 1876, 1905
+ -1, 1522,
+ 1523, 1707,
+ 1953, 2055,
+ 2037, 2114,
+ 2046, 2123,
+ 2056, 2130,
+ 2110, 2170,
+ 2115, 2173,
+ 2116, 2174,
+ 2124, 2180,
+ 2126, 2181,
+ 2171, 2221,
+ 2175, 2222,
+ 2182, 2225
};
static int parser_goto_row118[] = {
14,
-1, 91,
- 852, 1002,
- 999, 1175,
- 1000, 1176,
- 1003, 1177,
- 1008, 1184,
- 1019, 1191,
- 1620, 1697,
- 1678, 1749,
- 1748, 1812,
- 1750, 1813,
- 1765, 1825,
- 1897, 1918,
- 1917, 1926
+ 900, 1078,
+ 1075, 1296,
+ 1076, 1297,
+ 1079, 1298,
+ 1084, 1305,
+ 1095, 1312,
+ 1854, 1952,
+ 1933, 2025,
+ 2024, 2106,
+ 2026, 2107,
+ 2041, 2119,
+ 2217, 2253,
+ 2252, 2269
};
static int parser_goto_row119[] = {
59,
- -1, 604,
+ -1, 634,
0, 12,
3, 23,
5, 12,
28, 12,
29, 12,
30, 12,
- 33, 159,
- 37, 167,
- 64, 242,
+ 33, 160,
+ 37, 168,
+ 64, 244,
94, 12,
95, 12,
99, 12,
- 104, 269,
- 105, 270,
+ 104, 272,
+ 105, 273,
111, 12,
112, 12,
114, 12,
- 243, 481,
- 265, 12,
- 271, 511,
- 274, 12,
- 331, 555,
- 339, 562,
- 554, 757,
- 556, 760,
- 563, 766,
- 764, 936,
- 765, 167,
- 768, 167,
- 824, 167,
- 865, 1022,
- 914, 1063,
- 918, 1070,
- 1020, 1022,
- 1024, 1022,
- 1089, 242,
- 1175, 1022,
- 1184, 1022,
- 1238, 1414,
- 1248, 481,
- 1332, 1022,
- 1349, 1022,
- 1408, 757,
- 1412, 1414,
- 1499, 1022,
- 1535, 936,
- 1536, 1070,
- 1537, 1070,
- 1541, 1070,
- 1610, 1022,
- 1697, 1022,
- 1728, 1414,
- 1778, 1022,
- 1825, 1022,
- 1870, 1022
+ 245, 494,
+ 268, 12,
+ 274, 525,
+ 277, 12,
+ 339, 577,
+ 347, 584,
+ 576, 797,
+ 578, 800,
+ 585, 806,
+ 804, 1000,
+ 805, 168,
+ 808, 168,
+ 871, 168,
+ 913, 1098,
+ 978, 1165,
+ 982, 1172,
+ 1096, 1098,
+ 1100, 1098,
+ 1192, 244,
+ 1296, 1098,
+ 1305, 1098,
+ 1388, 1608,
+ 1399, 494,
+ 1503, 1098,
+ 1520, 1098,
+ 1602, 797,
+ 1606, 1608,
+ 1710, 1098,
+ 1756, 1000,
+ 1757, 1172,
+ 1758, 1172,
+ 1762, 1172,
+ 1844, 1098,
+ 1952, 1098,
+ 1984, 1608,
+ 2054, 1098,
+ 2119, 1098,
+ 2176, 1098
};
static int parser_goto_row120[] = {
18,
5, 27,
18, 27,
28, 27,
- 865, 1023,
- 1020, 1023,
- 1024, 1199,
- 1175, 1331,
- 1184, 1331,
- 1332, 1331,
- 1349, 1331,
- 1499, 1023,
- 1610, 1023,
- 1697, 1331,
- 1778, 1331,
- 1825, 1331,
- 1870, 1331
+ 913, 1099,
+ 1096, 1099,
+ 1100, 1320,
+ 1296, 1502,
+ 1305, 1502,
+ 1503, 1502,
+ 1520, 1502,
+ 1710, 1099,
+ 1844, 1099,
+ 1952, 1502,
+ 2054, 1502,
+ 2119, 1502,
+ 2176, 1502
};
static int parser_goto_row121[] = {
- 246,
+ 262,
-1, 14,
- 35, 162,
- 36, 165,
- 38, 169,
- 44, 203,
- 49, 210,
- 52, 213,
- 53, 214,
- 79, 253,
- 84, 262,
- 117, 279,
- 118, 280,
- 119, 281,
- 120, 282,
- 126, 290,
- 171, 347,
- 172, 348,
- 173, 349,
- 174, 350,
- 215, 459,
- 216, 460,
- 236, 465,
- 237, 466,
- 238, 467,
- 239, 468,
- 244, 482,
- 245, 483,
- 250, 486,
- 277, 513,
- 287, 518,
- 302, 528,
- 303, 530,
- 304, 531,
- 305, 532,
- 306, 533,
- 307, 534,
- 308, 535,
- 309, 536,
- 310, 537,
- 311, 538,
- 312, 539,
- 313, 540,
- 314, 541,
- 315, 542,
- 316, 543,
- 317, 544,
- 318, 545,
- 319, 546,
- 320, 547,
- 321, 548,
- 322, 549,
- 323, 550,
- 324, 551,
- 333, 557,
- 336, 560,
- 338, 561,
- 341, 564,
- 343, 565,
- 345, 566,
- 357, 574,
- 358, 576,
- 359, 577,
- 360, 578,
- 361, 579,
- 362, 580,
- 363, 581,
- 364, 582,
- 365, 583,
- 366, 584,
- 367, 585,
- 368, 586,
- 369, 587,
- 370, 588,
- 371, 589,
- 372, 590,
- 373, 591,
- 374, 592,
- 375, 593,
- 376, 594,
- 377, 595,
- 378, 596,
- 379, 597,
- 397, 614,
- 401, 618,
- 413, 214,
- 445, 633,
- 447, 636,
- 454, 647,
- 455, 648,
- 456, 649,
- 469, 656,
- 470, 657,
- 478, 685,
- 490, 697,
- 495, 700,
- 508, 714,
- 514, 717,
- 520, 721,
- 524, 724,
- 529, 727,
- 558, 762,
- 567, 771,
- 568, 772,
- 572, 774,
- 575, 776,
- 606, 809,
- 611, 813,
- 623, 830,
- 632, 833,
- 634, 835,
- 651, 846,
- 681, 860,
- 688, 869,
- 695, 880,
- 718, 893,
- 750, 901,
- 763, 911,
- 767, 948,
- 769, 951,
- 770, 952,
- 807, 962,
- 810, 965,
- 816, 971,
- 822, 977,
- 825, 981,
- 842, 992,
- 843, 993,
- 844, 994,
- 848, 998,
- 856, 1005,
- 857, 1006,
- 859, 1013,
- 892, 1048,
- 896, 1053,
- 915, 1067,
- 917, 1069,
- 919, 1073,
- 925, 1079,
- 954, 1100,
- 964, 1109,
- 972, 1118,
- 975, 1120,
- 978, 1122,
- 982, 1125,
- 996, 1171,
- 1007, 1182,
- 1015, 1189,
- 1024, 1200,
- 1025, 1201,
- 1026, 1202,
- 1055, 1226,
- 1056, 1227,
- 1083, 1241,
- 1105, 1256,
- 1106, 1257,
- 1110, 1260,
- 1124, 1273,
- 1131, 1278,
- 1134, 1281,
- 1135, 1282,
- 1136, 1283,
- 1137, 1284,
- 1155, 1303,
- 1180, 1339,
- 1220, 1400,
- 1225, 1404,
- 1233, 1409,
- 1234, 1410,
- 1236, 1411,
- 1239, 1416,
- 1254, 1425,
- 1265, 1431,
- 1270, 1432,
- 1289, 1447,
- 1304, 1454,
- 1305, 1456,
- 1306, 1457,
- 1307, 1458,
- 1308, 1459,
- 1309, 1460,
- 1310, 1461,
- 1311, 1462,
- 1312, 1463,
- 1313, 1464,
- 1314, 1465,
- 1315, 1466,
- 1316, 1467,
- 1317, 1468,
- 1318, 1469,
- 1319, 1470,
- 1320, 1471,
- 1321, 1472,
- 1322, 1473,
- 1323, 1474,
- 1324, 1475,
- 1325, 1476,
- 1326, 1477,
- 1336, 1486,
- 1337, 1487,
- 1340, 1489,
- 1365, 1515,
- 1390, 1526,
- 1391, 1527,
- 1406, 1532,
- 1407, 1533,
- 1433, 1554,
- 1439, 1557,
- 1441, 1558,
- 1449, 1564,
- 1455, 1568,
- 1485, 1601,
- 1490, 1603,
- 1497, 1607,
- 1500, 1611,
- 1505, 860,
- 1507, 860,
- 1509, 1623,
- 1521, 1635,
- 1530, 1644,
- 1550, 1660,
- 1552, 1661,
- 1561, 1666,
- 1593, 1672,
- 1605, 1680,
- 1608, 1681,
- 1613, 860,
- 1616, 860,
- 1619, 860,
- 1642, 1725,
- 1645, 1727,
- 1664, 1736,
- 1742, 1808,
- 1743, 1809,
- 1747, 1811,
- 1751, 1814,
- 1753, 1815,
- 1767, 1827,
- 1803, 1852,
- 1857, 1895,
- 1858, 1896,
- 1861, 1898,
- 1862, 1899,
- 1863, 1900,
- 1893, 1914,
- 1915, 1925,
- 1919, 1927
+ 35, 163,
+ 36, 166,
+ 38, 170,
+ 44, 205,
+ 49, 212,
+ 52, 215,
+ 53, 216,
+ 79, 256,
+ 84, 265,
+ 117, 282,
+ 118, 283,
+ 119, 284,
+ 120, 285,
+ 126, 293,
+ 172, 355,
+ 173, 356,
+ 174, 357,
+ 175, 358,
+ 217, 472,
+ 218, 473,
+ 238, 478,
+ 239, 479,
+ 240, 480,
+ 241, 481,
+ 246, 495,
+ 247, 496,
+ 253, 500,
+ 280, 527,
+ 290, 532,
+ 309, 549,
+ 310, 551,
+ 311, 552,
+ 312, 553,
+ 313, 554,
+ 314, 555,
+ 315, 556,
+ 316, 557,
+ 317, 558,
+ 318, 559,
+ 319, 560,
+ 320, 561,
+ 321, 562,
+ 322, 563,
+ 323, 564,
+ 324, 565,
+ 325, 566,
+ 326, 567,
+ 327, 568,
+ 328, 569,
+ 329, 570,
+ 330, 571,
+ 331, 572,
+ 341, 579,
+ 344, 582,
+ 346, 583,
+ 349, 586,
+ 351, 587,
+ 353, 588,
+ 369, 603,
+ 370, 605,
+ 371, 606,
+ 372, 607,
+ 373, 608,
+ 374, 609,
+ 375, 610,
+ 376, 611,
+ 377, 612,
+ 378, 613,
+ 379, 614,
+ 380, 615,
+ 381, 616,
+ 382, 617,
+ 383, 618,
+ 384, 619,
+ 385, 620,
+ 386, 621,
+ 387, 622,
+ 388, 623,
+ 389, 624,
+ 390, 625,
+ 391, 626,
+ 410, 644,
+ 414, 648,
+ 426, 216,
+ 458, 664,
+ 460, 667,
+ 467, 679,
+ 468, 680,
+ 469, 681,
+ 482, 688,
+ 483, 689,
+ 491, 717,
+ 497, 725,
+ 504, 730,
+ 509, 733,
+ 522, 747,
+ 528, 750,
+ 534, 754,
+ 539, 758,
+ 543, 761,
+ 550, 766,
+ 573, 794,
+ 580, 802,
+ 589, 811,
+ 590, 812,
+ 594, 814,
+ 598, 816,
+ 604, 822,
+ 627, 849,
+ 636, 856,
+ 641, 860,
+ 653, 877,
+ 662, 880,
+ 665, 883,
+ 683, 894,
+ 713, 908,
+ 720, 917,
+ 728, 933,
+ 751, 946,
+ 755, 948,
+ 762, 956,
+ 789, 960,
+ 803, 975,
+ 807, 1012,
+ 809, 1015,
+ 810, 1016,
+ 815, 1020,
+ 817, 1024,
+ 854, 1037,
+ 857, 1040,
+ 863, 1046,
+ 869, 1052,
+ 872, 1056,
+ 881, 1063,
+ 890, 1068,
+ 891, 1069,
+ 892, 1070,
+ 896, 1074,
+ 904, 1081,
+ 905, 1082,
+ 907, 1089,
+ 945, 1136,
+ 950, 1142,
+ 979, 1169,
+ 981, 1171,
+ 983, 1175,
+ 989, 1181,
+ 1018, 1203,
+ 1039, 1225,
+ 1047, 1234,
+ 1050, 1236,
+ 1053, 1238,
+ 1057, 1241,
+ 1072, 1292,
+ 1083, 1303,
+ 1091, 1310,
+ 1100, 1321,
+ 1101, 1322,
+ 1102, 1323,
+ 1151, 1373,
+ 1152, 1374,
+ 1185, 1391,
+ 1221, 1418,
+ 1222, 1419,
+ 1226, 1422,
+ 1240, 1435,
+ 1251, 1444,
+ 1254, 1447,
+ 1255, 1448,
+ 1256, 1449,
+ 1257, 1450,
+ 1276, 1473,
+ 1301, 1510,
+ 1359, 1589,
+ 1365, 1593,
+ 1383, 1603,
+ 1384, 1604,
+ 1386, 1605,
+ 1389, 1610,
+ 1392, 1616,
+ 1405, 1620,
+ 1427, 1631,
+ 1432, 1632,
+ 1455, 1650,
+ 1474, 1664,
+ 1475, 1666,
+ 1476, 1667,
+ 1477, 1668,
+ 1478, 1669,
+ 1479, 1670,
+ 1480, 1671,
+ 1481, 1672,
+ 1482, 1673,
+ 1483, 1674,
+ 1484, 1675,
+ 1485, 1676,
+ 1486, 1677,
+ 1487, 1678,
+ 1488, 1679,
+ 1489, 1680,
+ 1490, 1681,
+ 1491, 1682,
+ 1492, 1683,
+ 1493, 1684,
+ 1494, 1685,
+ 1495, 1686,
+ 1496, 1687,
+ 1507, 1697,
+ 1508, 1698,
+ 1511, 1700,
+ 1536, 1726,
+ 1562, 1738,
+ 1563, 1739,
+ 1599, 1753,
+ 1600, 1754,
+ 1633, 1780,
+ 1642, 1784,
+ 1644, 1785,
+ 1652, 1791,
+ 1656, 1794,
+ 1665, 1801,
+ 1688, 1831,
+ 1696, 1835,
+ 1701, 1837,
+ 1708, 1841,
+ 1711, 1845,
+ 1716, 908,
+ 1718, 908,
+ 1720, 1857,
+ 1732, 1869,
+ 1750, 1881,
+ 1775, 1904,
+ 1778, 1905,
+ 1788, 1910,
+ 1792, 1912,
+ 1795, 1916,
+ 1826, 1922,
+ 1839, 1935,
+ 1842, 1936,
+ 1847, 908,
+ 1850, 908,
+ 1853, 908,
+ 1870, 1971,
+ 1877, 1981,
+ 1882, 1983,
+ 1908, 1998,
+ 2012, 2099,
+ 2013, 2100,
+ 2023, 2105,
+ 2027, 2108,
+ 2029, 2109,
+ 2043, 2121,
+ 2086, 2153,
+ 2162, 2215,
+ 2163, 2216,
+ 2167, 2218,
+ 2168, 2219,
+ 2169, 2220,
+ 2212, 2249,
+ 2250, 2268,
+ 2254, 2270
};
static int parser_goto_row122[] = {
4,
-1, 15,
22, 106,
25, 106,
- 164, 106
+ 165, 106
};
static int parser_goto_row123[] = {
1,
};
static int parser_goto_row124[] = {
4,
- -1, 1012,
- 1618, 1694,
- 1685, 1759,
- 1695, 1777
+ -1, 1088,
+ 1852, 1949,
+ 1940, 2035,
+ 1950, 2053
};
static int parser_goto_row125[] = {
- 13,
- -1, 450,
- 449, 643,
- 453, 646,
- 645, 841,
- 985, 643,
- 987, 646,
- 1130, 841,
- 1380, 643,
- 1388, 646,
- 1525, 841,
- 1713, 643,
- 1715, 646,
- 1792, 841
+ 19,
+ -1, 463,
+ 462, 675,
+ 466, 678,
+ 677, 889,
+ 1060, 675,
+ 1062, 678,
+ 1246, 889,
+ 1248, 675,
+ 1250, 678,
+ 1443, 889,
+ 1552, 675,
+ 1560, 678,
+ 1737, 889,
+ 1968, 675,
+ 1970, 678,
+ 2068, 889,
+ 2071, 675,
+ 2073, 678,
+ 2150, 889
};
static int parser_goto_row126[] = {
- 5,
- -1, 451,
- 833, 986,
- 1196, 1381,
- 1635, 1714,
- 1678, 1381
+ 7,
+ -1, 464,
+ 880, 1061,
+ 1063, 1249,
+ 1317, 1553,
+ 1869, 1969,
+ 1933, 1553,
+ 1971, 2072
};
static int parser_goto_row127[] = {
1,
};
static int parser_goto_row128[] = {
1,
- -1, 1573
+ -1, 1806
};
static int parser_goto_row129[] = {
2,
- -1, 1155,
- 1914, 1924
+ -1, 1276,
+ 2249, 2267
};
static int parser_goto_row130[] = {
1,
- -1, 1156
+ -1, 1277
};
static int parser_goto_row131[] = {
6,
- -1, 1157,
- 1282, 1442,
- 1454, 1567,
- 1456, 1569,
- 1457, 1570,
- 1568, 1668
+ -1, 1278,
+ 1448, 1645,
+ 1664, 1800,
+ 1666, 1802,
+ 1667, 1803,
+ 1801, 1918
};
static int parser_goto_row132[] = {
1,
- -1, 1158
+ -1, 1279
};
static int parser_goto_row133[] = {
8,
- -1, 1159,
- 1460, 1575,
- 1461, 1576,
- 1462, 1577,
- 1463, 1578,
- 1464, 1579,
- 1465, 1580,
- 1466, 1581
+ -1, 1280,
+ 1670, 1808,
+ 1671, 1809,
+ 1672, 1810,
+ 1673, 1811,
+ 1674, 1812,
+ 1675, 1813,
+ 1676, 1814
};
static int parser_goto_row134[] = {
2,
- -1, 1160,
- 1459, 1574
+ -1, 1281,
+ 1669, 1807
};
static int parser_goto_row135[] = {
2,
- -1, 1161,
- 1467, 1582
+ -1, 1282,
+ 1677, 1815
};
static int parser_goto_row136[] = {
2,
- -1, 1162,
- 1468, 1583
+ -1, 1283,
+ 1678, 1816
};
static int parser_goto_row137[] = {
3,
- -1, 1163,
- 1469, 1584,
- 1470, 1585
+ -1, 1284,
+ 1679, 1817,
+ 1680, 1818
};
static int parser_goto_row138[] = {
3,
- -1, 1164,
- 1471, 1586,
- 1472, 1587
+ -1, 1285,
+ 1681, 1819,
+ 1682, 1820
};
static int parser_goto_row139[] = {
5,
- -1, 1165,
- 1473, 1588,
- 1474, 1589,
- 1475, 1590,
- 1476, 1591
+ -1, 1286,
+ 1683, 1821,
+ 1684, 1822,
+ 1685, 1823,
+ 1686, 1824
};
static int parser_goto_row140[] = {
5,
- -1, 1166,
- 1143, 1292,
- 1144, 1293,
- 1145, 1294,
- 1284, 1446
+ -1, 1287,
+ 1263, 1458,
+ 1264, 1459,
+ 1266, 1464,
+ 1450, 1649
};
static int parser_goto_row141[] = {
1,
- -1, 1167
+ -1, 1288
};
static int parser_goto_row142[] = {
- 2,
- -1, 1168,
- 1142, 1291
+ 3,
+ -1, 1289,
+ 1262, 1457,
+ 1265, 1462
};
static int parser_goto_row143[] = {
1,
};
static int parser_goto_row144[] = {
1,
- -1, 1169
+ -1, 1290
};
static int parser_goto_row145[] = {
1,
};
static int parser_goto_row146[] = {
4,
- -1, 395,
- 281, 516,
- 349, 570,
- 518, 720
+ -1, 408,
+ 284, 530,
+ 357, 592,
+ 532, 753
};
static int parser_goto_row147[] = {
1,
};
static int parser_goto_row148[] = {
1,
- -1, 1382
+ -1, 1554
};
static int parser_goto_row149[] = {
4,
- -1, 140,
- 1196, 1383,
- 1644, 1726,
- 1678, 1383
+ -1, 141,
+ 1317, 1555,
+ 1881, 1982,
+ 1933, 1555
};
static int parser_goto_row150[] = {
1,
- -1, 141
+ -1, 142
};
static int parser_goto_row151[] = {
6,
- -1, 142,
- 280, 515,
- 528, 726,
- 530, 728,
- 531, 729,
- 727, 899
+ -1, 143,
+ 283, 529,
+ 549, 765,
+ 551, 767,
+ 552, 768,
+ 766, 958
};
static int parser_goto_row152[] = {
1,
- -1, 143
+ -1, 144
};
static int parser_goto_row153[] = {
8,
- -1, 144,
- 534, 732,
- 535, 733,
- 536, 734,
- 537, 735,
- 538, 736,
- 539, 737,
- 540, 738
+ -1, 145,
+ 555, 771,
+ 556, 772,
+ 557, 773,
+ 558, 774,
+ 559, 775,
+ 560, 776,
+ 561, 777
};
static int parser_goto_row154[] = {
2,
- -1, 145,
- 533, 731
+ -1, 146,
+ 554, 770
};
static int parser_goto_row155[] = {
2,
- -1, 146,
- 541, 739
+ -1, 147,
+ 562, 778
};
static int parser_goto_row156[] = {
2,
- -1, 147,
- 542, 740
+ -1, 148,
+ 563, 779
};
static int parser_goto_row157[] = {
3,
- -1, 148,
- 543, 741,
- 544, 742
+ -1, 149,
+ 564, 780,
+ 565, 781
};
static int parser_goto_row158[] = {
3,
- -1, 149,
- 545, 743,
- 546, 744
+ -1, 150,
+ 566, 782,
+ 567, 783
};
static int parser_goto_row159[] = {
5,
- -1, 150,
- 547, 745,
- 548, 746,
- 549, 747,
- 550, 748
+ -1, 151,
+ 568, 784,
+ 569, 785,
+ 570, 786,
+ 571, 787
};
static int parser_goto_row160[] = {
1,
- -1, 151
+ -1, 152
};
static int parser_goto_row161[] = {
1,
- -1, 152
+ -1, 153
};
static int parser_goto_row162[] = {
- 4,
- -1, 153,
- 125, 289,
- 1196, 1384,
- 1678, 1384
+ 6,
+ -1, 154,
+ 125, 292,
+ 129, 298,
+ 1317, 1556,
+ 1539, 298,
+ 1933, 1556
};
static int parser_goto_row163[] = {
1,
};
static int parser_goto_row164[] = {
2,
- -1, 154,
- 1116, 1268
+ -1, 155,
+ 1232, 1430
};
static int parser_goto_row165[] = {
1,
- -1, 608
+ -1, 638
};
static int parser_goto_row166[] = {
7,
- -1, 609,
- 605, 808,
- 1111, 1261,
- 1259, 1428,
- 1426, 1551,
- 1444, 1560,
- 1559, 1665
+ -1, 639,
+ 635, 855,
+ 1227, 1423,
+ 1421, 1628,
+ 1626, 1777,
+ 1647, 1787,
+ 1786, 1909
};
static int parser_goto_row167[] = {
1,
- -1, 812
+ -1, 859
};
static int parser_goto_row168[] = {
1,
};
static int parser_goto_row169[] = {
2,
- -1, 1385,
- 1678, 1750
+ -1, 1557,
+ 1933, 2026
};
static int parser_goto_row170[] = {
1,
- -1, 1386
+ -1, 1558
};
static int parser_goto_row171[] = {
1,
};
static int parser_goto_row172[] = {
2,
- -1, 1445,
- 1447, 1563
+ -1, 1648,
+ 1650, 1790
};
static int parser_goto_row173[] = {
1,
};
static int parser_goto_row190[] = {
8,
- -1, 1064,
- 918, 1071,
- 1238, 1415,
- 1412, 1538,
- 1536, 1648,
- 1537, 1650,
- 1541, 1652,
- 1728, 1801
+ -1, 1166,
+ 982, 1173,
+ 1388, 1609,
+ 1606, 1759,
+ 1757, 1885,
+ 1758, 1887,
+ 1762, 1889,
+ 1984, 2082
};
static int parser_goto_row191[] = {
3,
- -1, 1065,
- 764, 937,
- 1535, 1647
+ -1, 1167,
+ 804, 1001,
+ 1756, 1884
};
static int parser_goto_row192[] = {
1,
- -1, 938
+ -1, 1002
};
static int parser_goto_row193[] = {
1,
- -1, 939
+ -1, 1003
};
static int parser_goto_row194[] = {
1,
- -1, 940
+ -1, 1004
};
static int parser_goto_row195[] = {
1,
- -1, 941
+ -1, 1005
};
static int parser_goto_row196[] = {
1,
- -1, 942
+ -1, 1006
};
static int parser_goto_row197[] = {
1,
- -1, 943
+ -1, 1007
};
static int parser_goto_row198[] = {
1,
- -1, 944
+ -1, 1008
};
static int parser_goto_row199[] = {
1,
};
static int parser_goto_row200[] = {
12,
- -1, 160,
- 37, 168,
- 554, 758,
- 765, 947,
- 768, 950,
- 824, 980,
- 914, 1066,
- 918, 1072,
- 1408, 1534,
- 1536, 1649,
- 1537, 1651,
- 1541, 1653
+ -1, 161,
+ 37, 169,
+ 576, 798,
+ 805, 1011,
+ 808, 1014,
+ 871, 1055,
+ 978, 1168,
+ 982, 1174,
+ 1602, 1755,
+ 1757, 1886,
+ 1758, 1888,
+ 1762, 1890
};
static int parser_goto_row201[] = {
1,
};
static int parser_goto_row202[] = {
1,
- -1, 452
+ -1, 465
};
static int parser_goto_row203[] = {
1,
- -1, 1387
+ -1, 1559
};
static int parser_goto_row204[] = {
1,
};
static int parser_goto_row206[] = {
1,
- -1, 1196
+ -1, 1317
};
static int parser_goto_row207[] = {
1,
19, 99,
28, 112,
29, 114,
- 94, 265,
- 111, 274
+ 94, 268,
+ 111, 277
};
static int parser_goto_row211[] = {
1,
- -1, 1502
+ -1, 1713
};
static int parser_goto_row212[] = {
1,
- -1, 1024
+ -1, 1100
};
static int parser_goto_row213[] = {
4,
- -1, 1332,
- 1184, 1349,
- 1697, 1778,
- 1825, 1870
+ -1, 1503,
+ 1305, 1520,
+ 1952, 2054,
+ 2119, 2176
};
static int parser_goto_row214[] = {
1,
- -1, 1340
+ -1, 1511
};
static int parser_goto_row215[] = {
1,
- -1, 1492
+ -1, 1703
};
static int parser_goto_row216[] = {
1,
- -1, 1108
+ -1, 1224
};
static int parser_goto_row217[] = {
4,
- -1, 243,
- 331, 556,
- 339, 563,
- 1089, 1248
+ -1, 245,
+ 339, 578,
+ 347, 585,
+ 1192, 1399
};
static int parser_goto_row218[] = {
1,
- -1, 637
+ -1, 668
};
static int parser_goto_row219[] = {
1,
- -1, 653
+ -1, 685
};
static int parser_goto_row220[] = {
1,
- -1, 252
+ -1, 255
};
static int parser_goto_row221[] = {
1,
- -1, 974
+ -1, 1049
};
static int parser_goto_row222[] = {
2,
- -1, 1435,
- 1386, 1523
+ -1, 1635,
+ 1558, 1735
};
static int parser_goto_row223[] = {
1,
- -1, 898
+ -1, 952
};
static int parser_goto_row224[] = {
- 212,
- -1, 196,
+ 249,
+ -1, 198,
13, 83,
27, 83,
- 31, 155,
+ 31, 156,
33, 83,
37, 83,
- 55, 155,
+ 55, 156,
98, 83,
- 125, 155,
- 159, 83,
- 167, 83,
- 203, 396,
- 211, 396,
- 213, 453,
- 242, 83,
- 254, 155,
- 256, 155,
- 257, 155,
- 258, 155,
- 259, 155,
- 280, 155,
- 281, 396,
- 349, 396,
- 389, 83,
- 390, 396,
- 403, 396,
- 476, 683,
- 481, 83,
- 483, 692,
- 506, 155,
- 507, 155,
- 518, 396,
- 528, 155,
- 530, 155,
- 531, 155,
- 532, 396,
- 533, 155,
- 534, 155,
- 535, 155,
- 536, 155,
- 537, 155,
- 538, 155,
- 539, 155,
- 540, 155,
- 541, 155,
- 542, 155,
- 543, 155,
- 544, 155,
- 545, 155,
- 546, 155,
- 547, 155,
- 548, 155,
- 549, 155,
- 550, 155,
- 551, 754,
- 555, 83,
- 557, 396,
- 562, 83,
- 578, 396,
- 597, 802,
- 601, 83,
- 604, 83,
- 621, 396,
- 622, 396,
- 628, 396,
- 656, 851,
- 657, 851,
- 685, 396,
- 687, 155,
- 689, 155,
- 721, 754,
- 727, 155,
- 757, 83,
- 760, 83,
- 764, 945,
- 765, 83,
- 766, 83,
- 768, 83,
- 774, 802,
- 809, 396,
- 813, 969,
- 824, 83,
- 830, 396,
- 833, 987,
- 835, 453,
- 875, 155,
- 876, 155,
- 877, 155,
- 878, 155,
- 893, 1051,
- 913, 155,
- 914, 945,
- 916, 83,
- 918, 945,
- 928, 155,
- 936, 83,
- 962, 396,
- 981, 396,
- 994, 1170,
- 998, 1173,
- 1006, 396,
- 1009, 83,
- 1043, 155,
- 1044, 155,
- 1063, 83,
- 1070, 83,
- 1080, 396,
- 1084, 155,
- 1085, 155,
- 1086, 155,
- 1087, 83,
- 1091, 83,
- 1092, 155,
- 1093, 155,
- 1120, 453,
- 1142, 1170,
- 1143, 1170,
- 1144, 1170,
- 1145, 1170,
- 1182, 1348,
- 1186, 83,
- 1196, 1388,
- 1202, 396,
- 1227, 396,
- 1238, 945,
- 1241, 1421,
- 1246, 83,
- 1252, 155,
- 1253, 155,
- 1257, 396,
- 1282, 1170,
- 1283, 396,
- 1284, 1170,
- 1412, 945,
- 1414, 83,
- 1418, 155,
- 1419, 155,
- 1431, 453,
- 1443, 396,
- 1447, 396,
- 1454, 1170,
- 1456, 1170,
- 1457, 1170,
- 1458, 396,
- 1459, 1170,
- 1460, 1170,
- 1461, 1170,
- 1462, 1170,
- 1463, 1170,
- 1464, 1170,
- 1465, 1170,
- 1466, 1170,
- 1467, 1170,
- 1468, 1170,
- 1469, 1170,
- 1470, 1170,
- 1471, 1170,
- 1472, 1170,
- 1473, 1170,
- 1474, 1170,
- 1475, 1170,
- 1476, 1170,
- 1477, 1597,
- 1493, 683,
- 1503, 683,
- 1504, 396,
- 1505, 683,
- 1507, 683,
- 1513, 396,
- 1515, 453,
- 1535, 945,
- 1536, 945,
- 1537, 945,
- 1541, 945,
- 1545, 155,
- 1546, 155,
- 1547, 155,
- 1548, 155,
- 1554, 453,
- 1564, 1597,
- 1568, 1170,
- 1571, 396,
- 1603, 1348,
- 1621, 83,
- 1623, 396,
- 1635, 1715,
- 1644, 155,
- 1658, 155,
- 1659, 155,
- 1666, 1739,
- 1678, 1388,
- 1680, 396,
- 1687, 83,
- 1691, 83,
- 1699, 83,
- 1728, 945,
- 1752, 396,
- 1756, 83,
- 1762, 83,
- 1763, 83,
- 1766, 83,
- 1771, 83,
- 1774, 83,
- 1809, 396,
- 1811, 453,
- 1815, 396,
- 1817, 83,
- 1823, 83,
- 1828, 83,
- 1833, 83,
- 1862, 396,
- 1914, 1170
+ 125, 156,
+ 129, 299,
+ 160, 83,
+ 168, 83,
+ 179, 366,
+ 205, 409,
+ 213, 409,
+ 215, 466,
+ 244, 83,
+ 257, 156,
+ 259, 156,
+ 260, 156,
+ 261, 156,
+ 262, 156,
+ 283, 156,
+ 284, 409,
+ 357, 409,
+ 402, 83,
+ 403, 409,
+ 416, 409,
+ 435, 366,
+ 489, 715,
+ 494, 83,
+ 496, 724,
+ 520, 156,
+ 521, 156,
+ 532, 409,
+ 549, 156,
+ 551, 156,
+ 552, 156,
+ 553, 409,
+ 554, 156,
+ 555, 156,
+ 556, 156,
+ 557, 156,
+ 558, 156,
+ 559, 156,
+ 560, 156,
+ 561, 156,
+ 562, 156,
+ 563, 156,
+ 564, 156,
+ 565, 156,
+ 566, 156,
+ 567, 156,
+ 568, 156,
+ 569, 156,
+ 570, 156,
+ 571, 156,
+ 572, 793,
+ 577, 83,
+ 579, 409,
+ 584, 83,
+ 607, 409,
+ 626, 848,
+ 631, 83,
+ 634, 83,
+ 651, 409,
+ 652, 409,
+ 658, 409,
+ 688, 899,
+ 689, 899,
+ 717, 409,
+ 719, 156,
+ 721, 156,
+ 725, 932,
+ 754, 793,
+ 761, 955,
+ 766, 156,
+ 794, 970,
+ 797, 83,
+ 800, 83,
+ 804, 1009,
+ 805, 83,
+ 806, 83,
+ 808, 83,
+ 814, 848,
+ 816, 1023,
+ 849, 1036,
+ 856, 409,
+ 860, 1044,
+ 871, 83,
+ 877, 409,
+ 880, 1062,
+ 883, 466,
+ 923, 156,
+ 924, 156,
+ 925, 156,
+ 926, 156,
+ 928, 156,
+ 929, 156,
+ 946, 1139,
+ 948, 970,
+ 956, 1150,
+ 977, 156,
+ 978, 1009,
+ 980, 83,
+ 982, 1009,
+ 992, 156,
+ 1000, 83,
+ 1020, 1036,
+ 1024, 1212,
+ 1037, 409,
+ 1056, 409,
+ 1063, 1250,
+ 1070, 1291,
+ 1074, 1294,
+ 1082, 409,
+ 1085, 83,
+ 1119, 156,
+ 1120, 156,
+ 1128, 156,
+ 1129, 156,
+ 1130, 156,
+ 1131, 156,
+ 1165, 83,
+ 1172, 83,
+ 1182, 409,
+ 1187, 156,
+ 1188, 156,
+ 1189, 156,
+ 1190, 83,
+ 1194, 83,
+ 1195, 156,
+ 1196, 156,
+ 1236, 466,
+ 1262, 1291,
+ 1263, 1291,
+ 1264, 1291,
+ 1265, 1463,
+ 1266, 1291,
+ 1303, 1519,
+ 1307, 83,
+ 1317, 1560,
+ 1323, 409,
+ 1357, 156,
+ 1358, 156,
+ 1374, 409,
+ 1388, 1009,
+ 1391, 1615,
+ 1397, 83,
+ 1403, 156,
+ 1404, 156,
+ 1419, 409,
+ 1448, 1291,
+ 1449, 409,
+ 1450, 1291,
+ 1539, 299,
+ 1606, 1009,
+ 1608, 83,
+ 1612, 156,
+ 1613, 156,
+ 1616, 1774,
+ 1631, 466,
+ 1646, 409,
+ 1650, 409,
+ 1664, 1291,
+ 1666, 1291,
+ 1667, 1291,
+ 1668, 409,
+ 1669, 1291,
+ 1670, 1291,
+ 1671, 1291,
+ 1672, 1291,
+ 1673, 1291,
+ 1674, 1291,
+ 1675, 1291,
+ 1676, 1291,
+ 1677, 1291,
+ 1678, 1291,
+ 1679, 1291,
+ 1680, 1291,
+ 1681, 1291,
+ 1682, 1291,
+ 1683, 1291,
+ 1684, 1291,
+ 1685, 1291,
+ 1686, 1291,
+ 1687, 1830,
+ 1704, 715,
+ 1714, 715,
+ 1715, 409,
+ 1716, 715,
+ 1718, 715,
+ 1724, 409,
+ 1726, 466,
+ 1756, 1009,
+ 1757, 1009,
+ 1758, 1009,
+ 1762, 1009,
+ 1766, 156,
+ 1767, 156,
+ 1768, 156,
+ 1769, 156,
+ 1771, 156,
+ 1772, 156,
+ 1780, 466,
+ 1791, 1830,
+ 1794, 1915,
+ 1801, 1291,
+ 1804, 409,
+ 1831, 1932,
+ 1837, 1519,
+ 1855, 83,
+ 1857, 409,
+ 1869, 1970,
+ 1881, 156,
+ 1895, 156,
+ 1896, 156,
+ 1899, 156,
+ 1900, 156,
+ 1901, 156,
+ 1902, 156,
+ 1910, 2001,
+ 1912, 1932,
+ 1916, 2010,
+ 1933, 1560,
+ 1935, 409,
+ 1942, 83,
+ 1946, 83,
+ 1954, 83,
+ 1971, 2073,
+ 1984, 1009,
+ 1994, 156,
+ 1995, 156,
+ 2028, 409,
+ 2032, 83,
+ 2038, 83,
+ 2039, 83,
+ 2042, 83,
+ 2047, 83,
+ 2050, 83,
+ 2100, 409,
+ 2105, 466,
+ 2109, 409,
+ 2111, 83,
+ 2117, 83,
+ 2122, 83,
+ 2127, 83,
+ 2168, 409,
+ 2249, 1291
};
static int parser_goto_row225[] = {
84,
- -1, 163,
+ -1, 164,
0, 21,
3, 24,
5, 21,
111, 21,
112, 24,
114, 24,
- 164, 337,
- 243, 24,
- 265, 24,
- 271, 24,
+ 165, 345,
+ 245, 24,
+ 268, 24,
274, 24,
- 331, 24,
+ 277, 24,
339, 24,
- 389, 24,
- 554, 24,
- 556, 24,
- 563, 24,
- 601, 24,
- 764, 24,
- 765, 24,
- 768, 24,
- 824, 24,
- 865, 24,
- 914, 24,
- 916, 24,
- 918, 24,
- 1009, 24,
- 1020, 24,
- 1024, 21,
- 1087, 24,
- 1089, 24,
- 1091, 24,
- 1175, 24,
- 1184, 24,
- 1186, 24,
- 1238, 24,
- 1246, 24,
- 1248, 24,
- 1332, 24,
- 1349, 24,
- 1408, 24,
- 1412, 24,
- 1499, 24,
- 1535, 24,
- 1536, 24,
- 1537, 24,
- 1541, 24,
- 1610, 24,
- 1621, 24,
- 1687, 24,
- 1691, 24,
- 1697, 24,
- 1699, 24,
- 1728, 24,
+ 347, 24,
+ 402, 24,
+ 576, 24,
+ 578, 24,
+ 585, 24,
+ 631, 24,
+ 804, 24,
+ 805, 24,
+ 808, 24,
+ 871, 24,
+ 913, 24,
+ 978, 24,
+ 980, 24,
+ 982, 24,
+ 1085, 24,
+ 1096, 24,
+ 1100, 21,
+ 1190, 24,
+ 1192, 24,
+ 1194, 24,
+ 1296, 24,
+ 1305, 24,
+ 1307, 24,
+ 1388, 24,
+ 1397, 24,
+ 1399, 24,
+ 1503, 24,
+ 1520, 24,
+ 1602, 24,
+ 1606, 24,
+ 1710, 24,
1756, 24,
+ 1757, 24,
+ 1758, 24,
1762, 24,
- 1763, 24,
- 1766, 24,
- 1771, 24,
- 1774, 24,
- 1778, 24,
- 1817, 24,
- 1823, 24,
- 1825, 24,
- 1828, 24,
- 1833, 24,
- 1870, 24
+ 1844, 24,
+ 1855, 24,
+ 1942, 24,
+ 1946, 24,
+ 1952, 24,
+ 1954, 24,
+ 1984, 24,
+ 2032, 24,
+ 2038, 24,
+ 2039, 24,
+ 2042, 24,
+ 2047, 24,
+ 2050, 24,
+ 2054, 24,
+ 2111, 24,
+ 2117, 24,
+ 2119, 24,
+ 2122, 24,
+ 2127, 24,
+ 2176, 24
};
static int parser_goto_row226[] = {
81,
- -1, 164,
+ -1, 165,
0, 22,
3, 25,
5, 22,
111, 22,
112, 25,
114, 25,
- 243, 25,
- 265, 25,
- 271, 25,
+ 245, 25,
+ 268, 25,
274, 25,
- 331, 25,
+ 277, 25,
339, 25,
- 389, 25,
- 554, 25,
- 556, 25,
- 563, 25,
- 601, 25,
- 764, 25,
- 765, 25,
- 768, 25,
- 824, 25,
- 865, 25,
- 914, 25,
- 916, 25,
- 918, 25,
- 1009, 25,
- 1020, 25,
- 1024, 22,
- 1087, 25,
- 1089, 25,
- 1091, 25,
- 1175, 25,
- 1184, 25,
- 1186, 25,
- 1238, 25,
- 1246, 25,
- 1248, 25,
- 1332, 25,
- 1349, 25,
- 1408, 25,
- 1412, 25,
- 1499, 25,
- 1535, 25,
- 1536, 25,
- 1537, 25,
- 1541, 25,
- 1610, 25,
- 1621, 25,
- 1687, 25,
- 1691, 25,
- 1697, 25,
- 1699, 25,
- 1728, 25,
+ 347, 25,
+ 402, 25,
+ 576, 25,
+ 578, 25,
+ 585, 25,
+ 631, 25,
+ 804, 25,
+ 805, 25,
+ 808, 25,
+ 871, 25,
+ 913, 25,
+ 978, 25,
+ 980, 25,
+ 982, 25,
+ 1085, 25,
+ 1096, 25,
+ 1100, 22,
+ 1190, 25,
+ 1192, 25,
+ 1194, 25,
+ 1296, 25,
+ 1305, 25,
+ 1307, 25,
+ 1388, 25,
+ 1397, 25,
+ 1399, 25,
+ 1503, 25,
+ 1520, 25,
+ 1602, 25,
+ 1606, 25,
+ 1710, 25,
1756, 25,
+ 1757, 25,
+ 1758, 25,
1762, 25,
- 1763, 25,
- 1766, 25,
- 1771, 25,
- 1774, 25,
- 1778, 25,
- 1817, 25,
- 1823, 25,
- 1825, 25,
- 1828, 25,
- 1833, 25,
- 1870, 25
+ 1844, 25,
+ 1855, 25,
+ 1942, 25,
+ 1946, 25,
+ 1952, 25,
+ 1954, 25,
+ 1984, 25,
+ 2032, 25,
+ 2038, 25,
+ 2039, 25,
+ 2042, 25,
+ 2047, 25,
+ 2050, 25,
+ 2054, 25,
+ 2111, 25,
+ 2117, 25,
+ 2119, 25,
+ 2122, 25,
+ 2127, 25,
+ 2176, 25
};
const int* const parser_goto_table[] = {
var variable = v.search_variable(name)
if variable != null then
var n: AExpr
- if not n_args.n_exprs.is_empty or n_args isa AParExprs then
+ if not n_args.n_exprs.is_empty or n_args isa AParExprs or self isa ACallrefExpr then
v.error(self, "Error: `{name}` is a variable, not a method.")
return
end
return mclass.mclass_type
end
- fun get_method(node: ANode, recvtype: MType, name: String, recv_is_self: Bool): nullable CallSite
+ # Construction of a specific callsite according to the current context.
+ # Three entry points exist to create a callsite based on knowledge.
+ # The `build_callsite_by_name` is a top entry point, the method find the mpropdefs to call by the name of this.
+ # see `build_callsite_by_property` and `build_callsite_by_propdef` for more detail.
+ # If you already know the mpropdef to call use directly the `get_method_by_propdef` method
+ # If you just know the mproperty use the `build_callsite_by_property` method to display error if no `mpropdef` is found in the context
+ fun build_callsite_by_name(node: ANode, recvtype: MType, name: String, recv_is_self: Bool): nullable CallSite
do
var unsafe_type = self.anchor_to(recvtype)
assert mproperty isa MMethod
+ return build_callsite_by_property(node, recvtype, mproperty, recv_is_self)
+ end
+
+ # The `build_callsite_by_property` finds the mpropdefs to call by the `MMethod`.
+ # If the mpropdef is found in the context it builds a new `Callsite`.
+ fun build_callsite_by_property(node: ANode, recvtype: MType, mproperty: MMethod, recv_is_self: Bool): nullable CallSite
+ do
+ var unsafe_type = self.anchor_to(recvtype)
+
+ if recvtype isa MNullType then
+ var objclass = get_mclass(node, "Object")
+ if objclass == null then return null # Forward error
+ unsafe_type = objclass.mclass_type
+ end
# `null` only accepts some methods of object.
if recvtype isa MNullType and not mproperty.is_null_safe then
- self.error(node, "Error: method `{name}` called on `null`.")
+ self.error(node, "Error: method `{mproperty.name}` called on `null`.")
return null
else if unsafe_type isa MNullableType and not mproperty.is_null_safe then
modelbuilder.advice(node, "call-on-nullable", "Warning: method call on a nullable receiver `{recvtype}`.")
end
if is_toplevel_context and recv_is_self and not mproperty.is_toplevel then
- error(node, "Error: `{name}` is not a top-level method, thus need a receiver.")
+ error(node, "Error: `{mproperty.name}` is not a top-level method, thus need a receiver.")
end
if not recv_is_self and mproperty.is_toplevel then
- error(node, "Error: cannot call `{name}`, a top-level method, with a receiver.")
+ error(node, "Error: cannot call `{mproperty.name}`, a top-level method, with a receiver.")
end
if mproperty.visibility == protected_visibility and not recv_is_self and self.mmodule.visibility_for(mproperty.intro_mclassdef.mmodule) < intrude_visibility and not modelbuilder.toolcontext.opt_ignore_visibility.value then
- self.modelbuilder.error(node, "Error: method `{name}` is protected and can only accessed by `self`.")
+ self.modelbuilder.error(node, "Error: method `{mproperty.name}` is protected and can only accessed by `self`.")
return null
end
if info != null and self.mpropdef.mproperty.deprecation == null then
var mdoc = info.mdoc
if mdoc != null then
- self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{name}` is deprecated: {mdoc.content.first}")
+ self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{mproperty.name}` is deprecated: {mdoc.content.first}")
else
- self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{name}` is deprecated.")
+ self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{mproperty.name}` is deprecated.")
end
end
var propdefs = mproperty.lookup_definitions(self.mmodule, unsafe_type)
var mpropdef
if propdefs.length == 0 then
- self.modelbuilder.error(node, "Type Error: no definition found for property `{name}` in `{unsafe_type}`.")
- return null
+ self.modelbuilder.error(node, "Type Error: no definition found for property `{mproperty.name}` in `{unsafe_type}`.")
+ abort
+ #return null
else if propdefs.length == 1 then
mpropdef = propdefs.first
else
- self.modelbuilder.warning(node, "property-conflict", "Warning: conflicting property definitions for property `{name}` in `{unsafe_type}`: {propdefs.join(" ")}")
+ self.modelbuilder.warning(node, "property-conflict", "Warning: conflicting property definitions for property `{mproperty.name}` in `{unsafe_type}`: {propdefs.join(" ")}")
mpropdef = mproperty.intro
end
+ return build_callsite_by_propdef(node, recvtype, mpropdef, recv_is_self)
+ end
+ # The `build_callsite_by_propdef` builds the callsite directly with the `mprodef` passed in argument.
+ fun build_callsite_by_propdef(node: ANode, recvtype: MType, mpropdef: MMethodDef, recv_is_self: Bool): nullable CallSite
+ do
var msignature = mpropdef.new_msignature or else mpropdef.msignature
if msignature == null then return null # skip error
msignature = resolve_for(msignature, recvtype, recv_is_self).as(MSignature)
end
end
- var callsite = new CallSite(node.hot_location, recvtype, mmodule, anchor, recv_is_self, mproperty, mpropdef, msignature, erasure_cast)
+ var callsite = new CallSite(node.hot_location, recvtype, mmodule, anchor, recv_is_self, mpropdef.mproperty, mpropdef, msignature, erasure_cast)
return callsite
end
- fun try_get_method(node: ANode, recvtype: MType, name: String, recv_is_self: Bool): nullable CallSite
+ fun try_build_callsite_by_name(node: ANode, recvtype: MType, name: String, recv_is_self: Bool): nullable CallSite
do
var unsafe_type = self.anchor_to(recvtype)
var mproperty = self.try_get_mproperty_by_name2(node, unsafe_type, name)
if mproperty == null then return null
- return get_method(node, recvtype, name, recv_is_self)
+ return build_callsite_by_name(node, recvtype, name, recv_is_self)
end
self.read_type = readtype
- var callsite = v.get_method(self.n_assign_op, readtype, reassign_name, false)
+ var callsite = v.build_callsite_by_name(self.n_assign_op, readtype, reassign_name, false)
if callsite == null then return null # Skip error
self.reassign_callsite = callsite
if objcla == null then return
# check iterator method
- var itdef = v.get_method(self, mtype, "iterator", n_expr isa ASelfExpr)
+ var itdef = v.build_callsite_by_name(self, mtype, "iterator", n_expr isa ASelfExpr)
if itdef == null then
v.error(self, "Type Error: `for` expects a type providing an `iterator` method, got `{mtype}`.")
return
self.coltype = mtype.as(MClassType)
# get methods is_ok, next, item
- var ikdef = v.get_method(self, ittype, "is_ok", false)
+ var ikdef = v.build_callsite_by_name(self, ittype, "is_ok", false)
if ikdef == null then
v.error(self, "Type Error: `for` expects a method `is_ok` in type `{ittype}`.")
return
end
self.method_is_ok = ikdef
- var itemdef = v.get_method(self, ittype, "item", false)
+ var itemdef = v.build_callsite_by_name(self, ittype, "item", false)
if itemdef == null then
v.error(self, "Type Error: `for` expects a method `item` in type `{ittype}`.")
return
end
self.method_item = itemdef
- var nextdef = v.get_method(self, ittype, "next", false)
+ var nextdef = v.build_callsite_by_name(self, ittype, "next", false)
if nextdef == null then
v.error(self, "Type Error: `for` expects a method `next` in type {ittype}.")
return
end
self.method_next = nextdef
- self.method_finish = v.try_get_method(self, ittype, "finish", false)
+ self.method_finish = v.try_build_callsite_by_name(self, ittype, "finish", false)
if is_map then
- var keydef = v.get_method(self, ittype, "key", false)
+ var keydef = v.build_callsite_by_name(self, ittype, "key", false)
if keydef == null then
v.error(self, "Type Error: `for` expects a method `key` in type `{ittype}`.")
return
var vtype = variable.declared_type.as(not null)
if n_expr isa AOrangeExpr then
- self.method_lt = v.get_method(self, vtype, "<", false)
+ self.method_lt = v.build_callsite_by_name(self, vtype, "<", false)
else
- self.method_lt = v.get_method(self, vtype, "<=", false)
+ self.method_lt = v.build_callsite_by_name(self, vtype, "<=", false)
end
- self.method_successor = v.get_method(self, vtype, "successor", false)
+ self.method_successor = v.build_callsite_by_name(self, vtype, "successor", false)
end
end
end
var mtype = v.visit_expr(n_expr)
if mtype == null then return
- method_start = v.get_method(self, mtype, "start", n_expr isa ASelfExpr)
- method_finish = v.get_method(self, mtype, "finish", n_expr isa ASelfExpr)
+ method_start = v.build_callsite_by_name(self, mtype, "start", n_expr isa ASelfExpr)
+ method_finish = v.build_callsite_by_name(self, mtype, "finish", n_expr isa ASelfExpr)
v.visit_stmt(n_block)
self.mtype = n_block.mtype
var mclass = v.get_mclass(self, "String")
if mclass == null then return # Forward error
if is_bytestring then
- to_bytes_with_copy = v.get_method(self, v.mmodule.c_string_type, "to_bytes_with_copy", false)
+ to_bytes_with_copy = v.build_callsite_by_name(self, v.mmodule.c_string_type, "to_bytes_with_copy", false)
mclass = v.get_mclass(self, "Bytes")
else if is_re then
- to_re = v.get_method(self, mclass.mclass_type, "to_re", false)
+ to_re = v.build_callsite_by_name(self, mclass.mclass_type, "to_re", false)
for i in suffix.chars do
mclass = v.get_mclass(self, "Regex")
if mclass == null then
var service = ""
if i == 'i' then
service = "ignore_case="
- ignore_case = v.get_method(self, mclass.mclass_type, service, false)
+ ignore_case = v.build_callsite_by_name(self, mclass.mclass_type, service, false)
else if i == 'm' then
service = "newline="
- newline = v.get_method(self, mclass.mclass_type, service, false)
+ newline = v.build_callsite_by_name(self, mclass.mclass_type, service, false)
else if i == 'b' then
service = "extended="
- extended = v.get_method(self, mclass.mclass_type, service, false)
+ extended = v.build_callsite_by_name(self, mclass.mclass_type, service, false)
else
v.error(self, "Type Error: Unrecognized suffix {i} in prefixed Regex")
abort
if mclass == null then return # Forward error
var array_mtype = mclass.get_mtype([mtype])
- with_capacity_callsite = v.get_method(self, array_mtype, "with_capacity", false)
- push_callsite = v.get_method(self, array_mtype, "push", false)
+ with_capacity_callsite = v.build_callsite_by_name(self, array_mtype, "with_capacity", false)
+ push_callsite = v.build_callsite_by_name(self, array_mtype, "push", false)
self.mtype = array_mtype
end
# get the constructor
var callsite
if self isa ACrangeExpr then
- callsite = v.get_method(self, mtype, "init", false)
+ callsite = v.build_callsite_by_name(self, mtype, "init", false)
else if self isa AOrangeExpr then
- callsite = v.get_method(self, mtype, "without_last", false)
+ callsite = v.build_callsite_by_name(self, mtype, "without_last", false)
else
abort
end
# The property invoked by the send.
var callsite: nullable CallSite
+ # Is self a safe call (with `x?.foo`)?
+ # If so and the receiver is null, then the arguments won't be evaluated
+ # and the call skipped (replaced with null).
+ var is_safe: Bool = false
+
redef fun bad_expr_message(child)
do
if child == self.n_expr then
do
var nrecv = self.n_expr
var recvtype = v.visit_expr(nrecv)
+
+ if nrecv isa ASafeExpr then
+ # Has the receiver the form `x?.foo`?
+ # For parsing "reasons" the `?` is in the receiver node, not the call node.
+ is_safe = true
+ end
+
var name = self.property_name
var node = self.property_node
var systype = sysclass.mclass_type
mproperty = v.try_get_mproperty_by_name2(node, systype, name)
if mproperty != null then
- callsite = v.get_method(node, systype, name, false)
+ callsite = v.build_callsite_by_name(node, systype, name, false)
if callsite == null then return # Forward error
# Update information, we are looking at `sys` now, not `self`
nrecv.is_sys = true
end
if callsite == null then
# If still nothing, just exit
- callsite = v.get_method(node, recvtype, name, nrecv isa ASelfExpr)
+ callsite = v.build_callsite_by_name(node, recvtype, name, nrecv isa ASelfExpr)
if callsite == null then return
end
var ret = msignature.return_mtype
if ret != null then
+ if is_safe then
+ # A safe receiver makes that the call is not executed and returns null
+ ret = ret.as_nullable
+ end
self.mtype = ret
else
self.is_typed = true
if recvtype == null then return # Forward error
var for_self = self.n_expr isa ASelfExpr
- var callsite = v.get_method(node, recvtype, name, for_self)
+ var callsite = v.build_callsite_by_name(node, recvtype, name, for_self)
if callsite == null then return
self.callsite = callsite
return
end
- var wcallsite = v.get_method(node, recvtype, name + "=", self.n_expr isa ASelfExpr)
+ var wcallsite = v.build_callsite_by_name(node, recvtype, name + "=", self.n_expr isa ASelfExpr)
if wcallsite == null then return
self.write_callsite = wcallsite
redef fun compute_raw_arguments do return n_args.to_a
end
+redef class ACallrefExpr
+ redef fun property_name do return n_qid.n_id.text
+ redef fun property_node do return n_qid
+ redef fun compute_raw_arguments do return n_args.to_a
+
+ redef fun accept_typing(v)
+ do
+ super # do the job as if it was a real call
+
+ # TODO: inspect self.callsite to get information about the method
+ var res = callsite.mproperty
+
+ # TODO: return a functionnal type
+ self.mtype = null
+ v.error(self, "Error: NOT YET IMPLEMENTED callref expressions.")
+ end
+end
+
redef class AExprs
fun to_a: Array[AExpr] do return self.n_exprs.to_a
end
return
end
- var callsite = v.get_method(node, recvtype, name, false)
+ var callsite = v.build_callsite_by_name(node, recvtype, name, false)
if callsite == null then return
if not callsite.mproperty.is_new then
end
end
+redef class ASafeExpr
+ redef fun accept_typing(v)
+ do
+ var mtype = v.visit_expr(n_expr)
+ if mtype == null then return # Skip error
+
+ if mtype isa MNullType then
+ # While `null?.foo` is semantically well defined and should not execute `foo` and just return `null`,
+ # currently `null.foo` is forbidden so it seems coherent to also forbid `null?.foo`
+ v.modelbuilder.error(self, "Error: safe operator `?` on `null`.")
+ return
+ end
+
+ self.mtype = mtype.as_notnull
+
+ if not v.can_be_null(mtype) then
+ v.modelbuilder.warning(self, "useless-safe", "Warning: useless safe operator `?` on non-nullable value.")
+ return
+ end
+ end
+end
+
redef class AVarargExpr
redef fun accept_typing(v)
do
# This file is part of NIT ( http://www.nitlanguage.org ).
#
-# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>
-#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# See the License for the specific language governing permissions and
# limitations under the License.
-module blink is example
+import core::kernel
-import wiringPi
+class A
+ fun foo(i: Int) do
+ 'F'.output
+ i.output
+ end
-if args.length != 1 then
- print "usage: blink pin_id"
- exit(1)
+ fun bar(i: Int): A do
+ 'B'.output
+ i.output
+ return self
+ end
end
-# init wiringPi lib
-wiringPi_setup
+fun test(a: nullable A) do
+ 'a'.output
+ (a == null).output
+ a?.foo(1)
-# init the pin
-var id = args.first.to_i
-var pin = new RPiPin(id)
-pin.mode(new RPiPinMode.output_mode)
+ var r = a?.bar(2)
+ 'r'.output
+ (r == null).output
-# blink
-loop
- pin.write(true)
- nanosleep(1, 0)
- pin.write(false)
- nanosleep(1, 0)
+ a?.bar(10)?.bar(11)?.foo(12)
+ #alt2#a.bar(20).foo(21)
+ #alt3#a?.bar(20).foo(21)
+ #alt4#a.bar(20)?.foo(21)
end
+
+var a = new A
+test(a)
+'\n'.output
+test(null)
+
+#alt1#a?.foo(10)
+#alt1#null?.foo(11)
class A
#alt1#once
- ?&*
+ `?&*
end
-n -e 'print line' test_prog/README.md test_prog/test_prog.nit
test_ffi_c_interpreter.nit
-
+--keep-going test_keep_going.nit --run --dir out/
--log --log-dir $WRITE test_prog -o out/test_prog.bin
test_define.nit --semi-global -D text=hello -D num=42 -D flag --dir out/ ; out/test_define
--run ../examples/print_arguments.nit 1 2 3 --dir out/
+--keep-going test_keep_going.nit --run --dir out/
nit_args5
nit_args6
nit_args8
+nit_args9
nitvm_args1
nitvm_args3
nitin
nit_args5
nit_args6
nit_args8
+nit_args9
nitvm_args1
nitvm_args3
nitin
--- /dev/null
+afalse
+F1
+B2
+rfalse
+B10
+B11
+F12
+
+atrue
+rtrue
--- /dev/null
+alt/base_safe_alt1.nit:50,1--2: Warning: useless safe operator `?` on non-nullable value.
+alt/base_safe_alt1.nit:51,1--5: Error: safe operator `?` on `null`.
--- /dev/null
+Runtime error: Receiver is null (alt/base_safe_alt2.nit:40)
+afalse
+F1
+B2
+rfalse
+B10
+B11
+F12
+B20
+F21
+
+atrue
+rtrue
--- /dev/null
+Runtime error: Receiver is null (alt/base_safe_alt3.nit:41)
+afalse
+F1
+B2
+rfalse
+B10
+B11
+F12
+B20
+F21
+
+atrue
+rtrue
--- /dev/null
+alt/base_safe_alt4.nit:42,2--11: Warning: useless safe operator `?` on non-nullable value.
+Runtime error: Receiver is null (alt/base_safe_alt4.nit:42)
+afalse
+F1
+B2
+rfalse
+B10
+B11
+F12
+B20
+F21
+
+atrue
+rtrue
-error_syntax.nit:19,2: Syntax Error: unknown token `?`.
+error_syntax.nit:19,2: Syntax Error: unknown token ``?`.
--- /dev/null
+\e[0;33mtest_keep_going.nit:15,11--14\e[0m: Error: class `Fail` not found in module `test_keep_going`.
+ fun plop: \e[1;31mFail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:40,2--11\e[0m: Error: unreachable statement.
+ \e[1;31m999.output\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:26,2--5\e[0m: Error: method or variable `fail` unknown in `Sys`.
+ \e[1;31mfail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:30,14--17\e[0m: Error: class `Fail` not found in module `test_keep_going`.
+ var x = new \e[1;31mFail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:35,5\e[0m: Type Error: expected `Bool`, got `Int`.
+ if \e[1;31m1\e[0m then abort
+ ^
+\e[0;33mtest_keep_going.nit:44,18--21\e[0m: Error: method `fail` does not exists in `Sys`.
+ var a = new Sys.\e[1;31mfail\e[0m
+ ^
+1
+2
+3
+4
+5
+6
+7
--- /dev/null
+\e[0;33mtest_keep_going.nit:15,11--14\e[0m: Error: class `Fail` not found in module `test_keep_going`.
+ fun plop: \e[1;31mFail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:40,2--11\e[0m: Error: unreachable statement.
+ \e[1;31m999.output\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:26,2--5\e[0m: Error: method or variable `fail` unknown in `Sys`.
+ \e[1;31mfail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:30,14--17\e[0m: Error: class `Fail` not found in module `test_keep_going`.
+ var x = new \e[1;31mFail\e[0m
+ ^
+\e[0;33mtest_keep_going.nit:35,5\e[0m: Type Error: expected `Bool`, got `Int`.
+ if \e[1;31m1\e[0m then abort
+ ^
+\e[0;33mtest_keep_going.nit:44,18--21\e[0m: Error: method `fail` does not exists in `Sys`.
+ var a = new Sys.\e[1;31mfail\e[0m
+ ^
+Errors: 6. Warnings: 0.
+1
+2
+3
+4
+5
+6
+7
<div class="content"><div style="float: left">
<h1 class="package-name">test_prog - </h1>
</div>
-<div class="nitdoc"><h1 class="synopsys">Test program for model tools.</h1><p>This program creates a fake model that can be used to test tools like:</p>
+<div class="nitdoc"><h1 class="synopsis">Test program for model tools.</h1><p>This program creates a fake model that can be used to test tools like:</p>
<ul>
<li><code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_i">nitdoc</span></span></span></code></li>
<li><code class="nitcode"><span class="nitcode"><span class="line"><span class="nc_i">nitmetrics</span></span></span></code></li>
<p>An image:</p>
<p><img src="../res/c94d8a73ccfe143ebde7599e88f5f5ce.png" alt="Tinks3D"/></p>
</div><h2>Content</h2><ul>
-<li><strong>test_prog</strong>: <span class="synopsys nitdoc">Test program for model tools.</span> (test_prog)<ul>
+<li><strong>test_prog</strong>: <span class="synopsis nitdoc">Test program for model tools.</span> (test_prog)<ul>
<li><strong>examples</strong> (test_prog/examples)<ul>
<li><strong>game_examples</strong> (test_prog/examples/game_examples.nit)</li>
</ul>
</li>
-<li><strong>game</strong>: <span class="synopsys nitdoc">Gaming group</span> (test_prog/game)<ul>
-<li><strong>game</strong>: <span class="synopsys nitdoc">A game abstraction for RPG.</span> (test_prog/game/game.nit)</li>
+<li><strong>game</strong>: <span class="synopsis nitdoc">Gaming group</span> (test_prog/game)<ul>
+<li><strong>game</strong>: <span class="synopsis nitdoc">A game abstraction for RPG.</span> (test_prog/game/game.nit)</li>
</ul>
</li>
-<li><strong>platform</strong>: <span class="synopsys nitdoc">Fictive Crappy Platform.</span> (test_prog/platform)<ul>
-<li><strong>platform</strong>: <span class="synopsys nitdoc">Declares base types allowed on the platform.</span> (test_prog/platform/platform.nit)</li>
+<li><strong>platform</strong>: <span class="synopsis nitdoc">Fictive Crappy Platform.</span> (test_prog/platform)<ul>
+<li><strong>platform</strong>: <span class="synopsis nitdoc">Declares base types allowed on the platform.</span> (test_prog/platform/platform.nit)</li>
</ul>
</li>
-<li><strong>rpg</strong>: <span class="synopsys nitdoc">Role Playing Game group</span> (test_prog/rpg)<ul>
-<li><strong>careers</strong>: <span class="synopsys nitdoc">Careers of the game.</span> (test_prog/rpg/careers.nit)</li>
-<li><strong>character</strong>: <span class="synopsys nitdoc">Characters are playable entity in the world.</span> (test_prog/rpg/character.nit)</li>
-<li><strong>combat</strong>: <span class="synopsys nitdoc">COmbat interactions between characters.</span> (test_prog/rpg/combat.nit)</li>
-<li><strong>races</strong>: <span class="synopsys nitdoc">Races of the game.</span> (test_prog/rpg/races.nit)</li>
-<li><strong>rpg</strong>: <span class="synopsys nitdoc">A worlg RPG abstraction.</span> (test_prog/rpg/rpg.nit)</li>
+<li><strong>rpg</strong>: <span class="synopsis nitdoc">Role Playing Game group</span> (test_prog/rpg)<ul>
+<li><strong>careers</strong>: <span class="synopsis nitdoc">Careers of the game.</span> (test_prog/rpg/careers.nit)</li>
+<li><strong>character</strong>: <span class="synopsis nitdoc">Characters are playable entity in the world.</span> (test_prog/rpg/character.nit)</li>
+<li><strong>combat</strong>: <span class="synopsis nitdoc">COmbat interactions between characters.</span> (test_prog/rpg/combat.nit)</li>
+<li><strong>races</strong>: <span class="synopsis nitdoc">Races of the game.</span> (test_prog/rpg/races.nit)</li>
+<li><strong>rpg</strong>: <span class="synopsis nitdoc">A worlg RPG abstraction.</span> (test_prog/rpg/rpg.nit)</li>
</ul>
</li>
-<li><strong>test_prog</strong>: <span class="synopsys nitdoc">A test program with a fake model to check model tools.</span> (test_prog/test_prog.nit)</li>
+<li><strong>test_prog</strong>: <span class="synopsis nitdoc">A test program with a fake model to check model tools.</span> (test_prog/test_prog.nit)</li>
<li><strong>tests</strong> (test_prog/tests)<ul>
<li><strong>test_game</strong> (test_prog/tests/test_game.nit)</li>
</ul>
* has_package 1
* has_readme 1
* md_lines 12
- * nb_section 0
- * md_blocks 14
- * BlockParagraph 4
- * BlockUnorderedList 1
- * BlockListItem 4
- * SpanCode 4
- * Image 1
+ * MdDocument 1
+ * MdParagraph 8
+ * MdText 6
+ * MdUnorderedList 1
+ * MdListItem 4
+ * MdCode 4
+ * MdImage 1
readme.csv
--- /dev/null
+syntax_callref.nit:40,5--8: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:41,5--12: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:42,5--16: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:43,6--13: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:44,5--18: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:48,5--10: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:49,5--14: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:50,5--18: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:51,6--15: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:52,5--20: Error: NOT YET IMPLEMENTED callref expressions.
+syntax_callref.nit:54,5--11: Error: NOT YET IMPLEMENTED callref expressions.
--- /dev/null
+alt/syntax_callref_alt1.nit:47,5--6: Error: `y` is a variable, not a method.
Error at ./error_syntax.nit:19,2:
- Syntax Error: unknown token `?`.
+ Syntax Error: unknown token ``?`.
# This file is part of NIT ( http://www.nitlanguage.org ).
#
-# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>
-#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# See the License for the specific language governing permissions and
# limitations under the License.
-module read is example
-
-import wiringPi
+redef class Object
+ fun foo: Object
+ do
+ print "foo{self}"
+ return self
+ end
+ fun bar: Object
+ do
+ print "baz{self}"
+ return self
+ end
+ fun baz: Object
+ do
+ print "baz{self}"
+ return self
+ end
+end
-if args.length != 1 then
- print "usage: blink pin_id"
- exit(1)
+class Y
+ var quux: Object = self
end
-# init wiringPi lib
-wiringPi_setup
+var x
-# init the pin
-var id = args.first.to_i
-var pin = new RPiPin(id)
-pin.mode(new RPiPinMode.input_mode)
+# self is the implicit receiver
+x = &foo
+x = &foo.bar
+x = &foo.bar.baz
+x = (&foo.bar).baz
+x = &(foo.bar).baz
-# listen
-loop
- print pin.read
- nanosleep(1, 0)
-end
+var y = new Y
+#alt1#x = &y # error since y is a variable
+x = &y.foo
+x = &y.foo.bar
+x = &y.foo.bar.baz
+x = (&y.foo.bar).baz
+x = &(y.foo.bar).baz
+
+x = &y.quux